profile/README.md renders on https://github.com/AI4EPS: a title and a map of
the cities our tools and documentation are used from.
| Script | Workflow | Runs |
|---|---|---|
visitor_map.py |
visitor-map.yml |
monthly — redraws the map from GA4 |
github_traffic.py |
github-traffic.yml |
daily — archives GitHub views/clones |
build_city_coords.py |
— | on demand, when the map reports a low match rate |
Daily is not a preference for the traffic job: GitHub serves only a 14-day window, and whatever falls out of it cannot be recovered.
| Name | Value |
|---|---|
GA_PROPERTY_ID |
317041191 |
GA_SA_KEY |
JSON key for a service account with Viewer on that property |
AI4EPS_TRAFFIC_TOKEN |
PAT with repo scope — the default GITHUB_TOKEN is scoped to this repo alone and 403s on the others |
export GA_PROPERTY_ID=317041191
export GOOGLE_APPLICATION_CREDENTIALS=~/.config/ga/ga-reader.json
python scripts/visitor_map.py
export GH_TOKEN=$(gh auth token)
python scripts/github_traffic.py --org AI4EPSdata/ne1-relief.jpg is the basemap, committed so the render never depends on
naturalearthdata.com.