A bot that tweets info and location map for new bicycle parking added to OpenStreetMap within a GeoJSON boundary.

Overview

Bike parking tweepy bot app

A twitter bot app that searches for bicycle parking added to OpenStreetMap. Relies on AWS Lambda/S3, Python3, Tweepy, Flask, Zappa, and a boundary GeoJSON file.

What you need

  • AWS-CLI, Python3, pip, (pipenv is optional, but recommended)
  • Geoapify Static Maps API key
  • Twitter Developer API keys and access tokens for your bot account
  • Working knowledge of python, AWS S3, OpenStreetMap (and its Overpass API)

Setup

  • Git clone the repo to your local system (git clone https://github.com/trivisonno/bikeparking-tweepy.git)
  • Install all python dependencies using pip (pip install zappa flask shapely overpass boto3 tinydb)
  • Create a zappa project with defaults (zappa init)
  • Rename the secrets.sample.py file to secrets.py, and add your Geoapify and Twitter API keys and access tokens
  • Update line 15 of the app.py with the node ID from which you wish to start tracking new bike parking items. If you set it to 0, then the app will tweet out info for every single bicycle parking item it finds. You might wish to only tweet about bicycle parking added after your launched your app, so you should update this with an appropriate nodeId. If you leave the default value (9256651107), that should only add anything after about November 17, 2021. (TODO: Update this setting code.)
  • If you wish, adjust the radius (meters) on line 16 for the nearby POI search. (Default: 50)
  • Create an S3 bucket, and update line 19 of the app.py file with the bucket name
  • Line 33 includes the allowed bicycle parking types in an array. You can add types to this list if you want to be more flexible in reporting. (Default: ['stands', 'bollard', 'lockers']) (See other types)
  • Modify line 36 to include other types of nearby POIs. (Default seems to be a good balance)
  • Replace the boundary.geojson file with your own desired boundary file. The default is Cleveland, Ohio. The app will use this boundary to filter the bicycle parking items.
  • Update the zappa_settings.json and add lines 9-18 of the zappa_settings.sample.json file. The app is scheduled to check the OpenStreeetMap at the top of every hour from 9-6 EST.
  • Launch to AWS Lambda with zappa (zappa deploy dev)

Authors

Angelo @Trivisonno (not a professional app developer, so forgive all oversights)

License

This project is licensed under the Unlicense (Public Domain)- see the LICENSE file for details

Owner
Angelo Trivisonno
Angelo Trivisonno
Build, deploy and extract satellite public constellations with one command line.

SatExtractor Build, deploy and extract satellite public constellations with one command line. Table of Contents About The Project Getting Started Stru

Frontier Development Lab 70 Nov 18, 2022
Tool to suck data from ArcGIS Server and spit it into PostgreSQL

chupaESRI About ChupaESRI is a Python module/command line tool to extract features from ArcGIS Server map services. Name? Think "chupacabra" or "Chupa

John Reiser 34 Dec 04, 2022
Simulation and Parameter Estimation in Geophysics

Simulation and Parameter Estimation in Geophysics - A python package for simulation and gradient based parameter estimation in the context of geophysical applications.

SimPEG 390 Dec 15, 2022
Location field and widget for Django. It supports Google Maps, OpenStreetMap and Mapbox

django-location-field Let users pick locations using a map widget and store its latitude and longitude. Stable version: django-location-field==2.1.0 D

Caio Ariede 481 Dec 29, 2022
Daily social mapping project in November 2021. Maps made using PyGMT whenever possible.

Daily social mapping project in November 2021. Maps made using PyGMT whenever possible.

Wei Ji 20 Nov 24, 2022
This program analizes films database with adresses, and creates a folium map with closest films to the coordinates

Films-map-project UCU CS lab 1.2, 1st year This program analizes films database with adresses, and creates a folium map with closest films to the coor

Artem Moskovets 1 Feb 09, 2022
This repository contains the scripts to derivate the ENU and ECEF coordinates from the longitude, latitude, and altitude values encoded in the NAD83 coordinates.

This repository contains the scripts to derivate the ENU and ECEF coordinates from the longitude, latitude, and altitude values encoded in the NAD83 coordinates.

Luigi Cruz 1 Feb 07, 2022
Asynchronous Client for the worlds fastest in-memory geo-database Tile38

This is an asynchonous Python client for Tile38 that allows for fast and easy interaction with the worlds fastest in-memory geodatabase Tile38.

Ben 53 Dec 29, 2022
Evaluation of file formats in the context of geo-referenced 3D geometries.

Geo-referenced Geometry File Formats Classic geometry file formats as .obj, .off, .ply, .stl or .dae do not support the utilization of coordinate syst

Advanced Information Systems and Technology 11 Mar 02, 2022
Google maps for Jupyter notebooks

gmaps gmaps is a plugin for including interactive Google maps in the IPython Notebook. Let's plot a heatmap of taxi pickups in San Francisco: import g

Pascal Bugnion 747 Dec 19, 2022
scalable analysis of images and time series

thunder scalable analysis of image and time series analysis in python Thunder is an ecosystem of tools for the analysis of image and time series data

thunder-project 813 Dec 29, 2022
WIP: extracting Geometry utilities from datacube-core

odc.geo This is still work in progress. This repository contains geometry related code extracted from Open Datacube. For details and motivation see OD

Open Data Cube 34 Jan 09, 2023
Example of animated maps in matplotlib + geopandas using entire time series of congressional district maps from UCLA archive. rendered, interactive version below

Example of animated maps in matplotlib + geopandas using entire time series of congressional district maps from UCLA archive. rendered, interactive version below

Apoorva Lal 5 May 18, 2022
python toolbox for visualizing geographical data and making maps

geoplotlib is a python toolbox for visualizing geographical data and making maps data = read_csv('data/bus.csv') geoplotlib.dot(data) geoplotlib.show(

Andrea Cuttone 976 Dec 11, 2022
Enable geospatial data mining through Google Earth Engine in Grasshopper 3D, via its most recent Hops component.

AALU_Geo Mining This repository is produced for a masterclass at the Architectural Association Landscape Urbanism programme. Requirements Rhinoceros (

4 Nov 16, 2022
A Python tool to display geolocation information in the traceroute.

IP2Trace Python IP2Trace Python is a Python tool allowing user to get IP address information such as country, region, city, latitude, longitude, zip c

IP2Location 22 Jan 08, 2023
pure-Python (Numpy optional) 3D coordinate conversions for geospace ecef enu eci

Python 3-D coordinate conversions Pure Python (no prerequistes beyond Python itself) 3-D geographic coordinate conversions and geodesy. API similar to

Geospace code 292 Dec 29, 2022
Create Siege configuration files from Cloud Optimized GeoTIFF.

cogeo-siege Documentation: Source Code: https://github.com/developmentseed/cogeo-siege Description Create siege configuration files from Cloud Optimiz

Development Seed 3 Dec 01, 2022
A GUI widget for Linux to show current time in different timezones.

A GUI widget to show current time in different timezones (under development). To use this widget: Run scripts/startup.py Select a country. A list of t

B.Jothin kumar 11 Nov 10, 2022
Script that allows to download data with satellite's orbit height and create CSV with their change in time.

Satellite orbit height ◾ Requirements Python = 3.8 Packages listen in reuirements.txt (run pip install -r requirements.txt) Account on Space Track ◾

Alicja Musiał 2 Jan 17, 2022