Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/jdejaegh/cartopy-tor-relays
Create a map showing the geographic location of the Tor relays
https://github.com/jdejaegh/cartopy-tor-relays
cartopy geolocation map maxmind-geoip openstreetmap osm tor tor-relays
Last synced: 2 months ago
JSON representation
Create a map showing the geographic location of the Tor relays
- Host: GitHub
- URL: https://github.com/jdejaegh/cartopy-tor-relays
- Owner: jdejaegh
- License: mit
- Created: 2024-03-27T13:58:03.000Z (9 months ago)
- Default Branch: main
- Last Pushed: 2024-07-08T06:22:50.000Z (6 months ago)
- Last Synced: 2024-09-30T05:01:21.521Z (3 months ago)
- Topics: cartopy, geolocation, map, maxmind-geoip, openstreetmap, osm, tor, tor-relays
- Language: Python
- Homepage:
- Size: 3.7 MB
- Stars: 2
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Map Tor relays using Cartopy
Create a map showing the geographic location of the Tor relays## Setup
1. Create a venv: `python -m venv venv && source venv/bin/activate`
2. Install requirements: `pip install -r requirements.txt`## Get the data to create the map
You'll need two files:
1. The Tor consensus you want to use. Download one at: https://metrics.torproject.org/collector/recent/relay-descriptors/consensuses/
2. The _GeoLite2 City_ file from MaxMind (not the CSV format). See their website to create an account and get the file: https://dev.maxmind.com/geoip/geolite2-free-geolocation-data## Run the program
The program takes two arguments: the filename of the consensus and the filename of the GeoLite2 mmdb file.
```shell
python map.py 2024-03-27-13-00-00-consensus GeoLite2-City.mmdb
```### Optional parameters
`--eps 1.5`: control the density of the clusters. The default is 1.5 and generally gives nice maps.
The higher the value, the bigger the clusters.`--weight`: if set, use the consensus weight instead of the count of relays for the size of the clusters.
```shell
python map.py 2024-03-27-13-00-00-consensus GeoLite2-City.mmdb --eps 1.5 --weight
```## Using OSM data (optional)
It is possible to use data from OpenStreetMap as background (instead of the default cartopy image).
Check the code and the `TODO` comment to enable that. If you use OSM data and Mapbox as suggested in the comment,
please use attribute it properly.The following attribution line is generally enough:
> © Mapbox © OpenStreetMap Improve this map
## Attribution
This attribution or a similar should be included when you use this script with MaxMind data.
> This product includes GeoLite2 Data created by MaxMind, available from https://www.maxmind.com
## Examples of maps
### Default cartopy background
![map with cartopy background](img/map.png)
### With a custom style from MapBox
![map with osm data](img/map_osm.png)