{"id":50706577,"url":"https://github.com/consbio/salcc_blueprint2","last_synced_at":"2026-06-09T12:31:04.088Z","repository":{"id":46938987,"uuid":"138590292","full_name":"consbio/salcc_blueprint2","owner":"consbio","description":"South Atlantic Conservation Blueprint 2.2 Simple Viewer","archived":false,"fork":false,"pushed_at":"2021-09-21T01:51:24.000Z","size":21876,"stargazers_count":0,"open_issues_count":34,"forks_count":1,"subscribers_count":4,"default_branch":"master","last_synced_at":"2024-06-11T16:30:08.700Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://blueprint.southatlanticlcc.org/","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/consbio.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2018-06-25T12:11:53.000Z","updated_at":"2024-06-11T16:30:08.701Z","dependencies_parsed_at":"2022-09-23T09:41:29.446Z","dependency_job_id":null,"html_url":"https://github.com/consbio/salcc_blueprint2","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/consbio/salcc_blueprint2","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/consbio%2Fsalcc_blueprint2","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/consbio%2Fsalcc_blueprint2/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/consbio%2Fsalcc_blueprint2/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/consbio%2Fsalcc_blueprint2/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/consbio","download_url":"https://codeload.github.com/consbio/salcc_blueprint2/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/consbio%2Fsalcc_blueprint2/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34107865,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-09T02:00:06.510Z","response_time":63,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-06-09T12:31:03.999Z","updated_at":"2026-06-09T12:31:04.077Z","avatar_url":"https://github.com/consbio.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# South Atlantic Conservation Blueprint 2.2 Simple Viewer\n\n## About the Blueprint\n\nThe South Atlantic Conservation Blueprint is a living spatial plan to conserve natural and cultural resources for future generations. It identifies shared conservation priorities across the South Atlantic region.\n\nBlueprint 2.2, released in November 2017, is a totally data-driven plan based on terrestrial, freshwater, marine, and cross-ecosystem indicators. It uses the current condition of those indicators to prioritize the most important areas for natural and cultural resources across the South Atlantic geography. Through a connectivity analysis, the Blueprint also identifies corridors that link coastal and inland areas and span climate gradients. The Blueprint reflects extensive feedback from the broader cooperative community, with more than 500 people from over 150 different organizations actively participating in its development so far.\n\n[more info](http://www.southatlanticlcc.org/blueprint/)\n\n## About the Simple Viewer\n\nThe Simple Viewer summarizes the Blueprint priorities and supporting information within subwatersheds and marine lease blocks. In a new pixel mode, you can also explore pixel-level details of what indicators are driving the Blueprint priorities.\n\nThe Simple Viewer is a companion to the more advanced [Conservation Planning Atlas](https://salcc.databasin.org/), which provides access to hundreds of\ngeospatial datasets with rich interactive mapping and collaboration capabilities.\n\n## Architecture\n\nThe Simple Viewer is composed of the following components:\n\n-   User interface: implemented in Javascript, HTML, CSS using ReactJS, Webpack, and modern JS tools\n-   Map tile generation: implemented using [`datatiles`](https://github.com/brendan-ward/datatiles)\n-   Map tile hosting: implemented using [`mbtileserver`](https://github.com/consbio/mbtileserver)\n-   Server-side reporting: implemented in Python using a `flask` API\n-   Server-side static map image generation: implemented in NodeJS using [`mbgl-renderer`](https://github.com/consbio/mbgl-renderer)\n-   Static file server and reverse proxy: implemented using [`caddy`](https://caddyserver.com/)\n-   Data processing pipeline: run in advance of deployment using Python with Pandas and Geopandas libraries; scripts located under `/tools`\n\nCurrently, these components are deployed to a Amazon Web Services (AWS) T3.micro EC2 instance with 4 GB of additional `swap` space.\n\nServer configuration steps are available in the [wiki](https://github.com/consbio/salcc_blueprint2/wiki).\n\nNote: building the dependencies for `mbgl-renderer` requires substantially more resources than are available on a T3.micro instance. To build these,\nwe use a larger AWS instance to perform the build and create a new AMI, then start that up as a T3.micro instance.\n\nDNS entries for `southatlanticlcc.org` are managed by South Atlantic staff.\n\n## Source data\n\n### Constants and descriptive information\n\nDescriptive information describing the names, descriptions, colors, and other information for the Blueprint categories, ecoystems and indicators, etc are\nstored in configuration files under `/config/*.json`. These files contain the information needed to display dynamic data for selected units and pixels\nin the user interface, and generally do not change except between major versions of the Blueprint (e.g., adding an indicator).\n\nAll content of these files is provided using Google Docs and Google Spreadsheets from South Atlantic staff.\n\nThese files are combined directly into the user interface using Webpack.\n\n### Geospatial and summary data\n\nData are provided as file geodatabases (GDB) and GeoTIFFs by South Atlantic staff:\n\n-   Indicators: Blueprint_V_2_2_SimpleViewerInterfaceData_20180720.7z (7/20/2018)\n-   Threats (IGNORE SLR, replaced by below): SimpleViewerInterfaceDataThreats.7z (4/3/2018)\n-   Updated SLR: NOAA_SLR_Inundation.7z (8/22/2018)\n\nWe also use the US Census TIGER Counties (2015) shapefile to extract state and county FIPS codes for each watershed.\n\nProcessed data are stored in `public/data` (not versioned due to the volume of files). The data are processed from\nsummary tables in GDB format to individual JSON files for each subwatershed and marine lease block (summary units). This was done to streamline\nthe fetching of information from each summary unit when the user selects one within the user interface.\n\nThe JSON files are encoded using the smallest amount of information required to represent those data in the user interface. Values in these fiels\nare joined to various constants in the user interface.\n\nThe data structure of these JSON files is documented in `/docs/example_inland_annotated.json`.\n\n#### Processing\n\nData are extracted from GDB to CSV for version control and to streamline downstream processing. Clear out `/public/data*` when rerunning data processing.\n\n1. extract the geodatabase and shapefile to CSVs using `tools/export_tables.py`.\n2. convert the CSVs to a JSON file for each watershed / marine block using `tools/extract_data.py`.\n\n### Map tiles\n\nAll tile layers are generating using [`datatiles`](https://github.com/brendan-ward/datatiles). Tiles are stored locally in `/tiles` (not versioned due to size).\n\nThe visible Blueprint tiles are generated by rendering the Blueprint TIF to tiles using the standard colors for the Blueprint categories.\n\nData tiles are created for the indicators and Blueprint. They are currently binned into 4 tilesets based on their value range using the\n`exponential` data tiles encoder.\n\nTiles are created by running `tools/create_tiles.py`.\n\n## Development\n\nTo develop this application, you need Python 3.6+ and NodeJS 8.9+\n\n`pipenv` and `yarn` are used as the package managers for those languages.\n\nInitial setup:\n\n-   run `yarn install` to install all depedencies. Building mapbox-gl-native from source may take a long time.\n-   run `pipenv install` to setup a Python virtual environment and install all dependencies.\n\nRunning the above is also required as Python or NodeJS dependencies change.\n\n### Environment variables\n\nYou will likely need several environment variables set. Create a file `.env` in the root of this project, based on the `.env.example` file.\nNote: Flask does not use these variables, they need to be provided manually on the command line.\n\n### Development servers\n\n#### User interface (Webpack development server)\n\nTo start the frontend application (on port 3000, by default:\n`yarn start`\nThen open `http://localhost:3000` in your browser.\n\n#### Report map image generation API:\n\nTo start the map generation server (on port 8000, by default, using tiles hosted in `/tiles`):\n\n```\n./node_modules/.bin/mbgl-server -t ./tiles\n```\n\nTo confirm that it is running, open `http://localhost:8000/render` in your browser. It should give you a 400 error message about required parameters.\n\n#### Report generation API:\n\nTo start the report server (on port 5000, by default):\n\n```\nexport FLASK_APP=api\npipenv run flask run\n```\n\nAlternatively, you can run flask from within your virtual environment:\n\n```\npipenv shell\nflask run\n```\n\nTo confirm it is running, go to `http://localhost:5000/report/I1` in your browser, which should trigger a download of a word doc.\n\nNote: the map image generation API must be running properly in order to generate map images in the reports. If it is not running,\nan error will be logged to the console and a placeholder map image will be added to the report.\n\n## Deployment\n\nServer configuration and deployment steps are available in the [wiki](https://github.com/consbio/salcc_blueprint2/wiki).\n\n## License\n\nSoftware: See [LICENSE].\nData (including contents of `/config` and `/source_data`): Public domain (data are managed by U.S. Fish and Wildlife Service)\n\n## Credits\n\nThis project was developed in close collaboration with staff from the [South Atlantic Landscape Conservation Cooperative](http://www.southatlanticlcc.org/)\nunder U.S. Fish and Wildlife Service grant FW14AC00792.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fconsbio%2Fsalcc_blueprint2","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fconsbio%2Fsalcc_blueprint2","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fconsbio%2Fsalcc_blueprint2/lists"}