Add airports layer

This commit is contained in:
Chandler Swift 2026-03-17 16:36:00 -05:00
parent 5553b815f6
commit 69e777033e
Signed by: chandlerswift
GPG key ID: A851D929D52FB93F
4 changed files with 83 additions and 0 deletions

40
layers/airports/get_data.py Executable file
View file

@ -0,0 +1,40 @@
#!/usr/bin/env python
import csv
import io
import json
import urllib.request
index_imports = []
resp = urllib.request.urlopen("https://davidmegginson.github.io/ourairports-data/airports.csv")
airports = list(csv.DictReader(io.TextIOWrapper(resp)))
types = set([a['type'] for a in airports])
for airport_type in types:
geojson = {
"type": "FeatureCollection",
"features": [],
}
for airport in airports:
if airport['type'] == airport_type:
geojson['features'].append({
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates": [float(airport['longitude_deg']), float(airport['latitude_deg'])]
},
"properties": airport, # TODO
})
with open(f'data/{airport_type}.geojson', 'w') as f:
f.write(json.dumps(geojson))
with open("data/types.js", 'w') as f:
for airport_type in types:
f.write(f"import {airport_type} from './{airport_type}.geojson?url';\n")
f.write('\nexport default {\n')
for airport_type in types:
f.write(f" {airport_type}: {airport_type},\n")
f.write("};\n")