mirror of
https://github.com/jdejaegh/cartopy-tor-relays.git
synced 2025-06-26 21:15:40 +02:00
58 lines
No EOL
2.1 KiB
Markdown
58 lines
No EOL
2.1 KiB
Markdown
# 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:
|
|
|
|
> © <a href='https://www.mapbox.com/about/maps/'>Mapbox</a> © <a href='http://www.openstreetmap.org/copyright'>OpenStreetMap</a> <strong><a href='https://www.mapbox.com/map-feedback/' target='_blank'>Improve this map</a></strong>
|
|
|
|
## 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
|
|
|
|

|
|
|
|
### With a custom style from MapBox
|
|
 |