mirror of
https://github.com/DOI-DO/j40-cejst-2.git
synced 2025-07-28 11:21:16 -07:00
ACS data baked in for map (#153)
* starting etl for score * projection fix * projection flags * proper ejscreen etl csv generation * failing CSV merge -- investigating * checkpoint * some etl changes * completed ticket * small typo
This commit is contained in:
parent
eed9bd311d
commit
78615e9b1a
11 changed files with 321 additions and 356 deletions
|
@ -2,6 +2,8 @@ import os
|
|||
from pathlib import Path
|
||||
import shutil
|
||||
|
||||
from utils import get_state_fips_codes
|
||||
|
||||
data_path = Path.cwd() / "data"
|
||||
|
||||
# remove existing mbtiles file
|
||||
|
@ -14,17 +16,41 @@ mvt_tiles_path = data_path / "tiles" / "mvt"
|
|||
if os.path.exists(mvt_tiles_path):
|
||||
shutil.rmtree(mvt_tiles_path)
|
||||
|
||||
# Merge scores into json
|
||||
# TODO: for this first pass, just merging ACS EJScren indicators
|
||||
# Per https://github.com/usds/justice40-tool/issues/102
|
||||
|
||||
if os.name == "nt":
|
||||
pwd = "%cd%"
|
||||
else:
|
||||
pwd = "${PWD}"
|
||||
|
||||
state_fips_codes = get_state_fips_codes()
|
||||
for fips in state_fips_codes:
|
||||
cmd = (
|
||||
'docker run --rm -v "'
|
||||
+ pwd
|
||||
+ '"/:/home '
|
||||
+ "osgeo/gdal:alpine-small-latest ogr2ogr -f GeoJSON "
|
||||
+ f"-sql \"SELECT * FROM tl_2010_{fips}_bg10 LEFT JOIN '/home/data/dataset/ejscreen_2020/data{fips}.csv'.data{fips} ON tl_2010_{fips}_bg10.GEOID10 = data{fips}.ID\" "
|
||||
+ f"/home/data/score/geojson/{fips}.json /home/data/census/shp/{fips}/tl_2010_{fips}_bg10.dbf"
|
||||
)
|
||||
print(cmd)
|
||||
os.system(cmd)
|
||||
|
||||
# get a list of all json files to plug in the docker commands below
|
||||
# (workaround since *.json doesn't seem to work)
|
||||
geojson_list = ""
|
||||
geojson_path = data_path / "census" / "geojson"
|
||||
geojson_path = data_path / "score" / "geojson"
|
||||
for file in os.listdir(geojson_path):
|
||||
if file.endswith(".json"):
|
||||
geojson_list += f"/home/data/census/geojson/{file} "
|
||||
geojson_list += f"/home/data/score/geojson/{file} "
|
||||
|
||||
if geojson_list == "":
|
||||
print("No GeoJson files found. Please run download_cbg.py first")
|
||||
print("No GeoJson files found. Please run scripts/download_cbg.py first")
|
||||
|
||||
|
||||
# generate mbtiles file
|
||||
# PWD is different for Windows
|
||||
if os.name == "nt":
|
||||
pwd = "%cd%"
|
||||
|
@ -33,7 +59,7 @@ else:
|
|||
cmd = (
|
||||
'docker run --rm -it -v "'
|
||||
+ pwd
|
||||
+ '"/:/home klokantech/tippecanoe tippecanoe -s_srs EPSG:4269 -t_srs EPSG:4326 --drop-densest-as-needed -zg -o /home/data/tiles/block2010.mbtiles --drop-densest-as-needed --extend-zooms-if-still-dropping -l cbg2010 -s_srs EPSG:4269 -t_srs EPSG:4326 '
|
||||
+ '"/:/home klokantech/tippecanoe tippecanoe --drop-densest-as-needed -zg -o /home/data/tiles/block2010.mbtiles --extend-zooms-if-still-dropping -l cbg2010 -s_srs EPSG:4269 -t_srs EPSG:4326 '
|
||||
+ geojson_list
|
||||
)
|
||||
print(cmd)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue