mirror of
https://github.com/DOI-DO/j40-cejst-2.git
synced 2025-02-22 09:41:26 -08:00
Update diagrams in architecture docs (#790)
* Update diagrams in architecture docs * Updates overall diagram to represent current arch and process (including vision for data selection) * Updates geo data pipleline arch diagram and removes geoplatform version since we only have one version of this for the foreseeable future and we're using geoplatform infradstructure * Update diagram to remove something we do not yet do * Updating Diagram Co-authored-by: Shelby Switzer <shelby.switzer@cms.hhs.gov> Co-authored-by: GitHub Action <action@github.com>
This commit is contained in:
parent
55fc8721e0
commit
1f78920f63
8 changed files with 45 additions and 71 deletions
|
@ -4,14 +4,10 @@ The below is a general architecture of our proposed system:
|
|||
|
||||

|
||||
|
||||
The following is a more detailed diagram of the geo data pipeline architecture (the Data Pipeline and Server boxes in the general architecture diagram above).
|
||||
The following is a more detailed diagram of the data pipeline architecture utilizing S3 buckets for file/data hosting on Geoplatform.gov.
|
||||
|
||||

|
||||
|
||||
We are partnering with Geoplatform to turn some of these pieces into open source shared services that they would own. The following is a modified diagram showing which pieces would tentatively be owned by Geoplatform.
|
||||
|
||||

|
||||
|
||||
## Updating the Diagram
|
||||
|
||||
**Note: Do Not directly modify the svg file, it is generated automatically!**
|
||||
|
|
File diff suppressed because one or more lines are too long
Before Width: | Height: | Size: 30 KiB After Width: | Height: | Size: 30 KiB |
|
@ -3,37 +3,29 @@ graph LR
|
|||
input["Community Input"]
|
||||
end
|
||||
|
||||
subgraph ds["Data Selection"]
|
||||
subgraph ds["Data Selection (vision)"]
|
||||
input --> Intake
|
||||
input --> Evolution
|
||||
input --> Voting
|
||||
Intake --> Evolution --> Voting
|
||||
end
|
||||
|
||||
subgraph s["Geoplatform.gov"]
|
||||
subgraph s["Hosted by Geoplatform.gov"]
|
||||
subgraph dp["Data Pipeline (Justice40 Repo)"]
|
||||
Voting --> a["Approved Datasets"]
|
||||
a --> Properties
|
||||
a --> Geometries
|
||||
Properties --> Processing
|
||||
Geometries --> Processing
|
||||
input --> Processing
|
||||
a -- ETL --> ncsv["Normalized CSVs"]
|
||||
ncsv--"Score Generation"--> ScoreCSV["Full CSV with Data and Score"]
|
||||
ScoreCSV-->GeoJSON
|
||||
GeoJSON-->MVT["Uncompressed MVT Tiles"]
|
||||
end
|
||||
subgraph Server
|
||||
Processing --> GeoJSON
|
||||
GeoJSON --> db[("Feature Database")]
|
||||
db --> tileserv["Tile Server"]
|
||||
end
|
||||
subgraph j40["Justice40 Client"]
|
||||
tileserv --> vl
|
||||
ts["Tile Styling"] --> vl["Justice40 Visualization Library"]
|
||||
vl --> fe["Justice40 Static Site Frontend"]
|
||||
subgraph j40["Justice40 Client"]
|
||||
MVT --"API (S3 Access)"--> vl["Justice40 Visualization Library (MapLibre)"]
|
||||
vl --> fe["Justice40 Static Site Frontend (Gatsby)"]
|
||||
end
|
||||
end
|
||||
|
||||
subgraph oc["Other Clients"]
|
||||
tileserv -- API --> 3p["Third Party Apps"]
|
||||
GeoJSON -- API --> 3p
|
||||
db -- API --> 3p
|
||||
end
|
||||
|
||||
ScoreCSV --"API (S3 Access)" --> DS["Data Scientists"]
|
||||
GeoJSON -- "API (S3 Access)" --> 3["Third Party Apps"]
|
||||
MVT -- "API (S3 Access)" --> 3["Third Party Apps"]
|
||||
end
|
File diff suppressed because one or more lines are too long
Before Width: | Height: | Size: 35 KiB |
|
@ -1,28 +0,0 @@
|
|||
graph TD
|
||||
Dataset1["Dataset 1"]-->Score
|
||||
Dataset2["Dataset 2"]-->Score
|
||||
Census["Census TIGER Data"]-->CGTiger
|
||||
subgraph "Owned by Geoplatform"
|
||||
CGTiger["Create GeoJSON from Shapefile with osgeo/gdal"]-->TS3
|
||||
|
||||
end
|
||||
TS3("TIGER GeoJSON (S3)")-->CGJ
|
||||
Score["Create Score CSV"]--Event Notification-->CSV
|
||||
CSV("CSV (S3)")--"Event Notification (Geoplatform)"-->CGJ
|
||||
subgraph "Owned by Geoplatform"
|
||||
CGJ["Combine (ogr2ogr)+ Create GeoJSON"]--Event Notification-->GeoJSON
|
||||
end
|
||||
GeoJSON("GeoJSON (S3)")-->Tip
|
||||
GeoJSON--"Access non-geo data"-->Client
|
||||
subgraph "Owned by Geoplatform"
|
||||
Tip[/Tippecanoe/]-->CreateMVT["Create and Send MVT"]
|
||||
end
|
||||
subgraph production
|
||||
CreateMVT-->MBTiles
|
||||
MBTiles-->Uncompressed("Uncompressed MVT (Geoplatform S3)")
|
||||
end
|
||||
subgraph development
|
||||
CreateMVT-->Compressed("MBTiles (GeoPlatform S3)")-->TS[/Tileserver-GL/]
|
||||
end
|
||||
TS--"XYZ URL"-->Client
|
||||
Uncompressed--"XYZ URL"-->Client["Gatsby+OpenLayers Client"]
|
Binary file not shown.
Before Width: | Height: | Size: 69 KiB |
1
docs/architecture/geodata-pipeline-arch-mmd.svg
Normal file
1
docs/architecture/geodata-pipeline-arch-mmd.svg
Normal file
File diff suppressed because one or more lines are too long
After Width: | Height: | Size: 34 KiB |
|
@ -1,22 +1,36 @@
|
|||
graph TD
|
||||
Dataset1["Dataset 1"]-->Score
|
||||
Dataset2["Dataset 2"]-->Score
|
||||
Census["Census TIGER Data"]-->CGTiger
|
||||
CGTiger["Create GeoJSON from Shapefile with osgeo/gdal"]-->TS3
|
||||
TS3("TIGER GeoJSON (S3)")-->CGJ
|
||||
Score["Create Score CSV"]-->CSV
|
||||
CSV("CSV (S3)")-->CGJ
|
||||
CGJ["Combine (ogr2ogr)+ Create GeoJSON"]-->GeoJSON
|
||||
GeoJSON("GeoJSON (S3)")-->Tip
|
||||
GeoJSON--"Access non-geo data"-->Client
|
||||
subgraph "Generate MVT"
|
||||
Tip[/Tippecanoe/]-->CreateMVT["Create and Send MVT"]
|
||||
Dataset1["Dataset 1"]-->ETL1
|
||||
Dataset2["Dataset 2"]-->ETL2
|
||||
subgraph "ETL and Score Generation"
|
||||
ETL1["ETL for Dataset 1"]-->ncsv1("Normalized CSV (S3)")
|
||||
ETL2["ETL for Dataset 2"]-->ncsv2("Normalized CSV (S3)")
|
||||
ncsv1-->Score
|
||||
ncsv2-->Score
|
||||
Score-->DL("Downloadable zip")
|
||||
Score["Generate Score (score-run)"]-->CSV
|
||||
end
|
||||
DL-->Client
|
||||
|
||||
Census["Census TIGER Data Shapefiles (hosted by Census)"]-->CGTiger
|
||||
subgraph "Census Data ETL"
|
||||
CGTiger["Create GeoJSON from Shapefile with ogr2ogr"]-->TS3
|
||||
TS3("TIGER GeoJSON State Files(S3)")-->CombineCensus["Combine Census State Files with Geopandas"]
|
||||
CombineCensus-->NCS3("National Census GeoJSON (S3)")
|
||||
end
|
||||
|
||||
CSV("Full CSV (S3)")-->CGJ
|
||||
NCS3-->CGJ
|
||||
CGJ["Combine with ogr2ogr + Create GeoJSON (score-geo)"]-->GeoJSON
|
||||
GeoJSON("GeoJSON files (high and low zoom) (S3)")-->Tip
|
||||
Tip["Create and Send Tiles using Tippecanoe"]-->Uncompressed
|
||||
Tip-->Compressed
|
||||
subgraph production
|
||||
CreateMVT-->Uncompressed("Uncompressed MVT (S3)")
|
||||
Uncompressed("Uncompressed MVT high and low directories (S3)")
|
||||
end
|
||||
subgraph development
|
||||
CreateMVT-->Compressed("MBTiles (S3)")-->TS[/Tileserver-GL/]
|
||||
Local("Locally stored tiles")--"Option 1"-->TS
|
||||
Compressed("Compressed high and low .mbtile files (S3)")--"Option 2"-->TS[/Tileserver-GL/]
|
||||
end
|
||||
|
||||
TS--"XYZ URL"-->Client
|
||||
Uncompressed--"XYZ URL"-->Client["Gatsby+OpenLayers"]
|
||||
Uncompressed--"XYZ URL"-->Client["Gatsby+MapLibre"]
|
||||
|
|
Loading…
Add table
Reference in a new issue