Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

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

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)