File size: 1,877 Bytes
8f53057
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#!/bin/bash
# Fetches every real dataset Plasmodio needs into data/raw. Re-runnable; skips files that exist.
cd "$(dirname "$0")/../data/raw"
log(){ echo "[$(date +%H:%M:%S)] $*"; }
get(){ [ -s "$2" ] && { log "have $2"; return; }; log "GET $1"; curl -sL --fail --retry 3 --max-time 900 -o "$2" "$1" || log "FAILED $2"; }

# 1. Italy / San Marino / Vatican boundaries (geoBoundaries, OSM-derived, CC BY 4.0)
for iso in ITA SMR VAT; do
  if [ ! -s "gb_${iso}_ADM0.geojson" ]; then
    url=$(curl -sL "https://www.geoboundaries.org/api/current/gbOpen/${iso}/ADM0/" | python3 -c "import json,sys; d=json.load(sys.stdin); print(d.get('gjDownloadURL',''))")
    log "geoBoundaries $iso -> $url"
    [ -n "$url" ] && get "$url" "gb_${iso}_ADM0.geojson"
  fi
done
# fallback: Natural Earth 10m admin-0 (public domain)
get "https://naciscdn.org/naturalearth/10m/cultural/ne_10m_admin_0_countries.zip" "ne_10m_admin_0_countries.zip"

# 2. GeoNames cities (CC BY 4.0): every place with population >= 5000
get "https://download.geonames.org/export/dump/cities5000.zip" "cities5000.zip"

# 3. OpenStreetMap via Overpass (ODbL)
ovp(){ [ -s "$2" ] && { log "have $2"; return; }; log "Overpass -> $2"; curl -sL --fail --retry 2 --max-time 900 -o "$2" --data-urlencode "data=$1" "https://overpass-api.de/api/interpreter" || log "FAILED $2"; }
ovp '[out:json][timeout:600]; area["ISO3166-1"="IT"][admin_level=2]->.it; way(area.it)["railway"="rail"]["highspeed"="yes"]; out geom;' osm_hsr.json
ovp '[out:json][timeout:600]; way["route"="ferry"](36.0,6.0,47.5,19.5); out geom;' osm_ferry.json
ovp '[out:json][timeout:900]; area["ISO3166-1"="IT"][admin_level=2]->.it; way(area.it)["railway"="rail"]["usage"="main"]; out geom;' osm_rail_main.json
ovp '[out:json][timeout:1200]; area["ISO3166-1"="IT"][admin_level=2]->.it; way(area.it)["highway"="motorway"]; out geom;' osm_motorway.json
log "done"