geostat/README.md

129 wiersze
6.4 KiB
Markdown

GEOSTAT
=======
Tools for computing various statistics related to Geocaching/Opencaching
------------------------------------------------------------------------
# Sample web interface
A sample web interface to play with the tool is available at http://tomaszg.pl/geo/.
# Usage
The main tool is called `geostat`. It is able to access `opencaching.pl` via `OKAPI` or from local database dump maintained by `geodb`. It can also partially read `GPX` files, e.g. exported from [c:geo](https://www.cgeo.org/). It produces various statistics (either as text output with `geostat_cli`, or in a HTML form with `geostat`) and renders a heat map of found/not found caches in a selected region. HTML output requires a style sheet. Sample one is included as `geo.css`.
```
Usage: geostat [options]
Generate HTML stats from Opencaching data or GPX files.
* Data sources:
-o[user] use Opencaching; if specified user will be a user name used for all OC instances
-p user user for opencaching.pl
-d user user for opencaching.de
-u user user for opencaching.us
-n user user for opencaching.nl
-r user user for opencaching.ro
-k user user for opencaching.uk
-q use local SQLite file with dump of OC database
-i timestamp start date
-f timestamp finish date
* Output:
-N compute stats only for unfound caches (works only with SQLite)
-O compute stats only for owned caches (works only with SQLite)
-Q exclude quiz caches from unfound caches
-H file render a heat map to a file
-s n stamp size for a heat map (default = 15)
-e use exponential to flatten the heat map
-t draw trail instead of heat map
-a draw animated map instead of heat map
-m map chosen map: Poland, Poland_relief, Poland_big, Europe, World or a name of voivodeship (default = Poland)
-h display this help screen
```
# Other tools
## geodb
There is a helper program `geodb` which manages local SQLite database. It can initialize the database from full data dump or update it according to changelogs grabbed from OKAPI.
```
Usage: geodb [-i path] [-uh]
Manage local Opencaching database.
-i folder initialize database from dump located in given folder
-u update database with changelogs grabbed via OKAPI
-h display this help screen
```
## geofriends
Another tools is `geofriends`. It generates stats for a pair of users regarding their common caching activities.
```
Usage: geofriends nick1 nick2
Generate HTML stats for user caching intersection from Opencaching data.
```
## geolist
Another tools is `geolist`. It generates HTML list of caches from a list of cache codes.
```
Usage: geolist list_of_caches
Produce a HTML list of caches given their OC codes.
```
# Installation
To compile it requires:
* C++ compliler supporting C++17 and a minor subset of C++20 (gcc >=9 or clang =>8 should be enough).
* meson (at least 0.47.0) + ninja build system
* libcurl: https://curl.haxx.se/libcurl/
* JSON for Modern C++: https://github.com/nlohmann/json
* gpxlib: http://irdvo.nl/gpxlib/
* heatmap: https://github.com/lucasb-eyer/heatmap
* ImageMagick or GraphicsMagick Magick++ library
To build the project copy `config_user_example.h` to `config_user.h` and fill it out (at least API key is needed). Then
run
```
meson build
cd build
ninja
ninja install
```
You might need to set `CXX` variable to point to a correct compiler.
# Credits
* Maps of Poland `Poland.png` and `Poland_big.png` come from https://pl.wikipedia.org/wiki/Plik:Poland_location_map.svg and are licensed under CC-BY-SA and GNU FDL.
* Map of Poland `Poland_relief.png` comes from https://commons.wikimedia.org/wiki/File:Relief_Map_of_Poland.svg and is licensed under CC-BY-SA.
* Map of Poland `Poland_powiaty.png` comes from https://en.wikipedia.org/wiki/File:POLSKA_powiaty.svg and is licensed under CC-BY-SA.
* Map of France `Benelux.png` comes from https://pl.wikipedia.org/wiki/Plik:Benelux_location_map.svg and is licensed under CC-BY-SA.
* Map of France `France.png` comes from https://commons.wikimedia.org/wiki/File:France_location_map.svg and is licensed under CC-BY-SA and GNU FDL.
* Map of Germany `Germany.png` comes from https://commons.wikimedia.org/wiki/File:Germany_location_map.svg and is licensed under CC-BY-SA and GNU FDL.
* Map of Romania `Romania.png` comes from https://en.wikipedia.org/wiki/File:Romania_location_map.svg and is licensed under CC-BY-SA and GNU FDL.
* Map of UK `UK.png` comes from https://commons.wikimedia.org/wiki/File:United_Kingdom_NUTS_location_map.svg and is licensed under CC-BY-SA.
* Map of USA `USA.png` comes from https://commons.wikimedia.org/wiki/File:USA_location_map.svg and is licensed under CC-BY-SA and GNU FDL.
* Map of Europe `Europe.png` comes from https://pl.wikipedia.org/wiki/Plik:Europe_location_map.svg and is licensed under PD.
* Map of the World `World.png` comes from https://commons.wikimedia.org/wiki/File:World_location_map.svg and is licensed under PD.
* Maps of Voivodeships of Poland come from https://commons.wikimedia.org/wiki/File:Podlaskie_Voivodeship_location_map.svg, https://commons.wikimedia.org/wiki/File:Pomeranian_Voivodeship_location_map.svg, https://pl.wikipedia.org/wiki/Plik:Kuyavian-Pomeranian_Voivodeship_location_map.svg, https://pl.wikipedia.org/wiki/Plik:Warmian-Masurian_Voivodeship_location_map.svg, https://pl.wikipedia.org/wiki/Plik:Masovian_Voivodeship_location_map.svg, https://pl.wikipedia.org/wiki/Plik:Lesser_Poland_Voivodeship_location_map.svg, https://pl.wikipedia.org/wiki/Plik:Greater_Poland_Voivodeship_location_map.svg, https://pl.wikipedia.org/wiki/Plik:Opole_Voivodeship_location_map.svg, https://pl.wikipedia.org/wiki/Plik:Lower_Silesian_Voivodeship_location_map.svg, https://pl.wikipedia.org/wiki/Plik:Silesian_Voivodeship_location_map.svg, https://pl.wikipedia.org/wiki/Plik:Lublin_Voivodeship_location_map.svg, https://pl.wikipedia.org/wiki/Plik:Subcarpathian_Voivodeship_location_map.svg, https://pl.wikipedia.org/wiki/Plik:West_Pomeranian_Voivodeship_location_map.svg, https://pl.wikipedia.org/wiki/Plik:%C5%9Awi%C4%99tokrzyskie_Voivodeship_location_map.svg, https://pl.wikipedia.org/wiki/Plik:Lubusz_Voivodeship_location_map.svg, https://pl.wikipedia.org/wiki/Plik:%C5%81%C3%B3d%C5%BA_Voivodeship_location_map.svg and are licensed under CC-BY-SA.
* Data about administrative boundaries of Poland comes from OpenStreetMap via https://wambachers-osm.website/boundaries/.
* CSS tricks used to render histograms are based on https://css-tricks.com/making-charts-with-css.
* Website uses https://github.com/CaptainCodeman/gif-player to display gifs.