erfamap/README.md
s3lph 146775937e
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
Solve the Luxembourg Problem
Luxembourg has two geoshapes registered on Wikidata, and the one considered truthy is not the one we want.
Solving this required messing with the SPARQL query as well as filtering to the now non-unique result set.
2022-10-09 01:15:36 +02:00

50 lines
1.9 KiB
Markdown

# erfamap
Generate a map similar to https://www.ccc.de/regional from Wikidata and the doku.ccc.de Semantic MediaWiki data.
![Map as generated by this tool](map.readme.png)
## Installation
1. Create a Python virtualenv: `python3 -m virtualenv venv`
1. Enable the virtualenv: `. venv/bin/activate`
1. Install the dependencies: `pip install -r requirements.txt`
Instead of following these steps, you could also install the dependencies from your OS' package manager.
## Usage
For a quick test run, point the script at the cache.example directory:
```
./generate_map.py --cache-directory cache.example
```
Find the result in the files `map.svg` and `map.png`.
**If the wrong font is used in the PNG, make sure the chosen font is installed on your system.** ([CairoSVG](https://cairosvg.org/) does not support the use of `@font-face` in style sheets.)
Usually you'll want to keep the border cache, but renew the Erfa & Chaostreff list from time to time:
```
./generate_map.py --update-erfalist
```
For this, you need to provide the HTTP Basic Auth credentials to doku.ccc.de via an environment variable:
```
export DOKU_CCC_DE_BASICAUTH=username:password
```
A run without cache takes some time as it fetches all data from their sources:
1. Get a list of countries in Europe and federal states in Germany from [Wikidata](https://wikidata.org).
1. Download all these countries' and states' border shapes from Wikimedia Commons.
1. Get a list of Erfas & Chaostreffs from the doku.ccc.de Semantic Mediawiki API.
1. Resolve all POIs' (Erfas & Chaostreffs) street addresses' to geocoordinates using [Nominatim](https://nominatim.org/).
**Use the cache at least for the country and state borders. Otherwise, Wikidata will start rate limiting pretty quickly.**
## Fonts
The font contained in `style/concertone-regular.ttf` was created by Johan Kallas (johankallas@gmail.com) and is licensed unter the terms of the SIL Open Font License v1.10.