diff --git a/docs/reference.rst b/docs/api_reference.rst similarity index 64% rename from docs/reference.rst rename to docs/api_reference.rst index 529294b4..1fc0631c 100644 --- a/docs/reference.rst +++ b/docs/api_reference.rst @@ -4,7 +4,14 @@ API Reference / Postman Collection For reference and documentation of the API, please open the postman collection for the version of ripple1d -`v0.4.1: `_ This beta version contains the endpoints included in the first production testing release. Note that the following variables should be set in the postman environment + +`v0.5.0: `_ This beta version contains new endpoints: + - `geom_to_gpkg`: Extract the data from a model source dirctory to a gepoackage. + - `conflate`: Conflate all reaches from the NWM network corresponding to the source model. + - `conflation_metrics`: Apply conflation metrics for a conflated source model. + + +`v0.4.1-v0.4.2: `_ This beta version contains the endpoints included in the first production testing release. Note that the following variables should be set in the postman environment .. code-block:: YAML diff --git a/docs/index.rst b/docs/index.rst index 02c40b17..d6850747 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -15,7 +15,8 @@ on the NOAA National Water Model network. :caption: For Users for_users.rst - reference.rst + api_reference.rst + tech_reference.rst users_change_log.rst diff --git a/docs/tech_reference.rst b/docs/tech_reference.rst new file mode 100644 index 00000000..ea280084 --- /dev/null +++ b/docs/tech_reference.rst @@ -0,0 +1,417 @@ +Technical Reference +=================== + +Preliminary conflation metrics are calcuated to quantify alignment between the source RAS model and the source network reaches. Definitions and examples: + ++------------------------+------------------------+-------------------+ +| term | type | definition | ++========================+========================+===================+ +| reaches | dict | Source network | +| | | reaches that | +| | | conflated with | +| | | the RAS model. | +| | | Reach ids are the | +| | | keys of the | +| | | nested dicts | +| | | which contain the | +| | | conflation | +| | | results/metrics. | ++------------------------+------------------------+-------------------+ +| us_xs | dict | Contains relevant | +| | | HEC-RAS info for | +| | | the most upstream | +| | | cross section | +| | | associated with | +| | | the reach. | ++------------------------+------------------------+-------------------+ +| ds_xs | dict | Contains relevant | +| | | HEC-RAS info for | +| | | the most | +| | | downstream cross | +| | | section | +| | | associated with | +| | | the reach. | ++------------------------+------------------------+-------------------+ +| river | str | The river name | +| | | for the cross | +| | | section as it was | +| | | specified in the | +| | | source HEC-RAS | +| | | model. | ++------------------------+------------------------+-------------------+ +| reach | str | The reach name | +| | | for the cross | +| | | section as it was | +| | | specified in the | +| | | source HEC-RAS | +| | | model. | ++------------------------+------------------------+-------------------+ +| xs_id | float | The river station | +| | | for the cross | +| | | section as it was | +| | | specified in the | +| | | source HEC-RAS | +| | | model. | ++------------------------+------------------------+-------------------+ +| min_elevation | float | The minimum | +| | | elevation in the | +| | | cross section | +| | | station-elevation | +| | | data as it was | +| | | specified in the | +| | | source HEC-RAS | +| | | model. | ++------------------------+------------------------+-------------------+ +| max_elevation | float | The maximum | +| | | elevation in the | +| | | cross section | +| | | station-elevation | +| | | data as it was | +| | | specified in the | +| | | source HEC-RAS | +| | | model. | ++------------------------+------------------------+-------------------+ +| eclipsed | bool | Specifies if the | +| | | reach has been | +| | | eclipsed | +| | | (covered) by an | +| | | upstream or | +| | | downstream reach. | ++------------------------+------------------------+-------------------+ +| low_flow | int | The lower flow of | +| | | the source | +| | | network data or | +| | | the HEC-RAS data | +| | | and reduced by | +| | | 20%. | ++------------------------+------------------------+-------------------+ +| high_flow | int | The higher flow | +| | | of the source | +| | | network data or | +| | | the HEC-RAS data | +| | | and increased by | +| | | 20%. | ++------------------------+------------------------+-------------------+ +| network_to_id | str | The to_id as | +| | | specified in the | +| | | attributes of the | +| | | input hydrofabric | +| | | layer. | ++------------------------+------------------------+-------------------+ +| metrics | dict | Contains the | +| | | conflation | +| | | metrics for the | +| | | reach. | ++------------------------+------------------------+-------------------+ +| xs | dict | Metrics | +| | | describing the | +| | | deviations | +| | | between | +| | | centerlines at | +| | | cross section | +| | | locationss for | +| | | the source | +| | | HEC-RAS model and | +| | | the hydrofabric. | ++------------------------+------------------------+-------------------+ +| centerline_offset | dict | Metrics | +| | | describing the | +| | | distance between | +| | | the point where | +| | | the source | +| | | HEC-RAS | +| | | centerline | +| | | intersects the | +| | | cross sections | +| | | and the point | +| | | where the source | +| | | network reach | +| | | intersects the | +| | | cross section. | ++------------------------+------------------------+-------------------+ +| thalweg_offset | dict | Metrics | +| | | describing the | +| | | distance between | +| | | the source | +| | | HEC-RAS’s XS | +| | | thalweg and the | +| | | point where the | +| | | source network | +| | | reach intersects | +| | | the cross | +| | | section. | ++------------------------+------------------------+-------------------+ +| lengths | dict | Metrics | +| | | describing the | +| | | distance between | +| | | the source | +| | | HEC-RAS’s XS | +| | | thalweg and the | +| | | point where the | +| | | source network | +| | | reach intersects | +| | | the cross | +| | | section. | ++------------------------+------------------------+-------------------+ +| ras | int | Length of the | +| | | source HEC-RAS | +| | | centerline | +| | | between the most | +| | | upstream and most | +| | | downstream cross | +| | | sections | +| | | associated with | +| | | the source | +| | | network. | ++------------------------+------------------------+-------------------+ +| network | int | Length of source | +| | | network between | +| | | the most upstream | +| | | and most | +| | | downstream cross | +| | | sections | +| | | associated with | +| | | the source | +| | | network reach. | ++------------------------+------------------------+-------------------+ +| coverage | dict | Metrics | +| | | describing the | +| | | extent of | +| | | coverage of the | +| | | source network | +| | | reach that is | +| | | covered by the | +| | | source HEC-RAS | +| | | model. | ++------------------------+------------------------+-------------------+ +| start | float | The upstream | +| | | limit where the | +| | | source HEC-RAS | +| | | model provides | +| | | coverage. | +| | | Provided as a | +| | | ratio of the | +| | | entire source | +| | | network reach | +| | | length. | ++------------------------+------------------------+-------------------+ +| end | float | The downstream | +| | | limit where the | +| | | source HEC-RAS | +| | | model provides | +| | | coverage. | +| | | Provided as a | +| | | ratio of the | +| | | entire source | +| | | network reach. | ++------------------------+------------------------+-------------------+ +| overlapped_reaches | list | Source network | +| | | reaches that | +| | | intersect the | +| | | downstream most | +| | | cross sections of | +| | | the current | +| | | reach. | ++------------------------+------------------------+-------------------+ +| eclipsed_reaches | list | Reaches that are | +| | | eclipsed | +| | | (covered) by the | +| | | cross sections of | +| | | the current | +| | | reach. | ++------------------------+------------------------+-------------------+ +| metadata | dict | Metadata for the | +| | | conflation. | ++------------------------+------------------------+-------------------+ +| source_network | dict | Data summarizing | +| | | the source | +| | | network. | ++------------------------+------------------------+-------------------+ +| file_name | str | Source network | +| | | file name. | ++------------------------+------------------------+-------------------+ +| version | str | Source network | +| | | version. | ++------------------------+------------------------+-------------------+ +| type | str | Source network | +| | | type. | ++------------------------+------------------------+-------------------+ +| conflation_png | str | A png depicting | +| | | the conflation | +| | | results. | ++------------------------+------------------------+-------------------+ +| confl | str | The version of | +| ation_ripple1d_version | | ripple1d used to | +| | | conflate the | +| | | source HEC-RAS | +| | | model with the | +| | | source network. | ++------------------------+------------------------+-------------------+ +| me | str | The version of | +| trics_ripple1d_version | | ripple1d used to | +| | | compute the | +| | | conflation | +| | | metric. | ++------------------------+------------------------+-------------------+ +| source_ras_model | dict | Metadata for the | +| | | source HEC-RAS | +| | | model. | ++------------------------+------------------------+-------------------+ +| stac_api | str | The stac api url | +| | | containing the | +| | | source HEC-RAS | +| | | model. | ++------------------------+------------------------+-------------------+ +| stac_collection_id | str | The stac | +| | | collection | +| | | containing the | +| | | source HEC-RAS | +| | | model. | ++------------------------+------------------------+-------------------+ +| stac_item_id | str | The stac item for | +| | | the source | +| | | HEC-RAS model. | ++------------------------+------------------------+-------------------+ +| source_ras_files | dict | files for the | +| | | souce HEC-RAS | +| | | model. | ++------------------------+------------------------+-------------------+ +| geometry | str | The geometry file | +| | | used from the | +| | | source HEC-RAS | +| | | model. | ++------------------------+------------------------+-------------------+ +| forcing | str | The forcing file | +| | | used from the | +| | | source HEC-RAS | +| | | model. | ++------------------------+------------------------+-------------------+ +| project-file | str | The project file | +| | | used from the | +| | | source HEC-RAS | +| | | model. | ++------------------------+------------------------+-------------------+ +| plan | str | The plan file | +| | | used from the | +| | | source HEC-RAS | +| | | model. | ++------------------------+------------------------+-------------------+ +| length_units | str | Units for the | +| | | lengths specified | +| | | in the conflation | +| | | json. | ++------------------------+------------------------+-------------------+ +| flow_units | str | Units for the | +| | | flows specified | +| | | in the conflation | +| | | json. | ++------------------------+------------------------+-------------------+ + +Example output containing conflation metrics: + +.. code:: json + + { + "reaches": { + "11908582": { + "us_xs": { + "river": "Patuxent River", + "reach": "1", + "min_elevation": -10.6, + "max_elevation": 93.12, + "xs_id": 32805.59 + }, + "ds_xs": { + "river": "Patuxent River", + "reach": "1", + "min_elevation": -8.5, + "max_elevation": 53.21, + "xs_id": 26469.46 + }, + "eclipsed": false, + "low_flow_cfs": 2025, + "high_flow_cfs": 19969, + "network_to_id": "11908588", + "metrics": { + "xs": { + "centerline_offset": { + "count": 10, + "mean": 13, + "std": 8, + "min": 1, + "10%": 2, + "20%": 4, + "30%": 9, + "40%": 12, + "50%": 14, + "60%": 16, + "70%": 20, + "80%": 22, + "90%": 23, + "100%": 24, + "max": 24 + }, + "thalweg_offset": { + "count": 10, + "mean": 40, + "std": 34, + "min": 1, + "10%": 2, + "20%": 8, + "30%": 16, + "40%": 28, + "50%": 39, + "60%": 45, + "70%": 49, + "80%": 64, + "90%": 92, + "100%": 98, + "max": 98 + } + }, + "lengths": { + "ras": 6377, + "network": 6334, + "network_to_ras_ratio": 0.99 + }, + "coverage": { + "start": 0.09, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "11908588", + "overlap": 757 + } + ], + "eclipsed_reaches": [ + "11908584", + "11908586" + ] + }, + }, + "metadata": { + "source_network": { + "file_name": "flows.parquet", + "version": "2.1", + "type": "nwm_hydrofabric" + }, + "conflation_png": "PatuxentRiver.conflation.png", + "conflation_ripple1d_version": "0.4.2", + "metrics_ripple1d_version": "0.4.2", + "source_ras_model": { + "stac_api": "https://stac2.dewberryanalytics.com", + "stac_collection_id": "ebfe-12090301_LowerColoradoCummins", + "stac_item_id": "137a9667-e5cf-4cea-b6ec-2e882a42fdc8", + "source_ras_files": { + "geometry": "PatuxentRiver.g01", + "forcing": "PatuxentRiver.f01", + "project-file": "PatuxentRiver.prj", + "plan": "PatuxentRiver.p06" + } + }, + "length_units": "feet", + "flow_units": "cfs" + } + } diff --git a/docs/users_change_log.rst b/docs/users_change_log.rst index be84f7d0..c372d5de 100644 --- a/docs/users_change_log.rst +++ b/docs/users_change_log.rst @@ -3,10 +3,72 @@ Change Log for Users Go to the `Releases `_ page for a list of all releases. -Bugfix Release 0.4.1 + +Feature Release 0.5.0 ~~~~~~~~~~~~~~~~~~~~~ Users Changelog ---------------- + +This release of `ripple1d` incorporates geometry extraction, conflation, and conflation metrics into the API, and fixes several bugs. + + +Features Added +---------------- +**Conflation improvements** + +- The source HEC-RAS river centerline is now clipped to the most upstream and most downstream cross sections prior to starting conflation. This helps prevent identifying network reaches that are far away from the cross sections and improves the accuracy of the conflation. +- Overlapped reaches are now tracked and documented in the conflation json file. +- A bbox column has been added to the network parquet file for faster reading. This was especially needed for the new conflation endpoint since each request needs to load the parquet file. Load times without the bbox column were between 5-20 seconds; this is reduced to 1-2 seconds with the bbox column. +- The conflation function now reads locally instead of from s3. +- The conflation function no longer creates a STAC item. +- RAS metadata is now added to the conflation json. +- The source network's metadata is now added to the conflation json. +- Length and flow units are now documented in the conflation json file. + +**Conflation Metrics** + +Three metrics are computed to asses the qualitiy of the conflation: + +- `Coverage`: The the start and end location of the reach coverage is computed as a ratio of the length of the network reach. +- `Lengths`: The lengths between the most upstream cross section and most downstream cross section along the network reach and source HEC-RAS Model's centerline is computed. The ratio of the two lengths is also provided. +- `XS`: The distance between where the network reach and HEC-RAS Model's centerline intersects the cross sections is computed. A similar comparison is performed using the cross section's thalweg location and the network reaches intersection location with the cross sections. The mean, min, max, std, and quartiles are provided as a summary for both comparisons. + + +**Geometry Extraction improvements** + +- A new function to verify .prj file is a HEC-RAS file has been added. +- The extracted geopackage now contians a non-spatial metadata table for the souce HEC-RAS model. +- Tests have been added for extracting geopackage from HEC-RAS model. +- Additional attributes are added to the source model gpkg for downstream use. +- Units are extracted from the source RAS model and added to metadata. + +**API** + +- An endpoint was added for extracting geometry and relevant metdata for the soure HEC-RAS models and storing it in in a geopackage. +- An endpoint to compute conflation metric was added. +- An endpoint for conflation (which includes metrics calculations) was added. +- Tests were added for the conflation, conflation metrics, and geopackage endpoints. + + +Bug Fixes +---------- + +- Reaches whose conflation results indicate upstream and downstream cross sections are the same are now considered a failed conflation. +- The function to create a concave hull for the cross sections has been improved when junctions are present. +- Eclipsed reaches are now better identified and are documented in the conflation json with a boolean. +- A check is now performed to ensure cross sections intersect the source HEC-RAS model's river centerline. If cross sections do not intersect the centerline they are dropped. +- A conflation json is no longer written for source HEC-RAS models that fail to conflate. +- Handling has been added to subset gpkg endpoint for river stationings of interpolated. These river stations contain an "*" to indicate interpolated cross section. +- Several issues with the automated API tests were identified and fixed. +- API tests no longer re-run gpkg_from_ras and conflate_model for every reach; just once per source test model. +- When API tests pass the resulting files are now removed automatically. Resulting files for tests that fail are not removed so that the tester can better trouble shoot. + + + +Bugfix Release 0.4.1-0.4.2 +~~~~~~~~~~~~~~~~~~~~~~~~~~~ +Users Changelog +---------------- This release of `ripple1d` fixes several bugs identified during testing. Features Added @@ -21,9 +83,7 @@ Bug Fixes - A bug due to a hard coded terrain path name causing an error on `create_fim_lib` has been resolved. - A bug associated with the `ripple_version` parameter has been resolved by removing the parameter from the body of requests (see note in API above). - An issue with including lateral structures (not yet implemented) in the ras geometry files causing hang ups has been resolved. This fix resolved another issue where stationing was mis-applied in the newly created ras geometry files. - - ------------ +- A bug which caused a failure when calling subset_gpkg in cases where the model geometries are simple (no structures / no junctions). Feature Release 0.4.0 @@ -59,11 +119,13 @@ Features Added **API** - - `ripple_version` is no longer a required argument for any endpoint. + +- `ripple_version` is no longer a required argument for any endpoint. Bug Fixes ---------- Numerous small bug fixes were made to enable the support of hydraulic structures. Other notable bugs include: - - HEC-RAS stations with length > 8 characters are now supported. - - Mangled profile names resulting from negative elevations producing FIM libraries has been fixed. \ No newline at end of file + +- HEC-RAS stations with length > 8 characters are now supported. +- Mangled profile names resulting from negative elevations producing FIM libraries has been fixed. \ No newline at end of file diff --git a/production/step_1_extract_geometry.py b/production/step_1_extract_geometry.py index 53e77821..929b96a3 100644 --- a/production/step_1_extract_geometry.py +++ b/production/step_1_extract_geometry.py @@ -9,7 +9,7 @@ from ripple1d.errors import ( NotAPrjFile, ) -from ripple1d.ras_to_gpkg import geom_to_gpkg_s3 +from ripple1d.ras_to_gpkg import gpkg_from_ras_s3 from ripple1d.ripple1d_logger import configure_logging from ripple1d.utils.s3_utils import init_s3_resources, list_keys @@ -30,7 +30,7 @@ def process_one_geom( # read the geometry and write the geopackage if bucket: - geom_to_gpkg_s3(key, crs, gpkg_path, bucket) + gpkg_from_ras_s3(key, crs, gpkg_path, bucket) return f"s3://{bucket}/{gpkg_path}" diff --git a/production/step_3_5_metrics.py b/production/step_3_5_metrics.py new file mode 100644 index 00000000..832cd7f8 --- /dev/null +++ b/production/step_3_5_metrics.py @@ -0,0 +1,10 @@ +from ripple1d.ops.metrics import compute_conflation_metrics +from ripple1d.ripple1d_logger import configure_logging + +if __name__ == "__main__": + TEST_DIR = os.path.dirname(__file__).replace("production", "tests") + + src_gpkg_path = os.path.join(TEST_DIR, "ras-data\\Baxter\\Baxter.gpkg") + conflation_json = os.path.join(TEST_DIR, "ras-data\\Baxter\\Baxter.conflation.json") + nwm_pq_path = os.path.join(TEST_DIR, "nwm-data\\flows.parquet") + conflation_parameters = compute_conflation_metrics(src_gpkg_path, nwm_pq_path, conflation_json) diff --git a/pyproject.toml b/pyproject.toml index 278caf54..606274a7 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta" [project] name = "ripple1d" -version = "0.4.2" +version = "0.5.0" description = "HEC-RAS model automation" readme = "README.md" maintainers = [ diff --git a/ripple1d/api/app.py b/ripple1d/api/app.py index b62e1884..7bb6a945 100644 --- a/ripple1d/api/app.py +++ b/ripple1d/api/app.py @@ -11,6 +11,8 @@ from ripple1d.api import tasks from ripple1d.api.utils import get_unexpected_and_missing_args from ripple1d.ops.fim_lib import create_fim_lib, fim_lib_stac, nwm_reach_model_stac +from ripple1d.ops.metrics import compute_conflation_metrics +from ripple1d.ops.ras_conflate import conflate_model from ripple1d.ops.ras_run import ( create_model_run_normal_depth, run_incremental_normal_depth, @@ -18,13 +20,32 @@ ) from ripple1d.ops.ras_terrain import create_ras_terrain from ripple1d.ops.subset_gpkg import extract_submodel +from ripple1d.ras_to_gpkg import gpkg_from_ras app = Flask(__name__) +@app.route("/processes/conflate_model/execution", methods=["POST"]) +def process__conflate_model(): + """Enqueue a task to conflate a source model.""" + return enqueue_async_task(conflate_model) + + +@app.route("/processes/compute_conflation_metrics/execution", methods=["POST"]) +def process__compute_conflation_metrics(): + """Enqueue a task to compute conflation metrics.""" + return enqueue_async_task(compute_conflation_metrics) + + +@app.route("/processes/gpkg_from_ras/execution", methods=["POST"]) +def process__gpkg_from_ras(): + """Enqueue a task to create a new GeoPackage from a source model.""" + return enqueue_async_task(gpkg_from_ras) + + @app.route("/processes/extract_submodel/execution", methods=["POST"]) def process__extract_submodel(): - """Enqueue a task to create a new GeoPackage.""" + """Enqueue a task to create a new GeoPackage for a NWM reach.""" return enqueue_async_task(extract_submodel) diff --git a/ripple1d/api/postman_collection.json b/ripple1d/api/postman_collection.json index 6bc3ce67..57743627 100644 --- a/ripple1d/api/postman_collection.json +++ b/ripple1d/api/postman_collection.json @@ -1,10 +1,10 @@ { "info": { - "_postman_id": "9c07b074-5f35-4309-bbaf-3ed3f1aec045", + "_postman_id": "a4de6034-22c7-4a2b-b91c-12494de19040", "name": "ripple1d", "description": "Collection for processing existing HEC-RAS models for use in the production of Flood Inundation Maps (FIMs) and rating curves for use in near-real time flood forecasting on the NOAA National Water Model", "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json", - "_exporter_id": "11115435" + "_exporter_id": "29128857" }, "item": [ { @@ -68,6 +68,64 @@ }, "response": [] }, + { + "name": "compute_conflation_metrics", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "raw", + "raw": "{\r\n \"source_model_directory\": \"{{source_model_directory}}\",\r\n \"source_network\": {\"file_name\":\"{{nwm_data_directory}}\\\\flows.parquet\",\r\n \"version\":\"2.1\", // optional\r\n \"file_hash\": \"a6786ba02073f0233b9a69afc49d92bf-178\", // optional\r\n \"type\":\"nwm_hydrofabric\"} \r\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{url}}/processes/compute_conflation_metrics/execution", + "host": [ + "{{url}}" + ], + "path": [ + "processes", + "compute_conflation_metrics", + "execution" + ] + }, + "description": "Compute conflation metrics for a given gpkg/conflation json." + }, + "response": [] + }, + { + "name": "conflate_model", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "raw", + "raw": "{\r\n \"source_model_directory\": \"{{source_model_directory}}\",\r\n \"source_network\": {\"file_name\":\"{{nwm_data_directory}}\\\\flows.parquet\",\r\n \"version\":\"2.1\", // optional\r\n \"type\":\"nwm_hydrofabric\"}\r\n \r\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{url}}/processes/conflate_model/execution", + "host": [ + "{{url}}" + ], + "path": [ + "processes", + "conflate_model", + "execution" + ] + }, + "description": "Conflate a source HEC-RAS model with the NWM network." + }, + "response": [] + }, { "name": "extract_submodel", "request": { @@ -97,6 +155,35 @@ }, "response": [] }, + { + "name": "gpkg_from_ras", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "raw", + "raw": "{\r\n \"source_model_directory\": \"{{source_model_directory}}\",\r\n \"crs\": 2227,\r\n \"metadata\": {\"stac_api\":\"https://stac2.dewberryanalytics.com\", // optional\r\n \"stac_collection_id\":\"ebfe-12090301_LowerColoradoCummins\", // optional\r\n \"stac_item_id\":\"137a9667-e5cf-4cea-b6ec-2e882a42fdc8\"} // optional\r\n}\r\n", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{url}}/processes/gpkg_from_ras/execution", + "host": [ + "{{url}}" + ], + "path": [ + "processes", + "gpkg_from_ras", + "execution" + ] + }, + "description": "Create a new model for a given nwm_id (NWM reach) from an existing HEC-RAS model." + }, + "response": [] + }, { "name": "create_ras_terrain", "request": { @@ -151,7 +238,7 @@ "execution" ] }, - "description": "Run a range of flows for Normal Depth on a HEC-RAS model. The results will be used to inform flows required to develop rating curves at a provided increment." + "description": "Run a range of flows for dormal depth on a HEC-RAS model. The results will be used to inform flows required to develop rating curves at a provided increment." }, "response": [] }, @@ -209,7 +296,7 @@ "execution" ] }, - "description": "Run a series of HEC-RAS simulations using Known Water Surface Elevations." + "description": "Run a HEC-RAS simulation using Known Water Surface Elevations." }, "response": [] }, @@ -266,7 +353,8 @@ "nwm_reach_model_stac", "execution" ] - } + }, + "description": "Create a STAC item for a HEC-RAS model representing a NWM reach." }, "response": [] }, @@ -294,7 +382,8 @@ "fim_lib_stac", "execution" ] - } + }, + "description": "Create a STAC item for a FIM library for a NWM reah." }, "response": [] } @@ -505,6 +594,11 @@ "key": "source_model_directory", "value": "~\\\\repos\\\\ripple1d\\\\tests\\\\ras-data\\\\Baxter", "type": "string" + }, + { + "key": "nwm_data_directory", + "value": "~\\\\repos\\\\ripple1d\\\\tests\\\\nwm-data", + "type": "string" } ] } \ No newline at end of file diff --git a/ripple1d/conflate/plotter.py b/ripple1d/conflate/plotter.py index a2c994f2..9393fbb2 100644 --- a/ripple1d/conflate/plotter.py +++ b/ripple1d/conflate/plotter.py @@ -99,7 +99,7 @@ def plot_conflation_results( buf.seek(0) s3_client.put_object(Bucket=bucket, Key=key, Body=buf, ContentType="image/png") else: - with open(Path(key).name, "w") as f: - plt.savefig(f, format="png") + output_png = str(Path(rfc.source_model_directory) / Path(key).name) + plt.savefig(output_png, format="png") plt.close() diff --git a/ripple1d/conflate/rasfim.py b/ripple1d/conflate/rasfim.py index e654e0c5..02ef2d4a 100644 --- a/ripple1d/conflate/rasfim.py +++ b/ripple1d/conflate/rasfim.py @@ -3,6 +3,7 @@ import json import logging import os +import sqlite3 from collections import OrderedDict from typing import List, Tuple @@ -12,9 +13,10 @@ import pandas as pd import pyproj from fiona.errors import DriverError -from shapely.geometry import LineString, MultiLineString, Point, Polygon, box +from shapely.geometry import LineString, MultiLineString, MultiPoint, Point, Polygon, box from shapely.ops import linemerge, nearest_points, transform +from ripple1d.consts import METERS_PER_FOOT from ripple1d.utils.ripple_utils import xs_concave_hull HIGH_FLOW_FACTOR = 1.2 @@ -59,7 +61,6 @@ class RasFimConflater: s3://noaa-nws-owp-fim/rasfim/inputs/X-National_Datasets/nwm_flows.gpkg ras_gpkg (str): Path to the RAS GeoPackage load_data (bool, optional): Load the data on initialization. Defaults to True. - bucket (str, optional): S3 bucket to read data from. Defaults to "fim". Raises ------ @@ -68,11 +69,13 @@ class RasFimConflater: """ def __init__( - self, nwm_pq: str, ras_gpkg: str, load_data: bool = True, bucket="fim", output_concave_hull_path: str = None + self, nwm_pq: str, source_model_directory: str, load_data: bool = True, output_concave_hull_path: str = None ): self.nwm_pq = nwm_pq - self.ras_gpkg = ras_gpkg - self.bucket = bucket + self.source_model_directory = source_model_directory + self.ras_model_name = os.path.basename(source_model_directory) + self.ras_gpkg = os.path.join(source_model_directory,f"{self.ras_model_name}.gpkg") + self.output_concave_hull_path = output_concave_hull_path self._nwm_reaches = None @@ -80,18 +83,135 @@ def __init__( self._ras_xs = None self._ras_structures = None self._ras_junctions = None + self._ras_metadata=None self._common_crs = None self._xs_hulls = None self.__data_loaded = False if load_data: + self._common_crs = NWM_CRS self.load_data() self.__data_loaded = True - self._common_crs = NWM_CRS + def __repr__(self): """Return the string representation of the object.""" return f"RasFimConflater(nwm_pq={self.nwm_pq}, ras_gpkg={self.ras_gpkg})" + + @property + def stac_api(self): + """The stac_api for the HEC-RAS Model.""" + if self.ras_metadata: + if "stac_api" in self.ras_metadata.keys(): + return self.ras_metadata["stac_api"] + + @property + def stac_collection_id(self): + """The stac_collection_id for the HEC-RAS Model.""" + if self.ras_metadata: + if "stac_collection_id" in self.ras_metadata.keys(): + return self.ras_metadata["stac_collection_id"] + + + @property + def stac_item_id(self): + """The stac_item_id for the HEC-RAS Model.""" + if self.ras_metadata: + if "stac_item_id" in self.ras_metadata.keys(): + return self.ras_metadata["stac_item_id"] + + @property + def primary_geom_file(self): + """The primary geometry file for the HEC-RAS Model.""" + if self.ras_metadata: + return self.ras_metadata["primary_geom_file"] + + @property + def primary_flow_file(self): + """The primary flow file for the HEC-RAS Model.""" + if self.ras_metadata: + return self.ras_metadata["primary_flow_file"] + + @property + def primary_plan_file(self): + """The primary plan file for the HEC-RAS Model.""" + if self.ras_metadata: + return self.ras_metadata["primary_plan_file"] + + @property + def ras_project_file(self): + """The source HEC-RAS project file.""" + if self.ras_metadata: + return self.ras_metadata["ras_project_file"] + + # @property + # def xs_length_units(self): + # """Length units of the source HEC-RAS model.""" + # if self.ras_metadata["units"] != "English": + # raise NotImplementedError( + # f"HEC-RAS units are {self.ras_metadata['units']}. Only 'English' units are supported at this time." + # ) + # elif self.ras_metadata["units"] == "English": + # ras_xs=self.ras_xs + # ras_xs["r"]=ras_xs.apply(lambda row: self.populate_r_station(row),axis=1) + # if ras_xs["r"].mean()>.9 and ras_xs["r"].mean()<1.1: + # return "ft" + # elif ras_xs["r"].mean()*METERS_PER_FOOT>.9 and ras_xs["r"].mean()*METERS_PER_FOOT<1.1: + # raise ValueError(f"HEC-RAS units specified as English but cross section r values indicate meters") + # elif ras_xs["r"].mean()/5280>.9 and ras_xs["r"].mean()/5280<1.1: + # return "miles" + # else: + # raise ValueError(f"Unable to determine cross section length units from cross section r values") + + # @property + # def river_station_units(self): + # """Station units of the source HEC-RAS model.""" + # if self.ras_metadata["units"] != "English": + # raise NotImplementedError( + # f"HEC-RAS units are {self.ras_metadata['units']}. Only 'English' units are supported at this time." + # ) + # elif self.ras_metadata["units"] == "English": + # ras_xs=self.ras_xs + # ras_xs["intersection_point"]=ras_xs.apply(lambda row: self.ras_centerlines(row.geometry).intersection(row.geometry),axis=1) + # ras_xs["computed_river_station"]=ras_xs.apply(lambda row: self.ras_centerlines.project(row["intersection_point"])*METERS_PER_FOOT,axis=1) + # ras_xs["computed_reach_length"]=ras_xs["computed_river_station"].diff() + + # ras_xs["reach_lengths_from_original_river_station"]=ras_xs["river_station"].diff() + # ras_xs["reach_length_ratio"]=ras_xs["computed_reach_length"]/ras_xs["reach_lengths_from_original_river_station"] + # if ras_xs["reach_length_ratio"].mean()>.9 and ras_xs["reach_length_ratio"].mean()<1.1: + # return "ft" + # elif ras_xs["reach_length_ratio"].mean()*METERS_PER_FOOT>.9 and ras_xs["reach_length_ratio"].mean()*METERS_PER_FOOT<1.1: + # raise ValueError(f"HEC-RAS units specified as English but reach length r values indicate meters") + # elif ras_xs["reach_length_ratio"].mean()/5280>.9 and ras_xs["reach_length_ratio"].mean()/5280<1.1: + # return "miles" + # else: + # raise ValueError(f"Unable to determine reach length units from reach length r values") + + + # @property + # def flow_units(self): + # """Flow units of the source HEC-RAS model.""" + # if self.gpkg_metadata["units"] != "English": + # raise NotImplementedError( + # f"HEC-RAS units are {self.ras_metadata['units']}. Only 'English' units are supported at this time." + # ) + # elif self.ras_metadata["units"] == "English": + # return "cfs" + + def populate_r_station(self, row: pd.Series,assume_ft:bool=True) -> str: + """Populate the r value for a cross section. The r value is the ratio of the station to actual cross section length.""" + #TODO check if this is the correct way to calculate r + df = pd.DataFrame(row["station_elevation_points"], index=["elevation"]).T + return df.index.max()/(row.geometry.length/METERS_PER_FOOT) + + @property + def _gpkg_metadata(self): + """Metadata from gpkg.""" + with sqlite3.connect(self.ras_gpkg) as conn: + cur = conn.cursor() + cur.execute("select * from metadata") + return dict(cur.fetchall()) + def determine_station_order(self, xs_gdf: gpd.GeoDataFrame,reach:LineString): """Detemine the order based on stationing of the cross sections along the reach.""" rs=[] @@ -133,16 +253,20 @@ def load_gpkg(self, gpkg: str): if "River" in layers: self._ras_centerlines = gpd.read_file(self.ras_gpkg, layer="River") if "XS" in layers: - self._ras_xs = gpd.read_file(self.ras_gpkg, layer="XS") + xs=gpd.read_file(self.ras_gpkg, layer="XS") + self._ras_xs = xs[xs.intersects(self._ras_centerlines.union_all())] if "Junction" in layers: self._ras_junctions = gpd.read_file(self.ras_gpkg, layer="Junction") if "Structure" in layers: - self._ras_structures = gpd.read_file(self.ras_gpkg, layer="Structure") + structures=gpd.read_file(self.ras_gpkg, layer="Structure") + self._ras_structures = structures[structures.intersects(self._ras_centerlines.union_all())] + if "metadata" in layers: + self._ras_metadata=self._gpkg_metadata def load_pq(self, nwm_pq: str): """Load the NWM data from the Parquet file.""" try: - nwm_reaches = gpd.read_parquet(nwm_pq) + nwm_reaches = gpd.read_parquet(nwm_pq,bbox=self._ras_xs.to_crs(self.common_crs).total_bounds) nwm_reaches = nwm_reaches.rename(columns={"geom": "geometry"}) self._nwm_reaches = nwm_reaches.set_geometry("geometry") except Exception as e: @@ -153,8 +277,8 @@ def load_pq(self, nwm_pq: str): def load_data(self): """Load the NWM and RAS data from the GeoPackages.""" - self.load_pq(self.nwm_pq) self.load_gpkg(self.ras_gpkg) + self.load_pq(self.nwm_pq) def ensure_data_loaded(func): """Ensure that the data is loaded before accessing the properties Decorator.""" @@ -208,6 +332,14 @@ def ras_junctions(self) -> gpd.GeoDataFrame: except AttributeError: return None + @property + def ras_metadata(self) -> Polygon: + """RAS metadata.""" + try: + return self._ras_metadata + except AttributeError: + return None + @property def ras_xs_bbox(self) -> Polygon: """Return the bounding box for the RAS cross sections.""" @@ -223,10 +355,10 @@ def ras_xs_concave_hull(self, river_reach_name: str = None) -> Polygon: def ras_xs_convex_hull(self, river_reach_name: str = None): """Return the convex hull of the cross sections.""" if river_reach_name: - polygon = self.ras_xs["geometry"].unary_union.convex_hull + polygon = self.ras_xs["geometry"].union_all().convex_hull else: - polygon = self.ras_xs["geometry"].unary_union.convex_hull + polygon = self.ras_xs["geometry"].union_all().convex_hull return gpd.GeoDataFrame({"geometry": [polygon]}, geometry="geometry", crs=self.ras_xs.crs) @@ -297,15 +429,18 @@ def wrapper(self, *args, **kwargs): return wrapper @check_centerline - def ras_start_end_points(self, river_reach_name: str = None, centerline=None) -> Tuple[Point, Point]: + def ras_start_end_points(self, river_reach_name: str = None, centerline=None,clip_to_xs=False) -> Tuple[Point, Point]: """River_reach_name used by the decorator to get the centerline.""" if river_reach_name: - centerline = self.ras_centerline_by_river_reach_name(river_reach_name) + centerline = self.ras_centerline_by_river_reach_name(river_reach_name,clip_to_xs) return endpoints_from_multiline(centerline) - def ras_centerline_by_river_reach_name(self, river_reach_name: str) -> LineString: + def ras_centerline_by_river_reach_name(self, river_reach_name: str,clip_to_xs=False) -> LineString: """Return the centerline for the specified river reach.""" - return self.ras_centerlines[self.ras_centerlines["river_reach"] == river_reach_name].geometry.iloc[0] + if clip_to_xs: + return self.ras_centerlines[self.ras_centerlines["river_reach"] == river_reach_name].geometry.iloc[0].intersection(self.ras_xs_concave_hull(river_reach_name).geometry.iloc[0].buffer(1)) + else: + return self.ras_centerlines[self.ras_centerlines["river_reach"] == river_reach_name].geometry.iloc[0] def xs_by_river_reach_name(self, river_reach_name: str) -> gpd.GeoDataFrame: """Return the cross sections for the specified river reach.""" @@ -415,71 +550,71 @@ def walk_network(gdf: gpd.GeoDataFrame, start_id: int, stop_id: int) -> List[int return ids -def calculate_conflation_metrics( - rfc: RasFimConflater, - candidate_reaches: gpd.GeoDataFrame, - xs_group: gpd.GeoDataFrame, - ras_points: gpd.GeoDataFrame, -) -> dict: - """Calculate the conflation metrics for the candidate reaches.""" - next_round_candidates = [] - xs_hits_ids = [] - total_hits = 0 - for i in candidate_reaches.index: - candidate_reach_points = convert_linestring_to_points(candidate_reaches.loc[i].geometry, crs=rfc.common_crs) - # TODO: Evaluate this constant. - if cacl_avg_nearest_points(candidate_reach_points, ras_points) < 10000: - next_round_candidates.append(candidate_reaches.loc[i]["ID"]) - gdftmp = gpd.GeoDataFrame(geometry=[candidate_reaches.loc[i].geometry], crs=rfc.nwm_reaches.crs) - xs_hits = count_intersecting_lines(xs_group, gdftmp) +# def calculate_conflation_metrics( +# rfc: RasFimConflater, +# candidate_reaches: gpd.GeoDataFrame, +# xs_group: gpd.GeoDataFrame, +# ras_points: gpd.GeoDataFrame, +# ) -> dict: +# """Calculate the conflation metrics for the candidate reaches.""" +# next_round_candidates = [] +# xs_hits_ids = [] +# total_hits = 0 +# for i in candidate_reaches.index: +# candidate_reach_points = convert_linestring_to_points(candidate_reaches.loc[i].geometry, crs=rfc.common_crs) +# # TODO: Evaluate this constant. +# if cacl_avg_nearest_points(candidate_reach_points, ras_points) < 10000: +# next_round_candidates.append(candidate_reaches.loc[i]["ID"]) +# gdftmp = gpd.GeoDataFrame(geometry=[candidate_reaches.loc[i].geometry], crs=rfc.nwm_reaches.crs) +# xs_hits = count_intersecting_lines(xs_group, gdftmp) - total_hits += xs_hits.shape[0] - xs_hits_ids.extend(xs_hits.ID.tolist()) +# total_hits += xs_hits.shape[0] +# xs_hits_ids.extend(xs_hits.ID.tolist()) - logging.debug(f"conflation: {total_hits} xs hits out of {xs_group.shape[0]}") +# logging.debug(f"conflation: {total_hits} xs hits out of {xs_group.shape[0]}") - dangling_xs = filter_gdf(xs_group, xs_hits_ids) +# dangling_xs = filter_gdf(xs_group, xs_hits_ids) - dangling_xs_interesects = gpd.sjoin(dangling_xs, rfc.nwm_reaches, predicate="intersects") +# dangling_xs_interesects = gpd.sjoin(dangling_xs, rfc.nwm_reaches, predicate="intersects") - conflation_score = round(total_hits / xs_group.shape[0], 2) +# conflation_score = round(total_hits / xs_group.shape[0], 2) - if conflation_score == 1: - conlfation_notes = "Probable Conflation, no dangling xs" - manual_check_required = False +# if conflation_score == 1: +# conlfation_notes = "Probable Conflation, no dangling xs" +# manual_check_required = False - # elif dangling_xs_interesects.shape[0] == 0: - # conlfation_notes = f"Probable Conflation..." - # manual_check_required = False +# # elif dangling_xs_interesects.shape[0] == 0: +# # conlfation_notes = f"Probable Conflation..." +# # manual_check_required = False - elif conflation_score >= 0.95: - conlfation_notes = f"Probable Conflation: partial nwm reach coverage with {dangling_xs.shape[0]}/{xs_group.shape[0]} dangling xs" - manual_check_required = False +# elif conflation_score >= 0.95: +# conlfation_notes = f"Probable Conflation: partial nwm reach coverage with {dangling_xs.shape[0]}/{xs_group.shape[0]} dangling xs" +# manual_check_required = False - elif conflation_score >= 0.25: - conlfation_notes = f"Possible Conflation: partial nwm reach coverage with {dangling_xs.shape[0]}/{xs_group.shape[0]} dangling xs" - manual_check_required = True +# elif conflation_score >= 0.25: +# conlfation_notes = f"Possible Conflation: partial nwm reach coverage with {dangling_xs.shape[0]}/{xs_group.shape[0]} dangling xs" +# manual_check_required = True - elif conflation_score < 0.25: - conlfation_notes = f"Unable to conflate: potential disconnected reaches with {dangling_xs.shape[0]}/{xs_group.shape[0]} dangling xs" - manual_check_required = True +# elif conflation_score < 0.25: +# conlfation_notes = f"Unable to conflate: potential disconnected reaches with {dangling_xs.shape[0]}/{xs_group.shape[0]} dangling xs" +# manual_check_required = True - elif conflation_score > 1: - conlfation_notes = f"Unable to conflate: potential diverging reaches with {dangling_xs.shape[0]}/{xs_group.shape[0]} dangling xs" - manual_check_required = True +# elif conflation_score > 1: +# conlfation_notes = f"Unable to conflate: potential diverging reaches with {dangling_xs.shape[0]}/{xs_group.shape[0]} dangling xs" +# manual_check_required = True - else: - conlfation_notes = "Unknown error" - manual_check_required = True - - # Convert next_round_candidates from int64 to serialize - conlfation_metrics = { - # "fim_reaches": [int(c) for c in next_round_candidates], - "conflation_score": round(total_hits / xs_group.shape[0], 2), - "conlfation_notes": conlfation_notes, - "manual_check_required": manual_check_required, - } - return conlfation_metrics +# else: +# conlfation_notes = "Unknown error" +# manual_check_required = True + +# # Convert next_round_candidates from int64 to serialize +# conlfation_metrics = { +# # "fim_reaches": [int(c) for c in next_round_candidates], +# "conflation_score": round(total_hits / xs_group.shape[0], 2), +# "conlfation_notes": conlfation_notes, +# "manual_check_required": manual_check_required, +# } +# return conlfation_metrics def ras_xs_geometry_data(rfc: RasFimConflater, xs_id: str) -> dict: @@ -585,7 +720,7 @@ def map_reach_xs(rfc: RasFimConflater, reach: MultiLineString) -> dict: has_junctions = rfc.ras_junctions is not None if intersected_xs.empty: - return None + return {"eclipsed":True} # get start and end points of the nwm reach start, end = endpoints_from_multiline(reach.geometry) @@ -631,10 +766,14 @@ def map_reach_xs(rfc: RasFimConflater, reach: MultiLineString) -> dict: if rfc.output_concave_hull_path: xs_gdf = pd.concat([intersected_xs, rfc.ras_xs[rfc.ras_xs["ID"] == ds_xs]], ignore_index=True) rfc.add_hull(xs_gdf,reach.geometry) + + if us_data==ds_data: + return {"eclipsed":True} return { "us_xs": us_data, "ds_xs": ds_data, + "eclipsed":False } @@ -648,36 +787,31 @@ def ras_reaches_metadata(rfc: RasFimConflater, candidate_reaches: gpd.GeoDataFra # get the xs data for the reach ras_xs_data = map_reach_xs(rfc, reach) - if ras_xs_data: - reach_metadata[reach.ID] = ras_xs_data - else: - # pass dictionary with us_xs and xs_id for sorting purposes - reach_metadata[reach.ID] = {"us_xs": {"xs_id": str(-9999)}} + reach_metadata[reach.ID] = ras_xs_data for k in reach_metadata.keys(): flow_data = rfc.nwm_reaches[rfc.nwm_reaches["ID"] == k].iloc[0] if isinstance(flow_data["high_flow_threshold"], float): - reach_metadata[k]["low_flow_cfs"] = int(round(flow_data["high_flow_threshold"], 2) * HIGH_FLOW_FACTOR) + reach_metadata[k]["low_flow"] = int(round(flow_data["high_flow_threshold"], 2) * HIGH_FLOW_FACTOR) else: - reach_metadata[k]["low_flow_cfs"] = -9999 + reach_metadata[k]["low_flow"] = -9999 logging.warning(f"No low flow data for {k}") try: high_flow = float(flow_data["f100year"]) - reach_metadata[k]["high_flow_cfs"] = int(round(high_flow, 2)) + reach_metadata[k]["high_flow"] = int(round(high_flow, 2)) except: logging.warning(f"No high flow data for {k}") - reach_metadata[k]["high_flow_cfs"] = -9999 + reach_metadata[k]["high_flow"] = -9999 try: - reach_metadata[k]["nwm_to_id"] = str(flow_data["to_id"]) + reach_metadata[k]["network_to_id"] = str(flow_data["to_id"]) except: logging.warning(f"No to_id data for {k}") - reach_metadata[k]["nwm_to_id"] = "-9999" + reach_metadata[k]["network_to_id"] = "-9999" if k in rfc.local_gages.keys(): gage_id = rfc.local_gages[k].replace(" ", "") reach_metadata[k]["gage"] = gage_id reach_metadata[k]["gage_url"] = f"https://waterdata.usgs.gov/nwis/uv?site_no={gage_id}&legacy=1" - reach_metadata[k]["source_nwm_reach"] = os.path.basename(rfc.nwm_pq) return reach_metadata diff --git a/ripple1d/consts.py b/ripple1d/consts.py index 8ca750c1..6d6a674d 100644 --- a/ripple1d/consts.py +++ b/ripple1d/consts.py @@ -47,3 +47,5 @@ ) SHOW_RAS = False + +HYDROFABRIC_CRS = 5070 diff --git a/ripple1d/data_model.py b/ripple1d/data_model.py index 5f01946b..2ade8001 100644 --- a/ripple1d/data_model.py +++ b/ripple1d/data_model.py @@ -192,7 +192,7 @@ def nwm_conflation_parameters(self, nwm_id: str): """NWM Conflation parameters.""" with open(self.conflation_file, "r") as f: conflation_parameters = json.loads(f.read()) - return conflation_parameters[nwm_id] + return conflation_parameters["reaches"][nwm_id] class NwmReachModel(RasModelStructure): @@ -427,14 +427,14 @@ def gdf(self): "river_reach_rs": [self.river_reach_rs], "thalweg": [self.thalweg], "xs_max_elevation": [self.xs_max_elevation], - # "left_reach_length": [self.left_reach_length], - # "right_reach_length": [self.right_reach_length], - # "channel_reach_length": [self.channel_reach_length], + "left_reach_length": [self.left_reach_length], + "right_reach_length": [self.right_reach_length], + "channel_reach_length": [self.channel_reach_length], "ras_data": ["\n".join(self.ras_data)], - # "station_elevation_points": [self.station_elevation_points], - # "bank_stations": [self.bank_stations], - # "number_of_station_elevation_points": [self.number_of_station_elevation_points], - # "number_of_coords": [self.number_of_coords], + "station_elevation_points": [self.station_elevation_points], + "bank_stations": [self.bank_stations], + "number_of_station_elevation_points": [self.number_of_station_elevation_points], + "number_of_coords": [self.number_of_coords], # "coords": [self.coords], }, crs=self.crs, diff --git a/ripple1d/ops/metrics.py b/ripple1d/ops/metrics.py new file mode 100644 index 00000000..249e68fd --- /dev/null +++ b/ripple1d/ops/metrics.py @@ -0,0 +1,275 @@ +import json +import logging +import os +import sqlite3 +import traceback + +import geopandas as gpd +import numpy as np +import pandas as pd +import pyproj +from shapely import Geometry, LineString, MultiLineString, MultiPoint, Point +from shapely.ops import linemerge + +from ripple1d.consts import HYDROFABRIC_CRS, METERS_PER_FOOT +from ripple1d.data_model import XS +from ripple1d.ops.subset_gpkg import RippleGeopackageSubsetter +from ripple1d.utils.ripple_utils import xs_concave_hull + + +class ConflationMetrics: + """Calculate metrics for a cross section.""" + + def __init__( + self, + xs_gdf: gpd.GeoDataFrame, + river_gdf: gpd.GeoDataFrame, + network_reach: LineString, + network_reach_plus_ds_reach: LineString, + ): + self.xs_gdf = xs_gdf + self.river_gdf = river_gdf + self.network_reach = network_reach + self.network_reach_plus_ds_reach = network_reach_plus_ds_reach + self.crs = xs_gdf.crs + + def populate_station_elevation(self, row: pd.Series) -> dict: + """Populate the station elevation for a cross section.""" + xs = XS(row.ras_data.splitlines(), row.river_reach, row.river, row.reach, self.crs) + return dict(xs.station_elevation_points) + + def populate_thalweg_station(self, row: pd.Series) -> str: + """Populate the thalweg station for a cross section.""" + df = pd.DataFrame(row["station_elevation"], index=["elevation"]).T + return df.loc[df["elevation"] == row.thalweg].index[0] + + def thalweg_metrics(self, xs_gdf: gpd.GeoDataFrame) -> dict: + """Calculate the distance between the thalweg point and the network intersection point.""" + try: + xs_gdf["station_elevation"] = xs_gdf.apply(lambda row: self.populate_station_elevation(row), axis=1) + xs_gdf["thalweg_station"] = xs_gdf.apply(lambda row: self.populate_thalweg_station(row), axis=1) + xs_gdf["thalweg_point"] = xs_gdf.apply( + lambda row: row.geometry.interpolate(row["thalweg_station"] * METERS_PER_FOOT), axis=1 + ) + + xs_gdf["ras_intersection_point"] = None + for _, r in self.river_gdf.iterrows(): + xs_gdf.loc[xs_gdf["river_reach"] == r["river_reach"], "ras_intersection_point"] = xs_gdf.loc[ + xs_gdf["river_reach"] == r["river_reach"], : + ].apply(lambda row: r.geometry.intersection(row.geometry), axis=1) + + xs_gdf["network_intersection_point"] = xs_gdf.apply( + lambda row: self.network_reach_plus_ds_reach.intersection(row.geometry), axis=1 + ) + + xs_gdf["centerline_offset"] = xs_gdf.apply( + lambda row: row["ras_intersection_point"].distance(row["network_intersection_point"]), axis=1 + ) + xs_gdf["thalweg_offset"] = xs_gdf.apply( + lambda row: row["thalweg_point"].distance(row["network_intersection_point"]), axis=1 + ) + + return { + "centerline_offset": xs_gdf["centerline_offset"].describe().round().astype(int).to_dict(), + "thalweg_offset": xs_gdf["thalweg_offset"].describe().round().astype(int).to_dict(), + } + except Exception as e: + logging.error(f"Error: {e}") + logging.error(f"traceback: {traceback.format_exc()}") + + def ensure_point(self, geom: Geometry): + """Ensure that the geometry is Point.""" + if isinstance(geom, MultiPoint): + return list(geom.geoms)[0] + elif isinstance(geom, Point): + return geom + elif isinstance(geom, LineString): + return list(geom.boundary.geoms)[0] + else: + raise ValueError(f"Not a valid geometry type: {type(geom)}. Only Point, MultiPoint,LineString supported.") + + def length_metrics(self, xs_gdf: gpd.GeoDataFrame) -> dict: + """Calculate the reach length between cross sections along the ras river line and the network reach.""" + try: + xs_gdf = xs_gdf[ + (xs_gdf["river_station"] == xs_gdf["river_station"].max()) + | (xs_gdf["river_station"] == xs_gdf["river_station"].min()) + ] + xs_gdf["network_intersection_point"] = xs_gdf.apply( + lambda row: self.network_reach_plus_ds_reach.intersection(row.geometry), axis=1 + ) + xs_gdf["network_intersection_point"] = xs_gdf.apply( + lambda row: self.ensure_point(row["network_intersection_point"]), axis=1 + ) + + xs_gdf["network_station"] = xs_gdf.apply( + lambda row: self.network_reach_plus_ds_reach.project(row["network_intersection_point"]), axis=1 + ) + network_length = xs_gdf["network_station"].max() - xs_gdf["network_station"].min() + + if len(xs_gdf["river_reach"].unique()) > 1: + raise ValueError("Cross sections must all be on the same river reach.") + else: + river_line = self.river_gdf.loc[ + self.river_gdf["river_reach"] == xs_gdf["river_reach"].iloc[0], "geometry" + ].iloc[0] + xs_gdf["ras_intersection_point"] = xs_gdf.apply( + lambda row: river_line.intersection(row.geometry), axis=1 + ) + xs_gdf["ras_station"] = xs_gdf.apply( + lambda row: river_line.project(row["ras_intersection_point"]), axis=1 + ) + ras_length = xs_gdf["ras_station"].max() - xs_gdf["ras_station"].min() + + network_ras_ratio = network_length / ras_length + return { + "ras": int(ras_length / METERS_PER_FOOT), + "network": int(network_length / METERS_PER_FOOT), + "network_to_ras_ratio": round(float(network_ras_ratio), 2), + } + except Exception as e: + logging.error(f"Error: {e}") + logging.error(f"traceback: {traceback.format_exc()}") + + # def parrallel_reaches(self, network_reaches: gpd.GeoDataFrame) -> dict: + # """Calculate the overlap between the network reach and the cross sections.""" + # if network_reaches.empty: + # return [] + # overlaps = network_reaches[network_reaches.intersects(self.xs_gdf.union_all())] + # if overlaps.empty: + # return [] + # overlaps["overlap"] = overlaps.apply( + # lambda row: int( + # row["geometry"].intersection(xs_concave_hull(self.xs_gdf)["geometry"].iloc[0]).length / METERS_PER_FOOT + # ), + # axis=1, + # ) + + # return [{"id": str(row["ID"]), "overlap": row["overlap"]} for _, row in overlaps.iterrows()] + + def overlapped_reaches(self, to_reaches: gpd.GeoDataFrame) -> dict: + """Calculate the overlap between the network reach and the cross sections.""" + if to_reaches.empty: + return [] + geom_name = to_reaches.geometry.name + for i, row in to_reaches.iterrows(): + if row[geom_name].intersects(self.xs_gdf.union_all()): + overlap = ( + row[geom_name].intersection(xs_concave_hull(self.xs_gdf)["geometry"].iloc[0]).length + / METERS_PER_FOOT + ) + return [{"id": str(row["ID"]), "overlap": int(overlap)}] + return [] + + def eclipsed_reaches(self, network_reaches: gpd.GeoDataFrame) -> dict: + """Calculate the overlap between the network reach and the cross sections.""" + if network_reaches.empty: + return [] + eclipsed_reaches = network_reaches[network_reaches.covered_by(xs_concave_hull(self.xs_gdf)["geometry"].iloc[0])] + + return [str(row["ID"]) for _, row in eclipsed_reaches.iterrows()] + + def compute_coverage_metrics(self, xs_gdf: gpd.GeoDataFrame) -> dict: + """Calculate the coverage metrics for a set of cross sections.""" + try: + xs_gdf = xs_gdf[ + (xs_gdf["river_station"] == xs_gdf["river_station"].max()) + | (xs_gdf["river_station"] == xs_gdf["river_station"].min()) + ] + xs_gdf["intersection_point"] = xs_gdf.apply( + lambda row: self.network_reach_plus_ds_reach.intersection(row.geometry), axis=1 + ) + xs_gdf["intersection_point"] = xs_gdf.apply( + lambda row: self.ensure_point(row["intersection_point"]), axis=1 + ) + + xs_gdf["station_percent"] = xs_gdf.apply( + lambda row: self.network_reach_plus_ds_reach.project(row["intersection_point"]) + / self.network_reach.length, + axis=1, + ) + return { + "start": float(xs_gdf["station_percent"].min().round(2)), + "end": min([xs_gdf["station_percent"].max().round(2), 1]), + } + except Exception as e: + logging.error(f"Error: {e}") + logging.error(f"traceback: {traceback.format_exc()}") + + +def compute_conflation_metrics(source_model_directory: str, source_network: str): + """Compute metrics for a network reach.""" + network_pq_path = source_network["file_name"] + model_name = os.path.basename(source_model_directory) + src_gpkg_path = os.path.join(source_model_directory, f"{model_name}.gpkg") + conflation_json = os.path.join(source_model_directory, f"{model_name}.conflation.json") + conflation_parameters = json.load(open(conflation_json)) + + for network_id in conflation_parameters["reaches"].keys(): + try: + if conflation_parameters["reaches"][network_id]["eclipsed"] == True: + continue + + rgs = RippleGeopackageSubsetter(src_gpkg_path, conflation_json, "", network_id) + layers = {} + for layer, gdf in rgs.subset_gdfs.items(): + layers[layer] = gdf.to_crs(HYDROFABRIC_CRS) + + network_reaches = gpd.read_parquet(network_pq_path, bbox=layers["XS"].total_bounds) + network_reach = linemerge(network_reaches.loc[network_reaches["ID"] == int(network_id)].geometry.iloc[0]) + network_reach_plus_ds_reach = combine_reaches(network_reaches, network_id) + + cm = ConflationMetrics(layers["XS"], layers["River"], network_reach, network_reach_plus_ds_reach) + + metrics = { + "xs": cm.thalweg_metrics(layers["XS"]), + "lengths": cm.length_metrics(layers["XS"]), + "coverage": cm.compute_coverage_metrics(layers["XS"]), + } + + to_id = conflation_parameters["reaches"][network_id]["network_to_id"] + if to_id in conflation_parameters["reaches"].keys(): + next_to_id = int(conflation_parameters["reaches"][to_id]["network_to_id"]) + else: + next_to_id = None + + overlapped_reaches = cm.overlapped_reaches( + network_reaches[network_reaches["ID"].isin([int(to_id), next_to_id])] + ) + eclipsed_reaches = cm.eclipsed_reaches(network_reaches[network_reaches["ID"] != int(network_id)]) + + conflation_parameters["reaches"][network_id].update({"metrics": metrics}) + conflation_parameters["reaches"][network_id].update({"overlapped_reaches": overlapped_reaches}) + conflation_parameters["reaches"][network_id].update({"eclipsed_reaches": eclipsed_reaches}) + conflation_parameters["metadata"]["length_units"] = "feet" + conflation_parameters["metadata"]["flow_units"] = "cfs" + except Exception as e: + logging.error(f"Error: {e}") + logging.error(f"traceback: {traceback.format_exc()}") + conflation_parameters["reaches"][network_id].update({"metrics": {}}) + with open(conflation_json, "w") as f: + f.write(json.dumps(conflation_parameters, indent=4)) + return conflation_parameters + + +def combine_reaches(network_reaches: gpd.GeoDataFrame, network_id: str) -> LineString: + """Combine network reaches.""" + reach = network_reaches.loc[network_reaches["ID"] == int(network_id), :] + to_reach = network_reaches.loc[network_reaches["ID"] == int(reach["to_id"].iloc[0]), :] + + if to_reach.empty: + return linemerge(reach.geometry.iloc[0]) + else: + next_to_reach = network_reaches.loc[network_reaches["ID"] == int(to_reach["to_id"].iloc[0]), :] + if next_to_reach.empty: + return linemerge(MultiLineString([linemerge(reach.geometry.iloc[0]), linemerge(to_reach.geometry.iloc[0])])) + else: + return linemerge( + MultiLineString( + [ + linemerge(reach.geometry.iloc[0]), + linemerge(to_reach.geometry.iloc[0]), + linemerge(next_to_reach.geometry.iloc[0]), + ] + ) + ) diff --git a/ripple1d/ops/ras_conflate.py b/ripple1d/ops/ras_conflate.py index 03b464d9..616e7f7b 100644 --- a/ripple1d/ops/ras_conflate.py +++ b/ripple1d/ops/ras_conflate.py @@ -2,6 +2,8 @@ import json import logging +import os +import traceback from datetime import datetime from urllib.parse import quote @@ -17,6 +19,7 @@ ras_reaches_metadata, walk_network, ) +from ripple1d.ops.metrics import compute_conflation_metrics logging.getLogger("fiona").setLevel(logging.ERROR) logging.getLogger("botocore").setLevel(logging.ERROR) @@ -54,9 +57,28 @@ def conflate_single_nwm_reach(rfc: RasFimConflater, nwm_reach_id: int): raise ValueError(f"nwm_reach_id {nwm_reach_id} not conflating to the ras model geometry.") -def conflate(rfc: RasFimConflater): - """Conflate a HEC-RAS model with NWM reaches.""" - metadata = {} +def conflate_model(source_model_directory: str, source_network: dict): + """Conflate a HEC-RAS model with NWM reaches. + + source_network example: + { + "file_name": "nwm_flows_v3.parquet", // required + "version": "2.1" // could be empty if not provided by the caller + "type": "nwm_hydrofabric" // required + } + """ + try: + nwm_pq_path = source_network["file_name"] + except KeyError: + raise KeyError(f"source_network must contain 'file_name', invalid parameters: {source_network}") + + if not source_network["type"] == "nwm_hydrofabric": + raise ValueError(f"source_network type must be 'nwm_hydrofabric', invalid parameters: {source_network}") + + version = source_network.get("version", "") + + rfc = RasFimConflater(nwm_pq_path, source_model_directory) + metadata = {"reaches": {}} # get nwm reaches that intersect the convex hull of the ras model model_local_nwm_reaches = rfc.local_nwm_reaches() for river_reach_name in rfc.ras_river_reach_names: @@ -70,7 +92,7 @@ def conflate(rfc: RasFimConflater): ] # get the start and end points of the river reach - ras_start_point, ras_stop_point = rfc.ras_start_end_points(river_reach_name=river_reach_name) + ras_start_point, ras_stop_point = rfc.ras_start_end_points(river_reach_name=river_reach_name, clip_to_xs=True) # get the nearest upstream and downstream nwm reaches to the start and end points of the river reach if len(rfc.ras_river_reach_names) == 1: @@ -97,76 +119,129 @@ def conflate(rfc: RasFimConflater): # get gdf of the candidate reaches candidate_reaches = local_nwm_reaches.query(f"ID in {potential_reach_path}") - reach_metadata = ras_reaches_metadata(rfc, candidate_reaches) - metadata.update(reach_metadata) - - rfc.write_hulls() - - return metadata - - -def conflate_s3_model( - item: pystac.Item, client: boto3.client, bucket: str, stac_item_s3_key: str, rfc: RasFimConflater -): - """Conflate a model from s3.""" - # build conflation key and href - nwm_conflation_key = stac_item_s3_key.replace(".json", ".conflation.json") - nwm_conflation_href = s3_public_href(bucket, nwm_conflation_key) + metadata["reaches"].update(ras_reaches_metadata(rfc, candidate_reaches)) - # conflate the mip ras model to nwm reaches - conflation_results = conflate(rfc) - - # write conflation results to s3 - client.put_object( - Body=json.dumps(conflation_results).encode(), - Bucket=bucket, - Key=nwm_conflation_key, - ) - - # Add ripple parameters asset to item - item.add_asset( - "NWM_Conflation", - pystac.Asset( - nwm_conflation_href, - title="NWM_Conflation", - roles=[pystac.MediaType.JSON, "nwm-conflation"], - extra_fields={ - "software": f"ripple1d {ripple1d.__version__}", - "date_created": datetime.now().isoformat(), - }, - ), - ) - - limit_plot = True - - conflation_thumbnail_key = nwm_conflation_key.replace("json", "png") - conflation_thumbnail_href = s3_public_href(bucket, conflation_thumbnail_key) - - ids = [r for r in conflation_results.keys() if r not in ["metrics", "ras_river_to_nwm_reaches_ratio"]] + if not conflated(metadata): + return "no reaches conflated" + ids = list(metadata["reaches"].keys()) fim_stream = rfc.local_nwm_reaches()[rfc.local_nwm_reaches()["ID"].isin(ids)] + conflation_png = f"{rfc.ras_gpkg.replace('.gpkg','.conflation.png')}" plot_conflation_results( rfc, fim_stream, - conflation_thumbnail_key, - bucket=bucket, - s3_client=client, - limit_plot_to_nearby_reaches=limit_plot, - ) - # Add thumbnail asset to item - item.add_asset( - "ThumbnailConflationResults", - pystac.Asset( - conflation_thumbnail_href, - title="ThumbnailConflationResults", - roles=[pystac.MediaType.PNG, "thumbnail"], - extra_fields={ - "software": f"ripple1d {ripple1d.__version__}", - "date_created": datetime.now().isoformat(), - }, - description="""PNG of NWM conflation results with OpenStreetMap basemap.""", - ), + conflation_png, + limit_plot_to_nearby_reaches=True, ) - client.put_object(Body=json.dumps(item.to_dict()).encode(), Bucket=bucket, Key=stac_item_s3_key) + logging.info(f"Conflation results: {metadata}") + conflation_file = f"{rfc.ras_gpkg.replace('.gpkg','.conflation.json')}" + + metadata["metadata"] = {} + metadata["metadata"]["source_network"] = source_network.copy() + metadata["metadata"]["source_network"]["file_name"] = os.path.basename(nwm_pq_path) + metadata["metadata"]["conflation_png"] = os.path.basename(conflation_png) + metadata["metadata"]["conflation_ripple1d_version"] = ripple1d.__version__ + metadata["metadata"]["metrics_ripple1d_version"] = ripple1d.__version__ + metadata["metadata"]["source_ras_model"] = { + "stac_api": rfc.stac_api, + "stac_collection_id": rfc.stac_collection_id, + "stac_item_id": rfc.stac_item_id, + } + metadata["metadata"]["source_ras_model"]["source_ras_files"] = { + "geometry": rfc.primary_geom_file, + "forcing": rfc.primary_flow_file, + "project-file": rfc.ras_project_file, + "plan": rfc.primary_plan_file, + } + + with open(conflation_file, "w") as f: + f.write(json.dumps(metadata, indent=4)) + + try: + compute_conflation_metrics(source_model_directory, source_network) + except Exception as e: + logging.error(f"Error: {e}") + logging.error(f"traceback: {traceback.format_exc()}") + + return conflation_file + + +def conflated(metadata: dict) -> bool: + """Determine if any reaches conflated.""" + count = 0 + for reach_data in metadata["reaches"].values(): + if not reach_data["eclipsed"]: + count += 1 + if count == 0: + return False + else: + return True + + +# def conflate_s3_model( +# item: pystac.Item, client: boto3.client, bucket: str, stac_item_s3_key: str, rfc: RasFimConflater +# ): +# """Conflate a model from s3.""" +# # build conflation key and href +# nwm_conflation_key = stac_item_s3_key.replace(".json", ".conflation.json") +# nwm_conflation_href = s3_public_href(bucket, nwm_conflation_key) + +# # conflate the mip ras model to nwm reaches +# conflation_results = conflate(rfc) + +# # write conflation results to s3 +# client.put_object( +# Body=json.dumps(conflation_results).encode(), +# Bucket=bucket, +# Key=nwm_conflation_key, +# ) + +# # Add ripple parameters asset to item +# item.add_asset( +# "NWM_Conflation", +# pystac.Asset( +# nwm_conflation_href, +# title="NWM_Conflation", +# roles=[pystac.MediaType.JSON, "nwm-conflation"], +# extra_fields={ +# "software": f"ripple1d {ripple1d.__version__}", +# "date_created": datetime.now().isoformat(), +# }, +# ), +# ) + +# limit_plot = True + +# conflation_thumbnail_key = nwm_conflation_key.replace("json", "png") +# conflation_thumbnail_href = s3_public_href(bucket, conflation_thumbnail_key) + +# ids = list(conflation_results["reaches"].keys()) + +# fim_stream = rfc.local_nwm_reaches()[rfc.local_nwm_reaches()["ID"].isin(ids)] + +# plot_conflation_results( +# rfc, +# fim_stream, +# conflation_thumbnail_key, +# bucket=bucket, +# s3_client=client, +# limit_plot_to_nearby_reaches=limit_plot, +# ) +# # Add thumbnail asset to item +# item.add_asset( +# "ThumbnailConflationResults", +# pystac.Asset( +# conflation_thumbnail_href, +# title="ThumbnailConflationResults", +# roles=[pystac.MediaType.PNG, "thumbnail"], +# extra_fields={ +# "software": f"ripple1d {ripple1d.__version__}", +# "date_created": datetime.now().isoformat(), +# }, +# description="""PNG of NWM conflation results with OpenStreetMap basemap.""", +# ), +# ) + +# client.put_object(Body=json.dumps(item.to_dict()).encode(), Bucket=bucket, Key=stac_item_s3_key) diff --git a/ripple1d/ops/ras_run.py b/ripple1d/ops/ras_run.py index 9cb9d732..7532bbd4 100644 --- a/ripple1d/ops/ras_run.py +++ b/ripple1d/ops/ras_run.py @@ -9,6 +9,7 @@ import geopandas as gpd import numpy as np import pandas as pd + from ripple1d.consts import DEFAULT_EPSG, MIN_FLOW from ripple1d.data_model import FlowChangeLocation, NwmReachModel from ripple1d.ras import RasManager @@ -40,8 +41,8 @@ def create_model_run_normal_depth( # increment flows based on min and max flows specified in conflation parameters initial_flows = np.linspace( - max([nwm_rm.ripple1d_parameters["low_flow_cfs"], MIN_FLOW]), - nwm_rm.ripple1d_parameters["high_flow_cfs"], + max([nwm_rm.ripple1d_parameters["low_flow"], MIN_FLOW]), + nwm_rm.ripple1d_parameters["high_flow"], num_of_discharges_for_initial_normal_depth_runs, ).astype(int) diff --git a/ripple1d/ops/subset_gpkg.py b/ripple1d/ops/subset_gpkg.py index 59324bab..76d9cf23 100644 --- a/ripple1d/ops/subset_gpkg.py +++ b/ripple1d/ops/subset_gpkg.py @@ -34,7 +34,7 @@ def conflation_parameters(self) -> dict: @property def ripple1d_parameters(self) -> dict: """Extract ripple1d parameters from the conflation json.""" - return self.conflation_parameters[self.nwm_id] + return self.conflation_parameters["reaches"][self.nwm_id] @property def us_reach(self) -> str: @@ -69,7 +69,8 @@ def ds_rs(self) -> str: @property def source_xs(self) -> gpd.GeoDataFrame: """Extract cross sections from the source geopackage.""" - return gpd.read_file(self.src_gpkg_path, layer="XS") + xs = gpd.read_file(self.src_gpkg_path, layer="XS") + return xs[xs.intersects(self.source_river.union_all())] @property def source_river(self) -> gpd.GeoDataFrame: @@ -80,7 +81,8 @@ def source_river(self) -> gpd.GeoDataFrame: def source_structure(self) -> gpd.GeoDataFrame: """Extract structures from the source geopackage.""" if "Structure" in fiona.listlayers(self.src_gpkg_path): - return gpd.read_file(self.src_gpkg_path, layer="Structure") + structures = gpd.read_file(self.src_gpkg_path, layer="Structure") + return structures[structures.intersects(self.source_river.union_all())] @property def source_junction(self) -> gpd.GeoDataFrame: @@ -106,7 +108,7 @@ def ripple_structure(self) -> gpd.GeoDataFrame: @property def subset_gdfs(self) -> dict: - """Subset the cross sections and river geometry for a given NWM reach.""" + """Subset the cross sections, structues, and river geometry for a given NWM reach.""" # subset data if self.us_river == self.ds_river and self.us_reach == self.ds_reach: ripple_xs, ripple_structure, ripple_river = self.process_as_one_ras_reach() @@ -204,7 +206,11 @@ def clean_river_stations(self, ras_data: str) -> str: """Clean up river station data.""" lines = ras_data.splitlines() data = lines[0].split(",") - data[1] = str(float(float(data[1]))).ljust(8) + if "*" in data[1]: + data[1] = str(float(data[1].rstrip("*"))) + "*" + data[1] = data[1].ljust(8) + else: + data[1] = str(float(data[1])).ljust(8) lines[0] = ",".join(data) return "\n".join(lines) + "\n" @@ -212,7 +218,11 @@ def round_river_stations(self, ras_data: str) -> str: """Clean up river station data.""" lines = ras_data.splitlines() data = lines[0].split(",") - data[1] = str(float(round(float(data[1])))).ljust(8) + if "*" in data[1]: + data[1] = str(float(round(float(data[1].rstrip("*"))))) + "*" + data[1] = data[1].ljust(8) + else: + data[1] = str(float(round(float(data[1])))).ljust(8) lines[0] = ",".join(data) return "\n".join(lines) + "\n" @@ -220,7 +230,11 @@ def update_river_station(self, ras_data: str, river_station: str) -> str: """Update river station data.""" lines = ras_data.splitlines() data = lines[0].split(",") - data[1] = str(float(data[1]) + river_station).ljust(8) + if "*" in data[1]: + data[1] = str(float(data[1].rstrip("*")) + river_station) + "*" + data[1] = data[1].ljust(8) + else: + data[1] = str(float(data[1]) + river_station).ljust(8) lines[0] = ",".join(data) return "\n".join(lines) + "\n" @@ -436,12 +450,12 @@ def update_ripple1d_parameters(self, rsd: RippleSourceDirectory): ripple1d_parameters["source_model"] = rsd.ras_project_file ripple1d_parameters["crs"] = self.crs.to_epsg() ripple1d_parameters["version"] = ripple1d.__version__ - ripple1d_parameters["high_flow_cfs"] = max([ripple1d_parameters["high_flow_cfs"], self.max_flow]) - ripple1d_parameters["low_flow_cfs"] = min([ripple1d_parameters["low_flow_cfs"], self.min_flow]) - if ripple1d_parameters["high_flow_cfs"] == self.max_flow: - ripple1d_parameters["notes"] = ["high_flow_cfs computed from source model flows"] - if ripple1d_parameters["low_flow_cfs"] == self.min_flow: - ripple1d_parameters["notes"] = ["low_flow_cfs computed from source model flows"] + ripple1d_parameters["high_flow"] = max([ripple1d_parameters["high_flow"], self.max_flow]) + ripple1d_parameters["low_flow"] = min([ripple1d_parameters["low_flow"], self.min_flow]) + if ripple1d_parameters["high_flow"] == self.max_flow: + ripple1d_parameters["notes"] = ["high_flow computed from source model flows"] + if ripple1d_parameters["low_flow"] == self.min_flow: + ripple1d_parameters["notes"] = ["low_flow computed from source model flows"] return ripple1d_parameters def write_ripple1d_parameters(self, ripple1d_parameters: dict): diff --git a/ripple1d/ras_to_gpkg.py b/ripple1d/ras_to_gpkg.py index 4a760255..d8fa7815 100644 --- a/ripple1d/ras_to_gpkg.py +++ b/ripple1d/ras_to_gpkg.py @@ -1,9 +1,11 @@ """Extract geospatial data from HEC-RAS files.""" +import glob import json import logging import os import shutil +import sqlite3 import tempfile from pathlib import Path, PurePosixPath @@ -28,7 +30,7 @@ reproject, write_thumbnail_to_s3, ) -from ripple1d.utils.ripple_utils import get_path +from ripple1d.utils.ripple_utils import get_path, prj_is_ras from ripple1d.utils.s3_utils import ( get_basic_object_metadata, init_s3_resources, @@ -36,15 +38,18 @@ s3_key_public_url_converter, str_from_s3, ) +from ripple1d.utils.sqlite_utils import create_non_spatial_table def geom_flow_to_gpkg( - ras_project: RasProject, crs: CRS, gpkg_file: str, client: boto3.client = None, bucket: str = None + ras_project: RasProject, crs: str, gpkg_file: str, metadata: dict, client: boto3.client = None, bucket: str = None ) -> None: """Write geometry and flow data to a geopackage.""" - layers = geom_flow_to_gdfs(ras_project, crs, client, bucket) + layers, metadata = geom_flow_to_gdfs(ras_project, crs, metadata, client, bucket) for layer, gdf in layers.items(): gdf.to_file(gpkg_file, driver="GPKG", layer=layer) + create_non_spatial_table(gpkg_file, metadata) + return metadata def find_a_valid_file( @@ -54,18 +59,62 @@ def find_a_valid_file( if client and bucket: paths = list_keys(client, bucket, directory) else: - paths = glob.glob(directory) + paths = glob.glob(f"{directory}/*") for path in paths: if Path(path).suffix in valid_extensions: return path +def gather_metdata(metadata: dict, ras_project: RasProject, rp: RasPlanText, rf: RasFlowText, rg: RasGeomText) -> dict: + """Gather metadata from the ras project and its components.""" + metadata["plans_files"] = "\n".join( + [get_path(i).replace(f"{ras_project._ras_dir}\\", "") for i in ras_project.plans if get_path(i)] + ) + metadata["geom_files"] = "\n".join( + [get_path(i).replace(f"{ras_project._ras_dir}\\", "") for i in ras_project.geoms if get_path(i)] + ) + metadata["steady_flow_files"] = "\n".join( + [get_path(i).replace(f"{ras_project._ras_dir}\\", "") for i in ras_project.steady_flows if get_path(i)] + ) + metadata["unsteady_flow_files"] = "\n".join( + [get_path(i).replace(f"{ras_project._ras_dir}\\", "") for i in ras_project.unsteady_flows if get_path(i)] + ) + metadata["ras_project_file"] = ras_project._ras_text_file_path.replace(f"{ras_project._ras_dir}\\", "") + metadata["ras_project_title"] = ras_project.title + metadata["plans_titles"] = "\n".join( + [RasPlanText(get_path(i), rg.crs).title for i in ras_project.plans if get_path(i)] + ) + metadata["geom_titles"] = "\n".join( + [RasGeomText(get_path(i), rg.crs).title for i in ras_project.geoms if get_path(i)] + ) + metadata["steady_flow_titles"] = "\n".join( + [RasFlowText(get_path(i)).title for i in ras_project.steady_flows if get_path(i)] + ) + metadata["active_plan"] = get_path(ras_project._ras_root_path + ras_project.current_plan).replace( + f"{ras_project._ras_dir}\\", "" + ) + metadata["primary_plan_file"] = get_path(rp._ras_text_file_path).replace(f"{ras_project._ras_dir}\\", "") + metadata["primary_plan_title"] = rp.title + metadata["primary_flow_file"] = get_path(rf._ras_text_file_path).replace(f"{ras_project._ras_dir}\\", "") + metadata["primary_geom_file"] = get_path(rg._ras_text_file_path).replace(f"{ras_project._ras_dir}\\", "") + metadata["primary_geom_title"] = rg.title + metadata["primary_flow_title"] = rf.title + if len(rg.version) >= 1: + metadata["ras_version"] = rg.version[0] + else: + metadata["ras_version"] = None + metadata["ripple1d_version"] = ripple1d.__version__ + fcls = pd.DataFrame(rf.flow_change_locations) + metadata["profile_names"] = "\n".join(fcls["profile_names"].iloc[0]) + metadata["units"] = ras_project.units + return metadata + + def geom_flow_to_gdfs( - ras_project: RasProject, crs: CRS, client: boto3.client = None, bucket: str = None -) -> gpd.GeoDataFrame: + ras_project: RasProject, crs: str, metadata: dict, client: boto3.client = None, bucket: str = None +) -> tuple: """Write geometry and flow data to a geopackage.""" if client and bucket: - rp = detemine_primary_plan(ras_project, crs, ras_project._ras_text_file_path, client, bucket) # get steady flow file try: @@ -74,9 +123,6 @@ def geom_flow_to_gdfs( logging.warning(e) plan_steady_file = find_a_valid_file(ras_project._ras_dir, VALID_STEADY_FLOWS, client, bucket) - string = str_from_s3(plan_steady_file, client, bucket) - rf = RasFlowText.from_str(string, " .f01") - # get geometry file try: plan_geom_file = get_path(rp.plan_geom_file, client, bucket) @@ -84,15 +130,28 @@ def geom_flow_to_gdfs( logging.warning(e) plan_geom_file = find_a_valid_file(ras_project._ras_dir, VALID_GEOMS, client, bucket) + string = str_from_s3(plan_steady_file, client, bucket) + rf = RasFlowText.from_str(string, " .f01") + string = str_from_s3(plan_geom_file, client, bucket) rg = RasGeomText.from_str(string, crs, " .g01") + else: rp = detemine_primary_plan(ras_project, crs, ras_project._ras_text_file_path) - plan_steady_file = get_path(rp.plan_steady_file) - rf = RasFlowText(plan_steady_file) + try: + plan_steady_file = get_path(rp.plan_steady_file) + except NoFlowFileSpecifiedError as e: + logging.warning(e) + plan_steady_file = find_a_valid_file(ras_project._ras_dir, VALID_STEADY_FLOWS) + + try: + plan_geom_file = get_path(rp.plan_geom_file) + except NoFlowFileSpecifiedError as e: + logging.warning(e) + plan_geom_file = find_a_valid_file(ras_project._ras_dir, VALID_GEOMS) - plan_geom_file = get_path(rp.plan_geom_file) + rf = RasFlowText(plan_steady_file) rg = RasGeomText(plan_geom_file, crs) layers = {} @@ -114,12 +173,14 @@ def geom_flow_to_gdfs( if rg.reaches: layers["River"] = rg.reach_gdf + if rg.junctions: layers["Junction"] = rg.junction_gdf if rg.structures: layers["Structure"] = rg.structures_gdf - return layers + + return layers, gather_metdata(metadata, ras_project, rp, rf, rg) def geom_flow_xs_gdf(rg: RasGeomText, rf: RasFlowText, xs_gdf: gpd.GeoDataFrame) -> gpd.GeoDataFrame: @@ -156,8 +217,8 @@ def geom_flow_xs_gdf(rg: RasGeomText, rf: RasFlowText, xs_gdf: gpd.GeoDataFrame) def detemine_primary_plan( - ras_project: str, - crs: CRS, + ras_project: RasProject, + crs: str, ras_text_file_path: str, client: boto3.session.Session.client = None, bucket: str = None, @@ -206,13 +267,25 @@ def detemine_primary_plan( return candidate_plans[0] -def geom_to_gpkg(ras_text_file_path: str, crs: CRS, output_gpkg_path: str): +def gpkg_from_ras(source_model_directory: str, crs: str, metadata: dict): """Write geometry and flow data to a geopackage locally.""" - ras_project = RasProject(ras_text_file_path) - geom_flow_to_gpkg(ras_project, crs, output_gpkg_path) + prjs = glob.glob(f"{source_model_directory}/*.prj") + ras_text_file_path = None + + for prj in prjs: + if prj_is_ras(prj): + ras_text_file_path = prj + break + if not ras_text_file_path: + raise FileNotFoundError(f"No ras project file found in {source_model_directory}") -def geom_to_gpkg_s3(ras_text_file_path: str, crs: CRS, output_gpkg_path: str, bucket: str): + output_gpkg_path = ras_text_file_path.replace(".prj", ".gpkg") + rp = RasProject(ras_text_file_path) + return geom_flow_to_gpkg(rp, crs, output_gpkg_path, metadata) + + +def gpkg_from_ras_s3(s3_prefix: str, crs: str, metadata: dict, bucket: str): """Write geometry and flow data to a geopackage on s3.""" _, client, _ = init_s3_resources() @@ -220,14 +293,23 @@ def geom_to_gpkg_s3(ras_text_file_path: str, crs: CRS, output_gpkg_path: str, bu temp_dir = tempfile.mkdtemp() temp_path = os.path.join(temp_dir, "temp.gpkg") + ras_text_file_path = None + for key in list_keys(client, bucket, s3_prefix, ".prj"): + string = str_from_s3(key, client, bucket) + if "Proj Title" in string.split("\n")[0]: + ras_text_file_path = key + break + + if not ras_text_file_path: + raise FileNotFoundError(f"No ras project file found in {s3_prefix}") + # read ras project file get list of plans - string = str_from_s3(ras_text_file_path, client, bucket) ras_project = RasProject.from_str(string, ras_text_file_path) - geom_flow_to_gpkg(ras_project, crs, temp_path, client, bucket) + geom_flow_to_gpkg(ras_project, crs, temp_path, metadata, client, bucket) # move geopackage to s3 - output_gpkg_path = output_gpkg_path.replace(f"s3://{bucket}/", "") + output_gpkg_path = ras_text_file_path.replace(f"s3://{bucket}/", "").replace(".prj", ".gpkg") logging.debug(f"uploading {output_gpkg_path} to s3") client.upload_file( Bucket=bucket, diff --git a/ripple1d/utils/ripple_utils.py b/ripple1d/utils/ripple_utils.py index 9bb6d98e..1248111f 100644 --- a/ripple1d/utils/ripple_utils.py +++ b/ripple1d/utils/ripple_utils.py @@ -6,10 +6,12 @@ import os from pathlib import Path +import boto3 import geopandas as gpd import pandas as pd from dotenv import find_dotenv, load_dotenv -from shapely.geometry import Point, Polygon +from shapely import make_valid, union_all +from shapely.geometry import MultiPolygon, Point, Polygon from ripple1d.errors import ( RASComputeError, @@ -22,6 +24,16 @@ load_dotenv(find_dotenv()) +def prj_is_ras(path: str): + """Verify if prj is from hec-ras model.""" + with open(path) as f: + prj_contents = f.read() + if "Proj Title" in prj_contents.split("\n")[0]: + return True + else: + return False + + def decode(df: pd.DataFrame): """Decode all string columns in a pandas DataFrame.""" for c in df.columns: @@ -53,13 +65,20 @@ def get_path(expected_path: str, client: boto3.client = None, bucket: str = None def xs_concave_hull(xs: gpd.GeoDataFrame) -> gpd.GeoDataFrame: """Compute and return the concave hull (polygon) for a set of cross sections (lines all facing the same direction).""" - points = xs.boundary.explode(index_parts=True).unstack() - points_last_xs = [Point(coord) for coord in xs["geometry"].iloc[-1].coords] - points_first_xs = [Point(coord) for coord in xs["geometry"].iloc[0].coords[::-1]] - - polygon = Polygon(points_first_xs + list(points[0]) + points_last_xs + list(points[1])[::-1]) - - return gpd.GeoDataFrame({"geometry": [polygon]}, geometry="geometry", crs=xs.crs) + polygons = [] + for river_reach in xs["river_reach"].unique(): + xs_subset = xs[xs["river_reach"] == river_reach] + points = xs_subset.boundary.explode(index_parts=True).unstack() + points_last_xs = [Point(coord) for coord in xs_subset["geometry"].iloc[-1].coords] + points_first_xs = [Point(coord) for coord in xs_subset["geometry"].iloc[0].coords[::-1]] + polygon = Polygon(points_first_xs + list(points[0]) + points_last_xs + list(points[1])[::-1]) + if isinstance(polygon, MultiPolygon): + polygons += list(polygon.geoms) + else: + polygons.append(polygon) + return gpd.GeoDataFrame( + {"geometry": [union_all([make_valid(p) for p in polygons])]}, geometry="geometry", crs=xs.crs + ) def search_contents(lines: list, search_string: str, token: str = "=", expect_one: bool = True) -> list[str]: diff --git a/ripple1d/utils/sqlite_utils.py b/ripple1d/utils/sqlite_utils.py index 6bba8aea..f3092e62 100644 --- a/ripple1d/utils/sqlite_utils.py +++ b/ripple1d/utils/sqlite_utils.py @@ -151,3 +151,27 @@ def rating_curves_to_sqlite( df["ds_depth"] = df["ds_wse"] - thalweg insert_data(database_path, table_name, df, boundary_condition="kwse") + + +def create_non_spatial_table(gpkg_path: str, metadata: dict) -> None: + """Create the metadata table in the geopackage.""" + with sqlite3.connect(gpkg_path) as conn: + string = "" + curs = conn.cursor() + curs.execute("DROP TABLE IF Exists metadata") + curs.execute(f"CREATE TABLE IF NOT EXISTS metadata (key, value);") + curs.close() + + with sqlite3.connect(gpkg_path) as conn: + curs = conn.cursor() + keys, vals = "", "" + for key, val in metadata.items(): + + if val: + keys += f"{key}," + vals += f"{val.replace(',','_')}, " + curs.execute(f"INSERT INTO metadata (key,value) values (?,?);", (key, val)) + + curs.execute("COMMIT;") + curs.close() + return None diff --git a/ripple1d/version.py b/ripple1d/version.py index af52623d..82ed525a 100644 --- a/ripple1d/version.py +++ b/ripple1d/version.py @@ -1,3 +1,3 @@ """ripple1d version.""" -__version__ = "0.4.2" +__version__ = "0.5.0" diff --git a/tests/api_tests.py b/tests/api_tests.py index 6484e300..76a5888a 100644 --- a/tests/api_tests.py +++ b/tests/api_tests.py @@ -52,6 +52,48 @@ def wrapper(self, *args, **kwargs): return wrapper +@pytest.mark.usefixtures("setup_data") +class TestPreprocessAPI(unittest.TestCase): + @check_process + def test_a_gpkg_from_ras(self): + payload = { + "source_model_directory": self.SOURCE_RAS_MODEL_DIRECTORY, + "crs": self.crs, + "metadata": { + "stac_api": "https://stac2.dewberryanalytics.com", + "stac_collection_id": "ebfe-12090301_LowerColoradoCummins", + "stac_item_id": "137a9667-e5cf-4cea-b6ec-2e882a42fdc8", + }, + } + if os.path.exists(self.SOURCE_GPKG_FILE): + os.remove(self.SOURCE_GPKG_FILE) + process = "gpkg_from_ras" + files = [self.SOURCE_GPKG_FILE] + return process, payload, files + + @check_process + def test_b_conflation(self): + payload = { + "source_model_directory": self.SOURCE_RAS_MODEL_DIRECTORY, + "source_network": {"file_name": self.SOURCE_NETWORK, "version": "2.1", "type": "nwm_hydrofabric"}, + } + process = "conflate_model" + if os.path.exists(self.conflation_file): + os.remove(self.conflation_file) + files = [self.conflation_file] + return process, payload, files + + @check_process + def test_c_compute_conflation_metrics(self): + payload = { + "source_model_directory": self.SOURCE_RAS_MODEL_DIRECTORY, + "source_network": {"file_name": self.SOURCE_NETWORK, "version": "2.1", "type": "nwm_hydrofabric"}, + } + process = "compute_conflation_metrics" + files = [self.conflation_file] + return process, payload, files + + @pytest.mark.usefixtures("setup_data") class TestApi(unittest.TestCase): # @classmethod @@ -60,7 +102,7 @@ class TestApi(unittest.TestCase): # time.sleep(10) # Give the server some time to start @check_process - def test_a_extract_submodel(self): + def test_b_extract_submodel(self): payload = { "source_model_directory": self.SOURCE_RAS_MODEL_DIRECTORY, "submodel_directory": self.SUBMODELS_DIRECTORY, @@ -71,14 +113,14 @@ def test_a_extract_submodel(self): return process, payload, files @check_process - def test_b_create_ras_terrain(self): + def test_c_create_ras_terrain(self): payload = {"submodel_directory": self.SUBMODELS_DIRECTORY} process = "create_ras_terrain" files = [self.TERRAIN_HDF, self.TERRAIN_VRT] return process, payload, files @check_process - def test_c_create_model_run_normal_depth(self): + def test_d_create_model_run_normal_depth(self): payload = { "submodel_directory": self.SUBMODELS_DIRECTORY, "plan_suffix": "ind", @@ -90,7 +132,7 @@ def test_c_create_model_run_normal_depth(self): return process, payload, files @check_process - def test_d_run_incremental_normal_depth(self): + def test_e_run_incremental_normal_depth(self): payload = { "submodel_directory": self.SUBMODELS_DIRECTORY, "plan_suffix": "nd", @@ -103,7 +145,7 @@ def test_d_run_incremental_normal_depth(self): return process, payload, files @check_process - def test_e_run_known_wse(self): + def test_f_run_known_wse(self): payload = { "submodel_directory": self.SUBMODELS_DIRECTORY, "plan_suffix": "kwse", @@ -118,13 +160,13 @@ def test_e_run_known_wse(self): return process, payload, files @check_process - def test_f_create_fim_lib(self): + def test_g_create_fim_lib(self): payload = {"submodel_directory": self.SUBMODELS_DIRECTORY, "plans": ["nd", "kwse"]} process = "create_fim_lib" files = [self.FIM_LIB_DB, self.DEPTH_GRIDS_ND, self.DEPTH_GRIDS_KWSE] return process, payload, files - def test_g_check_flows_are_equal(self): + def test_h_check_flows_are_equal(self): rf2 = pd.DataFrame(RasFlowText(self.FLOW2_FILE).flow_change_locations) rf3 = pd.DataFrame(RasFlowText(self.FLOW3_FILE).flow_change_locations) self.assertTrue(len(set(rf3["flows"].iloc[0]) - set(rf2["flows"].iloc[0])) == 0) diff --git a/tests/conflation_tests.py b/tests/conflation_tests.py index c516da1c..15b6b573 100644 --- a/tests/conflation_tests.py +++ b/tests/conflation_tests.py @@ -16,15 +16,15 @@ filter_gdf, nearest_line_to_point, ) -from ripple1d.ops.ras_conflate import conflate +from ripple1d.ops.ras_conflate import conflate_model TEST_DIR = os.path.dirname(__file__) TEST_ITEM_FILE = "ras-data/Baxter.json" TEST_ITEM_PATH = os.path.join(TEST_DIR, TEST_ITEM_FILE) # Expected counts -NWM_REACHES = 36 -LOCAL_NWM_REACHES = 18 +NWM_REACHES = 16 +LOCAL_NWM_REACHES = 16 RAS_CENTERLINES = 3 RAS_XS = 173 GAGES = 1 @@ -37,7 +37,7 @@ ] NWM_REACHES_DATA = "flows.parquet" -NWM_REACHE_IDS = [2826228] +NWM_REACH_IDS = [2826228] RAS_DIR = "Baxter" RAS_GEOMETRY_GPKG = "Baxter.gpkg" @@ -45,8 +45,8 @@ @pytest.fixture(scope="class") def setup_data(request): nwm_pq_path = os.path.join(TEST_DIR, "nwm-data", NWM_REACHES_DATA) - ras_gpkg_path = os.path.join(TEST_DIR, "ras-data", RAS_DIR, RAS_GEOMETRY_GPKG) - conflater = RasFimConflater(nwm_pq_path, ras_gpkg_path) + source_model_directory = os.path.join(TEST_DIR, "ras-data", RAS_DIR) + conflater = RasFimConflater(nwm_pq_path, source_model_directory) request.cls.conflater = conflater diff --git a/tests/conftest.py b/tests/conftest.py index 49c51e6a..c203ca71 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -20,17 +20,21 @@ def setup_data(request): RAS_MODEL = request.config.getoption("--model") REACH_ID = request.config.getoption("--reach_id") MIN_ELEVATION = float(request.config.getoption("--min_elevation")) + CRS = {"Baxter": 2227, "PatuxentRiver": 6488, "MissFldwy": 32165} + SOURCE_NETWORK = os.path.join(TEST_DIR, f"nwm-data\\flows.parquet") SOURCE_RAS_MODEL_DIRECTORY = os.path.join(TEST_DIR, f"ras-data\\{RAS_MODEL}") SUBMODELS_BASE_DIRECTORY = os.path.join(SOURCE_RAS_MODEL_DIRECTORY, "submodels") SUBMODELS_DIRECTORY = os.path.join(SUBMODELS_BASE_DIRECTORY, REACH_ID) request.cls.REACH_ID = RAS_MODEL request.cls.REACH_ID = REACH_ID + request.cls.SOURCE_NETWORK = SOURCE_NETWORK request.cls.SOURCE_RAS_MODEL_DIRECTORY = SOURCE_RAS_MODEL_DIRECTORY request.cls.SUBMODELS_BASE_DIRECTORY = SUBMODELS_BASE_DIRECTORY request.cls.SUBMODELS_DIRECTORY = SUBMODELS_DIRECTORY request.cls.GPKG_FILE = os.path.join(SUBMODELS_DIRECTORY, f"{REACH_ID}.gpkg") + request.cls.SOURCE_GPKG_FILE = os.path.join(SOURCE_RAS_MODEL_DIRECTORY, f"{RAS_MODEL}.gpkg") request.cls.TERRAIN_HDF = os.path.join(SUBMODELS_DIRECTORY, f"Terrain\\{REACH_ID}.hdf") request.cls.TERRAIN_VRT = os.path.join(SUBMODELS_DIRECTORY, f"Terrain\\{REACH_ID}.vrt") request.cls.RAS_PROJECT_FILE = os.path.join(SUBMODELS_DIRECTORY, f"{REACH_ID}.prj") @@ -51,3 +55,5 @@ def setup_data(request): request.cls.MODEL_STAC_ITEM = os.path.join(SUBMODELS_DIRECTORY, f"{REACH_ID}.model.stac.json") request.cls.FIM_LIB_STAC_ITEM = os.path.join(SUBMODELS_DIRECTORY, f"fims\\{REACH_ID}.fim_lib.stac.json") request.cls.min_elevation = MIN_ELEVATION + request.cls.conflation_file = os.path.join(SOURCE_RAS_MODEL_DIRECTORY, f"{RAS_MODEL}.conflation.json") + request.cls.crs = CRS[RAS_MODEL] diff --git a/tests/metrics_tests.py b/tests/metrics_tests.py new file mode 100644 index 00000000..d44d3e70 --- /dev/null +++ b/tests/metrics_tests.py @@ -0,0 +1,153 @@ +import os +import unittest + +import geopandas as gpd +import pytest +from shapely.ops import linemerge + +from ripple1d.ops.metrics import ConflationMetrics, combine_reaches, compute_conflation_metrics +from ripple1d.ops.subset_gpkg import RippleGeopackageSubsetter + +# Expected counts +NETWORK_REACHES = 1 +LOCAL_NETWORK_REACHES = 18 +SRC_RAS_CENTERLINES = 3 +SRC_RAS_XS = 173 +SRC_RAS_STRUCTURES = 7 +RIPPLE_RAS_CENTERLINES = 1 +RIPPLE_RAS_XS = 51 +RIPPLE_RAS_STRUCTURES = 2 +NETWORK_REACH_COORDS_LEN = 74 + +# Other expected data +US_RIVER = "Baxter River" +US_REACH = "Upper Reach" +US_XS_ID = 78658.0 +DS_RIVER = "Baxter River" +DS_REACH = "Lower Reach" +DS_XS_ID = 47694.0 +INTERSECTION_DELTA_XY_MEAN = 23 +THALWEG_INTERSECTION_DELTA_XY_MEAN = 27 +RAS_REACH_LENGTH = 30814 +NETWORK_REACH_LENGTH = 30535 +NETWORK_TO_RAS_RATIO = 0.99 +START = 0.01 +END = 1 + +TEST_DIR = os.path.dirname(__file__) + +NETWORK_REACHES_DATA = "flows.parquet" +RAS_DIR = "Baxter" +RAS_GEOMETRY_GPKG = "Baxter.gpkg" +CONFLATION_JSON = "Baxter.conflation.json" +NETWORK_REACH_ID = 2823960 +NETWORK_TO_ID = 2823972 +NETWORK_CRS = 5070 + + +@pytest.fixture(scope="class") +def setup_data(request): + network_pq_path = os.path.join(TEST_DIR, "nwm-data", NETWORK_REACHES_DATA) + src_gpkg_path = os.path.join(TEST_DIR, "ras-data", RAS_DIR, RAS_GEOMETRY_GPKG) + conflation_json = os.path.join(TEST_DIR, "ras-data", RAS_DIR, CONFLATION_JSON) + rgs = RippleGeopackageSubsetter(src_gpkg_path, conflation_json, "", str(NETWORK_REACH_ID)) + + layers = {} + for layer, gdf in rgs.subset_gdfs.items(): + layers[layer] = gdf.to_crs(NETWORK_CRS) + network_reaches = gpd.read_parquet(network_pq_path, bbox=layers["XS"].total_bounds) + network_reach = linemerge(network_reaches.loc[network_reaches["ID"] == int(NETWORK_REACH_ID)].geometry.iloc[0]) + network_reach_plus_ds_reach = combine_reaches(network_reaches, NETWORK_REACH_ID) + + cm = ConflationMetrics(layers["XS"], layers["River"], network_reach, network_reach_plus_ds_reach) + request.cls.rgs = rgs + request.cls.cm = cm + request.cls.network_reaches = network_reaches + request.cls.network_reach = network_reach + request.cls.network_to_id = NETWORK_TO_ID + request.cls.network_id = NETWORK_REACH_ID + request.cls.network_crs = NETWORK_CRS + + +@pytest.mark.usefixtures("setup_data") +class TestRippleGeopackageSubsetter(unittest.TestCase): + def test_load_data(self): + self.rgs.ripple1d_parameters + self.rgs.source_xs + self.rgs.source_river + self.rgs.source_structure + + def test_src_ras_centerlines_exist(self): + self.assertEqual(self.rgs.source_river.shape[0], SRC_RAS_CENTERLINES) + + def test_src_ras_xs_exist(self): + self.assertEqual(self.rgs.source_xs.shape[0], SRC_RAS_XS) + + def test_src_ras_structures_exist(self): + self.assertEqual(self.rgs.source_structure.shape[0], SRC_RAS_STRUCTURES) + + def test_ripple_xs_exist(self): + self.assertEqual(self.rgs.ripple_xs.shape[0], RIPPLE_RAS_XS) + + def test_ripple_river_exist(self): + self.assertEqual(self.rgs.ripple_river.shape[0], RIPPLE_RAS_CENTERLINES) + + def test_ripple_structures_exist(self): + self.assertEqual(self.rgs.ripple_structure.shape[0], RIPPLE_RAS_STRUCTURES) + + def test_us_river(self): + self.assertEqual(self.rgs.us_river, US_RIVER) + + def test_us_reach(self): + self.assertEqual(self.rgs.us_reach, US_REACH) + + def test_us_rs(self): + self.assertEqual(self.rgs.us_rs, US_XS_ID) + + def test_ds_river(self): + self.assertEqual(self.rgs.ds_river, DS_RIVER) + + def test_ds_reach(self): + self.assertEqual(self.rgs.ds_reach, DS_REACH) + + def test_ds_rs(self): + self.assertEqual(self.rgs.ds_rs, DS_XS_ID) + + +@pytest.mark.usefixtures("setup_data") +class TestConflationMetrics(unittest.TestCase): + def test_network_reaches_exist(self): + network_reaches = self.network_reaches.loc[self.network_reaches["ID"] == int(self.network_id), :] + self.assertEqual(network_reaches.shape[0], NETWORK_REACHES) + self.assertEqual(len(self.network_reach.coords), NETWORK_REACH_COORDS_LEN) + + def test_network_to_id(self): + to_id = self.network_reaches.loc[self.network_reaches["ID"] == int(self.network_id), "to_id"].iloc[0] + self.assertEqual(to_id, self.network_to_id) + + def test_xs(self): + self.assertEqual(self.cm.xs_gdf.shape[0], RIPPLE_RAS_XS) + + def test_thalweg_metrics(self): + self.assertEqual( + self.cm.thalweg_metrics(self.rgs.ripple_xs.to_crs(self.network_crs))["centerline_offset"]["mean"], + INTERSECTION_DELTA_XY_MEAN, + ) + self.assertEqual( + self.cm.thalweg_metrics(self.rgs.ripple_xs.to_crs(self.network_crs))["thalweg_offset"]["mean"], + THALWEG_INTERSECTION_DELTA_XY_MEAN, + ) + + def test_reach_length_metrics(self): + self.assertEqual(self.cm.length_metrics(self.rgs.ripple_xs.to_crs(self.network_crs))["ras"], RAS_REACH_LENGTH) + self.assertEqual( + self.cm.length_metrics(self.rgs.ripple_xs.to_crs(self.network_crs))["network"], NETWORK_REACH_LENGTH + ) + self.assertEqual( + self.cm.length_metrics(self.rgs.ripple_xs.to_crs(self.network_crs))["network_to_ras_ratio"], + NETWORK_TO_RAS_RATIO, + ) + + def test_coverage_metrics(self): + self.assertEqual(self.cm.compute_coverage_metrics(self.rgs.ripple_xs.to_crs(self.network_crs))["start"], START) + self.assertEqual(self.cm.compute_coverage_metrics(self.rgs.ripple_xs.to_crs(self.network_crs))["end"], END) diff --git a/tests/nwm-data/flows.parquet b/tests/nwm-data/flows.parquet index 18d5904f..a125ac5a 100644 Binary files a/tests/nwm-data/flows.parquet and b/tests/nwm-data/flows.parquet differ diff --git a/tests/ras-data/Baxter/Baxter.conflation.json b/tests/ras-data/Baxter/Baxter.conflation.json index 10392c4b..af8a22f4 100644 --- a/tests/ras-data/Baxter/Baxter.conflation.json +++ b/tests/ras-data/Baxter/Baxter.conflation.json @@ -1,244 +1,744 @@ { - "2826228": { - "us_xs": { - "river": "Baxter River", - "reach": "Upper Reach", - "min_elevation": 33.4, - "max_elevation": 125.0, - "xs_id": 84816.0 + "reaches": { + "2826228": { + "us_xs": { + "river": "Baxter River", + "reach": "Upper Reach", + "min_elevation": 33.4, + "max_elevation": 125.0, + "xs_id": 84816.0 + }, + "ds_xs": { + "river": "Baxter River", + "reach": "Upper Reach", + "min_elevation": 55.0, + "max_elevation": 120.02, + "xs_id": 84000.0 + }, + "eclipsed": false, + "low_flow": 5668, + "high_flow": 19588, + "network_to_id": "2823932", + "metrics": { + "xs": { + "centerline_offset": { + "count": 2, + "mean": 14, + "std": 7, + "min": 9, + "25%": 11, + "50%": 14, + "75%": 16, + "max": 19 + }, + "thalweg_offset": { + "count": 2, + "mean": 13, + "std": 10, + "min": 6, + "25%": 10, + "50%": 13, + "75%": 17, + "max": 21 + } + }, + "lengths": { + "ras": 821, + "network": 838, + "network_to_ras_ratio": 1.02 + }, + "coverage": { + "start": 0.74, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "2823932", + "overlap": 272 + } + ], + "eclipsed_reaches": [] }, - "ds_xs": { - "river": "Baxter River", - "reach": "Upper Reach", - "min_elevation": 55.0, - "max_elevation": 120.02, - "xs_id": 84000.0 + "2823932": { + "us_xs": { + "river": "Baxter River", + "reach": "Upper Reach", + "min_elevation": 55.0, + "max_elevation": 120.02, + "xs_id": 84000.0 + }, + "ds_xs": { + "river": "Baxter River", + "reach": "Upper Reach", + "min_elevation": 35.1, + "max_elevation": 120.06, + "xs_id": 81920.0 + }, + "eclipsed": false, + "low_flow": 5669, + "high_flow": 19588, + "network_to_id": "2826230", + "metrics": { + "xs": { + "centerline_offset": { + "count": 6, + "mean": 9, + "std": 6, + "min": 4, + "25%": 5, + "50%": 8, + "75%": 12, + "max": 19 + }, + "thalweg_offset": { + "count": 6, + "mean": 23, + "std": 15, + "min": 7, + "25%": 12, + "50%": 20, + "75%": 30, + "max": 47 + } + }, + "lengths": { + "ras": 2079, + "network": 2036, + "network_to_ras_ratio": 0.98 + }, + "coverage": { + "start": 0.15, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "2826230", + "overlap": 431 + } + ], + "eclipsed_reaches": [] }, - "low_flow_cfs": 5668, - "high_flow_cfs": 19588, - "nwm_to_id": "2823932", - "source_nwm_reach": "nwm_flows_v3.parquet" - }, - "2823932": { - "us_xs": { - "river": "Baxter River", - "reach": "Upper Reach", - "min_elevation": 55.0, - "max_elevation": 120.02, - "xs_id": 84000.0 - }, - "ds_xs": { - "river": "Baxter River", - "reach": "Upper Reach", - "min_elevation": 35.1, - "max_elevation": 120.06, - "xs_id": 81920.0 - }, - "low_flow_cfs": 5669, - "high_flow_cfs": 19588, - "nwm_to_id": "2826230", - "source_nwm_reach": "nwm_flows_v3.parquet" - }, - "2823960": { - "us_xs": { - "river": "Baxter River", - "reach": "Upper Reach", - "min_elevation": 50.0, - "max_elevation": 105.42, - "xs_id": 78658.0 + "2823960": { + "us_xs": { + "river": "Baxter River", + "reach": "Upper Reach", + "min_elevation": 50.0, + "max_elevation": 105.42, + "xs_id": 78658.0 + }, + "ds_xs": { + "river": "Baxter River", + "reach": "Lower Reach", + "min_elevation": 33.59, + "max_elevation": 85.84, + "xs_id": 47694.0 + }, + "eclipsed": false, + "low_flow": 5694, + "high_flow": 19607, + "network_to_id": "2823972", + "metrics": { + "xs": { + "centerline_offset": { + "count": 51, + "mean": 23, + "std": 14, + "min": 1, + "25%": 12, + "50%": 20, + "75%": 32, + "max": 53 + }, + "thalweg_offset": { + "count": 51, + "mean": 27, + "std": 19, + "min": 0, + "25%": 11, + "50%": 23, + "75%": 40, + "max": 71 + } + }, + "lengths": { + "ras": 30814, + "network": 30535, + "network_to_ras_ratio": 0.99 + }, + "coverage": { + "start": 0.01, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "2823972", + "overlap": 595 + } + ], + "eclipsed_reaches": [] }, - "ds_xs": { - "river": "Baxter River", - "reach": "Lower Reach", - "min_elevation": 33.59, - "max_elevation": 85.84, - "xs_id": 47694.0 + "2826230": { + "us_xs": { + "river": "Baxter River", + "reach": "Upper Reach", + "min_elevation": 35.1, + "max_elevation": 120.06, + "xs_id": 81920.0 + }, + "ds_xs": { + "river": "Baxter River", + "reach": "Upper Reach", + "min_elevation": 55.0, + "max_elevation": 110.29, + "xs_id": 80916.0 + }, + "eclipsed": false, + "low_flow": 5671, + "high_flow": 19588, + "network_to_id": "2823934", + "metrics": { + "xs": { + "centerline_offset": { + "count": 4, + "mean": 17, + "std": 9, + "min": 7, + "25%": 11, + "50%": 17, + "75%": 23, + "max": 29 + }, + "thalweg_offset": { + "count": 4, + "mean": 39, + "std": 22, + "min": 6, + "25%": 37, + "50%": 49, + "75%": 52, + "max": 54 + } + }, + "lengths": { + "ras": 999, + "network": 909, + "network_to_ras_ratio": 0.91 + }, + "coverage": { + "start": 0.38, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "2823934", + "overlap": 218 + } + ], + "eclipsed_reaches": [] }, - "low_flow_cfs": 5694, - "high_flow_cfs": 19607, - "nwm_to_id": "2823972", - "source_nwm_reach": "nwm_flows_v3.parquet" - }, - "2826230": { - "us_xs": { - "river": "Baxter River", - "reach": "Upper Reach", - "min_elevation": 35.1, - "max_elevation": 120.06, - "xs_id": 81920.0 + "2823934": { + "us_xs": { + "river": "Baxter River", + "reach": "Upper Reach", + "min_elevation": 55.0, + "max_elevation": 110.29, + "xs_id": 80916.0 + }, + "ds_xs": { + "river": "Baxter River", + "reach": "Upper Reach", + "min_elevation": 50.0, + "max_elevation": 110.0, + "xs_id": 79577.0 + }, + "eclipsed": false, + "low_flow": 5672, + "high_flow": 19589, + "network_to_id": "2826224", + "metrics": { + "xs": { + "centerline_offset": { + "count": 4, + "mean": 21, + "std": 10, + "min": 6, + "25%": 18, + "50%": 24, + "75%": 27, + "max": 29 + }, + "thalweg_offset": { + "count": 4, + "mean": 53, + "std": 2, + "min": 51, + "25%": 52, + "50%": 53, + "75%": 53, + "max": 55 + } + }, + "lengths": { + "ras": 1345, + "network": 1304, + "network_to_ras_ratio": 0.97 + }, + "coverage": { + "start": 0.17, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "2826224", + "overlap": 260 + } + ], + "eclipsed_reaches": [] }, - "ds_xs": { - "river": "Baxter River", - "reach": "Upper Reach", - "min_elevation": 55.0, - "max_elevation": 110.29, - "xs_id": 80916.0 + "2826224": { + "us_xs": { + "river": "Baxter River", + "reach": "Upper Reach", + "min_elevation": 50.0, + "max_elevation": 110.0, + "xs_id": 79577.0 + }, + "ds_xs": { + "river": "Baxter River", + "reach": "Upper Reach", + "min_elevation": 50.0, + "max_elevation": 105.42, + "xs_id": 78658.0 + }, + "eclipsed": false, + "low_flow": 5673, + "high_flow": 19588, + "network_to_id": "2823960", + "metrics": { + "xs": { + "centerline_offset": { + "count": 3, + "mean": 13, + "std": 9, + "min": 6, + "25%": 8, + "50%": 10, + "75%": 17, + "max": 23 + }, + "thalweg_offset": { + "count": 3, + "mean": 42, + "std": 12, + "min": 30, + "25%": 37, + "50%": 45, + "75%": 49, + "max": 53 + } + }, + "lengths": { + "ras": 911, + "network": 993, + "network_to_ras_ratio": 1.09 + }, + "coverage": { + "start": 0.3, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "2823960", + "overlap": 374 + } + ], + "eclipsed_reaches": [] }, - "low_flow_cfs": 5671, - "high_flow_cfs": 19588, - "nwm_to_id": "2823934", - "source_nwm_reach": "nwm_flows_v3.parquet" - }, - "2823934": { - "us_xs": { - "river": "Baxter River", - "reach": "Upper Reach", - "min_elevation": 55.0, - "max_elevation": 110.29, - "xs_id": 80916.0 + "2823920": { + "us_xs": { + "river": "Tule Creek", + "reach": "Tributary", + "min_elevation": 38.0, + "max_elevation": 95.84, + "xs_id": 10982.0 + }, + "ds_xs": { + "river": "Baxter River", + "reach": "Lower Reach", + "min_elevation": 33.59, + "max_elevation": 85.84, + "xs_id": 47694.0 + }, + "eclipsed": false, + "low_flow": 550, + "high_flow": 9392, + "network_to_id": "2823972", + "metrics": { + "xs": { + "centerline_offset": { + "count": 26, + "mean": 28, + "std": 16, + "min": 2, + "25%": 16, + "50%": 28, + "75%": 41, + "max": 52 + }, + "thalweg_offset": { + "count": 26, + "mean": 31, + "std": 17, + "min": 3, + "25%": 17, + "50%": 28, + "75%": 47, + "max": 54 + } + }, + "lengths": { + "ras": 11459, + "network": 11221, + "network_to_ras_ratio": 0.98 + }, + "coverage": { + "start": 0.82, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "2823972", + "overlap": 476 + } + ], + "eclipsed_reaches": [] }, - "ds_xs": { - "river": "Baxter River", - "reach": "Upper Reach", - "min_elevation": 50.0, - "max_elevation": 110.0, - "xs_id": 79577.0 - }, - "low_flow_cfs": 5672, - "high_flow_cfs": 19589, - "nwm_to_id": "2826224", - "source_nwm_reach": "nwm_flows_v3.parquet" - }, - "2826224": { - "us_xs": { - "river": "Baxter River", - "reach": "Upper Reach", - "min_elevation": 50.0, - "max_elevation": 110.0, - "xs_id": 79577.0 - }, - "ds_xs": { - "river": "Baxter River", - "reach": "Upper Reach", - "min_elevation": 50.0, - "max_elevation": 105.42, - "xs_id": 78658.0 - }, - "low_flow_cfs": 5673, - "high_flow_cfs": 19588, - "nwm_to_id": "2823960", - "source_nwm_reach": "nwm_flows_v3.parquet" - }, - "2823920": { - "us_xs": { - "river": "Tule Creek", - "reach": "Tributary", - "min_elevation": 38.0, - "max_elevation": 95.84, - "xs_id": 10982.0 + "2821866": { + "us_xs": { + "river": "Baxter River", + "reach": "Lower Reach", + "min_elevation": 23.5, + "max_elevation": 58.28, + "xs_id": 2877.0 + }, + "ds_xs": { + "river": "Baxter River", + "reach": "Lower Reach", + "min_elevation": 20.6, + "max_elevation": 58.0, + "xs_id": 1192.0 + }, + "eclipsed": false, + "low_flow": 5707, + "high_flow": 21516, + "network_to_id": "2820026", + "metrics": { + "xs": { + "centerline_offset": { + "count": 3, + "mean": 11, + "std": 15, + "min": 1, + "25%": 2, + "50%": 4, + "75%": 16, + "max": 28 + }, + "thalweg_offset": { + "count": 3, + "mean": 43, + "std": 40, + "min": 6, + "25%": 22, + "50%": 38, + "75%": 61, + "max": 85 + } + }, + "lengths": { + "ras": 1686, + "network": 1631, + "network_to_ras_ratio": 0.97 + }, + "coverage": { + "start": 0.08, + "end": 0.6 + } + }, + "overlapped_reaches": [], + "eclipsed_reaches": [] }, - "ds_xs": { - "river": "Baxter River", - "reach": "Lower Reach", - "min_elevation": 33.59, - "max_elevation": 85.84, - "xs_id": 47694.0 + "2820012": { + "us_xs": { + "river": "Baxter River", + "reach": "Lower Reach", + "min_elevation": 26.9, + "max_elevation": 61.62, + "xs_id": 12789.0 + }, + "ds_xs": { + "river": "Baxter River", + "reach": "Lower Reach", + "min_elevation": 23.5, + "max_elevation": 58.28, + "xs_id": 2877.0 + }, + "eclipsed": false, + "low_flow": 5707, + "high_flow": 21520, + "network_to_id": "2821866", + "metrics": { + "xs": { + "centerline_offset": { + "count": 15, + "mean": 5, + "std": 4, + "min": 0, + "25%": 2, + "50%": 5, + "75%": 8, + "max": 13 + }, + "thalweg_offset": { + "count": 15, + "mean": 16, + "std": 15, + "min": 1, + "25%": 4, + "50%": 11, + "75%": 22, + "max": 43 + } + }, + "lengths": { + "ras": 9888, + "network": 9860, + "network_to_ras_ratio": 1.0 + }, + "coverage": { + "start": 0.03, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "2821866", + "overlap": 234 + } + ], + "eclipsed_reaches": [] }, - "low_flow_cfs": 550, - "high_flow_cfs": 9392, - "nwm_to_id": "2823972", - "source_nwm_reach": "nwm_flows_v3.parquet" - }, - "2821866": { - "us_xs": { - "river": "Baxter River", - "reach": "Lower Reach", - "min_elevation": 23.5, - "max_elevation": 58.28, - "xs_id": 2877.0 - }, - "ds_xs": { - "river": "Baxter River", - "reach": "Lower Reach", - "min_elevation": 20.6, - "max_elevation": 58.0, - "xs_id": 1192.0 - }, - "low_flow_cfs": 5707, - "high_flow_cfs": 21516, - "nwm_to_id": "2820026", - "source_nwm_reach": "nwm_flows_v3.parquet" - }, - "2820012": { - "us_xs": { - "river": "Baxter River", - "reach": "Lower Reach", - "min_elevation": 26.9, - "max_elevation": 61.62, - "xs_id": 12789.0 - }, - "ds_xs": { - "river": "Baxter River", - "reach": "Lower Reach", - "min_elevation": 23.5, - "max_elevation": 58.28, - "xs_id": 2877.0 - }, - "low_flow_cfs": 5707, - "high_flow_cfs": 21520, - "nwm_to_id": "2821866", - "source_nwm_reach": "nwm_flows_v3.parquet" - }, - "2820006": { - "us_xs": { - "river": "Baxter River", - "reach": "Lower Reach", - "min_elevation": 25.8, - "max_elevation": 65.0, - "xs_id": 13617.0 - }, - "ds_xs": { - "river": "Baxter River", - "reach": "Lower Reach", - "min_elevation": 26.9, - "max_elevation": 61.62, - "xs_id": 12789.0 - }, - "low_flow_cfs": 5707, - "high_flow_cfs": 21527, - "nwm_to_id": "2820012", - "source_nwm_reach": "nwm_flows_v3.parquet" - }, - "2823972": { - "us_xs": { - "river": "Baxter River", - "reach": "Lower Reach", - "min_elevation": 33.59, - "max_elevation": 85.84, - "xs_id": 47694.0 + "2820006": { + "us_xs": { + "river": "Baxter River", + "reach": "Lower Reach", + "min_elevation": 25.8, + "max_elevation": 65.0, + "xs_id": 13617.0 + }, + "ds_xs": { + "river": "Baxter River", + "reach": "Lower Reach", + "min_elevation": 26.9, + "max_elevation": 61.62, + "xs_id": 12789.0 + }, + "eclipsed": false, + "low_flow": 5707, + "high_flow": 21527, + "network_to_id": "2820012", + "metrics": { + "xs": { + "centerline_offset": { + "count": 3, + "mean": 11, + "std": 5, + "min": 6, + "25%": 9, + "50%": 12, + "75%": 14, + "max": 16 + }, + "thalweg_offset": { + "count": 3, + "mean": 33, + "std": 9, + "min": 26, + "25%": 29, + "50%": 32, + "75%": 37, + "max": 43 + } + }, + "lengths": { + "ras": 826, + "network": 840, + "network_to_ras_ratio": 1.02 + }, + "coverage": { + "start": 0.4, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "2820012", + "overlap": 261 + } + ], + "eclipsed_reaches": [] }, - "ds_xs": { - "river": "Baxter River", - "reach": "Lower Reach", - "min_elevation": 31.9, - "max_elevation": 85.84, - "xs_id": 38312.0 + "2823972": { + "us_xs": { + "river": "Baxter River", + "reach": "Lower Reach", + "min_elevation": 33.59, + "max_elevation": 85.84, + "xs_id": 47694.0 + }, + "ds_xs": { + "river": "Baxter River", + "reach": "Lower Reach", + "min_elevation": 31.9, + "max_elevation": 85.84, + "xs_id": 38312.0 + }, + "eclipsed": false, + "low_flow": 5729, + "high_flow": 22135, + "network_to_id": "2820002", + "gage": "11290000", + "gage_url": "https://waterdata.usgs.gov/nwis/uv?site_no=11290000&legacy=1", + "metrics": { + "xs": { + "centerline_offset": { + "count": 27, + "mean": 25, + "std": 12, + "min": 1, + "25%": 19, + "50%": 29, + "75%": 34, + "max": 42 + }, + "thalweg_offset": { + "count": 27, + "mean": 29, + "std": 12, + "min": 2, + "25%": 23, + "50%": 29, + "75%": 37, + "max": 53 + } + }, + "lengths": { + "ras": 9386, + "network": 9278, + "network_to_ras_ratio": 0.99 + }, + "coverage": { + "start": 0.06, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "2820002", + "overlap": 411 + } + ], + "eclipsed_reaches": [] }, - "low_flow_cfs": 5729, - "high_flow_cfs": 22135, - "nwm_to_id": "2820002", - "gage": "11290000", - "gage_url": "https://waterdata.usgs.gov/nwis/uv?site_no=11290000&legacy=1", - "source_nwm_reach": "nwm_flows_v3.parquet" + "2820002": { + "us_xs": { + "river": "Baxter River", + "reach": "Lower Reach", + "min_elevation": 31.9, + "max_elevation": 85.84, + "xs_id": 38312.0 + }, + "ds_xs": { + "river": "Baxter River", + "reach": "Lower Reach", + "min_elevation": 25.8, + "max_elevation": 65.0, + "xs_id": 13617.0 + }, + "eclipsed": false, + "low_flow": 5707, + "high_flow": 21526, + "network_to_id": "2820006", + "metrics": { + "xs": { + "centerline_offset": { + "count": 40, + "mean": 9, + "std": 7, + "min": 0, + "25%": 4, + "50%": 7, + "75%": 14, + "max": 31 + }, + "thalweg_offset": { + "count": 40, + "mean": 10, + "std": 8, + "min": 0, + "25%": 4, + "50%": 7, + "75%": 12, + "max": 35 + } + }, + "lengths": { + "ras": 24643, + "network": 24636, + "network_to_ras_ratio": 1.0 + }, + "coverage": { + "start": 0.02, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "2820006", + "overlap": 380 + } + ], + "eclipsed_reaches": [] + } }, - "2820002": { - "us_xs": { - "river": "Baxter River", - "reach": "Lower Reach", - "min_elevation": 31.9, - "max_elevation": 85.84, - "xs_id": 38312.0 + "metadata": { + "source_network": { + "file_name": "flows.parquet", + "version": "2.1", + "type": "nwm_hydrofabric" }, - "ds_xs": { - "river": "Baxter River", - "reach": "Lower Reach", - "min_elevation": 25.8, - "max_elevation": 65.0, - "xs_id": 13617.0 + "conflation_png": "Baxter.conflation.png", + "conflation_ripple1d_version": "0.4.2", + "metrics_ripple1d_version": "0.4.2", + "source_ras_model": { + "stac_api": "https://stac2.dewberryanalytics.com", + "stac_collection_id": "ebfe-12090301_LowerColoradoCummins", + "stac_item_id": "137a9667-e5cf-4cea-b6ec-2e882a42fdc8", + "source_ras_files": { + "geometry": "Baxter.g02", + "forcing": "Baxter.f01", + "project-file": "Baxter.prj", + "plan": "Baxter.p01" + } }, - "low_flow_cfs": 5707, - "high_flow_cfs": 21526, - "nwm_to_id": "2820006", - "source_nwm_reach": "nwm_flows_v3.parquet" + "length_units": "feet", + "flow_units": "cfs" } } \ No newline at end of file diff --git a/tests/ras-data/Baxter/Baxter.conflation.png b/tests/ras-data/Baxter/Baxter.conflation.png new file mode 100644 index 00000000..a8d83ca6 Binary files /dev/null and b/tests/ras-data/Baxter/Baxter.conflation.png differ diff --git a/tests/ras-data/Baxter/Baxter.gpkg b/tests/ras-data/Baxter/Baxter.gpkg index 67128c07..75542cb5 100644 Binary files a/tests/ras-data/Baxter/Baxter.gpkg and b/tests/ras-data/Baxter/Baxter.gpkg differ diff --git a/tests/ras-data/MissFldwy/MissFldwy.conflation.json b/tests/ras-data/MissFldwy/MissFldwy.conflation.json index a03b64b0..f31bcb33 100644 --- a/tests/ras-data/MissFldwy/MissFldwy.conflation.json +++ b/tests/ras-data/MissFldwy/MissFldwy.conflation.json @@ -1 +1,15304 @@ -{"5088542": {"us_xs": {"river": "Mississippi", "reach": "Kaskaskia Island", "min_elevation": 361.98, "max_elevation": 406.99, "xs_id": 115.76}, "ds_xs": {"river": "Mississippi", "reach": "Reach 2", "min_elevation": 319.51, "max_elevation": 399.99, "xs_id": 110.4}, "low_flow_cfs": 990, "high_flow_cfs": 43125, "nwm_to_id": "5089894", "source_nwm_reach": "nwm_flows_v3.parquet"}, "5088480": {"us_xs": {"river": "Mississippi", "reach": "Kaskaskia Island", "min_elevation": 366.35, "max_elevation": 411.54, "xs_id": 118.64}, "ds_xs": {"river": "Mississippi", "reach": "Kaskaskia Island", "min_elevation": 365.62, "max_elevation": 400.12, "xs_id": 117.92}, "low_flow_cfs": 363, "high_flow_cfs": 11864, "nwm_to_id": "5088488", "source_nwm_reach": "nwm_flows_v3.parquet"}, "5088488": {"us_xs": {"xs_id": "-9999"}, "low_flow_cfs": 360, "high_flow_cfs": 11782, "nwm_to_id": "5088524", "source_nwm_reach": "nwm_flows_v3.parquet"}, "5088536": {"us_xs": {"river": "Mississippi", "reach": "Kaskaskia Island", "min_elevation": 361.27, "max_elevation": 420.08, "xs_id": 116.88}, "ds_xs": {"river": "Mississippi", "reach": "Kaskaskia Island", "min_elevation": 361.98, "max_elevation": 406.99, "xs_id": 115.76}, "low_flow_cfs": 986, "high_flow_cfs": 44071, "nwm_to_id": "5088542", "source_nwm_reach": "nwm_flows_v3.parquet"}, "5088524": {"us_xs": {"river": "Mississippi", "reach": "Kaskaskia Island", "min_elevation": 365.62, "max_elevation": 400.12, "xs_id": 117.92}, "ds_xs": {"river": "Mississippi", "reach": "Kaskaskia Island", "min_elevation": 361.27, "max_elevation": 420.08, "xs_id": 116.88}, "low_flow_cfs": 354, "high_flow_cfs": 11400, "nwm_to_id": "5088536", "source_nwm_reach": "nwm_flows_v3.parquet"}, "5089890": {"us_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 325.25, "max_elevation": 414.97, "xs_id": 115.24}, "ds_xs": {"river": "Mississippi", "reach": "Reach 2", "min_elevation": 315.74, "max_elevation": 400.13, "xs_id": 109.93}, "low_flow_cfs": 414689, "high_flow_cfs": 1896167, "nwm_to_id": "5089904", "source_nwm_reach": "nwm_flows_v3.parquet"}, "3630825": {"us_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 324.72, "max_elevation": 420.0, "xs_id": 122.72}, "ds_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 327.37, "max_elevation": 415.05, "xs_id": 122.13}, "low_flow_cfs": 410602, "high_flow_cfs": 1894358, "nwm_to_id": "3630829", "source_nwm_reach": "nwm_flows_v3.parquet"}, "3629943": {"us_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 316.63, "max_elevation": 409.49, "xs_id": 120.65}, "ds_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 323.78, "max_elevation": 407.23, "xs_id": 118.21}, "low_flow_cfs": 410618, "high_flow_cfs": 1894180, "nwm_to_id": "5090052", "source_nwm_reach": "nwm_flows_v3.parquet"}, "3630829": {"us_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 327.37, "max_elevation": 415.05, "xs_id": 122.13}, "ds_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 316.63, "max_elevation": 409.49, "xs_id": 120.65}, "low_flow_cfs": 410621, "high_flow_cfs": 1894453, "nwm_to_id": "3629943", "source_nwm_reach": "nwm_flows_v3.parquet"}, "5090052": {"us_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 323.78, "max_elevation": 407.23, "xs_id": 118.21}, "ds_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 321.76, "max_elevation": 410.09, "xs_id": 117.41}, "low_flow_cfs": 410621, "high_flow_cfs": 1894259, "nwm_to_id": "5089872", "source_nwm_reach": "nwm_flows_v3.parquet"}, "5089888": {"us_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 318.87, "max_elevation": 410.05, "xs_id": 115.76}, "ds_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 325.25, "max_elevation": 414.97, "xs_id": 115.24}, "low_flow_cfs": 414806, "high_flow_cfs": 1897788, "nwm_to_id": "5089890", "source_nwm_reach": "nwm_flows_v3.parquet"}, "5089872": {"us_xs": {"xs_id": "-9999"}, "low_flow_cfs": 410623, "high_flow_cfs": 1894306, "nwm_to_id": "5089868", "source_nwm_reach": "nwm_flows_v3.parquet"}, "5089870": {"us_xs": {"xs_id": "-9999"}, "low_flow_cfs": 414806, "high_flow_cfs": 1897908, "nwm_to_id": "5089880", "source_nwm_reach": "nwm_flows_v3.parquet"}, "5089868": {"us_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 321.76, "max_elevation": 410.09, "xs_id": 117.41}, "ds_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 291.5, "max_elevation": 409.99, "xs_id": 116.88}, "low_flow_cfs": 414808, "high_flow_cfs": 1897944, "nwm_to_id": "5089870", "source_nwm_reach": "nwm_flows_v3.parquet"}, "5089880": {"us_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 291.5, "max_elevation": 409.99, "xs_id": 116.88}, "ds_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 318.87, "max_elevation": 410.05, "xs_id": 115.76}, "low_flow_cfs": 414805, "high_flow_cfs": 1897835, "nwm_to_id": "5089888", "source_nwm_reach": "nwm_flows_v3.parquet"}, "3630823": {"us_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 327.08, "max_elevation": 410.19, "xs_id": 123.93}, "ds_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 324.72, "max_elevation": 420.0, "xs_id": 122.72}, "low_flow_cfs": 410601, "high_flow_cfs": 1894281, "nwm_to_id": "3630825", "source_nwm_reach": "nwm_flows_v3.parquet"}, "3629267": {"us_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 322.55, "max_elevation": 420.03, "xs_id": 125.6}, "ds_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 327.08, "max_elevation": 410.19, "xs_id": 123.93}, "low_flow_cfs": 410588, "high_flow_cfs": 1894334, "nwm_to_id": "3630817", "source_nwm_reach": "nwm_flows_v3.parquet"}, "3630817": {"us_xs": {"xs_id": "-9999"}, "low_flow_cfs": 410587, "high_flow_cfs": 1894296, "nwm_to_id": "3630823", "source_nwm_reach": "nwm_flows_v3.parquet"}, "3629263": {"us_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 328.45, "max_elevation": 420.04, "xs_id": 127.0}, "ds_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 322.55, "max_elevation": 420.03, "xs_id": 125.6}, "low_flow_cfs": 410587, "high_flow_cfs": 1894439, "nwm_to_id": "3629267", "source_nwm_reach": "nwm_flows_v3.parquet"}, "3629257": {"us_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 326.95, "max_elevation": 420.12, "xs_id": 128.0}, "ds_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 328.45, "max_elevation": 420.04, "xs_id": 127.0}, "low_flow_cfs": 410596, "high_flow_cfs": 1894603, "nwm_to_id": "3629263", "source_nwm_reach": "nwm_flows_v3.parquet"}, "3629237": {"us_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 335.24, "max_elevation": 420.06, "xs_id": 131.76}, "ds_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 332.74, "max_elevation": 420.0, "xs_id": 129.39}, "low_flow_cfs": 410449, "high_flow_cfs": 1894137, "nwm_to_id": "3629241", "source_nwm_reach": "nwm_flows_v3.parquet"}, "3624727": {"us_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 352.95, "max_elevation": 443.48, "xs_id": 183.38}, "ds_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 353.58, "max_elevation": 440.84, "xs_id": 180.77}, "low_flow_cfs": 406233, "high_flow_cfs": 1940520, "nwm_to_id": "3624735", "source_nwm_reach": "nwm_flows_v3.parquet"}, "3624705": {"us_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 366.06, "max_elevation": 447.78, "xs_id": 193.28}, "ds_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 374.13, "max_elevation": 457.36, "xs_id": 190.85}, "low_flow_cfs": 406051, "high_flow_cfs": 1941422, "nwm_to_id": "3624709", "source_nwm_reach": "nwm_flows_v3.parquet"}, "3624715": {"us_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 367.77, "max_elevation": 477.05, "xs_id": 188.88}, "ds_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 361.87, "max_elevation": 445.07, "xs_id": 186.82}, "low_flow_cfs": 406050, "high_flow_cfs": 1940720, "nwm_to_id": "3634823", "source_nwm_reach": "nwm_flows_v3.parquet"}, "3624723": {"us_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 363.39, "max_elevation": 479.33, "xs_id": 184.56}, "ds_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 352.95, "max_elevation": 443.48, "xs_id": 183.38}, "low_flow_cfs": 406190, "high_flow_cfs": 1940409, "nwm_to_id": "3624727", "source_nwm_reach": "nwm_flows_v3.parquet"}, "3629227": {"us_xs": {"xs_id": "-9999"}, "low_flow_cfs": 410427, "high_flow_cfs": 1894201, "nwm_to_id": "3629237", "source_nwm_reach": "nwm_flows_v3.parquet"}, "3629229": {"us_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 327.07, "max_elevation": 420.04, "xs_id": 133.31}, "ds_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 335.24, "max_elevation": 420.06, "xs_id": 131.76}, "low_flow_cfs": 410426, "high_flow_cfs": 1894221, "nwm_to_id": "3629227", "source_nwm_reach": "nwm_flows_v3.parquet"}, "3629247": {"us_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 328.99, "max_elevation": 420.07, "xs_id": 128.5}, "ds_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 326.95, "max_elevation": 420.12, "xs_id": 128.0}, "low_flow_cfs": 410592, "high_flow_cfs": 1894624, "nwm_to_id": "3629257", "source_nwm_reach": "nwm_flows_v3.parquet"}, "3629241": {"us_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 332.74, "max_elevation": 420.0, "xs_id": 129.39}, "ds_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 328.99, "max_elevation": 420.07, "xs_id": 128.5}, "low_flow_cfs": 410453, "high_flow_cfs": 1894191, "nwm_to_id": "3629247", "source_nwm_reach": "nwm_flows_v3.parquet"}, "3629217": {"us_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 334.0, "max_elevation": 423.0, "xs_id": 135.5}, "ds_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 334.79, "max_elevation": 420.21, "xs_id": 134.88}, "low_flow_cfs": 410439, "high_flow_cfs": 1894401, "nwm_to_id": "3629221", "source_nwm_reach": "nwm_flows_v3.parquet"}, "3629221": {"us_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 334.79, "max_elevation": 420.21, "xs_id": 134.88}, "ds_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 327.07, "max_elevation": 420.04, "xs_id": 133.31}, "low_flow_cfs": 410433, "high_flow_cfs": 1894296, "nwm_to_id": "3629229", "source_nwm_reach": "nwm_flows_v3.parquet"}, "3634869": {"us_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 367.39, "max_elevation": 445.89, "xs_id": 189.47}, "ds_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 367.77, "max_elevation": 477.05, "xs_id": 188.88}, "low_flow_cfs": 406063, "high_flow_cfs": 1941247, "nwm_to_id": "3624715", "source_nwm_reach": "nwm_flows_v3.parquet"}, "3624711": {"us_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 372.4, "max_elevation": 468.91, "xs_id": 190.29}, "ds_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 367.39, "max_elevation": 445.89, "xs_id": 189.47}, "low_flow_cfs": 406064, "high_flow_cfs": 1941228, "nwm_to_id": "3634869", "source_nwm_reach": "nwm_flows_v3.parquet"}, "3624709": {"us_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 374.13, "max_elevation": 457.36, "xs_id": 190.85}, "ds_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 372.4, "max_elevation": 468.91, "xs_id": 190.29}, "low_flow_cfs": 406064, "high_flow_cfs": 1941284, "nwm_to_id": "3624711", "source_nwm_reach": "nwm_flows_v3.parquet"}, "3629209": {"us_xs": {"xs_id": "-9999"}, "low_flow_cfs": 410435, "high_flow_cfs": 1894466, "nwm_to_id": "3629213", "source_nwm_reach": "nwm_flows_v3.parquet"}, "3629213": {"us_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 338.1, "max_elevation": 420.06, "xs_id": 136.0}, "ds_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 334.0, "max_elevation": 423.0, "xs_id": 135.5}, "low_flow_cfs": 410435, "high_flow_cfs": 1894442, "nwm_to_id": "3629217", "source_nwm_reach": "nwm_flows_v3.parquet"}, "3629205": {"us_xs": {"xs_id": "-9999"}, "low_flow_cfs": 410432, "high_flow_cfs": 1894456, "nwm_to_id": "3629209", "source_nwm_reach": "nwm_flows_v3.parquet"}, "3629197": {"us_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 331.49, "max_elevation": 419.99, "xs_id": 137.03}, "ds_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 338.87, "max_elevation": 419.91, "xs_id": 136.48}, "low_flow_cfs": 410367, "high_flow_cfs": 1894064, "nwm_to_id": "3629203", "source_nwm_reach": "nwm_flows_v3.parquet"}, "3629191": {"us_xs": {"xs_id": "-9999"}, "low_flow_cfs": 410365, "high_flow_cfs": 1894093, "nwm_to_id": "3629197", "source_nwm_reach": "nwm_flows_v3.parquet"}, "3629203": {"us_xs": {"xs_id": "-9999"}, "low_flow_cfs": 410367, "high_flow_cfs": 1894147, "nwm_to_id": "3629205", "source_nwm_reach": "nwm_flows_v3.parquet"}, "3629159": {"us_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 342.73, "max_elevation": 419.99, "xs_id": 145.82}, "ds_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 343.28, "max_elevation": 420.07, "xs_id": 145.35}, "low_flow_cfs": 410401, "high_flow_cfs": 1895131, "nwm_to_id": "3629163", "source_nwm_reach": "nwm_flows_v3.parquet"}, "3629155": {"us_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 336.47, "max_elevation": 419.99, "xs_id": 148.25}, "ds_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 342.73, "max_elevation": 419.99, "xs_id": 145.82}, "low_flow_cfs": 410399, "high_flow_cfs": 1895308, "nwm_to_id": "3629159", "source_nwm_reach": "nwm_flows_v3.parquet"}, "3629135": {"us_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 337.15, "max_elevation": 430.19, "xs_id": 151.14}, "ds_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 339.56, "max_elevation": 431.17, "xs_id": 150.19}, "low_flow_cfs": 410362, "high_flow_cfs": 1895760, "nwm_to_id": "3629147", "source_nwm_reach": "nwm_flows_v3.parquet"}, "3629147": {"us_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 339.56, "max_elevation": 431.17, "xs_id": 150.19}, "ds_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 336.47, "max_elevation": 419.99, "xs_id": 148.25}, "low_flow_cfs": 410359, "high_flow_cfs": 1895575, "nwm_to_id": "3629155", "source_nwm_reach": "nwm_flows_v3.parquet"}, "3629127": {"us_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 335.05, "max_elevation": 450.83, "xs_id": 152.94}, "ds_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 337.15, "max_elevation": 430.19, "xs_id": 151.14}, "low_flow_cfs": 410270, "high_flow_cfs": 1896331, "nwm_to_id": "3629135", "source_nwm_reach": "nwm_flows_v3.parquet"}, "3629119": {"us_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 341.08, "max_elevation": 442.28, "xs_id": 154.6}, "ds_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 335.05, "max_elevation": 450.83, "xs_id": 152.94}, "low_flow_cfs": 410279, "high_flow_cfs": 1896368, "nwm_to_id": "3629127", "source_nwm_reach": "nwm_flows_v3.parquet"}, "3629097": {"us_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 332.4, "max_elevation": 440.17, "xs_id": 156.02}, "ds_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 341.08, "max_elevation": 442.28, "xs_id": 154.6}, "low_flow_cfs": 410282, "high_flow_cfs": 1896594, "nwm_to_id": "3629119", "source_nwm_reach": "nwm_flows_v3.parquet"}, "3629089": {"us_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 340.37, "max_elevation": 440.05, "xs_id": 156.52}, "ds_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 332.4, "max_elevation": 440.17, "xs_id": 156.02}, "low_flow_cfs": 410266, "high_flow_cfs": 1896262, "nwm_to_id": "3629097", "source_nwm_reach": "nwm_flows_v3.parquet"}, "3629083": {"us_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 340.17, "max_elevation": 434.49, "xs_id": 158.67}, "ds_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 340.37, "max_elevation": 440.05, "xs_id": 156.52}, "low_flow_cfs": 410260, "high_flow_cfs": 1896429, "nwm_to_id": "3629089", "source_nwm_reach": "nwm_flows_v3.parquet"}, "3629077": {"us_xs": {"xs_id": "-9999"}, "low_flow_cfs": 410264, "high_flow_cfs": 1896906, "nwm_to_id": "3629083", "source_nwm_reach": "nwm_flows_v3.parquet"}, "3629073": {"us_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 349.56, "max_elevation": 439.82, "xs_id": 160.71}, "ds_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 340.17, "max_elevation": 434.49, "xs_id": 158.67}, "low_flow_cfs": 410262, "high_flow_cfs": 1896903, "nwm_to_id": "3629077", "source_nwm_reach": "nwm_flows_v3.parquet"}, "3629067": {"us_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 347.54, "max_elevation": 440.13, "xs_id": 165.25}, "ds_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 347.44, "max_elevation": 440.0, "xs_id": 162.99}, "low_flow_cfs": 406724, "high_flow_cfs": 1935829, "nwm_to_id": "3629071", "source_nwm_reach": "nwm_flows_v3.parquet"}, "3629071": {"us_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 347.44, "max_elevation": 440.0, "xs_id": 162.99}, "ds_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 349.56, "max_elevation": 439.82, "xs_id": 160.71}, "low_flow_cfs": 406704, "high_flow_cfs": 1935536, "nwm_to_id": "3629073", "source_nwm_reach": "nwm_flows_v3.parquet"}, "3629065": {"us_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 352.19, "max_elevation": 440.04, "xs_id": 167.52}, "ds_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 347.54, "max_elevation": 440.13, "xs_id": 165.25}, "low_flow_cfs": 406718, "high_flow_cfs": 1936056, "nwm_to_id": "3629067", "source_nwm_reach": "nwm_flows_v3.parquet"}, "3624747": {"us_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 357.65, "max_elevation": 444.56, "xs_id": 171.46}, "ds_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 351.56, "max_elevation": 440.0, "xs_id": 169.79}, "low_flow_cfs": 406690, "high_flow_cfs": 1936295, "nwm_to_id": "3629053", "source_nwm_reach": "nwm_flows_v3.parquet"}, "3629055": {"us_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 356.71, "max_elevation": 452.06, "xs_id": 168.92}, "ds_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 353.16, "max_elevation": 440.06, "xs_id": 168.13}, "low_flow_cfs": 406692, "high_flow_cfs": 1936278, "nwm_to_id": "3629059", "source_nwm_reach": "nwm_flows_v3.parquet"}, "3629053": {"us_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 351.56, "max_elevation": 440.0, "xs_id": 169.79}, "ds_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 356.71, "max_elevation": 452.06, "xs_id": 168.92}, "low_flow_cfs": 406691, "high_flow_cfs": 1936304, "nwm_to_id": "3629055", "source_nwm_reach": "nwm_flows_v3.parquet"}, "3629059": {"us_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 353.16, "max_elevation": 440.06, "xs_id": 168.13}, "ds_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 352.19, "max_elevation": 440.04, "xs_id": 167.52}, "low_flow_cfs": 406713, "high_flow_cfs": 1936231, "nwm_to_id": "3629065", "source_nwm_reach": "nwm_flows_v3.parquet"}, "3624745": {"us_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 355.5, "max_elevation": 454.49, "xs_id": 171.88}, "ds_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 357.65, "max_elevation": 444.56, "xs_id": 171.46}, "low_flow_cfs": 406671, "high_flow_cfs": 1936382, "nwm_to_id": "3624747", "source_nwm_reach": "nwm_flows_v3.parquet"}, "3624739": {"us_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 346.52, "max_elevation": 457.44, "xs_id": 174.0}, "ds_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 355.5, "max_elevation": 454.49, "xs_id": 171.88}, "low_flow_cfs": 406287, "high_flow_cfs": 1935839, "nwm_to_id": "3624745", "source_nwm_reach": "nwm_flows_v3.parquet"}, "3624735": {"us_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 353.58, "max_elevation": 440.84, "xs_id": 180.77}, "ds_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 346.52, "max_elevation": 457.44, "xs_id": 174.0}, "low_flow_cfs": 406180, "high_flow_cfs": 1935727, "nwm_to_id": "3624739", "gage": "07010000", "gage_url": "https://waterdata.usgs.gov/nwis/uv?site_no=07010000&legacy=1", "source_nwm_reach": "nwm_flows_v3.parquet"}, "3629187": {"us_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 339.0, "max_elevation": 419.94, "xs_id": 139.01}, "ds_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 331.49, "max_elevation": 419.99, "xs_id": 137.03}, "low_flow_cfs": 410328, "high_flow_cfs": 1894002, "nwm_to_id": "3629191", "source_nwm_reach": "nwm_flows_v3.parquet"}, "3629181": {"us_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 325.27, "max_elevation": 423.01, "xs_id": 140.47}, "ds_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 339.0, "max_elevation": 419.94, "xs_id": 139.01}, "low_flow_cfs": 410340, "high_flow_cfs": 1894136, "nwm_to_id": "3629319", "source_nwm_reach": "nwm_flows_v3.parquet"}, "3629173": {"us_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 335.82, "max_elevation": 420.07, "xs_id": 143.8}, "ds_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 325.27, "max_elevation": 423.01, "xs_id": 140.47}, "low_flow_cfs": 410346, "high_flow_cfs": 1894342, "nwm_to_id": "3629181", "source_nwm_reach": "nwm_flows_v3.parquet"}, "3629163": {"us_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 343.28, "max_elevation": 420.07, "xs_id": 145.35}, "ds_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 335.82, "max_elevation": 420.07, "xs_id": 143.8}, "low_flow_cfs": 410393, "high_flow_cfs": 1895150, "nwm_to_id": "3629173", "source_nwm_reach": "nwm_flows_v3.parquet"}, "3629319": {"us_xs": {"xs_id": "-9999"}, "low_flow_cfs": 410340, "high_flow_cfs": 1894197, "nwm_to_id": "3629183", "source_nwm_reach": "nwm_flows_v3.parquet"}, "3634823": {"us_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 361.87, "max_elevation": 445.07, "xs_id": 186.82}, "ds_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 363.39, "max_elevation": 479.33, "xs_id": 184.56}, "low_flow_cfs": 406195, "high_flow_cfs": 1940653, "nwm_to_id": "3624723", "source_nwm_reach": "nwm_flows_v3.parquet"}, "3629183": {"us_xs": {"xs_id": "-9999"}, "low_flow_cfs": 410340, "high_flow_cfs": 1894238, "nwm_to_id": "3629187", "source_nwm_reach": "nwm_flows_v3.parquet"}, "2927567": {"us_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 432.29, "max_elevation": 512.5, "xs_id": 300.63}, "ds_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 429.48, "max_elevation": 520.88, "xs_id": 300.04}, "low_flow_cfs": 171366, "high_flow_cfs": 772535, "nwm_to_id": "2927571", "source_nwm_reach": "nwm_flows_v3.parquet"}, "2927571": {"us_xs": {"xs_id": "-9999"}, "low_flow_cfs": 171366, "high_flow_cfs": 772540, "nwm_to_id": "2927581", "source_nwm_reach": "nwm_flows_v3.parquet"}, "2927691": {"us_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 424.06, "max_elevation": 500.12, "xs_id": 290.6}, "ds_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 432.98, "max_elevation": 509.25, "xs_id": 290.2}, "low_flow_cfs": 171356, "high_flow_cfs": 772341, "nwm_to_id": "2927819", "source_nwm_reach": "nwm_flows_v3.parquet"}, "2927597": {"us_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 430.23, "max_elevation": 514.08, "xs_id": 294.55}, "ds_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 421.76, "max_elevation": 507.96, "xs_id": 293.86}, "low_flow_cfs": 171360, "high_flow_cfs": 772435, "nwm_to_id": "2927699", "source_nwm_reach": "nwm_flows_v3.parquet"}, "2927711": {"us_xs": {"xs_id": "-9999"}, "low_flow_cfs": 171361, "high_flow_cfs": 772423, "nwm_to_id": "2927597", "source_nwm_reach": "nwm_flows_v3.parquet"}, "2927727": {"us_xs": {"xs_id": "-9999"}, "low_flow_cfs": 171364, "high_flow_cfs": 772472, "nwm_to_id": "2927713", "source_nwm_reach": "nwm_flows_v3.parquet"}, "2927713": {"us_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 420.66, "max_elevation": 523.35, "xs_id": 296.15}, "ds_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 430.23, "max_elevation": 514.08, "xs_id": 294.55}, "low_flow_cfs": 171361, "high_flow_cfs": 772434, "nwm_to_id": "2927711", "source_nwm_reach": "nwm_flows_v3.parquet"}, "2927699": {"us_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 421.76, "max_elevation": 507.96, "xs_id": 293.86}, "ds_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 417.67, "max_elevation": 497.01, "xs_id": 293.37}, "low_flow_cfs": 171360, "high_flow_cfs": 772404, "nwm_to_id": "2927601", "source_nwm_reach": "nwm_flows_v3.parquet"}, "2927697": {"us_xs": {"xs_id": "-9999"}, "low_flow_cfs": 171359, "high_flow_cfs": 772378, "nwm_to_id": "2927689", "source_nwm_reach": "nwm_flows_v3.parquet"}, "2927689": {"us_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 424.96, "max_elevation": 505.51, "xs_id": 292.57}, "ds_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 424.06, "max_elevation": 500.12, "xs_id": 290.6}, "low_flow_cfs": 171356, "high_flow_cfs": 772334, "nwm_to_id": "2927691", "source_nwm_reach": "nwm_flows_v3.parquet"}, "2927819": {"us_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 432.98, "max_elevation": 509.25, "xs_id": 290.2}, "ds_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 436.34, "max_elevation": 500.34, "xs_id": 289.49}, "low_flow_cfs": 171355, "high_flow_cfs": 772322, "nwm_to_id": "2927611", "source_nwm_reach": "nwm_flows_v3.parquet"}, "2927589": {"us_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 428.16, "max_elevation": 520.15, "xs_id": 297.81}, "ds_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 420.66, "max_elevation": 523.35, "xs_id": 296.15}, "low_flow_cfs": 171364, "high_flow_cfs": 772473, "nwm_to_id": "2927727", "source_nwm_reach": "nwm_flows_v3.parquet"}, "2927601": {"us_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 417.67, "max_elevation": 497.01, "xs_id": 293.37}, "ds_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 424.96, "max_elevation": 505.51, "xs_id": 292.57}, "low_flow_cfs": 171360, "high_flow_cfs": 772386, "nwm_to_id": "2927697", "source_nwm_reach": "nwm_flows_v3.parquet"}, "2927581": {"us_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 429.48, "max_elevation": 520.88, "xs_id": 300.04}, "ds_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 428.16, "max_elevation": 520.15, "xs_id": 297.81}, "low_flow_cfs": 171366, "high_flow_cfs": 772496, "nwm_to_id": "2927589", "source_nwm_reach": "nwm_flows_v3.parquet"}, "2932183": {"us_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 424.46, "max_elevation": 498.88, "xs_id": 280.18}, "ds_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 425.19, "max_elevation": 497.21, "xs_id": 279.63}, "low_flow_cfs": 172161, "high_flow_cfs": 783905, "nwm_to_id": "2930505", "source_nwm_reach": "nwm_flows_v3.parquet"}, "2930505": {"us_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 425.19, "max_elevation": 497.21, "xs_id": 279.63}, "ds_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 424.44, "max_elevation": 503.69, "xs_id": 279.08}, "low_flow_cfs": 172161, "high_flow_cfs": 783896, "nwm_to_id": "2931037", "source_nwm_reach": "nwm_flows_v3.parquet"}, "2932177": {"us_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 408.14, "max_elevation": 500.3, "xs_id": 282.09}, "ds_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 424.46, "max_elevation": 498.88, "xs_id": 280.18}, "low_flow_cfs": 172157, "high_flow_cfs": 783981, "nwm_to_id": "2932183", "source_nwm_reach": "nwm_flows_v3.parquet"}, "2932173": {"us_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 411.59, "max_elevation": 501.46, "xs_id": 283.75}, "ds_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 408.14, "max_elevation": 500.3, "xs_id": 282.09}, "low_flow_cfs": 172149, "high_flow_cfs": 784022, "nwm_to_id": "2932177", "source_nwm_reach": "nwm_flows_v3.parquet"}, "2927615": {"us_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 427.62, "max_elevation": 501.34, "xs_id": 286.72}, "ds_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 419.51, "max_elevation": 501.61, "xs_id": 286.17}, "low_flow_cfs": 171353, "high_flow_cfs": 772268, "nwm_to_id": "2932155", "source_nwm_reach": "nwm_flows_v3.parquet"}, "2932155": {"us_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 419.51, "max_elevation": 501.61, "xs_id": 286.17}, "ds_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 413.26, "max_elevation": 496.23, "xs_id": 285.59}, "low_flow_cfs": 171353, "high_flow_cfs": 772270, "nwm_to_id": "2932159", "source_nwm_reach": "nwm_flows_v3.parquet"}, "2927645": {"us_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 426.45, "max_elevation": 498.29, "xs_id": 287.31}, "ds_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 427.62, "max_elevation": 501.34, "xs_id": 286.72}, "low_flow_cfs": 171353, "high_flow_cfs": 772283, "nwm_to_id": "2927615", "source_nwm_reach": "nwm_flows_v3.parquet"}, "2927667": {"us_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 425.38, "max_elevation": 507.35, "xs_id": 288.87}, "ds_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 420.01, "max_elevation": 498.12, "xs_id": 287.89}, "low_flow_cfs": 171355, "high_flow_cfs": 772284, "nwm_to_id": "2927647", "source_nwm_reach": "nwm_flows_v3.parquet"}, "2927611": {"us_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 436.34, "max_elevation": 500.34, "xs_id": 289.49}, "ds_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 425.38, "max_elevation": 507.35, "xs_id": 288.87}, "low_flow_cfs": 171356, "high_flow_cfs": 772311, "nwm_to_id": "2927613", "source_nwm_reach": "nwm_flows_v3.parquet"}, "2927613": {"us_xs": {"xs_id": "-9999"}, "low_flow_cfs": 171356, "high_flow_cfs": 772310, "nwm_to_id": "2927667", "source_nwm_reach": "nwm_flows_v3.parquet"}, "2927647": {"us_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 420.01, "max_elevation": 498.12, "xs_id": 287.89}, "ds_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 426.45, "max_elevation": 498.29, "xs_id": 287.31}, "low_flow_cfs": 171353, "high_flow_cfs": 772283, "nwm_to_id": "2927645", "source_nwm_reach": "nwm_flows_v3.parquet"}, "2931037": {"us_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 424.44, "max_elevation": 503.69, "xs_id": 279.08}, "ds_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 418.92, "max_elevation": 499.6, "xs_id": 278.67}, "low_flow_cfs": 172161, "high_flow_cfs": 783884, "nwm_to_id": "2930867", "source_nwm_reach": "nwm_flows_v3.parquet"}, "2932159": {"us_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 413.26, "max_elevation": 496.23, "xs_id": 285.59}, "ds_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 408.16, "max_elevation": 500.73, "xs_id": 285.0}, "low_flow_cfs": 171353, "high_flow_cfs": 772255, "nwm_to_id": "2932231", "source_nwm_reach": "nwm_flows_v3.parquet"}, "2932231": {"us_xs": {"xs_id": "-9999"}, "low_flow_cfs": 171353, "high_flow_cfs": 772268, "nwm_to_id": "2932165", "source_nwm_reach": "nwm_flows_v3.parquet"}, "2932171": {"us_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 416.73, "max_elevation": 493.34, "xs_id": 284.4}, "ds_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 411.59, "max_elevation": 501.46, "xs_id": 283.75}, "low_flow_cfs": 171352, "high_flow_cfs": 772250, "nwm_to_id": "2932173", "source_nwm_reach": "nwm_flows_v3.parquet"}, "2932209": {"us_xs": {"xs_id": "-9999"}, "low_flow_cfs": 171353, "high_flow_cfs": 772276, "nwm_to_id": "2932171", "source_nwm_reach": "nwm_flows_v3.parquet"}, "2932165": {"us_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 408.16, "max_elevation": 500.73, "xs_id": 285.0}, "ds_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 416.73, "max_elevation": 493.34, "xs_id": 284.4}, "low_flow_cfs": 171353, "high_flow_cfs": 772274, "nwm_to_id": "2932209", "source_nwm_reach": "nwm_flows_v3.parquet"}, "2930531": {"us_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 420.55, "max_elevation": 506.24, "xs_id": 275.55}, "ds_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 419.68, "max_elevation": 482.49, "xs_id": 275.0}, "low_flow_cfs": 172157, "high_flow_cfs": 783796, "nwm_to_id": "2931035", "source_nwm_reach": "nwm_flows_v3.parquet"}, "2930511": {"us_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 431.18, "max_elevation": 500.34, "xs_id": 277.57}, "ds_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 423.65, "max_elevation": 505.12, "xs_id": 276.86}, "low_flow_cfs": 172160, "high_flow_cfs": 783856, "nwm_to_id": "2930871", "source_nwm_reach": "nwm_flows_v3.parquet"}, "2930871": {"us_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 423.65, "max_elevation": 505.12, "xs_id": 276.86}, "ds_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 420.55, "max_elevation": 506.24, "xs_id": 275.55}, "low_flow_cfs": 172157, "high_flow_cfs": 783813, "nwm_to_id": "2930531", "source_nwm_reach": "nwm_flows_v3.parquet"}, "2930875": {"us_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 415.51, "max_elevation": 504.13, "xs_id": 273.84}, "ds_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 408.21, "max_elevation": 520.45, "xs_id": 273.53}, "low_flow_cfs": 172160, "high_flow_cfs": 783750, "nwm_to_id": "2930553", "source_nwm_reach": "nwm_flows_v3.parquet"}, "2930553": {"us_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 408.21, "max_elevation": 520.45, "xs_id": 273.53}, "ds_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 391.01, "max_elevation": 516.78, "xs_id": 273.32}, "low_flow_cfs": 172160, "high_flow_cfs": 783750, "nwm_to_id": "2930557", "source_nwm_reach": "nwm_flows_v3.parquet"}, "2930557": {"us_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 391.01, "max_elevation": 516.78, "xs_id": 273.32}, "ds_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 401.99, "max_elevation": 496.24, "xs_id": 272.98}, "low_flow_cfs": 172160, "high_flow_cfs": 783751, "nwm_to_id": "2931045", "source_nwm_reach": "nwm_flows_v3.parquet"}, "2930905": {"us_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 415.69, "max_elevation": 504.07, "xs_id": 268.76}, "ds_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 417.49, "max_elevation": 516.25, "xs_id": 267.62}, "low_flow_cfs": 172159, "high_flow_cfs": 783614, "nwm_to_id": "2930907", "source_nwm_reach": "nwm_flows_v3.parquet"}, "2930909": {"us_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 417.49, "max_elevation": 516.25, "xs_id": 267.62}, "ds_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 419.05, "max_elevation": 486.23, "xs_id": 267.22}, "low_flow_cfs": 172159, "high_flow_cfs": 783625, "nwm_to_id": "2930569", "source_nwm_reach": "nwm_flows_v3.parquet"}, "2930569": {"us_xs": {"xs_id": "-9999"}, "low_flow_cfs": 172159, "high_flow_cfs": 783635, "nwm_to_id": "2930577", "source_nwm_reach": "nwm_flows_v3.parquet"}, "2930907": {"us_xs": {"xs_id": "-9999"}, "low_flow_cfs": 172159, "high_flow_cfs": 783610, "nwm_to_id": "2930909", "source_nwm_reach": "nwm_flows_v3.parquet"}, "2930577": {"us_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 419.05, "max_elevation": 486.23, "xs_id": 267.22}, "ds_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 415.8, "max_elevation": 480.15, "xs_id": 265.59}, "low_flow_cfs": 172156, "high_flow_cfs": 783577, "nwm_to_id": "2930581", "source_nwm_reach": "nwm_flows_v3.parquet"}, "2930543": {"us_xs": {"xs_id": "-9999"}, "low_flow_cfs": 172158, "high_flow_cfs": 783784, "nwm_to_id": "2930875", "source_nwm_reach": "nwm_flows_v3.parquet"}, "2930867": {"us_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 418.92, "max_elevation": 499.6, "xs_id": 278.67}, "ds_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 431.18, "max_elevation": 500.34, "xs_id": 277.57}, "low_flow_cfs": 172160, "high_flow_cfs": 783868, "nwm_to_id": "2930511", "source_nwm_reach": "nwm_flows_v3.parquet"}, "2931043": {"us_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 420.16, "max_elevation": 510.2, "xs_id": 269.91}, "ds_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 421.09, "max_elevation": 507.6, "xs_id": 269.31}, "low_flow_cfs": 172157, "high_flow_cfs": 783623, "nwm_to_id": "2930887", "source_nwm_reach": "nwm_flows_v3.parquet"}, "2930559": {"us_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 416.58, "max_elevation": 509.04, "xs_id": 270.98}, "ds_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 419.76, "max_elevation": 506.29, "xs_id": 270.45}, "low_flow_cfs": 172158, "high_flow_cfs": 783661, "nwm_to_id": "2931041", "source_nwm_reach": "nwm_flows_v3.parquet"}, "2931041": {"us_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 419.76, "max_elevation": 506.29, "xs_id": 270.45}, "ds_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 420.16, "max_elevation": 510.2, "xs_id": 269.91}, "low_flow_cfs": 172158, "high_flow_cfs": 783666, "nwm_to_id": "2931043", "source_nwm_reach": "nwm_flows_v3.parquet"}, "2930889": {"us_xs": {"xs_id": "-9999"}, "low_flow_cfs": 172159, "high_flow_cfs": 783655, "nwm_to_id": "2930905", "source_nwm_reach": "nwm_flows_v3.parquet"}, "2930565": {"us_xs": {"xs_id": "-9999"}, "low_flow_cfs": 172159, "high_flow_cfs": 783637, "nwm_to_id": "2931051", "source_nwm_reach": "nwm_flows_v3.parquet"}, "2931051": {"us_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 421.09, "max_elevation": 507.6, "xs_id": 269.31}, "ds_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 415.69, "max_elevation": 504.07, "xs_id": 268.76}, "low_flow_cfs": 172159, "high_flow_cfs": 783654, "nwm_to_id": "2930889", "source_nwm_reach": "nwm_flows_v3.parquet"}, "2930887": {"us_xs": {"xs_id": "-9999"}, "low_flow_cfs": 172159, "high_flow_cfs": 783622, "nwm_to_id": "2930565", "source_nwm_reach": "nwm_flows_v3.parquet"}, "2931045": {"us_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 401.99, "max_elevation": 496.24, "xs_id": 272.98}, "ds_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 416.58, "max_elevation": 509.04, "xs_id": 270.98}, "low_flow_cfs": 172158, "high_flow_cfs": 783658, "nwm_to_id": "2930559", "source_nwm_reach": "nwm_flows_v3.parquet"}, "2931035": {"us_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 419.68, "max_elevation": 482.49, "xs_id": 275.0}, "ds_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 415.51, "max_elevation": 504.13, "xs_id": 273.84}, "low_flow_cfs": 172158, "high_flow_cfs": 783778, "nwm_to_id": "2930543", "source_nwm_reach": "nwm_flows_v3.parquet"}, "2932881": {"us_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 396.46, "max_elevation": 484.5, "xs_id": 238.19}, "ds_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 398.66, "max_elevation": 477.44, "xs_id": 237.56}, "low_flow_cfs": 172243, "high_flow_cfs": 777268, "nwm_to_id": "2932885", "source_nwm_reach": "nwm_flows_v3.parquet"}, "2932885": {"us_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 398.66, "max_elevation": 477.44, "xs_id": 237.56}, "ds_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 401.84, "max_elevation": 494.13, "xs_id": 237.0}, "low_flow_cfs": 172243, "high_flow_cfs": 777266, "nwm_to_id": "2932901", "source_nwm_reach": "nwm_flows_v3.parquet"}, "2932869": {"us_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 399.49, "max_elevation": 487.08, "xs_id": 240.1}, "ds_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 397.34, "max_elevation": 476.14, "xs_id": 239.58}, "low_flow_cfs": 172244, "high_flow_cfs": 777285, "nwm_to_id": "2932905", "source_nwm_reach": "nwm_flows_v3.parquet"}, "2930771": {"us_xs": {"xs_id": "-9999"}, "low_flow_cfs": 172246, "high_flow_cfs": 777286, "nwm_to_id": "2932865", "source_nwm_reach": "nwm_flows_v3.parquet"}, "2932865": {"us_xs": {"xs_id": "-9999"}, "low_flow_cfs": 172246, "high_flow_cfs": 777307, "nwm_to_id": "2932869", "source_nwm_reach": "nwm_flows_v3.parquet"}, "2930761": {"us_xs": {"xs_id": "-9999"}, "low_flow_cfs": 172244, "high_flow_cfs": 777838, "nwm_to_id": "2930763", "source_nwm_reach": "nwm_flows_v3.parquet"}, "2930767": {"us_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 402.6, "max_elevation": 510.14, "xs_id": 241.33}, "ds_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 389.8, "max_elevation": 493.29, "xs_id": 240.64}, "low_flow_cfs": 172244, "high_flow_cfs": 777828, "nwm_to_id": "2930771", "source_nwm_reach": "nwm_flows_v3.parquet"}, "2930763": {"us_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 405.36, "max_elevation": 517.31, "xs_id": 241.49}, "ds_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 402.6, "max_elevation": 510.14, "xs_id": 241.33}, "low_flow_cfs": 172244, "high_flow_cfs": 777839, "nwm_to_id": "2930767", "source_nwm_reach": "nwm_flows_v3.parquet"}, "2930625": {"us_xs": {"xs_id": "-9999"}, "low_flow_cfs": 172258, "high_flow_cfs": 777935, "nwm_to_id": "2938449", "source_nwm_reach": "nwm_flows_v3.parquet"}, "2930607": {"us_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 402.42, "max_elevation": 493.6, "xs_id": 257.57}, "ds_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 419.8, "max_elevation": 486.19, "xs_id": 256.95}, "low_flow_cfs": 172260, "high_flow_cfs": 777963, "nwm_to_id": "2938441", "source_nwm_reach": "nwm_flows_v3.parquet"}, "2930601": {"us_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 404.67, "max_elevation": 500.08, "xs_id": 258.72}, "ds_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 400.6, "max_elevation": 496.17, "xs_id": 258.0}, "low_flow_cfs": 172260, "high_flow_cfs": 778010, "nwm_to_id": "2930603", "source_nwm_reach": "nwm_flows_v3.parquet"}, "2930593": {"us_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 404.16, "max_elevation": 491.53, "xs_id": 260.68}, "ds_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 404.67, "max_elevation": 500.08, "xs_id": 258.72}, "low_flow_cfs": 172232, "high_flow_cfs": 778167, "nwm_to_id": "2930601", "source_nwm_reach": "nwm_flows_v3.parquet"}, "2930981": {"us_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 399.35, "max_elevation": 479.65, "xs_id": 246.0}, "ds_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 390.44, "max_elevation": 495.85, "xs_id": 244.67}, "low_flow_cfs": 172250, "high_flow_cfs": 777894, "nwm_to_id": "2930749", "source_nwm_reach": "nwm_flows_v3.parquet"}, "2930749": {"us_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 390.44, "max_elevation": 495.85, "xs_id": 244.67}, "ds_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 410.7, "max_elevation": 493.4, "xs_id": 243.22}, "low_flow_cfs": 172248, "high_flow_cfs": 777905, "nwm_to_id": "2930759", "source_nwm_reach": "nwm_flows_v3.parquet"}, "2930759": {"us_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 410.7, "max_elevation": 493.4, "xs_id": 243.22}, "ds_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 405.36, "max_elevation": 517.31, "xs_id": 241.49}, "low_flow_cfs": 172244, "high_flow_cfs": 777908, "nwm_to_id": "2930761", "source_nwm_reach": "nwm_flows_v3.parquet"}, "2930639": {"us_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 415.44, "max_elevation": 461.53, "xs_id": 254.68}, "ds_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 393.54, "max_elevation": 479.99, "xs_id": 252.67}, "low_flow_cfs": 172253, "high_flow_cfs": 777933, "nwm_to_id": "2938505", "source_nwm_reach": "nwm_flows_v3.parquet"}, "2930603": {"us_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 400.6, "max_elevation": 496.17, "xs_id": 258.0}, "ds_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 402.42, "max_elevation": 493.6, "xs_id": 257.57}, "low_flow_cfs": 172260, "high_flow_cfs": 777991, "nwm_to_id": "2930607", "source_nwm_reach": "nwm_flows_v3.parquet"}, "2932901": {"us_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 401.84, "max_elevation": 494.13, "xs_id": 237.0}, "ds_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 398.17, "max_elevation": 477.05, "xs_id": 236.39}, "low_flow_cfs": 172243, "high_flow_cfs": 777262, "nwm_to_id": "2932893", "source_nwm_reach": "nwm_flows_v3.parquet"}, "2932905": {"us_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 397.34, "max_elevation": 476.14, "xs_id": 239.58}, "ds_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 401.96, "max_elevation": 448.12, "xs_id": 238.59}, "low_flow_cfs": 172244, "high_flow_cfs": 777271, "nwm_to_id": "2932873", "source_nwm_reach": "nwm_flows_v3.parquet"}, "2930591": {"us_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 415.93, "max_elevation": 496.65, "xs_id": 261.41}, "ds_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 404.16, "max_elevation": 491.53, "xs_id": 260.68}, "low_flow_cfs": 172170, "high_flow_cfs": 783235, "nwm_to_id": "2930593", "source_nwm_reach": "nwm_flows_v3.parquet"}, "2938441": {"us_xs": {"xs_id": "-9999"}, "low_flow_cfs": 172260, "high_flow_cfs": 777926, "nwm_to_id": "2938445", "source_nwm_reach": "nwm_flows_v3.parquet"}, "2938445": {"us_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 419.8, "max_elevation": 486.19, "xs_id": 256.95}, "ds_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 411.5, "max_elevation": 501.52, "xs_id": 256.4}, "low_flow_cfs": 172260, "high_flow_cfs": 777945, "nwm_to_id": "2930621", "source_nwm_reach": "nwm_flows_v3.parquet"}, "2938449": {"us_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 413.86, "max_elevation": 479.05, "xs_id": 255.26}, "ds_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 415.44, "max_elevation": 461.53, "xs_id": 254.68}, "low_flow_cfs": 172258, "high_flow_cfs": 777909, "nwm_to_id": "2930639", "source_nwm_reach": "nwm_flows_v3.parquet"}, "2938455": {"us_xs": {"xs_id": "-9999"}, "low_flow_cfs": 172252, "high_flow_cfs": 777939, "nwm_to_id": "2930679", "source_nwm_reach": "nwm_flows_v3.parquet"}, "2930651": {"us_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 408.91, "max_elevation": 488.88, "xs_id": 250.85}, "ds_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 395.42, "max_elevation": 494.0, "xs_id": 250.38}, "low_flow_cfs": 172252, "high_flow_cfs": 777943, "nwm_to_id": "2938455", "source_nwm_reach": "nwm_flows_v3.parquet"}, "2938461": {"us_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 402.0, "max_elevation": 494.0, "xs_id": 250.0}, "ds_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 399.48, "max_elevation": 488.64, "xs_id": 248.87}, "low_flow_cfs": 172251, "high_flow_cfs": 777930, "nwm_to_id": "2930705", "source_nwm_reach": "nwm_flows_v3.parquet"}, "2930713": {"us_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 400.22, "max_elevation": 492.19, "xs_id": 247.69}, "ds_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 384.94, "max_elevation": 497.39, "xs_id": 247.09}, "low_flow_cfs": 172250, "high_flow_cfs": 777893, "nwm_to_id": "2938477", "source_nwm_reach": "nwm_flows_v3.parquet"}, "2938477": {"us_xs": {"xs_id": "-9999"}, "low_flow_cfs": 172251, "high_flow_cfs": 777900, "nwm_to_id": "2930719", "source_nwm_reach": "nwm_flows_v3.parquet"}, "2930709": {"us_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 402.45, "max_elevation": 468.81, "xs_id": 248.22}, "ds_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 400.22, "max_elevation": 492.19, "xs_id": 247.69}, "low_flow_cfs": 172251, "high_flow_cfs": 777896, "nwm_to_id": "2930713", "source_nwm_reach": "nwm_flows_v3.parquet"}, "2931017": {"us_xs": {"xs_id": "-9999"}, "low_flow_cfs": 172250, "high_flow_cfs": 777881, "nwm_to_id": "2930981", "source_nwm_reach": "nwm_flows_v3.parquet"}, "2930723": {"us_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 402.82, "max_elevation": 511.2, "xs_id": 246.56}, "ds_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 399.35, "max_elevation": 479.65, "xs_id": 246.0}, "low_flow_cfs": 172250, "high_flow_cfs": 777887, "nwm_to_id": "2931017", "source_nwm_reach": "nwm_flows_v3.parquet"}, "2930649": {"us_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 414.11, "max_elevation": 491.07, "xs_id": 251.22}, "ds_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 408.91, "max_elevation": 488.88, "xs_id": 250.85}, "low_flow_cfs": 172252, "high_flow_cfs": 777954, "nwm_to_id": "2930651", "source_nwm_reach": "nwm_flows_v3.parquet"}, "2938505": {"us_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 393.54, "max_elevation": 479.99, "xs_id": 252.67}, "ds_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 410.29, "max_elevation": 494.07, "xs_id": 252.19}, "low_flow_cfs": 172253, "high_flow_cfs": 777942, "nwm_to_id": "2938507", "source_nwm_reach": "nwm_flows_v3.parquet"}, "2938507": {"us_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 410.29, "max_elevation": 494.07, "xs_id": 252.19}, "ds_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 414.11, "max_elevation": 491.07, "xs_id": 251.22}, "low_flow_cfs": 172253, "high_flow_cfs": 777944, "nwm_to_id": "2930649", "source_nwm_reach": "nwm_flows_v3.parquet"}, "2932875": {"us_xs": {"xs_id": "-9999"}, "low_flow_cfs": 172244, "high_flow_cfs": 777291, "nwm_to_id": "2932881", "source_nwm_reach": "nwm_flows_v3.parquet"}, "2932873": {"us_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 401.96, "max_elevation": 448.12, "xs_id": 238.59}, "ds_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 396.46, "max_elevation": 484.5, "xs_id": 238.19}, "low_flow_cfs": 172243, "high_flow_cfs": 777291, "nwm_to_id": "2932875", "source_nwm_reach": "nwm_flows_v3.parquet"}, "2930719": {"us_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 384.94, "max_elevation": 497.39, "xs_id": 247.09}, "ds_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 402.82, "max_elevation": 511.2, "xs_id": 246.56}, "low_flow_cfs": 172250, "high_flow_cfs": 777902, "nwm_to_id": "2938485", "source_nwm_reach": "nwm_flows_v3.parquet"}, "2938485": {"us_xs": {"xs_id": "-9999"}, "low_flow_cfs": 172250, "high_flow_cfs": 777903, "nwm_to_id": "2930723", "source_nwm_reach": "nwm_flows_v3.parquet"}, "2930705": {"us_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 399.48, "max_elevation": 488.64, "xs_id": 248.87}, "ds_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 402.45, "max_elevation": 468.81, "xs_id": 248.22}, "low_flow_cfs": 172250, "high_flow_cfs": 777905, "nwm_to_id": "2930709", "source_nwm_reach": "nwm_flows_v3.parquet"}, "2930679": {"us_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 395.42, "max_elevation": 494.0, "xs_id": 250.38}, "ds_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 402.0, "max_elevation": 494.0, "xs_id": 250.0}, "low_flow_cfs": 172252, "high_flow_cfs": 777914, "nwm_to_id": "2938461", "source_nwm_reach": "nwm_flows_v3.parquet"}, "2930621": {"us_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 411.5, "max_elevation": 501.52, "xs_id": 256.4}, "ds_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 413.86, "max_elevation": 479.05, "xs_id": 255.26}, "low_flow_cfs": 172258, "high_flow_cfs": 777963, "nwm_to_id": "2930625", "source_nwm_reach": "nwm_flows_v3.parquet"}, "2938437": {"us_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 412.02, "max_elevation": 499.89, "xs_id": 261.98}, "ds_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 415.93, "max_elevation": 496.65, "xs_id": 261.41}, "low_flow_cfs": 172171, "high_flow_cfs": 783270, "nwm_to_id": "2930591", "source_nwm_reach": "nwm_flows_v3.parquet"}, "2930581": {"us_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 415.8, "max_elevation": 480.15, "xs_id": 265.59}, "ds_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 412.02, "max_elevation": 499.89, "xs_id": 261.98}, "low_flow_cfs": 172146, "high_flow_cfs": 783334, "nwm_to_id": "2938437", "source_nwm_reach": "nwm_flows_v3.parquet"}, "2932893": {"us_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 398.17, "max_elevation": 477.05, "xs_id": 236.39}, "ds_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 393.67, "max_elevation": 472.11, "xs_id": 235.79}, "low_flow_cfs": 172242, "high_flow_cfs": 777280, "nwm_to_id": "880776", "source_nwm_reach": "nwm_flows_v3.parquet"}, "880614": {"us_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 400.25, "max_elevation": 489.31, "xs_id": 233.59}, "ds_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 399.7, "max_elevation": 538.74, "xs_id": 233.11}, "low_flow_cfs": 172242, "high_flow_cfs": 777269, "nwm_to_id": "880624", "source_nwm_reach": "nwm_flows_v3.parquet"}, "880624": {"us_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 399.7, "max_elevation": 538.74, "xs_id": 233.11}, "ds_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 399.36, "max_elevation": 521.13, "xs_id": 232.58}, "low_flow_cfs": 172241, "high_flow_cfs": 777257, "nwm_to_id": "880820", "source_nwm_reach": "nwm_flows_v3.parquet"}, "880776": {"us_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 393.67, "max_elevation": 472.11, "xs_id": 235.79}, "ds_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 398.22, "max_elevation": 503.08, "xs_id": 235.16}, "low_flow_cfs": 172242, "high_flow_cfs": 777280, "nwm_to_id": "880784", "source_nwm_reach": "nwm_flows_v3.parquet"}, "880596": {"us_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 399.24, "max_elevation": 462.33, "xs_id": 224.7}, "ds_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 403.25, "max_elevation": 448.3, "xs_id": 222.1}, "low_flow_cfs": 172419, "high_flow_cfs": 782793, "nwm_to_id": "880548", "source_nwm_reach": "nwm_flows_v3.parquet"}, "880630": {"us_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 401.77, "max_elevation": 468.63, "xs_id": 225.7}, "ds_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 399.24, "max_elevation": 462.33, "xs_id": 224.7}, "low_flow_cfs": 172425, "high_flow_cfs": 782853, "nwm_to_id": "880596", "source_nwm_reach": "nwm_flows_v3.parquet"}, "880654": {"us_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 387.24, "max_elevation": 481.09, "xs_id": 227.76}, "ds_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 401.77, "max_elevation": 468.63, "xs_id": 225.7}, "low_flow_cfs": 172426, "high_flow_cfs": 782814, "nwm_to_id": "880630", "source_nwm_reach": "nwm_flows_v3.parquet"}, "880662": {"us_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 375.64, "max_elevation": 512.61, "xs_id": 228.29}, "ds_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 387.24, "max_elevation": 481.09, "xs_id": 227.76}, "low_flow_cfs": 172426, "high_flow_cfs": 782842, "nwm_to_id": "880654", "source_nwm_reach": "nwm_flows_v3.parquet"}, "880820": {"us_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 399.36, "max_elevation": 521.13, "xs_id": 232.58}, "ds_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 398.82, "max_elevation": 498.79, "xs_id": 232.01}, "low_flow_cfs": 172431, "high_flow_cfs": 782822, "nwm_to_id": "880640", "source_nwm_reach": "nwm_flows_v3.parquet"}, "880818": {"us_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 399.57, "max_elevation": 493.92, "xs_id": 229.0}, "ds_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 375.64, "max_elevation": 512.61, "xs_id": 228.29}, "low_flow_cfs": 172427, "high_flow_cfs": 782822, "nwm_to_id": "880662", "source_nwm_reach": "nwm_flows_v3.parquet"}, "880786": {"us_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 396.66, "max_elevation": 492.37, "xs_id": 234.55}, "ds_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 399.9, "max_elevation": 455.81, "xs_id": 234.05}, "low_flow_cfs": 172242, "high_flow_cfs": 777261, "nwm_to_id": "880604", "source_nwm_reach": "nwm_flows_v3.parquet"}, "880784": {"us_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 398.22, "max_elevation": 503.08, "xs_id": 235.16}, "ds_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 396.66, "max_elevation": 492.37, "xs_id": 234.55}, "low_flow_cfs": 172242, "high_flow_cfs": 777268, "nwm_to_id": "880786", "source_nwm_reach": "nwm_flows_v3.parquet"}, "880640": {"us_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 398.82, "max_elevation": 498.79, "xs_id": 232.01}, "ds_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 397.94, "max_elevation": 499.49, "xs_id": 231.4}, "low_flow_cfs": 172430, "high_flow_cfs": 782830, "nwm_to_id": "880644", "source_nwm_reach": "nwm_flows_v3.parquet"}, "880644": {"us_xs": {"xs_id": "-9999"}, "low_flow_cfs": 172430, "high_flow_cfs": 782840, "nwm_to_id": "880668", "source_nwm_reach": "nwm_flows_v3.parquet"}, "880668": {"us_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 397.94, "max_elevation": 499.49, "xs_id": 231.4}, "ds_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 399.57, "max_elevation": 493.92, "xs_id": 229.0}, "low_flow_cfs": 172427, "high_flow_cfs": 782822, "nwm_to_id": "880818", "source_nwm_reach": "nwm_flows_v3.parquet"}, "880604": {"us_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 399.9, "max_elevation": 455.81, "xs_id": 234.05}, "ds_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 400.25, "max_elevation": 489.31, "xs_id": 233.59}, "low_flow_cfs": 172242, "high_flow_cfs": 777272, "nwm_to_id": "880614", "source_nwm_reach": "nwm_flows_v3.parquet"}, "880536": {"us_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 388.02, "max_elevation": 493.41, "xs_id": 213.87}, "ds_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 385.67, "max_elevation": 512.89, "xs_id": 211.92}, "low_flow_cfs": 245382, "high_flow_cfs": 862345, "nwm_to_id": "880544", "source_nwm_reach": "nwm_flows_v3.parquet"}, "880816": {"us_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 395.57, "max_elevation": 442.19, "xs_id": 220.47}, "ds_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 374.01, "max_elevation": 502.23, "xs_id": 218.86}, "low_flow_cfs": 172618, "high_flow_cfs": 784046, "nwm_to_id": "880494", "source_nwm_reach": "nwm_flows_v3.parquet"}, "880548": {"us_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 403.25, "max_elevation": 448.3, "xs_id": 222.1}, "ds_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 395.11, "max_elevation": 443.7, "xs_id": 221.05}, "low_flow_cfs": 172418, "high_flow_cfs": 782797, "nwm_to_id": "880534", "source_nwm_reach": "nwm_flows_v3.parquet"}, "880478": {"us_xs": {"xs_id": "-9999"}, "low_flow_cfs": 245387, "high_flow_cfs": 862351, "nwm_to_id": "880484", "source_nwm_reach": "nwm_flows_v3.parquet"}, "880484": {"us_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 384.94, "max_elevation": 457.98, "xs_id": 217.47}, "ds_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 387.19, "max_elevation": 498.66, "xs_id": 216.55}, "low_flow_cfs": 245386, "high_flow_cfs": 862355, "nwm_to_id": "880486", "source_nwm_reach": "nwm_flows_v3.parquet"}, "880494": {"us_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 374.01, "max_elevation": 502.23, "xs_id": 218.86}, "ds_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 384.94, "max_elevation": 457.98, "xs_id": 217.47}, "low_flow_cfs": 172618, "high_flow_cfs": 784064, "nwm_to_id": "880478", "source_nwm_reach": "nwm_flows_v3.parquet"}, "882686": {"us_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 387.18, "max_elevation": 511.37, "xs_id": 215.6}, "ds_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 392.15, "max_elevation": 495.18, "xs_id": 214.48}, "low_flow_cfs": 245384, "high_flow_cfs": 862330, "nwm_to_id": "882688", "source_nwm_reach": "nwm_flows_v3.parquet"}, "880534": {"us_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 395.11, "max_elevation": 443.7, "xs_id": 221.05}, "ds_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 395.57, "max_elevation": 442.19, "xs_id": 220.47}, "low_flow_cfs": 172621, "high_flow_cfs": 784079, "nwm_to_id": "880816", "source_nwm_reach": "nwm_flows_v3.parquet"}, "24745881": {"us_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 392.04, "max_elevation": 516.98, "xs_id": 210.79}, "ds_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 377.4, "max_elevation": 497.99, "xs_id": 210.13}, "low_flow_cfs": 245384, "high_flow_cfs": 862581, "nwm_to_id": "880768", "source_nwm_reach": "nwm_flows_v3.parquet"}, "880544": {"us_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 385.67, "max_elevation": 512.89, "xs_id": 211.92}, "ds_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 392.04, "max_elevation": 516.98, "xs_id": 210.79}, "low_flow_cfs": 245384, "high_flow_cfs": 862593, "nwm_to_id": "24745881", "source_nwm_reach": "nwm_flows_v3.parquet"}, "880512": {"us_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 392.15, "max_elevation": 495.18, "xs_id": 214.48}, "ds_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 388.02, "max_elevation": 493.41, "xs_id": 213.87}, "low_flow_cfs": 245386, "high_flow_cfs": 862402, "nwm_to_id": "880536", "source_nwm_reach": "nwm_flows_v3.parquet"}, "882688": {"us_xs": {"xs_id": "-9999"}, "low_flow_cfs": 245386, "high_flow_cfs": 862414, "nwm_to_id": "880512", "source_nwm_reach": "nwm_flows_v3.parquet"}, "880490": {"us_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 384.53, "max_elevation": 495.13, "xs_id": 215.99}, "ds_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 387.18, "max_elevation": 511.37, "xs_id": 215.6}, "low_flow_cfs": 245386, "high_flow_cfs": 862322, "nwm_to_id": "882686", "source_nwm_reach": "nwm_flows_v3.parquet"}, "880486": {"us_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 387.19, "max_elevation": 498.66, "xs_id": 216.55}, "ds_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 384.53, "max_elevation": 495.13, "xs_id": 215.99}, "low_flow_cfs": 245386, "high_flow_cfs": 862344, "nwm_to_id": "880490", "source_nwm_reach": "nwm_flows_v3.parquet"}, "880666": {"us_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 363.0, "max_elevation": 463.4, "xs_id": 198.28}, "ds_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 368.19, "max_elevation": 463.52, "xs_id": 197.71}, "low_flow_cfs": 245432, "high_flow_cfs": 852745, "nwm_to_id": "882710", "source_nwm_reach": "nwm_flows_v3.parquet"}, "880652": {"us_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 365.55, "max_elevation": 461.57, "xs_id": 198.81}, "ds_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 363.0, "max_elevation": 463.4, "xs_id": 198.28}, "low_flow_cfs": 245426, "high_flow_cfs": 852690, "nwm_to_id": "880666", "source_nwm_reach": "nwm_flows_v3.parquet"}, "880622": {"us_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 374.16, "max_elevation": 445.46, "xs_id": 201.29}, "ds_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 359.98, "max_elevation": 450.18, "xs_id": 200.85}, "low_flow_cfs": 245383, "high_flow_cfs": 852328, "nwm_to_id": "880636", "source_nwm_reach": "nwm_flows_v3.parquet"}, "880580": {"us_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 380.56, "max_elevation": 505.23, "xs_id": 206.6}, "ds_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 384.77, "max_elevation": 452.42, "xs_id": 204.96}, "low_flow_cfs": 245386, "high_flow_cfs": 852434, "nwm_to_id": "880606", "source_nwm_reach": "nwm_flows_v3.parquet"}, "880550": {"us_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 379.68, "max_elevation": 476.58, "xs_id": 209.46}, "ds_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 386.61, "max_elevation": 475.82, "xs_id": 208.89}, "low_flow_cfs": 245383, "high_flow_cfs": 862606, "nwm_to_id": "880814", "source_nwm_reach": "nwm_flows_v3.parquet"}, "880768": {"us_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 377.4, "max_elevation": 497.99, "xs_id": 210.13}, "ds_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 379.68, "max_elevation": 476.58, "xs_id": 209.46}, "low_flow_cfs": 245383, "high_flow_cfs": 862597, "nwm_to_id": "880550", "source_nwm_reach": "nwm_flows_v3.parquet"}, "880678": {"us_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 365.08, "max_elevation": 463.94, "xs_id": 197.31}, "ds_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 356.78, "max_elevation": 451.43, "xs_id": 194.97}, "low_flow_cfs": 245427, "high_flow_cfs": 852664, "nwm_to_id": "3624763", "source_nwm_reach": "nwm_flows_v3.parquet"}, "880814": {"us_xs": {"xs_id": "-9999"}, "low_flow_cfs": 245383, "high_flow_cfs": 862599, "nwm_to_id": "880562", "source_nwm_reach": "nwm_flows_v3.parquet"}, "880648": {"us_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 349.49, "max_elevation": 465.63, "xs_id": 200.31}, "ds_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 365.55, "max_elevation": 461.57, "xs_id": 198.81}, "low_flow_cfs": 245382, "high_flow_cfs": 852311, "nwm_to_id": "880652", "source_nwm_reach": "nwm_flows_v3.parquet"}, "882710": {"us_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 368.19, "max_elevation": 463.52, "xs_id": 197.71}, "ds_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 365.08, "max_elevation": 463.94, "xs_id": 197.31}, "low_flow_cfs": 245436, "high_flow_cfs": 852750, "nwm_to_id": "880678", "source_nwm_reach": "nwm_flows_v3.parquet"}, "880636": {"us_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 359.98, "max_elevation": 450.18, "xs_id": 200.85}, "ds_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 349.49, "max_elevation": 465.63, "xs_id": 200.31}, "low_flow_cfs": 245383, "high_flow_cfs": 852347, "nwm_to_id": "880648", "source_nwm_reach": "nwm_flows_v3.parquet"}, "880562": {"us_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 386.61, "max_elevation": 475.82, "xs_id": 208.89}, "ds_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 380.56, "max_elevation": 505.23, "xs_id": 206.6}, "low_flow_cfs": 245381, "high_flow_cfs": 862559, "nwm_to_id": "880580", "source_nwm_reach": "nwm_flows_v3.parquet"}, "880618": {"us_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 363.8, "max_elevation": 464.35, "xs_id": 202.68}, "ds_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 374.16, "max_elevation": 445.46, "xs_id": 201.29}, "low_flow_cfs": 245381, "high_flow_cfs": 852311, "nwm_to_id": "880622", "source_nwm_reach": "nwm_flows_v3.parquet"}, "880608": {"us_xs": {"xs_id": "-9999"}, "low_flow_cfs": 0, "high_flow_cfs": 852363, "nwm_to_id": "880618", "source_nwm_reach": "nwm_flows_v3.parquet"}, "880606": {"us_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 384.77, "max_elevation": 452.42, "xs_id": 204.96}, "ds_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 363.8, "max_elevation": 464.35, "xs_id": 202.68}, "low_flow_cfs": 245383, "high_flow_cfs": 852365, "nwm_to_id": "880608", "source_nwm_reach": "nwm_flows_v3.parquet"}, "3624763": {"us_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 356.78, "max_elevation": 451.43, "xs_id": 194.97}, "ds_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 360.55, "max_elevation": 448.83, "xs_id": 194.63}, "low_flow_cfs": 405915, "high_flow_cfs": 1942292, "nwm_to_id": "3624695", "source_nwm_reach": "nwm_flows_v3.parquet"}, "3624701": {"us_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 342.65, "max_elevation": 448.69, "xs_id": 194.16}, "ds_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 366.06, "max_elevation": 447.78, "xs_id": 193.28}, "low_flow_cfs": 406090, "high_flow_cfs": 1942224, "nwm_to_id": "3624705", "source_nwm_reach": "nwm_flows_v3.parquet"}, "3624695": {"us_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 360.55, "max_elevation": 448.83, "xs_id": 194.63}, "ds_xs": {"river": "Mississippi", "reach": "Reach 1", "min_elevation": 342.65, "max_elevation": 448.69, "xs_id": 194.16}, "low_flow_cfs": 406090, "high_flow_cfs": 1942380, "nwm_to_id": "3624701", "source_nwm_reach": "nwm_flows_v3.parquet"}, "5092604": {"us_xs": {"xs_id": "-9999"}, "low_flow_cfs": 417521, "high_flow_cfs": 1893095, "nwm_to_id": "5092614", "source_nwm_reach": "nwm_flows_v3.parquet"}, "5092614": {"us_xs": {"river": "Mississippi", "reach": "Reach 2", "min_elevation": 279.89, "max_elevation": 397.65, "xs_id": 47.34}, "ds_xs": {"river": "Mississippi", "reach": "Reach 2", "min_elevation": 274.89, "max_elevation": 400.1, "xs_id": 45.36}, "low_flow_cfs": 417488, "high_flow_cfs": 1893092, "nwm_to_id": "5096814", "source_nwm_reach": "nwm_flows_v3.parquet"}, "5092606": {"us_xs": {"river": "Mississippi", "reach": "Reach 2", "min_elevation": 285.8, "max_elevation": 385.91, "xs_id": 48.58}, "ds_xs": {"river": "Mississippi", "reach": "Reach 2", "min_elevation": 279.89, "max_elevation": 397.65, "xs_id": 47.34}, "low_flow_cfs": 417517, "high_flow_cfs": 1893048, "nwm_to_id": "5092604", "source_nwm_reach": "nwm_flows_v3.parquet"}, "5092594": {"us_xs": {"river": "Mississippi", "reach": "Reach 2", "min_elevation": 287.95, "max_elevation": 386.42, "xs_id": 54.43}, "ds_xs": {"river": "Mississippi", "reach": "Reach 2", "min_elevation": 286.58, "max_elevation": 371.94, "xs_id": 52.15}, "low_flow_cfs": 415952, "high_flow_cfs": 1885044, "nwm_to_id": "5092598", "source_nwm_reach": "nwm_flows_v3.parquet"}, "5092598": {"us_xs": {"river": "Mississippi", "reach": "Reach 2", "min_elevation": 286.58, "max_elevation": 371.94, "xs_id": 52.15}, "ds_xs": {"river": "Mississippi", "reach": "Reach 2", "min_elevation": 281.43, "max_elevation": 374.53, "xs_id": 49.85}, "low_flow_cfs": 415927, "high_flow_cfs": 1884942, "nwm_to_id": "5092748", "source_nwm_reach": "nwm_flows_v3.parquet"}, "5092590": {"us_xs": {"river": "Mississippi", "reach": "Reach 2", "min_elevation": 289.32, "max_elevation": 381.9, "xs_id": 55.0}, "ds_xs": {"river": "Mississippi", "reach": "Reach 2", "min_elevation": 287.95, "max_elevation": 386.42, "xs_id": 54.43}, "low_flow_cfs": 415953, "high_flow_cfs": 1885091, "nwm_to_id": "5092594", "source_nwm_reach": "nwm_flows_v3.parquet"}, "5092586": {"us_xs": {"river": "Mississippi", "reach": "Reach 2", "min_elevation": 277.82, "max_elevation": 379.98, "xs_id": 60.52}, "ds_xs": {"river": "Mississippi", "reach": "Reach 2", "min_elevation": 289.32, "max_elevation": 381.9, "xs_id": 55.0}, "low_flow_cfs": 415937, "high_flow_cfs": 1885024, "nwm_to_id": "5092590", "source_nwm_reach": "nwm_flows_v3.parquet"}, "5092582": {"us_xs": {"river": "Mississippi", "reach": "Reach 2", "min_elevation": 296.85, "max_elevation": 378.78, "xs_id": 61.83}, "ds_xs": {"river": "Mississippi", "reach": "Reach 2", "min_elevation": 277.82, "max_elevation": 379.98, "xs_id": 60.52}, "low_flow_cfs": 416059, "high_flow_cfs": 1885913, "nwm_to_id": "5092586", "source_nwm_reach": "nwm_flows_v3.parquet"}, "5092552": {"us_xs": {"river": "Mississippi", "reach": "Reach 2", "min_elevation": 289.11, "max_elevation": 380.06, "xs_id": 68.66}, "ds_xs": {"river": "Mississippi", "reach": "Reach 2", "min_elevation": 299.46, "max_elevation": 381.52, "xs_id": 68.09}, "low_flow_cfs": 416085, "high_flow_cfs": 1885928, "nwm_to_id": "5092562", "source_nwm_reach": "nwm_flows_v3.parquet"}, "5092542": {"us_xs": {"river": "Mississippi", "reach": "Reach 2", "min_elevation": 302.66, "max_elevation": 386.33, "xs_id": 69.75}, "ds_xs": {"river": "Mississippi", "reach": "Reach 2", "min_elevation": 289.11, "max_elevation": 380.06, "xs_id": 68.66}, "low_flow_cfs": 416065, "high_flow_cfs": 1885832, "nwm_to_id": "5092552", "source_nwm_reach": "nwm_flows_v3.parquet"}, "5090014": {"us_xs": {"river": "Mississippi", "reach": "Reach 2", "min_elevation": 286.95, "max_elevation": 387.38, "xs_id": 70.27}, "ds_xs": {"river": "Mississippi", "reach": "Reach 2", "min_elevation": 302.66, "max_elevation": 386.33, "xs_id": 69.75}, "low_flow_cfs": 416073, "high_flow_cfs": 1885951, "nwm_to_id": "5092542", "source_nwm_reach": "nwm_flows_v3.parquet"}, "5090010": {"us_xs": {"river": "Mississippi", "reach": "Reach 2", "min_elevation": 297.2, "max_elevation": 395.98, "xs_id": 71.78}, "ds_xs": {"river": "Mississippi", "reach": "Reach 2", "min_elevation": 286.95, "max_elevation": 387.38, "xs_id": 70.27}, "low_flow_cfs": 416072, "high_flow_cfs": 1885914, "nwm_to_id": "5090014", "source_nwm_reach": "nwm_flows_v3.parquet"}, "5090004": {"us_xs": {"river": "Mississippi", "reach": "Reach 2", "min_elevation": 305.12, "max_elevation": 388.18, "xs_id": 72.31}, "ds_xs": {"river": "Mississippi", "reach": "Reach 2", "min_elevation": 297.2, "max_elevation": 395.98, "xs_id": 71.78}, "low_flow_cfs": 416082, "high_flow_cfs": 1885943, "nwm_to_id": "5090010", "source_nwm_reach": "nwm_flows_v3.parquet"}, "5090000": {"us_xs": {"river": "Mississippi", "reach": "Reach 2", "min_elevation": 302.05, "max_elevation": 392.26, "xs_id": 73.56}, "ds_xs": {"river": "Mississippi", "reach": "Reach 2", "min_elevation": 305.12, "max_elevation": 388.18, "xs_id": 72.31}, "low_flow_cfs": 416084, "high_flow_cfs": 1885976, "nwm_to_id": "5090004", "source_nwm_reach": "nwm_flows_v3.parquet"}, "5089998": {"us_xs": {"river": "Mississippi", "reach": "Reach 2", "min_elevation": 303.92, "max_elevation": 389.02, "xs_id": 74.89}, "ds_xs": {"river": "Mississippi", "reach": "Reach 2", "min_elevation": 302.05, "max_elevation": 392.26, "xs_id": 73.56}, "low_flow_cfs": 416084, "high_flow_cfs": 1885953, "nwm_to_id": "5090000", "source_nwm_reach": "nwm_flows_v3.parquet"}, "5089990": {"us_xs": {"xs_id": "-9999"}, "low_flow_cfs": 416053, "high_flow_cfs": 1885248, "nwm_to_id": "5089998", "source_nwm_reach": "nwm_flows_v3.parquet"}, "5089984": {"us_xs": {"river": "Mississippi", "reach": "Reach 2", "min_elevation": 297.11, "max_elevation": 380.04, "xs_id": 77.21}, "ds_xs": {"river": "Mississippi", "reach": "Reach 2", "min_elevation": 298.22, "max_elevation": 389.7, "xs_id": 76.2}, "low_flow_cfs": 415015, "high_flow_cfs": 1897025, "nwm_to_id": "5089986", "source_nwm_reach": "nwm_flows_v3.parquet"}, "5089978": {"us_xs": {"river": "Mississippi", "reach": "Reach 2", "min_elevation": 300.31, "max_elevation": 390.84, "xs_id": 81.09}, "ds_xs": {"river": "Mississippi", "reach": "Reach 2", "min_elevation": 297.11, "max_elevation": 380.04, "xs_id": 77.21}, "low_flow_cfs": 415023, "high_flow_cfs": 1897010, "nwm_to_id": "5089984", "source_nwm_reach": "nwm_flows_v3.parquet"}, "5092698": {"us_xs": {"river": "Mississippi", "reach": "Reach 2", "min_elevation": 269.488, "max_elevation": 341.5351, "xs_id": 30.82}, "ds_xs": {"river": "Mississippi", "reach": "Reach 2", "min_elevation": 275.459, "max_elevation": 342.95, "xs_id": 28.57}, "low_flow_cfs": 417506, "high_flow_cfs": 1893973, "nwm_to_id": "5092712", "source_nwm_reach": "nwm_flows_v3.parquet"}, "5092676": {"us_xs": {"river": "Mississippi", "reach": "Reach 2", "min_elevation": 278.543, "max_elevation": 344.488, "xs_id": 34.69}, "ds_xs": {"river": "Mississippi", "reach": "Reach 2", "min_elevation": 269.488, "max_elevation": 341.5351, "xs_id": 30.82}, "low_flow_cfs": 417509, "high_flow_cfs": 1893931, "nwm_to_id": "5092698", "source_nwm_reach": "nwm_flows_v3.parquet"}, "5092652": {"us_xs": {"xs_id": "-9999"}, "low_flow_cfs": 417668, "high_flow_cfs": 1894321, "nwm_to_id": "5092676", "source_nwm_reach": "nwm_flows_v3.parquet"}, "5092634": {"us_xs": {"river": "Mississippi", "reach": "Reach 2", "min_elevation": 285.86, "max_elevation": 361.22, "xs_id": 39.02}, "ds_xs": {"river": "Mississippi", "reach": "Reach 2", "min_elevation": 287.73, "max_elevation": 354.3309, "xs_id": 38.58}, "low_flow_cfs": 417756, "high_flow_cfs": 1894581, "nwm_to_id": "5092646", "source_nwm_reach": "nwm_flows_v3.parquet"}, "5092626": {"us_xs": {"xs_id": "-9999"}, "low_flow_cfs": 417796, "high_flow_cfs": 1894604, "nwm_to_id": "5092630", "source_nwm_reach": "nwm_flows_v3.parquet"}, "5092630": {"us_xs": {"river": "Mississippi", "reach": "Reach 2", "min_elevation": 284.71, "max_elevation": 367.99, "xs_id": 41.1}, "ds_xs": {"river": "Mississippi", "reach": "Reach 2", "min_elevation": 285.86, "max_elevation": 361.22, "xs_id": 39.02}, "low_flow_cfs": 417758, "high_flow_cfs": 1894601, "nwm_to_id": "5092634", "source_nwm_reach": "nwm_flows_v3.parquet"}, "5092602": {"us_xs": {"xs_id": "-9999"}, "low_flow_cfs": 415966, "high_flow_cfs": 1885418, "nwm_to_id": "5092606", "source_nwm_reach": "nwm_flows_v3.parquet"}, "5089946": {"us_xs": {"river": "Mississippi", "reach": "Reach 2", "min_elevation": 306.03, "max_elevation": 401.3, "xs_id": 87.94}, "ds_xs": {"river": "Mississippi", "reach": "Reach 2", "min_elevation": 290.92, "max_elevation": 389.66, "xs_id": 84.96}, "low_flow_cfs": 415064, "high_flow_cfs": 1897775, "nwm_to_id": "5096766", "source_nwm_reach": "nwm_flows_v3.parquet"}, "5096766": {"us_xs": {"river": "Mississippi", "reach": "Reach 2", "min_elevation": 290.92, "max_elevation": 389.66, "xs_id": 84.96}, "ds_xs": {"river": "Mississippi", "reach": "Reach 2", "min_elevation": 292.77, "max_elevation": 400.4, "xs_id": 83.97}, "low_flow_cfs": 415077, "high_flow_cfs": 1897755, "nwm_to_id": "5089952", "source_nwm_reach": "nwm_flows_v3.parquet"}, "5089952": {"us_xs": {"river": "Mississippi", "reach": "Reach 2", "min_elevation": 292.77, "max_elevation": 400.4, "xs_id": 83.97}, "ds_xs": {"river": "Mississippi", "reach": "Reach 2", "min_elevation": 295.95, "max_elevation": 400.43, "xs_id": 82.48}, "low_flow_cfs": 415066, "high_flow_cfs": 1897693, "nwm_to_id": "5089960", "source_nwm_reach": "nwm_flows_v3.parquet"}, "5092562": {"us_xs": {"river": "Mississippi", "reach": "Reach 2", "min_elevation": 299.46, "max_elevation": 381.52, "xs_id": 68.09}, "ds_xs": {"river": "Mississippi", "reach": "Reach 2", "min_elevation": 298.71, "max_elevation": 380.4, "xs_id": 66.98}, "low_flow_cfs": 416079, "high_flow_cfs": 1886048, "nwm_to_id": "5092566", "source_nwm_reach": "nwm_flows_v3.parquet"}, "5096814": {"us_xs": {"river": "Mississippi", "reach": "Reach 2", "min_elevation": 274.89, "max_elevation": 400.1, "xs_id": 45.36}, "ds_xs": {"river": "Mississippi", "reach": "Reach 2", "min_elevation": 277.43, "max_elevation": 400.0, "xs_id": 44.29}, "low_flow_cfs": 417816, "high_flow_cfs": 1894550, "nwm_to_id": "5092616", "source_nwm_reach": "nwm_flows_v3.parquet"}, "5092748": {"us_xs": {"river": "Mississippi", "reach": "Reach 2", "min_elevation": 281.43, "max_elevation": 374.53, "xs_id": 49.85}, "ds_xs": {"river": "Mississippi", "reach": "Reach 2", "min_elevation": 285.8, "max_elevation": 385.91, "xs_id": 48.58}, "low_flow_cfs": 415946, "high_flow_cfs": 1885169, "nwm_to_id": "5092602", "source_nwm_reach": "nwm_flows_v3.parquet"}, "5092566": {"us_xs": {"river": "Mississippi", "reach": "Reach 2", "min_elevation": 298.71, "max_elevation": 380.4, "xs_id": 66.98}, "ds_xs": {"river": "Mississippi", "reach": "Reach 2", "min_elevation": 298.52, "max_elevation": 380.14, "xs_id": 66.3}, "low_flow_cfs": 416079, "high_flow_cfs": 1886047, "nwm_to_id": "5092568", "source_nwm_reach": "nwm_flows_v3.parquet"}, "5092568": {"us_xs": {"river": "Mississippi", "reach": "Reach 2", "min_elevation": 298.52, "max_elevation": 380.14, "xs_id": 66.3}, "ds_xs": {"river": "Mississippi", "reach": "Reach 2", "min_elevation": 297.35, "max_elevation": 385.17, "xs_id": 65.84}, "low_flow_cfs": 416078, "high_flow_cfs": 1886003, "nwm_to_id": "5092572", "source_nwm_reach": "nwm_flows_v3.parquet"}, "5092572": {"us_xs": {"river": "Mississippi", "reach": "Reach 2", "min_elevation": 297.35, "max_elevation": 385.17, "xs_id": 65.84}, "ds_xs": {"river": "Mississippi", "reach": "Reach 2", "min_elevation": 296.85, "max_elevation": 378.78, "xs_id": 61.83}, "low_flow_cfs": 416064, "high_flow_cfs": 1885986, "nwm_to_id": "5092582", "source_nwm_reach": "nwm_flows_v3.parquet"}, "5089986": {"us_xs": {"river": "Mississippi", "reach": "Reach 2", "min_elevation": 298.22, "max_elevation": 389.7, "xs_id": 76.2}, "ds_xs": {"river": "Mississippi", "reach": "Reach 2", "min_elevation": 303.92, "max_elevation": 389.02, "xs_id": 74.89}, "low_flow_cfs": 415018, "high_flow_cfs": 1897026, "nwm_to_id": "5089990", "source_nwm_reach": "nwm_flows_v3.parquet"}, "5089970": {"us_xs": {"river": "Mississippi", "reach": "Reach 2", "min_elevation": 295.95, "max_elevation": 400.43, "xs_id": 82.48}, "ds_xs": {"river": "Mississippi", "reach": "Reach 2", "min_elevation": 300.31, "max_elevation": 390.84, "xs_id": 81.09}, "low_flow_cfs": 415061, "high_flow_cfs": 1897602, "nwm_to_id": "5089978", "source_nwm_reach": "nwm_flows_v3.parquet"}, "5089960": {"us_xs": {"xs_id": "-9999"}, "low_flow_cfs": 415069, "high_flow_cfs": 1897713, "nwm_to_id": "5089970", "source_nwm_reach": "nwm_flows_v3.parquet"}, "5089926": {"us_xs": {"river": "Mississippi", "reach": "Reach 2", "min_elevation": 306.01, "max_elevation": 399.91, "xs_id": 91.32}, "ds_xs": {"river": "Mississippi", "reach": "Reach 2", "min_elevation": 307.68, "max_elevation": 403.64, "xs_id": 89.55}, "low_flow_cfs": 415067, "high_flow_cfs": 1897887, "nwm_to_id": "5089932", "source_nwm_reach": "nwm_flows_v3.parquet"}, "5089932": {"us_xs": {"xs_id": "-9999"}, "low_flow_cfs": 415069, "high_flow_cfs": 1897867, "nwm_to_id": "5089938", "source_nwm_reach": "nwm_flows_v3.parquet"}, "5089938": {"us_xs": {"river": "Mississippi", "reach": "Reach 2", "min_elevation": 307.68, "max_elevation": 403.64, "xs_id": 89.55}, "ds_xs": {"river": "Mississippi", "reach": "Reach 2", "min_elevation": 306.03, "max_elevation": 401.3, "xs_id": 87.94}, "low_flow_cfs": 415061, "high_flow_cfs": 1897750, "nwm_to_id": "5089946", "source_nwm_reach": "nwm_flows_v3.parquet"}, "5092646": {"us_xs": {"river": "Mississippi", "reach": "Reach 2", "min_elevation": 287.73, "max_elevation": 354.3309, "xs_id": 38.58}, "ds_xs": {"river": "Mississippi", "reach": "Reach 2", "min_elevation": 278.543, "max_elevation": 344.488, "xs_id": 34.69}, "low_flow_cfs": 417668, "high_flow_cfs": 1894346, "nwm_to_id": "5092652", "source_nwm_reach": "nwm_flows_v3.parquet"}, "5092622": {"us_xs": {"river": "Mississippi", "reach": "Reach 2", "min_elevation": 273.06, "max_elevation": 360.15, "xs_id": 43.2}, "ds_xs": {"river": "Mississippi", "reach": "Reach 2", "min_elevation": 284.71, "max_elevation": 367.99, "xs_id": 41.1}, "low_flow_cfs": 417793, "high_flow_cfs": 1894602, "nwm_to_id": "5092626", "source_nwm_reach": "nwm_flows_v3.parquet"}, "5092616": {"us_xs": {"river": "Mississippi", "reach": "Reach 2", "min_elevation": 277.43, "max_elevation": 400.0, "xs_id": 44.29}, "ds_xs": {"river": "Mississippi", "reach": "Reach 2", "min_elevation": 273.06, "max_elevation": 360.15, "xs_id": 43.2}, "low_flow_cfs": 417817, "high_flow_cfs": 1894585, "nwm_to_id": "5092622", "gage": "07022000", "gage_url": "https://waterdata.usgs.gov/nwis/uv?site_no=07022000&legacy=1", "source_nwm_reach": "nwm_flows_v3.parquet"}, "5092658": {"us_xs": {"river": "Mississippi", "reach": "Reach 2", "min_elevation": 266.437, "max_elevation": 328.15, "xs_id": 15.43}, "ds_xs": {"river": "Mississippi", "reach": "Reach 3", "min_elevation": 252.133, "max_elevation": 340.2229, "xs_id": 12.67}, "low_flow_cfs": 417345, "high_flow_cfs": 1893676, "nwm_to_id": "5092656", "source_nwm_reach": "nwm_flows_v3.parquet"}, "5093444": {"us_xs": {"river": "Mississippi", "reach": "Reach 2", "min_elevation": 278.084, "max_elevation": 340.2229, "xs_id": 24.49}, "ds_xs": {"river": "Mississippi", "reach": "Reach 2", "min_elevation": 272.507, "max_elevation": 339.567, "xs_id": 22.03}, "low_flow_cfs": 417416, "high_flow_cfs": 1893742, "nwm_to_id": "5092710", "source_nwm_reach": "nwm_flows_v3.parquet"}, "5092712": {"us_xs": {"river": "Mississippi", "reach": "Reach 2", "min_elevation": 275.459, "max_elevation": 342.95, "xs_id": 28.57}, "ds_xs": {"river": "Mississippi", "reach": "Reach 2", "min_elevation": 278.084, "max_elevation": 340.2229, "xs_id": 24.49}, "low_flow_cfs": 417479, "high_flow_cfs": 1893923, "nwm_to_id": "5093444", "source_nwm_reach": "nwm_flows_v3.parquet"}, "5092704": {"us_xs": {"river": "Mississippi", "reach": "Reach 2", "min_elevation": 272.507, "max_elevation": 339.567, "xs_id": 22.03}, "ds_xs": {"river": "Mississippi", "reach": "Reach 2", "min_elevation": 264.698, "max_elevation": 340.2102, "xs_id": 18.05}, "low_flow_cfs": 417393, "high_flow_cfs": 1893700, "nwm_to_id": "5092684", "source_nwm_reach": "nwm_flows_v3.parquet"}, "5092664": {"us_xs": {"river": "Mississippi", "reach": "Reach 2", "min_elevation": 264.075, "max_elevation": 323.819, "xs_id": 16.95}, "ds_xs": {"river": "Mississippi", "reach": "Reach 2", "min_elevation": 266.437, "max_elevation": 328.15, "xs_id": 15.43}, "low_flow_cfs": 417384, "high_flow_cfs": 1893818, "nwm_to_id": "5092658", "source_nwm_reach": "nwm_flows_v3.parquet"}, "5092670": {"us_xs": {"river": "Mississippi", "reach": "Reach 2", "min_elevation": 230.282, "max_elevation": 323.491, "xs_id": 17.25}, "ds_xs": {"river": "Mississippi", "reach": "Reach 2", "min_elevation": 264.075, "max_elevation": 323.819, "xs_id": 16.95}, "low_flow_cfs": 417386, "high_flow_cfs": 1893798, "nwm_to_id": "5092664", "source_nwm_reach": "nwm_flows_v3.parquet"}, "5092684": {"us_xs": {"river": "Mississippi", "reach": "Reach 2", "min_elevation": 264.698, "max_elevation": 340.2102, "xs_id": 18.05}, "ds_xs": {"river": "Mississippi", "reach": "Reach 2", "min_elevation": 230.282, "max_elevation": 323.491, "xs_id": 17.25}, "low_flow_cfs": 417387, "high_flow_cfs": 1893770, "nwm_to_id": "5092670", "source_nwm_reach": "nwm_flows_v3.parquet"}, "5092710": {"us_xs": {"xs_id": "-9999"}, "low_flow_cfs": 417414, "high_flow_cfs": 1893797, "nwm_to_id": "5092704", "source_nwm_reach": "nwm_flows_v3.parquet"}, "5089922": {"us_xs": {"river": "Mississippi", "reach": "Reach 2", "min_elevation": 308.77, "max_elevation": 399.97, "xs_id": 91.83}, "ds_xs": {"river": "Mississippi", "reach": "Reach 2", "min_elevation": 306.01, "max_elevation": 399.91, "xs_id": 91.32}, "low_flow_cfs": 415074, "high_flow_cfs": 1897907, "nwm_to_id": "5089926", "source_nwm_reach": "nwm_flows_v3.parquet"}, "5089920": {"us_xs": {"river": "Mississippi", "reach": "Reach 2", "min_elevation": 287.72, "max_elevation": 400.06, "xs_id": 94.37}, "ds_xs": {"river": "Mississippi", "reach": "Reach 2", "min_elevation": 308.77, "max_elevation": 399.97, "xs_id": 91.83}, "low_flow_cfs": 415073, "high_flow_cfs": 1897871, "nwm_to_id": "5089922", "source_nwm_reach": "nwm_flows_v3.parquet"}, "5089914": {"us_xs": {"river": "Mississippi", "reach": "Reach 2", "min_elevation": 307.17, "max_elevation": 400.11, "xs_id": 97.15}, "ds_xs": {"river": "Mississippi", "reach": "Reach 2", "min_elevation": 287.72, "max_elevation": 400.06, "xs_id": 94.37}, "low_flow_cfs": 414997, "high_flow_cfs": 1897817, "nwm_to_id": "5089920", "source_nwm_reach": "nwm_flows_v3.parquet"}, "5089912": {"us_xs": {"river": "Mississippi", "reach": "Reach 2", "min_elevation": 315.0, "max_elevation": 399.97, "xs_id": 106.23}, "ds_xs": {"river": "Mississippi", "reach": "Reach 2", "min_elevation": 307.17, "max_elevation": 400.11, "xs_id": 97.15}, "low_flow_cfs": 414999, "high_flow_cfs": 1897903, "nwm_to_id": "5089914", "source_nwm_reach": "nwm_flows_v3.parquet"}, "5089904": {"us_xs": {"river": "Mississippi", "reach": "Reach 2", "min_elevation": 315.74, "max_elevation": 400.13, "xs_id": 109.93}, "ds_xs": {"river": "Mississippi", "reach": "Reach 2", "min_elevation": 315.0, "max_elevation": 399.97, "xs_id": 106.23}, "low_flow_cfs": 415058, "high_flow_cfs": 1897827, "nwm_to_id": "5089912", "gage": "07020500", "gage_url": "https://waterdata.usgs.gov/nwis/uv?site_no=07020500&legacy=1", "source_nwm_reach": "nwm_flows_v3.parquet"}, "5092376": {"us_xs": {"xs_id": "-9999"}, "low_flow_cfs": 334, "high_flow_cfs": 2226, "nwm_to_id": "5092666", "source_nwm_reach": "nwm_flows_v3.parquet"}, "5092706": {"us_xs": {"river": "Mississippi", "reach": "Reach 3", "min_elevation": 236.22, "max_elevation": 337.72, "xs_id": 6.25}, "ds_xs": {"river": "Mississippi", "reach": "Reach 3", "min_elevation": 254.97, "max_elevation": 339.98, "xs_id": 5.11}, "low_flow_cfs": 417777, "high_flow_cfs": 1869108, "nwm_to_id": "5093440", "source_nwm_reach": "nwm_flows_v3.parquet"}, "5093440": {"us_xs": {"river": "Mississippi", "reach": "Reach 3", "min_elevation": 254.97, "max_elevation": 339.98, "xs_id": 5.11}, "ds_xs": {"river": "Mississippi", "reach": "Reach 3", "min_elevation": 260.61, "max_elevation": 336.55, "xs_id": 4.58}, "low_flow_cfs": 417772, "high_flow_cfs": 1869041, "nwm_to_id": "5093450", "source_nwm_reach": "nwm_flows_v3.parquet"}, "5092674": {"us_xs": {"river": "Mississippi", "reach": "Reach 3", "min_elevation": 260.86, "max_elevation": 338.911, "xs_id": 11.25}, "ds_xs": {"river": "Mississippi", "reach": "Reach 3", "min_elevation": 257.6122, "max_elevation": 338.911, "xs_id": 9.6}, "low_flow_cfs": 417811, "high_flow_cfs": 1869283, "nwm_to_id": "5092686", "source_nwm_reach": "nwm_flows_v3.parquet"}, "5092696": {"us_xs": {"river": "Mississippi", "reach": "Reach 3", "min_elevation": 255.32, "max_elevation": 339.26, "xs_id": 8.23}, "ds_xs": {"river": "Mississippi", "reach": "Reach 3", "min_elevation": 256.08, "max_elevation": 341.92, "xs_id": 7.517}, "low_flow_cfs": 417795, "high_flow_cfs": 1869127, "nwm_to_id": "5092702", "source_nwm_reach": "nwm_flows_v3.parquet"}, "5092686": {"us_xs": {"river": "Mississippi", "reach": "Reach 3", "min_elevation": 257.6122, "max_elevation": 338.911, "xs_id": 9.6}, "ds_xs": {"river": "Mississippi", "reach": "Reach 3", "min_elevation": 255.32, "max_elevation": 339.26, "xs_id": 8.23}, "low_flow_cfs": 417808, "high_flow_cfs": 1869280, "nwm_to_id": "5092696", "source_nwm_reach": "nwm_flows_v3.parquet"}, "5092702": {"us_xs": {"river": "Mississippi", "reach": "Reach 3", "min_elevation": 256.08, "max_elevation": 341.92, "xs_id": 7.517}, "ds_xs": {"river": "Mississippi", "reach": "Reach 3", "min_elevation": 236.22, "max_elevation": 337.72, "xs_id": 6.25}, "low_flow_cfs": 417783, "high_flow_cfs": 1869170, "nwm_to_id": "5092706", "source_nwm_reach": "nwm_flows_v3.parquet"}, "5092660": {"us_xs": {"river": "Mississippi", "reach": "Reach 3", "min_elevation": 248.458, "max_elevation": 337.9269, "xs_id": 12.2}, "ds_xs": {"river": "Mississippi", "reach": "Reach 3", "min_elevation": 260.86, "max_elevation": 338.911, "xs_id": 11.25}, "low_flow_cfs": 417830, "high_flow_cfs": 1869275, "nwm_to_id": "5092674", "source_nwm_reach": "nwm_flows_v3.parquet"}, "5092656": {"us_xs": {"river": "Mississippi", "reach": "Reach 3", "min_elevation": 252.133, "max_elevation": 340.2229, "xs_id": 12.67}, "ds_xs": {"river": "Mississippi", "reach": "Reach 3", "min_elevation": 248.458, "max_elevation": 337.9269, "xs_id": 12.2}, "low_flow_cfs": 417343, "high_flow_cfs": 1893707, "nwm_to_id": "5092660", "source_nwm_reach": "nwm_flows_v3.parquet"}, "5093448": {"us_xs": {"river": "Mississippi", "reach": "Reach 3", "min_elevation": 254.19, "max_elevation": 335.68, "xs_id": 2.67}, "ds_xs": {"river": "Mississippi", "reach": "Reach 3", "min_elevation": 250.24, "max_elevation": 334.67, "xs_id": 1.39}, "low_flow_cfs": 417741, "high_flow_cfs": 1868931, "nwm_to_id": "5093446", "source_nwm_reach": "nwm_flows_v3.parquet"}, "5093450": {"us_xs": {"river": "Mississippi", "reach": "Reach 3", "min_elevation": 260.61, "max_elevation": 336.55, "xs_id": 4.58}, "ds_xs": {"river": "Mississippi", "reach": "Reach 3", "min_elevation": 254.19, "max_elevation": 335.68, "xs_id": 2.67}, "low_flow_cfs": 417743, "high_flow_cfs": 1869007, "nwm_to_id": "5093448", "source_nwm_reach": "nwm_flows_v3.parquet"}} \ No newline at end of file +{ + "reaches": { + "5088542": { + "us_xs": { + "river": "Mississippi", + "reach": "Kaskaskia Island", + "min_elevation": 361.98, + "max_elevation": 406.99, + "xs_id": 115.76 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 2", + "min_elevation": 319.51, + "max_elevation": 399.99, + "xs_id": 110.4 + }, + "eclipsed": false, + "low_flow": 990, + "high_flow": 43125, + "network_to_id": "5089894", + "metrics": { + "xs": { + "centerline_offset": { + "count": 13, + "mean": 485, + "std": 468, + "min": 61, + "25%": 193, + "50%": 351, + "75%": 616, + "max": 1755 + }, + "thalweg_offset": { + "count": 13, + "mean": 1762, + "std": 1054, + "min": 126, + "25%": 1069, + "50%": 1705, + "75%": 2462, + "max": 3602 + } + }, + "lengths": { + "ras": 35556, + "network": 28540, + "network_to_ras_ratio": 0.8 + }, + "coverage": { + "start": 0.12, + "end": 1 + } + }, + "overlapped_reaches": [], + "eclipsed_reaches": [ + "5088588", + "5089908", + "5088576", + "5089894", + "5089906" + ] + }, + "5088480": { + "us_xs": { + "river": "Mississippi", + "reach": "Kaskaskia Island", + "min_elevation": 366.35, + "max_elevation": 411.54, + "xs_id": 118.64 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Kaskaskia Island", + "min_elevation": 365.62, + "max_elevation": 400.12, + "xs_id": 117.92 + }, + "eclipsed": false, + "low_flow": 363, + "high_flow": 11864, + "network_to_id": "5088488", + "metrics": { + "xs": { + "centerline_offset": { + "count": 3, + "mean": 382, + "std": 231, + "min": 190, + "25%": 254, + "50%": 317, + "75%": 478, + "max": 638 + }, + "thalweg_offset": { + "count": 3, + "mean": 848, + "std": 827, + "min": 183, + "25%": 385, + "50%": 587, + "75%": 1181, + "max": 1775 + } + }, + "lengths": { + "ras": 9115, + "network": 9860, + "network_to_ras_ratio": 1.08 + }, + "coverage": { + "start": 0.01, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "5088524", + "overlap": 133 + } + ], + "eclipsed_reaches": [ + "5088490", + "5088488" + ] + }, + "5088488": { + "eclipsed": true, + "low_flow": 360, + "high_flow": 11782, + "network_to_id": "5088524" + }, + "5088536": { + "us_xs": { + "river": "Mississippi", + "reach": "Kaskaskia Island", + "min_elevation": 361.27, + "max_elevation": 420.08, + "xs_id": 116.88 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Kaskaskia Island", + "min_elevation": 361.98, + "max_elevation": 406.99, + "xs_id": 115.76 + }, + "eclipsed": false, + "low_flow": 986, + "high_flow": 44071, + "network_to_id": "5088542", + "metrics": { + "xs": { + "centerline_offset": { + "count": 3, + "mean": 173, + "std": 151, + "min": 75, + "25%": 86, + "50%": 97, + "75%": 222, + "max": 347 + }, + "thalweg_offset": { + "count": 3, + "mean": 186, + "std": 80, + "min": 126, + "25%": 141, + "50%": 156, + "75%": 216, + "max": 277 + } + }, + "lengths": { + "ras": 7652, + "network": 7864, + "network_to_ras_ratio": 1.03 + }, + "coverage": { + "start": 0.22, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "5088542", + "overlap": 3433 + } + ], + "eclipsed_reaches": [] + }, + "5088524": { + "us_xs": { + "river": "Mississippi", + "reach": "Kaskaskia Island", + "min_elevation": 365.62, + "max_elevation": 400.12, + "xs_id": 117.92 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Kaskaskia Island", + "min_elevation": 361.27, + "max_elevation": 420.08, + "xs_id": 116.88 + }, + "eclipsed": false, + "low_flow": 354, + "high_flow": 11400, + "network_to_id": "5088536", + "metrics": { + "xs": { + "centerline_offset": { + "count": 3, + "mean": 440, + "std": 298, + "min": 97, + "25%": 341, + "50%": 585, + "75%": 611, + "max": 638 + }, + "thalweg_offset": { + "count": 3, + "mean": 931, + "std": 812, + "min": 156, + "25%": 509, + "50%": 861, + "75%": 1318, + "max": 1775 + } + }, + "lengths": { + "ras": 9008, + "network": 8861, + "network_to_ras_ratio": 0.98 + }, + "coverage": { + "start": 0.02, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "5088536", + "overlap": 1272 + } + ], + "eclipsed_reaches": [] + }, + "5089890": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 325.25, + "max_elevation": 414.97, + "xs_id": 115.24 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 2", + "min_elevation": 315.74, + "max_elevation": 400.13, + "xs_id": 109.93 + }, + "eclipsed": false, + "low_flow": 414689, + "high_flow": 1896167, + "network_to_id": "5089904", + "metrics": { + "xs": { + "centerline_offset": { + "count": 11, + "mean": 29, + "std": 15, + "min": 2, + "25%": 23, + "50%": 28, + "75%": 41, + "max": 50 + }, + "thalweg_offset": { + "count": 11, + "mean": 222, + "std": 74, + "min": 46, + "25%": 193, + "50%": 238, + "75%": 278, + "max": 292 + } + }, + "lengths": { + "ras": 28233, + "network": 28332, + "network_to_ras_ratio": 1.0 + }, + "coverage": { + "start": 0.02, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "5089904", + "overlap": 2253 + } + ], + "eclipsed_reaches": [ + "5088588", + "5089908", + "5088576", + "5089892", + "5089894", + "5089906" + ] + }, + "3630825": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 324.72, + "max_elevation": 420.0, + "xs_id": 122.72 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 327.37, + "max_elevation": 415.05, + "xs_id": 122.13 + }, + "eclipsed": false, + "low_flow": 410602, + "high_flow": 1894358, + "network_to_id": "3630829", + "metrics": { + "xs": { + "centerline_offset": { + "count": 2, + "mean": 41, + "std": 17, + "min": 29, + "25%": 35, + "50%": 41, + "75%": 47, + "max": 53 + }, + "thalweg_offset": { + "count": 2, + "mean": 230, + "std": 33, + "min": 206, + "25%": 218, + "50%": 230, + "75%": 241, + "max": 253 + } + }, + "lengths": { + "ras": 3099, + "network": 3159, + "network_to_ras_ratio": 1.02 + }, + "coverage": { + "start": 0.3, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "3630829", + "overlap": 609 + } + ], + "eclipsed_reaches": [ + "3630827", + "13892798", + "13894102" + ] + }, + "3629943": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 316.63, + "max_elevation": 409.49, + "xs_id": 120.65 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 323.78, + "max_elevation": 407.23, + "xs_id": 118.21 + }, + "eclipsed": false, + "low_flow": 410618, + "high_flow": 1894180, + "network_to_id": "5090052", + "metrics": { + "xs": { + "centerline_offset": { + "count": 6, + "mean": 66, + "std": 29, + "min": 38, + "25%": 57, + "50%": 60, + "75%": 62, + "max": 122 + }, + "thalweg_offset": { + "count": 6, + "mean": 357, + "std": 251, + "min": 58, + "25%": 191, + "50%": 328, + "75%": 497, + "max": 730 + } + }, + "lengths": { + "ras": 13501, + "network": 13586, + "network_to_ras_ratio": 1.01 + }, + "coverage": { + "start": 0.14, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "5090052", + "overlap": 117 + } + ], + "eclipsed_reaches": [ + "13894316" + ] + }, + "3630829": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 327.37, + "max_elevation": 415.05, + "xs_id": 122.13 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 316.63, + "max_elevation": 409.49, + "xs_id": 120.65 + }, + "eclipsed": false, + "low_flow": 410621, + "high_flow": 1894453, + "network_to_id": "3629943", + "metrics": { + "xs": { + "centerline_offset": { + "count": 4, + "mean": 31, + "std": 28, + "min": 4, + "25%": 9, + "50%": 31, + "75%": 54, + "max": 57 + }, + "thalweg_offset": { + "count": 4, + "mean": 644, + "std": 726, + "min": 107, + "25%": 217, + "50%": 382, + "75%": 809, + "max": 1703 + } + }, + "lengths": { + "ras": 8761, + "network": 8653, + "network_to_ras_ratio": 0.99 + }, + "coverage": { + "start": 0.09, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "3629943", + "overlap": 2174 + } + ], + "eclipsed_reaches": [] + }, + "5090052": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 323.78, + "max_elevation": 407.23, + "xs_id": 118.21 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 321.76, + "max_elevation": 410.09, + "xs_id": 117.41 + }, + "eclipsed": false, + "low_flow": 410621, + "high_flow": 1894259, + "network_to_id": "5089872", + "metrics": { + "xs": { + "centerline_offset": { + "count": 3, + "mean": 37, + "std": 22, + "min": 19, + "25%": 25, + "50%": 30, + "75%": 46, + "max": 61 + }, + "thalweg_offset": { + "count": 3, + "mean": 196, + "std": 123, + "min": 58, + "25%": 148, + "50%": 238, + "75%": 266, + "max": 293 + } + }, + "lengths": { + "ras": 4213, + "network": 4245, + "network_to_ras_ratio": 1.01 + }, + "coverage": { + "start": 0.05, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "5089868", + "overlap": 377 + } + ], + "eclipsed_reaches": [ + "5088356", + "5089874", + "5089876", + "5089878", + "5089872", + "13894312", + "13894314" + ] + }, + "5089888": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 318.87, + "max_elevation": 410.05, + "xs_id": 115.76 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 325.25, + "max_elevation": 414.97, + "xs_id": 115.24 + }, + "eclipsed": false, + "low_flow": 414806, + "high_flow": 1897788, + "network_to_id": "5089890", + "metrics": { + "xs": { + "centerline_offset": { + "count": 2, + "mean": 49, + "std": 4, + "min": 46, + "25%": 47, + "50%": 49, + "75%": 50, + "max": 51 + }, + "thalweg_offset": { + "count": 2, + "mean": 186, + "std": 40, + "min": 158, + "25%": 172, + "50%": 186, + "75%": 200, + "max": 214 + } + }, + "lengths": { + "ras": 2867, + "network": 2867, + "network_to_ras_ratio": 1.0 + }, + "coverage": { + "start": 0.32, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "5089890", + "overlap": 631 + } + ], + "eclipsed_reaches": [ + "5089884", + "5089886" + ] + }, + "5089872": { + "eclipsed": true, + "low_flow": 410623, + "high_flow": 1894306, + "network_to_id": "5089868" + }, + "5089870": { + "eclipsed": true, + "low_flow": 414806, + "high_flow": 1897908, + "network_to_id": "5089880" + }, + "5089868": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 321.76, + "max_elevation": 410.09, + "xs_id": 117.41 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 291.5, + "max_elevation": 409.99, + "xs_id": 116.88 + }, + "eclipsed": false, + "low_flow": 414808, + "high_flow": 1897944, + "network_to_id": "5089870", + "metrics": { + "xs": { + "centerline_offset": { + "count": 2, + "mean": 48, + "std": 25, + "min": 30, + "25%": 39, + "50%": 48, + "75%": 57, + "max": 66 + }, + "thalweg_offset": { + "count": 2, + "mean": 297, + "std": 83, + "min": 238, + "25%": 268, + "50%": 297, + "75%": 327, + "max": 356 + } + }, + "lengths": { + "ras": 2670, + "network": 2446, + "network_to_ras_ratio": 0.92 + }, + "coverage": { + "start": 0.64, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "5089880", + "overlap": 41 + } + ], + "eclipsed_reaches": [ + "5089870" + ] + }, + "5089880": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 291.5, + "max_elevation": 409.99, + "xs_id": 116.88 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 318.87, + "max_elevation": 410.05, + "xs_id": 115.76 + }, + "eclipsed": false, + "low_flow": 414805, + "high_flow": 1897835, + "network_to_id": "5089888", + "metrics": { + "xs": { + "centerline_offset": { + "count": 3, + "mean": 58, + "std": 7, + "min": 51, + "25%": 54, + "50%": 56, + "75%": 61, + "max": 66 + }, + "thalweg_offset": { + "count": 3, + "mean": 328, + "std": 103, + "min": 214, + "25%": 285, + "50%": 356, + "75%": 385, + "max": 415 + } + }, + "lengths": { + "ras": 5489, + "network": 5347, + "network_to_ras_ratio": 0.97 + }, + "coverage": { + "start": 0.01, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "5089888", + "overlap": 1071 + } + ], + "eclipsed_reaches": [ + "5089882" + ] + }, + "3630823": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 327.08, + "max_elevation": 410.19, + "xs_id": 123.93 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 324.72, + "max_elevation": 420.0, + "xs_id": 122.72 + }, + "eclipsed": false, + "low_flow": 410601, + "high_flow": 1894281, + "network_to_id": "3630825", + "metrics": { + "xs": { + "centerline_offset": { + "count": 3, + "mean": 37, + "std": 39, + "min": 3, + "25%": 16, + "50%": 29, + "75%": 54, + "max": 80 + }, + "thalweg_offset": { + "count": 3, + "mean": 250, + "std": 50, + "min": 206, + "25%": 223, + "50%": 239, + "75%": 272, + "max": 305 + } + }, + "lengths": { + "ras": 6277, + "network": 6269, + "network_to_ras_ratio": 1.0 + }, + "coverage": { + "start": 0.2, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "3630825", + "overlap": 1117 + } + ], + "eclipsed_reaches": [ + "3630819", + "13894094", + "13894092", + "13894096", + "13894174", + "13892730", + "13892722", + "13892720", + "13892740", + "13892724", + "13894086", + "13892746", + "13892750", + "13892738", + "13892744", + "13892748", + "13894088", + "13892710", + "13892708", + "13892718", + "3630469", + "3634865" + ] + }, + "3629267": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 322.55, + "max_elevation": 420.03, + "xs_id": 125.6 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 327.08, + "max_elevation": 410.19, + "xs_id": 123.93 + }, + "eclipsed": false, + "low_flow": 410588, + "high_flow": 1894334, + "network_to_id": "3630817", + "metrics": { + "xs": { + "centerline_offset": { + "count": 5, + "mean": 92, + "std": 36, + "min": 61, + "25%": 62, + "50%": 80, + "75%": 119, + "max": 140 + }, + "thalweg_offset": { + "count": 5, + "mean": 221, + "std": 87, + "min": 83, + "25%": 198, + "50%": 239, + "75%": 286, + "max": 300 + } + }, + "lengths": { + "ras": 8406, + "network": 8596, + "network_to_ras_ratio": 1.02 + }, + "coverage": { + "start": 0.01, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "3630823", + "overlap": 1303 + } + ], + "eclipsed_reaches": [ + "3628623", + "3628617", + "3630817", + "3628739", + "3629265", + "3630821", + "3628655", + "3628565", + "3628653", + "3628607", + "3628595", + "3628597", + "3628613" + ] + }, + "3630817": { + "eclipsed": true, + "low_flow": 410587, + "high_flow": 1894296, + "network_to_id": "3630823" + }, + "3629263": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 328.45, + "max_elevation": 420.04, + "xs_id": 127.0 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 322.55, + "max_elevation": 420.03, + "xs_id": 125.6 + }, + "eclipsed": false, + "low_flow": 410587, + "high_flow": 1894439, + "network_to_id": "3629267", + "metrics": { + "xs": { + "centerline_offset": { + "count": 4, + "mean": 145, + "std": 43, + "min": 88, + "25%": 127, + "50%": 150, + "75%": 168, + "max": 192 + }, + "thalweg_offset": { + "count": 4, + "mean": 126, + "std": 118, + "min": 46, + "25%": 58, + "50%": 80, + "75%": 148, + "max": 300 + } + }, + "lengths": { + "ras": 7214, + "network": 7342, + "network_to_ras_ratio": 1.02 + }, + "coverage": { + "start": 0.21, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "3629267", + "overlap": 79 + } + ], + "eclipsed_reaches": [ + "3628475", + "3628705", + "3629261" + ] + }, + "3629257": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 326.95, + "max_elevation": 420.12, + "xs_id": 128.0 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 328.45, + "max_elevation": 420.04, + "xs_id": 127.0 + }, + "eclipsed": false, + "low_flow": 410596, + "high_flow": 1894603, + "network_to_id": "3629263", + "metrics": { + "xs": { + "centerline_offset": { + "count": 3, + "mean": 118, + "std": 53, + "min": 86, + "25%": 87, + "50%": 88, + "75%": 134, + "max": 179 + }, + "thalweg_offset": { + "count": 3, + "mean": 93, + "std": 44, + "min": 46, + "25%": 74, + "50%": 103, + "75%": 117, + "max": 132 + } + }, + "lengths": { + "ras": 5232, + "network": 5228, + "network_to_ras_ratio": 1.0 + }, + "coverage": { + "start": 0.42, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "3629263", + "overlap": 1986 + } + ], + "eclipsed_reaches": [ + "3629259" + ] + }, + "3629237": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 335.24, + "max_elevation": 420.06, + "xs_id": 131.76 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 332.74, + "max_elevation": 420.0, + "xs_id": 129.39 + }, + "eclipsed": false, + "low_flow": 410449, + "high_flow": 1894137, + "network_to_id": "3629241", + "metrics": { + "xs": { + "centerline_offset": { + "count": 6, + "mean": 159, + "std": 36, + "min": 99, + "25%": 154, + "50%": 160, + "75%": 167, + "max": 211 + }, + "thalweg_offset": { + "count": 6, + "mean": 215, + "std": 185, + "min": 7, + "25%": 88, + "50%": 174, + "75%": 335, + "max": 485 + } + }, + "lengths": { + "ras": 12581, + "network": 12263, + "network_to_ras_ratio": 0.97 + }, + "coverage": { + "start": 0.13, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "3629241", + "overlap": 2146 + } + ], + "eclipsed_reaches": [ + "3628353", + "3628283", + "3629235", + "3628437", + "3629287", + "3628277" + ] + }, + "3624727": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 352.95, + "max_elevation": 443.48, + "xs_id": 183.38 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 353.58, + "max_elevation": 440.84, + "xs_id": 180.77 + }, + "eclipsed": false, + "low_flow": 406233, + "high_flow": 1940520, + "network_to_id": "3624735", + "metrics": { + "xs": { + "centerline_offset": { + "count": 13, + "mean": 51, + "std": 34, + "min": 5, + "25%": 25, + "50%": 29, + "75%": 80, + "max": 115 + }, + "thalweg_offset": { + "count": 13, + "mean": 143, + "std": 74, + "min": 33, + "25%": 63, + "50%": 190, + "75%": 191, + "max": 220 + } + }, + "lengths": { + "ras": 13773, + "network": 13827, + "network_to_ras_ratio": 1.0 + }, + "coverage": { + "start": 0.19, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "3624735", + "overlap": 1715 + } + ], + "eclipsed_reaches": [ + "3624725" + ] + }, + "3624705": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 366.06, + "max_elevation": 447.78, + "xs_id": 193.28 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 374.13, + "max_elevation": 457.36, + "xs_id": 190.85 + }, + "eclipsed": false, + "low_flow": 406051, + "high_flow": 1941422, + "network_to_id": "3624709", + "metrics": { + "xs": { + "centerline_offset": { + "count": 6, + "mean": 29, + "std": 19, + "min": 7, + "25%": 19, + "50%": 28, + "75%": 32, + "max": 62 + }, + "thalweg_offset": { + "count": 6, + "mean": 1402, + "std": 386, + "min": 922, + "25%": 1070, + "50%": 1474, + "75%": 1716, + "max": 1811 + } + }, + "lengths": { + "ras": 13913, + "network": 13872, + "network_to_ras_ratio": 1.0 + }, + "coverage": { + "start": 0.1, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "3624709", + "overlap": 845 + } + ], + "eclipsed_reaches": [ + "3624707" + ] + }, + "3624715": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 367.77, + "max_elevation": 477.05, + "xs_id": 188.88 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 361.87, + "max_elevation": 445.07, + "xs_id": 186.82 + }, + "eclipsed": false, + "low_flow": 406050, + "high_flow": 1940720, + "network_to_id": "3634823", + "metrics": { + "xs": { + "centerline_offset": { + "count": 5, + "mean": 41, + "std": 36, + "min": 10, + "25%": 24, + "50%": 30, + "75%": 39, + "max": 102 + }, + "thalweg_offset": { + "count": 5, + "mean": 627, + "std": 181, + "min": 416, + "25%": 526, + "50%": 576, + "75%": 749, + "max": 870 + } + }, + "lengths": { + "ras": 10582, + "network": 10586, + "network_to_ras_ratio": 1.0 + }, + "coverage": { + "start": 0.11, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "3634823", + "overlap": 1441 + } + ], + "eclipsed_reaches": [ + "3624717" + ] + }, + "3624723": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 363.39, + "max_elevation": 479.33, + "xs_id": 184.56 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 352.95, + "max_elevation": 443.48, + "xs_id": 183.38 + }, + "eclipsed": false, + "low_flow": 406190, + "high_flow": 1940409, + "network_to_id": "3624727", + "metrics": { + "xs": { + "centerline_offset": { + "count": 3, + "mean": 126, + "std": 16, + "min": 115, + "25%": 117, + "50%": 119, + "75%": 132, + "max": 145 + }, + "thalweg_offset": { + "count": 3, + "mean": 593, + "std": 470, + "min": 50, + "25%": 456, + "50%": 863, + "75%": 864, + "max": 866 + } + }, + "lengths": { + "ras": 6170, + "network": 6294, + "network_to_ras_ratio": 1.02 + }, + "coverage": { + "start": 0.4, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "3624727", + "overlap": 2766 + } + ], + "eclipsed_reaches": [ + "3624721" + ] + }, + "3629227": { + "eclipsed": true, + "low_flow": 410427, + "high_flow": 1894201, + "network_to_id": "3629237" + }, + "3629229": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 327.07, + "max_elevation": 420.04, + "xs_id": 133.31 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 335.24, + "max_elevation": 420.06, + "xs_id": 131.76 + }, + "eclipsed": false, + "low_flow": 410426, + "high_flow": 1894221, + "network_to_id": "3629227", + "metrics": { + "xs": { + "centerline_offset": { + "count": 4, + "mean": 86, + "std": 24, + "min": 61, + "25%": 68, + "50%": 85, + "75%": 102, + "max": 112 + }, + "thalweg_offset": { + "count": 4, + "mean": 152, + "std": 73, + "min": 81, + "25%": 106, + "50%": 140, + "75%": 186, + "max": 248 + } + }, + "lengths": { + "ras": 7896, + "network": 7777, + "network_to_ras_ratio": 0.98 + }, + "coverage": { + "start": 0.17, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "3629237", + "overlap": 1550 + } + ], + "eclipsed_reaches": [ + "3628289", + "3629225", + "3629285", + "3628227", + "3628097", + "3628389", + "3628393", + "3628433", + "3628285", + "3628207", + "3629223", + "937140099", + "937140100", + "3628229", + "3629227", + "3628211" + ] + }, + "3629247": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 328.99, + "max_elevation": 420.07, + "xs_id": 128.5 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 326.95, + "max_elevation": 420.12, + "xs_id": 128.0 + }, + "eclipsed": false, + "low_flow": 410592, + "high_flow": 1894624, + "network_to_id": "3629257", + "metrics": { + "xs": { + "centerline_offset": { + "count": 2, + "mean": 110, + "std": 97, + "min": 41, + "25%": 76, + "50%": 110, + "75%": 144, + "max": 179 + }, + "thalweg_offset": { + "count": 2, + "mean": 142, + "std": 15, + "min": 132, + "25%": 137, + "50%": 142, + "75%": 148, + "max": 153 + } + }, + "lengths": { + "ras": 2722, + "network": 2586, + "network_to_ras_ratio": 0.95 + }, + "coverage": { + "start": 0.63, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "3629257", + "overlap": 2355 + } + ], + "eclipsed_reaches": [] + }, + "3629241": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 332.74, + "max_elevation": 420.0, + "xs_id": 129.39 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 328.99, + "max_elevation": 420.07, + "xs_id": 128.5 + }, + "eclipsed": false, + "low_flow": 410453, + "high_flow": 1894191, + "network_to_id": "3629247", + "metrics": { + "xs": { + "centerline_offset": { + "count": 3, + "mean": 74, + "std": 84, + "min": 11, + "25%": 26, + "50%": 41, + "75%": 105, + "max": 169 + }, + "thalweg_offset": { + "count": 3, + "mean": 170, + "std": 80, + "min": 99, + "25%": 126, + "50%": 153, + "75%": 205, + "max": 257 + } + }, + "lengths": { + "ras": 4791, + "network": 4828, + "network_to_ras_ratio": 1.01 + }, + "coverage": { + "start": 0.33, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "3629247", + "overlap": 394 + } + ], + "eclipsed_reaches": [ + "3628593", + "3629243", + "3629245", + "3628423" + ] + }, + "3629217": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 334.0, + "max_elevation": 423.0, + "xs_id": 135.5 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 334.79, + "max_elevation": 420.21, + "xs_id": 134.88 + }, + "eclipsed": false, + "low_flow": 410439, + "high_flow": 1894401, + "network_to_id": "3629221", + "metrics": { + "xs": { + "centerline_offset": { + "count": 2, + "mean": 143, + "std": 5, + "min": 140, + "25%": 142, + "50%": 143, + "75%": 145, + "max": 147 + }, + "thalweg_offset": { + "count": 2, + "mean": 190, + "std": 169, + "min": 71, + "25%": 131, + "50%": 190, + "75%": 250, + "max": 309 + } + }, + "lengths": { + "ras": 3181, + "network": 3215, + "network_to_ras_ratio": 1.01 + }, + "coverage": { + "start": 0.19, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "3629221", + "overlap": 60 + } + ], + "eclipsed_reaches": [ + "3629219" + ] + }, + "3629221": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 334.79, + "max_elevation": 420.21, + "xs_id": 134.88 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 327.07, + "max_elevation": 420.04, + "xs_id": 133.31 + }, + "eclipsed": false, + "low_flow": 410433, + "high_flow": 1894296, + "network_to_id": "3629229", + "metrics": { + "xs": { + "centerline_offset": { + "count": 4, + "mean": 84, + "std": 58, + "min": 14, + "25%": 50, + "50%": 87, + "75%": 121, + "max": 147 + }, + "thalweg_offset": { + "count": 4, + "mean": 92, + "std": 18, + "min": 71, + "25%": 84, + "50%": 91, + "75%": 99, + "max": 114 + } + }, + "lengths": { + "ras": 8347, + "network": 8281, + "network_to_ras_ratio": 0.99 + }, + "coverage": { + "start": 0.01, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "3629229", + "overlap": 1193 + } + ], + "eclipsed_reaches": [ + "3629233", + "3629231", + "3628085", + "3628177", + "3628103", + "3628065", + "3628179" + ] + }, + "3634869": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 367.39, + "max_elevation": 445.89, + "xs_id": 189.47 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 367.77, + "max_elevation": 477.05, + "xs_id": 188.88 + }, + "eclipsed": false, + "low_flow": 406063, + "high_flow": 1941247, + "network_to_id": "3624715", + "metrics": { + "xs": { + "centerline_offset": { + "count": 2, + "mean": 91, + "std": 15, + "min": 81, + "25%": 86, + "50%": 91, + "75%": 97, + "max": 102 + }, + "thalweg_offset": { + "count": 2, + "mean": 843, + "std": 38, + "min": 816, + "25%": 830, + "50%": 843, + "75%": 857, + "max": 870 + } + }, + "lengths": { + "ras": 3312, + "network": 3424, + "network_to_ras_ratio": 1.03 + }, + "coverage": { + "start": 0.19, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "3624715", + "overlap": 1095 + } + ], + "eclipsed_reaches": [ + "3624771" + ] + }, + "3624711": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 372.4, + "max_elevation": 468.91, + "xs_id": 190.29 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 367.39, + "max_elevation": 445.89, + "xs_id": 189.47 + }, + "eclipsed": false, + "low_flow": 406064, + "high_flow": 1941228, + "network_to_id": "3634869", + "metrics": { + "xs": { + "centerline_offset": { + "count": 2, + "mean": 63, + "std": 25, + "min": 45, + "25%": 54, + "50%": 63, + "75%": 72, + "max": 81 + }, + "thalweg_offset": { + "count": 2, + "mean": 683, + "std": 188, + "min": 550, + "25%": 617, + "50%": 683, + "75%": 750, + "max": 816 + } + }, + "lengths": { + "ras": 4257, + "network": 4370, + "network_to_ras_ratio": 1.03 + }, + "coverage": { + "start": 0.02, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "3634869", + "overlap": 554 + } + ], + "eclipsed_reaches": [ + "3624713" + ] + }, + "3624709": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 374.13, + "max_elevation": 457.36, + "xs_id": 190.85 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 372.4, + "max_elevation": 468.91, + "xs_id": 190.29 + }, + "eclipsed": false, + "low_flow": 406064, + "high_flow": 1941284, + "network_to_id": "3624711", + "metrics": { + "xs": { + "centerline_offset": { + "count": 12, + "mean": 48, + "std": 18, + "min": 17, + "25%": 35, + "50%": 54, + "75%": 62, + "max": 69 + }, + "thalweg_offset": { + "count": 12, + "mean": 791, + "std": 164, + "min": 550, + "25%": 598, + "50%": 855, + "75%": 912, + "max": 995 + } + }, + "lengths": { + "ras": 3026, + "network": 3058, + "network_to_ras_ratio": 1.01 + }, + "coverage": { + "start": 0.22, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "3624711", + "overlap": 66 + } + ], + "eclipsed_reaches": [] + }, + "3629209": { + "eclipsed": true, + "low_flow": 410435, + "high_flow": 1894466, + "network_to_id": "3629213" + }, + "3629213": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 338.1, + "max_elevation": 420.06, + "xs_id": 136.0 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 334.0, + "max_elevation": 423.0, + "xs_id": 135.5 + }, + "eclipsed": false, + "low_flow": 410435, + "high_flow": 1894442, + "network_to_id": "3629217", + "metrics": { + "xs": { + "centerline_offset": { + "count": 2, + "mean": 142, + "std": 3, + "min": 140, + "25%": 141, + "50%": 142, + "75%": 143, + "max": 144 + }, + "thalweg_offset": { + "count": 2, + "mean": 164, + "std": 206, + "min": 18, + "25%": 91, + "50%": 164, + "75%": 237, + "max": 309 + } + }, + "lengths": { + "ras": 2548, + "network": 2541, + "network_to_ras_ratio": 1.0 + }, + "coverage": { + "start": 0.41, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "3629217", + "overlap": 757 + } + ], + "eclipsed_reaches": [ + "3629283", + "3629215" + ] + }, + "3629205": { + "eclipsed": true, + "low_flow": 410432, + "high_flow": 1894456, + "network_to_id": "3629209" + }, + "3629197": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 331.49, + "max_elevation": 419.99, + "xs_id": 137.03 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 338.87, + "max_elevation": 419.91, + "xs_id": 136.48 + }, + "eclipsed": false, + "low_flow": 410367, + "high_flow": 1894064, + "network_to_id": "3629203", + "metrics": { + "xs": { + "centerline_offset": { + "count": 2, + "mean": 65, + "std": 68, + "min": 17, + "25%": 41, + "50%": 65, + "75%": 89, + "max": 113 + }, + "thalweg_offset": { + "count": 2, + "mean": 177, + "std": 151, + "min": 70, + "25%": 124, + "50%": 177, + "75%": 230, + "max": 284 + } + }, + "lengths": { + "ras": 2680, + "network": 2732, + "network_to_ras_ratio": 1.02 + }, + "coverage": { + "start": 0.8, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "3629205", + "overlap": 0 + } + ], + "eclipsed_reaches": [ + "3627881", + "3629203" + ] + }, + "3629191": { + "eclipsed": true, + "low_flow": 410365, + "high_flow": 1894093, + "network_to_id": "3629197" + }, + "3629203": { + "eclipsed": true, + "low_flow": 410367, + "high_flow": 1894147, + "network_to_id": "3629205" + }, + "3629159": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 342.73, + "max_elevation": 419.99, + "xs_id": 145.82 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 343.28, + "max_elevation": 420.07, + "xs_id": 145.35 + }, + "eclipsed": false, + "low_flow": 410401, + "high_flow": 1895131, + "network_to_id": "3629163", + "metrics": { + "xs": { + "centerline_offset": { + "count": 2, + "mean": 35, + "std": 22, + "min": 20, + "25%": 27, + "50%": 35, + "75%": 43, + "max": 51 + }, + "thalweg_offset": { + "count": 2, + "mean": 77, + "std": 46, + "min": 44, + "25%": 61, + "50%": 77, + "75%": 93, + "max": 109 + } + }, + "lengths": { + "ras": 2648, + "network": 2678, + "network_to_ras_ratio": 1.01 + }, + "coverage": { + "start": 0.58, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "3629163", + "overlap": 875 + } + ], + "eclipsed_reaches": [ + "3629161" + ] + }, + "3629155": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 336.47, + "max_elevation": 419.99, + "xs_id": 148.25 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 342.73, + "max_elevation": 419.99, + "xs_id": 145.82 + }, + "eclipsed": false, + "low_flow": 410399, + "high_flow": 1895308, + "network_to_id": "3629159", + "metrics": { + "xs": { + "centerline_offset": { + "count": 6, + "mean": 66, + "std": 43, + "min": 20, + "25%": 27, + "50%": 71, + "75%": 97, + "max": 118 + }, + "thalweg_offset": { + "count": 6, + "mean": 171, + "std": 68, + "min": 44, + "25%": 156, + "50%": 195, + "75%": 207, + "max": 234 + } + }, + "lengths": { + "ras": 13053, + "network": 13155, + "network_to_ras_ratio": 1.01 + }, + "coverage": { + "start": 0.0, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "3629159", + "overlap": 2453 + } + ], + "eclipsed_reaches": [ + "3629157" + ] + }, + "3629135": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 337.15, + "max_elevation": 430.19, + "xs_id": 151.14 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 339.56, + "max_elevation": 431.17, + "xs_id": 150.19 + }, + "eclipsed": false, + "low_flow": 410362, + "high_flow": 1895760, + "network_to_id": "3629147", + "metrics": { + "xs": { + "centerline_offset": { + "count": 3, + "mean": 72, + "std": 52, + "min": 14, + "25%": 49, + "50%": 84, + "75%": 101, + "max": 117 + }, + "thalweg_offset": { + "count": 3, + "mean": 135, + "std": 2, + "min": 134, + "25%": 134, + "50%": 135, + "75%": 136, + "max": 138 + } + }, + "lengths": { + "ras": 5031, + "network": 5096, + "network_to_ras_ratio": 1.01 + }, + "coverage": { + "start": 0.22, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "3629147", + "overlap": 695 + } + ], + "eclipsed_reaches": [ + "3629137" + ] + }, + "3629147": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 339.56, + "max_elevation": 431.17, + "xs_id": 150.19 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 336.47, + "max_elevation": 419.99, + "xs_id": 148.25 + }, + "eclipsed": false, + "low_flow": 410359, + "high_flow": 1895575, + "network_to_id": "3629155", + "metrics": { + "xs": { + "centerline_offset": { + "count": 5, + "mean": 90, + "std": 31, + "min": 48, + "25%": 66, + "50%": 108, + "75%": 111, + "max": 117 + }, + "thalweg_offset": { + "count": 5, + "mean": 169, + "std": 55, + "min": 97, + "25%": 134, + "50%": 176, + "75%": 209, + "max": 230 + } + }, + "lengths": { + "ras": 10206, + "network": 10230, + "network_to_ras_ratio": 1.0 + }, + "coverage": { + "start": 0.06, + "end": 1.0 + } + }, + "overlapped_reaches": [ + { + "id": "3629155", + "overlap": 53 + } + ], + "eclipsed_reaches": [ + "3629149", + "3629279" + ] + }, + "3629127": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 335.05, + "max_elevation": 450.83, + "xs_id": 152.94 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 337.15, + "max_elevation": 430.19, + "xs_id": 151.14 + }, + "eclipsed": false, + "low_flow": 410270, + "high_flow": 1896331, + "network_to_id": "3629135", + "metrics": { + "xs": { + "centerline_offset": { + "count": 5, + "mean": 35, + "std": 21, + "min": 14, + "25%": 15, + "50%": 36, + "75%": 48, + "max": 62 + }, + "thalweg_offset": { + "count": 5, + "mean": 214, + "std": 80, + "min": 138, + "25%": 160, + "50%": 192, + "75%": 244, + "max": 338 + } + }, + "lengths": { + "ras": 9421, + "network": 9547, + "network_to_ras_ratio": 1.01 + }, + "coverage": { + "start": 0.12, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "3629135", + "overlap": 1269 + } + ], + "eclipsed_reaches": [ + "3629129", + "3627291", + "937140102", + "3627289", + "3627247", + "937140052", + "937140053" + ] + }, + "3629119": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 341.08, + "max_elevation": 442.28, + "xs_id": 154.6 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 335.05, + "max_elevation": 450.83, + "xs_id": 152.94 + }, + "eclipsed": false, + "low_flow": 410279, + "high_flow": 1896368, + "network_to_id": "3629127", + "metrics": { + "xs": { + "centerline_offset": { + "count": 4, + "mean": 57, + "std": 38, + "min": 18, + "25%": 35, + "50%": 51, + "75%": 74, + "max": 108 + }, + "thalweg_offset": { + "count": 4, + "mean": 151, + "std": 63, + "min": 58, + "25%": 140, + "50%": 178, + "75%": 189, + "max": 192 + } + }, + "lengths": { + "ras": 8468, + "network": 8513, + "network_to_ras_ratio": 1.01 + }, + "coverage": { + "start": 0.39, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "3629127", + "overlap": 1096 + } + ], + "eclipsed_reaches": [ + "3629121", + "3627115" + ] + }, + "3629097": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 332.4, + "max_elevation": 440.17, + "xs_id": 156.02 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 341.08, + "max_elevation": 442.28, + "xs_id": 154.6 + }, + "eclipsed": false, + "low_flow": 410282, + "high_flow": 1896594, + "network_to_id": "3629119", + "metrics": { + "xs": { + "centerline_offset": { + "count": 3, + "mean": 56, + "std": 53, + "min": 2, + "25%": 30, + "50%": 58, + "75%": 83, + "max": 108 + }, + "thalweg_offset": { + "count": 3, + "mean": 280, + "std": 80, + "min": 188, + "25%": 256, + "50%": 324, + "75%": 326, + "max": 328 + } + }, + "lengths": { + "ras": 7364, + "network": 7520, + "network_to_ras_ratio": 1.02 + }, + "coverage": { + "start": 0.3, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "3629119", + "overlap": 4822 + } + ], + "eclipsed_reaches": [ + "3629099", + "3629331", + "3629105", + "3629103" + ] + }, + "3629089": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 340.37, + "max_elevation": 440.05, + "xs_id": 156.52 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 332.4, + "max_elevation": 440.17, + "xs_id": 156.02 + }, + "eclipsed": false, + "low_flow": 410266, + "high_flow": 1896262, + "network_to_id": "3629097", + "metrics": { + "xs": { + "centerline_offset": { + "count": 2, + "mean": 62, + "std": 5, + "min": 58, + "25%": 60, + "50%": 62, + "75%": 64, + "max": 66 + }, + "thalweg_offset": { + "count": 2, + "mean": 343, + "std": 26, + "min": 324, + "25%": 333, + "50%": 343, + "75%": 352, + "max": 361 + } + }, + "lengths": { + "ras": 2464, + "network": 2479, + "network_to_ras_ratio": 1.01 + }, + "coverage": { + "start": 0.03, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "3629097", + "overlap": 1135 + } + ], + "eclipsed_reaches": [ + "3629087" + ] + }, + "3629083": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 340.17, + "max_elevation": 434.49, + "xs_id": 158.67 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 340.37, + "max_elevation": 440.05, + "xs_id": 156.52 + }, + "eclipsed": false, + "low_flow": 410260, + "high_flow": 1896429, + "network_to_id": "3629089", + "metrics": { + "xs": { + "centerline_offset": { + "count": 6, + "mean": 48, + "std": 27, + "min": 9, + "25%": 32, + "50%": 53, + "75%": 66, + "max": 80 + }, + "thalweg_offset": { + "count": 6, + "mean": 176, + "std": 113, + "min": 13, + "25%": 135, + "50%": 180, + "75%": 198, + "max": 361 + } + }, + "lengths": { + "ras": 11379, + "network": 11485, + "network_to_ras_ratio": 1.01 + }, + "coverage": { + "start": 0.06, + "end": 1.0 + } + }, + "overlapped_reaches": [ + { + "id": "3629089", + "overlap": 41 + } + ], + "eclipsed_reaches": [ + "3629085", + "3627029", + "3627019", + "3626971", + "3629093" + ] + }, + "3629077": { + "eclipsed": true, + "low_flow": 410264, + "high_flow": 1896906, + "network_to_id": "3629083" + }, + "3629073": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 349.56, + "max_elevation": 439.82, + "xs_id": 160.71 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 340.17, + "max_elevation": 434.49, + "xs_id": 158.67 + }, + "eclipsed": false, + "low_flow": 410262, + "high_flow": 1896903, + "network_to_id": "3629077", + "metrics": { + "xs": { + "centerline_offset": { + "count": 5, + "mean": 34, + "std": 28, + "min": 4, + "25%": 21, + "50%": 29, + "75%": 35, + "max": 80 + }, + "thalweg_offset": { + "count": 5, + "mean": 298, + "std": 103, + "min": 183, + "25%": 200, + "50%": 321, + "75%": 375, + "max": 413 + } + }, + "lengths": { + "ras": 10287, + "network": 10442, + "network_to_ras_ratio": 1.02 + }, + "coverage": { + "start": 0.04, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "3629083", + "overlap": 766 + } + ], + "eclipsed_reaches": [ + "3629077", + "3626959", + "3626933", + "3629079", + "3626879", + "3629075", + "3626977", + "3628921" + ] + }, + "3629067": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 347.54, + "max_elevation": 440.13, + "xs_id": 165.25 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 347.44, + "max_elevation": 440.0, + "xs_id": 162.99 + }, + "eclipsed": false, + "low_flow": 406724, + "high_flow": 1935829, + "network_to_id": "3629071", + "metrics": { + "xs": { + "centerline_offset": { + "count": 6, + "mean": 71, + "std": 56, + "min": 6, + "25%": 24, + "50%": 72, + "75%": 118, + "max": 133 + }, + "thalweg_offset": { + "count": 6, + "mean": 222, + "std": 156, + "min": 9, + "25%": 99, + "50%": 269, + "75%": 353, + "max": 364 + } + }, + "lengths": { + "ras": 12360, + "network": 12347, + "network_to_ras_ratio": 1.0 + }, + "coverage": { + "start": 0.16, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "3629071", + "overlap": 886 + } + ], + "eclipsed_reaches": [ + "3629069", + "3628897", + "3626757", + "3626719", + "3626707" + ] + }, + "3629071": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 347.44, + "max_elevation": 440.0, + "xs_id": 162.99 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 349.56, + "max_elevation": 439.82, + "xs_id": 160.71 + }, + "eclipsed": false, + "low_flow": 406704, + "high_flow": 1935536, + "network_to_id": "3629073", + "metrics": { + "xs": { + "centerline_offset": { + "count": 5, + "mean": 108, + "std": 89, + "min": 20, + "25%": 21, + "50%": 104, + "75%": 197, + "max": 201 + }, + "thalweg_offset": { + "count": 5, + "mean": 212, + "std": 95, + "min": 62, + "25%": 183, + "50%": 230, + "75%": 290, + "max": 294 + } + }, + "lengths": { + "ras": 12085, + "network": 12055, + "network_to_ras_ratio": 1.0 + }, + "coverage": { + "start": 0.07, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "3629073", + "overlap": 374 + } + ], + "eclipsed_reaches": [ + "3629315", + "3626833", + "3626887", + "3626865", + "3626915", + "3626891", + "3626861", + "3626875", + "3626873", + "5066809", + "5052591" + ] + }, + "3629065": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 352.19, + "max_elevation": 440.04, + "xs_id": 167.52 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 347.54, + "max_elevation": 440.13, + "xs_id": 165.25 + }, + "eclipsed": false, + "low_flow": 406718, + "high_flow": 1936056, + "network_to_id": "3629067", + "metrics": { + "xs": { + "centerline_offset": { + "count": 5, + "mean": 84, + "std": 46, + "min": 6, + "25%": 82, + "50%": 101, + "75%": 102, + "max": 128 + }, + "thalweg_offset": { + "count": 5, + "mean": 118, + "std": 81, + "min": 38, + "25%": 65, + "50%": 77, + "75%": 203, + "max": 208 + } + }, + "lengths": { + "ras": 12048, + "network": 12141, + "network_to_ras_ratio": 1.01 + }, + "coverage": { + "start": 0.09, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "3629067", + "overlap": 2119 + } + ], + "eclipsed_reaches": [ + "3629273", + "3629063", + "3626675" + ] + }, + "3624747": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 357.65, + "max_elevation": 444.56, + "xs_id": 171.46 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 351.56, + "max_elevation": 440.0, + "xs_id": 169.79 + }, + "eclipsed": false, + "low_flow": 406690, + "high_flow": 1936295, + "network_to_id": "3629053", + "metrics": { + "xs": { + "centerline_offset": { + "count": 5, + "mean": 52, + "std": 34, + "min": 6, + "25%": 39, + "50%": 51, + "75%": 62, + "max": 101 + }, + "thalweg_offset": { + "count": 5, + "mean": 269, + "std": 97, + "min": 160, + "25%": 189, + "50%": 272, + "75%": 330, + "max": 394 + } + }, + "lengths": { + "ras": 8993, + "network": 8993, + "network_to_ras_ratio": 1.0 + }, + "coverage": { + "start": 0.09, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "3629053", + "overlap": 55 + } + ], + "eclipsed_reaches": [ + "3624605", + "3626599", + "3624603" + ] + }, + "3629055": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 356.71, + "max_elevation": 452.06, + "xs_id": 168.92 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 353.16, + "max_elevation": 440.06, + "xs_id": 168.13 + }, + "eclipsed": false, + "low_flow": 406692, + "high_flow": 1936278, + "network_to_id": "3629059", + "metrics": { + "xs": { + "centerline_offset": { + "count": 5, + "mean": 43, + "std": 11, + "min": 24, + "25%": 42, + "50%": 45, + "75%": 48, + "max": 53 + }, + "thalweg_offset": { + "count": 5, + "mean": 341, + "std": 141, + "min": 121, + "25%": 280, + "50%": 419, + "75%": 433, + "max": 454 + } + }, + "lengths": { + "ras": 3999, + "network": 4008, + "network_to_ras_ratio": 1.0 + }, + "coverage": { + "start": 0.27, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "3629059", + "overlap": 1628 + } + ], + "eclipsed_reaches": [ + "3629057" + ] + }, + "3629053": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 351.56, + "max_elevation": 440.0, + "xs_id": 169.79 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 356.71, + "max_elevation": 452.06, + "xs_id": 168.92 + }, + "eclipsed": false, + "low_flow": 406691, + "high_flow": 1936304, + "network_to_id": "3629055", + "metrics": { + "xs": { + "centerline_offset": { + "count": 4, + "mean": 68, + "std": 28, + "min": 39, + "25%": 50, + "50%": 66, + "75%": 84, + "max": 103 + }, + "thalweg_offset": { + "count": 4, + "mean": 377, + "std": 46, + "min": 330, + "25%": 340, + "50%": 378, + "75%": 415, + "max": 419 + } + }, + "lengths": { + "ras": 4745, + "network": 4823, + "network_to_ras_ratio": 1.02 + }, + "coverage": { + "start": 0.01, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "3629055", + "overlap": 873 + } + ], + "eclipsed_reaches": [ + "3629271", + "3629051" + ] + }, + "3629059": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 353.16, + "max_elevation": 440.06, + "xs_id": 168.13 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 352.19, + "max_elevation": 440.04, + "xs_id": 167.52 + }, + "eclipsed": false, + "low_flow": 406713, + "high_flow": 1936231, + "network_to_id": "3629065", + "metrics": { + "xs": { + "centerline_offset": { + "count": 2, + "mean": 53, + "std": 41, + "min": 24, + "25%": 39, + "50%": 53, + "75%": 67, + "max": 82 + }, + "thalweg_offset": { + "count": 2, + "mean": 159, + "std": 171, + "min": 38, + "25%": 99, + "50%": 159, + "75%": 219, + "max": 280 + } + }, + "lengths": { + "ras": 3228, + "network": 3254, + "network_to_ras_ratio": 1.01 + }, + "coverage": { + "start": 0.42, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "3629065", + "overlap": 1020 + } + ], + "eclipsed_reaches": [] + }, + "3624745": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 355.5, + "max_elevation": 454.49, + "xs_id": 171.88 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 357.65, + "max_elevation": 444.56, + "xs_id": 171.46 + }, + "eclipsed": false, + "low_flow": 406671, + "high_flow": 1936382, + "network_to_id": "3624747", + "metrics": { + "xs": { + "centerline_offset": { + "count": 2, + "mean": 5, + "std": 2, + "min": 4, + "25%": 5, + "50%": 5, + "75%": 6, + "max": 6 + }, + "thalweg_offset": { + "count": 2, + "mean": 118, + "std": 58, + "min": 77, + "25%": 98, + "50%": 118, + "75%": 139, + "max": 160 + } + }, + "lengths": { + "ras": 2305, + "network": 2321, + "network_to_ras_ratio": 1.01 + }, + "coverage": { + "start": 0.21, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "3624747", + "overlap": 844 + } + ], + "eclipsed_reaches": [ + "3624743" + ] + }, + "3624739": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 346.52, + "max_elevation": 457.44, + "xs_id": 174.0 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 355.5, + "max_elevation": 454.49, + "xs_id": 171.88 + }, + "eclipsed": false, + "low_flow": 406287, + "high_flow": 1935839, + "network_to_id": "3624745", + "metrics": { + "xs": { + "centerline_offset": { + "count": 5, + "mean": 44, + "std": 45, + "min": 4, + "25%": 19, + "50%": 30, + "75%": 50, + "max": 118 + }, + "thalweg_offset": { + "count": 5, + "mean": 166, + "std": 90, + "min": 77, + "25%": 78, + "50%": 185, + "75%": 198, + "max": 290 + } + }, + "lengths": { + "ras": 11245, + "network": 11303, + "network_to_ras_ratio": 1.01 + }, + "coverage": { + "start": 0.01, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "3624745", + "overlap": 385 + } + ], + "eclipsed_reaches": [ + "3624741" + ] + }, + "3624735": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 353.58, + "max_elevation": 440.84, + "xs_id": 180.77 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 346.52, + "max_elevation": 457.44, + "xs_id": 174.0 + }, + "eclipsed": false, + "low_flow": 406180, + "high_flow": 1935727, + "network_to_id": "3624739", + "gage": "07010000", + "gage_url": "https://waterdata.usgs.gov/nwis/uv?site_no=07010000&legacy=1", + "metrics": { + "xs": { + "centerline_offset": { + "count": 26, + "mean": 42, + "std": 35, + "min": 2, + "25%": 16, + "50%": 31, + "75%": 57, + "max": 148 + }, + "thalweg_offset": { + "count": 26, + "mean": 127, + "std": 58, + "min": 43, + "25%": 72, + "50%": 119, + "75%": 175, + "max": 225 + } + }, + "lengths": { + "ras": 36670, + "network": 36796, + "network_to_ras_ratio": 1.0 + }, + "coverage": { + "start": 0.04, + "end": 1.0 + } + }, + "overlapped_reaches": [ + { + "id": "3624739", + "overlap": 66 + } + ], + "eclipsed_reaches": [ + "3624461", + "3624733", + "3624439" + ] + }, + "3629187": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 339.0, + "max_elevation": 419.94, + "xs_id": 139.01 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 331.49, + "max_elevation": 419.99, + "xs_id": 137.03 + }, + "eclipsed": false, + "low_flow": 410328, + "high_flow": 1894002, + "network_to_id": "3629191", + "metrics": { + "xs": { + "centerline_offset": { + "count": 5, + "mean": 69, + "std": 53, + "min": 17, + "25%": 36, + "50%": 42, + "75%": 110, + "max": 139 + }, + "thalweg_offset": { + "count": 5, + "mean": 86, + "std": 82, + "min": 1, + "25%": 20, + "50%": 70, + "75%": 151, + "max": 189 + } + }, + "lengths": { + "ras": 10765, + "network": 10892, + "network_to_ras_ratio": 1.01 + }, + "coverage": { + "start": 0.06, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "3629197", + "overlap": 1857 + } + ], + "eclipsed_reaches": [ + "3627763", + "3628997", + "3629191", + "3628023", + "3629321", + "3627951", + "3628087", + "3629189", + "3629015", + "3629281", + "3629193", + "3629323" + ] + }, + "3629181": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 325.27, + "max_elevation": 423.01, + "xs_id": 140.47 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 339.0, + "max_elevation": 419.94, + "xs_id": 139.01 + }, + "eclipsed": false, + "low_flow": 410340, + "high_flow": 1894136, + "network_to_id": "3629319", + "metrics": { + "xs": { + "centerline_offset": { + "count": 3, + "mean": 96, + "std": 60, + "min": 38, + "25%": 66, + "50%": 94, + "75%": 126, + "max": 158 + }, + "thalweg_offset": { + "count": 3, + "mean": 190, + "std": 16, + "min": 179, + "25%": 181, + "50%": 183, + "75%": 196, + "max": 208 + } + }, + "lengths": null, + "coverage": null + }, + "overlapped_reaches": [], + "eclipsed_reaches": [ + "3629317", + "3627815", + "3627965", + "3629185", + "3627813", + "3629319", + "3629179", + "3629183" + ] + }, + "3629173": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 335.82, + "max_elevation": 420.07, + "xs_id": 143.8 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 325.27, + "max_elevation": 423.01, + "xs_id": 140.47 + }, + "eclipsed": false, + "low_flow": 410346, + "high_flow": 1894342, + "network_to_id": "3629181", + "metrics": { + "xs": { + "centerline_offset": { + "count": 8, + "mean": 68, + "std": 41, + "min": 17, + "25%": 42, + "50%": 56, + "75%": 96, + "max": 140 + }, + "thalweg_offset": { + "count": 8, + "mean": 159, + "std": 75, + "min": 46, + "25%": 99, + "50%": 166, + "75%": 207, + "max": 266 + } + }, + "lengths": { + "ras": 17382, + "network": 17442, + "network_to_ras_ratio": 1.0 + }, + "coverage": { + "start": 0.04, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "3629181", + "overlap": 202 + } + ], + "eclipsed_reaches": [ + "3627759", + "3628993", + "3627877", + "3627783", + "3627769", + "3627845", + "3629175", + "3629177", + "3628979", + "3628985", + "3627735", + "3627557" + ] + }, + "3629163": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 343.28, + "max_elevation": 420.07, + "xs_id": 145.35 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 335.82, + "max_elevation": 420.07, + "xs_id": 143.8 + }, + "eclipsed": false, + "low_flow": 410393, + "high_flow": 1895150, + "network_to_id": "3629173", + "metrics": { + "xs": { + "centerline_offset": { + "count": 4, + "mean": 38, + "std": 20, + "min": 10, + "25%": 29, + "50%": 43, + "75%": 52, + "max": 55 + }, + "thalweg_offset": { + "count": 4, + "mean": 101, + "std": 19, + "min": 74, + "25%": 94, + "50%": 104, + "75%": 111, + "max": 119 + } + }, + "lengths": { + "ras": 8330, + "network": 8227, + "network_to_ras_ratio": 0.99 + }, + "coverage": { + "start": 0.1, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "3629173", + "overlap": 747 + } + ], + "eclipsed_reaches": [ + "3627651", + "3629165", + "3629167" + ] + }, + "3629319": { + "eclipsed": true, + "low_flow": 410340, + "high_flow": 1894197, + "network_to_id": "3629183" + }, + "3634823": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 361.87, + "max_elevation": 445.07, + "xs_id": 186.82 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 363.39, + "max_elevation": 479.33, + "xs_id": 184.56 + }, + "eclipsed": false, + "low_flow": 406195, + "high_flow": 1940653, + "network_to_id": "3624723", + "metrics": { + "xs": { + "centerline_offset": { + "count": 5, + "mean": 69, + "std": 59, + "min": 10, + "25%": 26, + "50%": 47, + "75%": 118, + "max": 145 + }, + "thalweg_offset": { + "count": 5, + "mean": 483, + "std": 242, + "min": 215, + "25%": 389, + "50%": 416, + "75%": 527, + "max": 866 + } + }, + "lengths": { + "ras": 11653, + "network": 11684, + "network_to_ras_ratio": 1.0 + }, + "coverage": { + "start": 0.13, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "3624723", + "overlap": 2370 + } + ], + "eclipsed_reaches": [ + "3624787", + "3634871", + "3624775", + "3624777", + "3624779" + ] + }, + "3629183": { + "eclipsed": true, + "low_flow": 410340, + "high_flow": 1894238, + "network_to_id": "3629187" + }, + "2927567": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 432.29, + "max_elevation": 512.5, + "xs_id": 300.63 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 429.48, + "max_elevation": 520.88, + "xs_id": 300.04 + }, + "eclipsed": false, + "low_flow": 171366, + "high_flow": 772535, + "network_to_id": "2927571", + "metrics": { + "xs": { + "centerline_offset": { + "count": 2, + "mean": 19, + "std": 3, + "min": 17, + "25%": 18, + "50%": 19, + "75%": 20, + "max": 21 + }, + "thalweg_offset": { + "count": 2, + "mean": 113, + "std": 5, + "min": 110, + "25%": 111, + "50%": 113, + "75%": 115, + "max": 116 + } + }, + "lengths": { + "ras": 3208, + "network": 3220, + "network_to_ras_ratio": 1.0 + }, + "coverage": { + "start": 0.7, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "2927581", + "overlap": 177 + } + ], + "eclipsed_reaches": [ + "2927571", + "2927573", + "2927569" + ] + }, + "2927571": { + "eclipsed": true, + "low_flow": 171366, + "high_flow": 772540, + "network_to_id": "2927581" + }, + "2927691": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 424.06, + "max_elevation": 500.12, + "xs_id": 290.6 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 432.98, + "max_elevation": 509.25, + "xs_id": 290.2 + }, + "eclipsed": false, + "low_flow": 171356, + "high_flow": 772341, + "network_to_id": "2927819", + "metrics": { + "xs": { + "centerline_offset": { + "count": 2, + "mean": 24, + "std": 6, + "min": 20, + "25%": 22, + "50%": 24, + "75%": 26, + "max": 29 + }, + "thalweg_offset": { + "count": 2, + "mean": 201, + "std": 17, + "min": 189, + "25%": 195, + "50%": 201, + "75%": 207, + "max": 213 + } + }, + "lengths": { + "ras": 2074, + "network": 2083, + "network_to_ras_ratio": 1.0 + }, + "coverage": { + "start": 0.34, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "2927819", + "overlap": 1682 + } + ], + "eclipsed_reaches": [ + "2926987" + ] + }, + "2927597": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 430.23, + "max_elevation": 514.08, + "xs_id": 294.55 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 421.76, + "max_elevation": 507.96, + "xs_id": 293.86 + }, + "eclipsed": false, + "low_flow": 171360, + "high_flow": 772435, + "network_to_id": "2927699", + "metrics": { + "xs": { + "centerline_offset": { + "count": 2, + "mean": 14, + "std": 18, + "min": 1, + "25%": 7, + "50%": 14, + "75%": 20, + "max": 27 + }, + "thalweg_offset": { + "count": 2, + "mean": 424, + "std": 40, + "min": 396, + "25%": 410, + "50%": 424, + "75%": 438, + "max": 452 + } + }, + "lengths": { + "ras": 3533, + "network": 3625, + "network_to_ras_ratio": 1.03 + }, + "coverage": { + "start": 0.24, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "2927699", + "overlap": 697 + } + ], + "eclipsed_reaches": [ + "2927637", + "2926943" + ] + }, + "2927711": { + "eclipsed": true, + "low_flow": 171361, + "high_flow": 772423, + "network_to_id": "2927597" + }, + "2927727": { + "eclipsed": true, + "low_flow": 171364, + "high_flow": 772472, + "network_to_id": "2927713" + }, + "2927713": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 420.66, + "max_elevation": 523.35, + "xs_id": 296.15 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 430.23, + "max_elevation": 514.08, + "xs_id": 294.55 + }, + "eclipsed": false, + "low_flow": 171361, + "high_flow": 772434, + "network_to_id": "2927711", + "metrics": { + "xs": { + "centerline_offset": { + "count": 4, + "mean": 12, + "std": 17, + "min": 1, + "25%": 3, + "50%": 6, + "75%": 16, + "max": 37 + }, + "thalweg_offset": { + "count": 4, + "mean": 141, + "std": 174, + "min": 9, + "25%": 44, + "50%": 79, + "75%": 176, + "max": 396 + } + }, + "lengths": { + "ras": 8440, + "network": 8450, + "network_to_ras_ratio": 1.0 + }, + "coverage": { + "start": 0.22, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "2927597", + "overlap": 940 + } + ], + "eclipsed_reaches": [ + "2926911", + "2927729", + "2927593", + "2926879", + "2926881", + "2926905", + "2927711" + ] + }, + "2927699": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 421.76, + "max_elevation": 507.96, + "xs_id": 293.86 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 417.67, + "max_elevation": 497.01, + "xs_id": 293.37 + }, + "eclipsed": false, + "low_flow": 171360, + "high_flow": 772404, + "network_to_id": "2927601", + "metrics": { + "xs": { + "centerline_offset": { + "count": 2, + "mean": 39, + "std": 18, + "min": 27, + "25%": 33, + "50%": 39, + "75%": 46, + "max": 52 + }, + "thalweg_offset": { + "count": 2, + "mean": 384, + "std": 97, + "min": 315, + "25%": 350, + "50%": 384, + "75%": 418, + "max": 452 + } + }, + "lengths": { + "ras": 2601, + "network": 2695, + "network_to_ras_ratio": 1.04 + }, + "coverage": { + "start": 0.31, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "2927601", + "overlap": 1137 + } + ], + "eclipsed_reaches": [] + }, + "2927697": { + "eclipsed": true, + "low_flow": 171359, + "high_flow": 772378, + "network_to_id": "2927689" + }, + "2927689": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 424.96, + "max_elevation": 505.51, + "xs_id": 292.57 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 424.06, + "max_elevation": 500.12, + "xs_id": 290.6 + }, + "eclipsed": false, + "low_flow": 171356, + "high_flow": 772334, + "network_to_id": "2927691", + "metrics": { + "xs": { + "centerline_offset": { + "count": 5, + "mean": 22, + "std": 8, + "min": 14, + "25%": 15, + "50%": 20, + "75%": 23, + "max": 35 + }, + "thalweg_offset": { + "count": 5, + "mean": 168, + "std": 120, + "min": 21, + "25%": 68, + "50%": 213, + "75%": 233, + "max": 307 + } + }, + "lengths": { + "ras": 10579, + "network": 10711, + "network_to_ras_ratio": 1.01 + }, + "coverage": { + "start": 0.01, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "2927691", + "overlap": 206 + } + ], + "eclipsed_reaches": [ + "2927053", + "2927707", + "2927823", + "2927703", + "2927705", + "2926891", + "2926971" + ] + }, + "2927819": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 432.98, + "max_elevation": 509.25, + "xs_id": 290.2 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 436.34, + "max_elevation": 500.34, + "xs_id": 289.49 + }, + "eclipsed": false, + "low_flow": 171355, + "high_flow": 772322, + "network_to_id": "2927611", + "metrics": { + "xs": { + "centerline_offset": { + "count": 2, + "mean": 52, + "std": 33, + "min": 29, + "25%": 40, + "50%": 52, + "75%": 64, + "max": 75 + }, + "thalweg_offset": { + "count": 2, + "mean": 102, + "std": 124, + "min": 15, + "25%": 58, + "50%": 102, + "75%": 146, + "max": 189 + } + }, + "lengths": { + "ras": 3306, + "network": 3221, + "network_to_ras_ratio": 0.97 + }, + "coverage": { + "start": 0.52, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "2927611", + "overlap": 1643 + } + ], + "eclipsed_reaches": [ + "2927069", + "2927821", + "2926925", + "937110032", + "937110075", + "2927673", + "2927671", + "937110030", + "937110031", + "937110034" + ] + }, + "2927589": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 428.16, + "max_elevation": 520.15, + "xs_id": 297.81 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 420.66, + "max_elevation": 523.35, + "xs_id": 296.15 + }, + "eclipsed": false, + "low_flow": 171364, + "high_flow": 772473, + "network_to_id": "2927727", + "metrics": { + "xs": { + "centerline_offset": { + "count": 4, + "mean": 14, + "std": 15, + "min": 1, + "25%": 2, + "50%": 10, + "75%": 22, + "max": 33 + }, + "thalweg_offset": { + "count": 4, + "mean": 85, + "std": 76, + "min": 9, + "25%": 31, + "50%": 79, + "75%": 134, + "max": 174 + } + }, + "lengths": { + "ras": 8515, + "network": 8549, + "network_to_ras_ratio": 1.0 + }, + "coverage": { + "start": 0.25, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "2927713", + "overlap": 1869 + } + ], + "eclipsed_reaches": [ + "2927579", + "2927587", + "2927585", + "2927731", + "2927735", + "2926819", + "937110100", + "2927577", + "2926817", + "2927565", + "2926825", + "2926827", + "2926829", + "2926807", + "2926805", + "2926777", + "2926781", + "2926689", + "2926831", + "2927739", + "2927743", + "2927733", + "2927727", + "937110101", + "937110102" + ] + }, + "2927601": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 417.67, + "max_elevation": 497.01, + "xs_id": 293.37 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 424.96, + "max_elevation": 505.51, + "xs_id": 292.57 + }, + "eclipsed": false, + "low_flow": 171360, + "high_flow": 772386, + "network_to_id": "2927697", + "metrics": { + "xs": { + "centerline_offset": { + "count": 3, + "mean": 36, + "std": 15, + "min": 23, + "25%": 28, + "50%": 33, + "75%": 43, + "max": 52 + }, + "thalweg_offset": { + "count": 3, + "mean": 229, + "std": 181, + "min": 21, + "25%": 168, + "50%": 315, + "75%": 333, + "max": 351 + } + }, + "lengths": { + "ras": 4090, + "network": 4107, + "network_to_ras_ratio": 1.0 + }, + "coverage": { + "start": 0.33, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "2927689", + "overlap": 105 + } + ], + "eclipsed_reaches": [ + "2927719", + "2927033", + "2927603", + "2927031", + "2926935", + "2927715", + "2927697" + ] + }, + "2927581": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 429.48, + "max_elevation": 520.88, + "xs_id": 300.04 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 428.16, + "max_elevation": 520.15, + "xs_id": 297.81 + }, + "eclipsed": false, + "low_flow": 171366, + "high_flow": 772496, + "network_to_id": "2927589", + "metrics": { + "xs": { + "centerline_offset": { + "count": 5, + "mean": 37, + "std": 26, + "min": 13, + "25%": 17, + "50%": 33, + "75%": 46, + "max": 78 + }, + "thalweg_offset": { + "count": 5, + "mean": 162, + "std": 41, + "min": 116, + "25%": 120, + "50%": 182, + "75%": 189, + "max": 204 + } + }, + "lengths": { + "ras": 11349, + "network": 11522, + "network_to_ras_ratio": 1.02 + }, + "coverage": { + "start": 0.02, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "2927589", + "overlap": 1833 + } + ], + "eclipsed_reaches": [ + "2927813", + "2927815", + "2927583", + "2926793", + "2926803", + "2926811", + "2926809", + "2926799", + "2927737" + ] + }, + "2932183": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 424.46, + "max_elevation": 498.88, + "xs_id": 280.18 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 425.19, + "max_elevation": 497.21, + "xs_id": 279.63 + }, + "eclipsed": false, + "low_flow": 172161, + "high_flow": 783905, + "network_to_id": "2930505", + "metrics": { + "xs": { + "centerline_offset": { + "count": 2, + "mean": 31, + "std": 32, + "min": 8, + "25%": 20, + "50%": 31, + "75%": 42, + "max": 54 + }, + "thalweg_offset": { + "count": 2, + "mean": 302, + "std": 186, + "min": 171, + "25%": 237, + "50%": 302, + "75%": 368, + "max": 434 + } + }, + "lengths": { + "ras": 2972, + "network": 3024, + "network_to_ras_ratio": 1.02 + }, + "coverage": { + "start": 0.46, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "2930505", + "overlap": 423 + } + ], + "eclipsed_reaches": [ + "2928933", + "2930487" + ] + }, + "2930505": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 425.19, + "max_elevation": 497.21, + "xs_id": 279.63 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 424.44, + "max_elevation": 503.69, + "xs_id": 279.08 + }, + "eclipsed": false, + "low_flow": 172161, + "high_flow": 783896, + "network_to_id": "2931037", + "metrics": { + "xs": { + "centerline_offset": { + "count": 2, + "mean": 38, + "std": 22, + "min": 23, + "25%": 31, + "50%": 38, + "75%": 46, + "max": 54 + }, + "thalweg_offset": { + "count": 2, + "mean": 324, + "std": 156, + "min": 214, + "25%": 269, + "50%": 324, + "75%": 379, + "max": 434 + } + }, + "lengths": { + "ras": 3154, + "network": 3242, + "network_to_ras_ratio": 1.03 + }, + "coverage": { + "start": 0.43, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "2931037", + "overlap": 2679 + } + ], + "eclipsed_reaches": [ + "2929009", + "2929023", + "2930497", + "2929003" + ] + }, + "2932177": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 408.14, + "max_elevation": 500.3, + "xs_id": 282.09 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 424.46, + "max_elevation": 498.88, + "xs_id": 280.18 + }, + "eclipsed": false, + "low_flow": 172157, + "high_flow": 783981, + "network_to_id": "2932183", + "metrics": { + "xs": { + "centerline_offset": { + "count": 6, + "mean": 54, + "std": 26, + "min": 8, + "25%": 54, + "50%": 55, + "75%": 64, + "max": 88 + }, + "thalweg_offset": { + "count": 6, + "mean": 283, + "std": 178, + "min": 124, + "25%": 159, + "50%": 201, + "75%": 433, + "max": 515 + } + }, + "lengths": { + "ras": 9499, + "network": 9569, + "network_to_ras_ratio": 1.01 + }, + "coverage": { + "start": 0.02, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "2932183", + "overlap": 2250 + } + ], + "eclipsed_reaches": [ + "2932181", + "2932179", + "2928969", + "2928957", + "2928897", + "2928883", + "2928881", + "2928903", + "2928961", + "2928963", + "2932227", + "2932225", + "2931649", + "2928835" + ] + }, + "2932173": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 411.59, + "max_elevation": 501.46, + "xs_id": 283.75 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 408.14, + "max_elevation": 500.3, + "xs_id": 282.09 + }, + "eclipsed": false, + "low_flow": 172149, + "high_flow": 784022, + "network_to_id": "2932177", + "metrics": { + "xs": { + "centerline_offset": { + "count": 7, + "mean": 41, + "std": 25, + "min": 14, + "25%": 24, + "50%": 30, + "75%": 56, + "max": 84 + }, + "thalweg_offset": { + "count": 7, + "mean": 227, + "std": 129, + "min": 39, + "25%": 141, + "50%": 215, + "75%": 324, + "max": 403 + } + }, + "lengths": { + "ras": 8597, + "network": 8652, + "network_to_ras_ratio": 1.01 + }, + "coverage": { + "start": 0.17, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "2932177", + "overlap": 146 + } + ], + "eclipsed_reaches": [ + "2932175", + "2924243", + "2928823", + "2924287", + "2924371", + "2928821", + "2924285", + "937110061", + "2932169" + ] + }, + "2927615": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 427.62, + "max_elevation": 501.34, + "xs_id": 286.72 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 419.51, + "max_elevation": 501.61, + "xs_id": 286.17 + }, + "eclipsed": false, + "low_flow": 171353, + "high_flow": 772268, + "network_to_id": "2932155", + "metrics": { + "xs": { + "centerline_offset": { + "count": 2, + "mean": 540, + "std": 292, + "min": 334, + "25%": 437, + "50%": 540, + "75%": 644, + "max": 747 + }, + "thalweg_offset": { + "count": 2, + "mean": 598, + "std": 554, + "min": 206, + "25%": 402, + "50%": 598, + "75%": 794, + "max": 990 + } + }, + "lengths": { + "ras": 2941, + "network": 3058, + "network_to_ras_ratio": 1.04 + }, + "coverage": { + "start": 0.5, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "2932155", + "overlap": 1674 + } + ], + "eclipsed_reaches": [ + "2927089", + "2927617", + "4869879", + "2931627" + ] + }, + "2932155": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 419.51, + "max_elevation": 501.61, + "xs_id": 286.17 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 413.26, + "max_elevation": 496.23, + "xs_id": 285.59 + }, + "eclipsed": false, + "low_flow": 171353, + "high_flow": 772270, + "network_to_id": "2932159", + "metrics": { + "xs": { + "centerline_offset": { + "count": 2, + "mean": 240, + "std": 133, + "min": 146, + "25%": 193, + "50%": 240, + "75%": 287, + "max": 334 + }, + "thalweg_offset": { + "count": 2, + "mean": 129, + "std": 109, + "min": 51, + "25%": 90, + "50%": 129, + "75%": 168, + "max": 206 + } + }, + "lengths": { + "ras": 3078, + "network": 3004, + "network_to_ras_ratio": 0.98 + }, + "coverage": { + "start": 0.81, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "2932159", + "overlap": 2603 + } + ], + "eclipsed_reaches": [ + "2927093", + "4868429", + "4869787", + "4869789", + "4869793", + "4868433", + "4868431", + "4869791", + "2932205", + "2932201", + "2931631", + "2932203", + "2931637", + "2932207" + ] + }, + "2927645": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 426.45, + "max_elevation": 498.29, + "xs_id": 287.31 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 427.62, + "max_elevation": 501.34, + "xs_id": 286.72 + }, + "eclipsed": false, + "low_flow": 171353, + "high_flow": 772283, + "network_to_id": "2927615", + "metrics": { + "xs": { + "centerline_offset": { + "count": 2, + "mean": 913, + "std": 235, + "min": 747, + "25%": 830, + "50%": 913, + "75%": 996, + "max": 1079 + }, + "thalweg_offset": { + "count": 2, + "mean": 1199, + "std": 296, + "min": 990, + "25%": 1095, + "50%": 1199, + "75%": 1304, + "max": 1409 + } + }, + "lengths": { + "ras": 3098, + "network": 2795, + "network_to_ras_ratio": 0.9 + }, + "coverage": { + "start": 0.48, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "2927615", + "overlap": 1400 + } + ], + "eclipsed_reaches": [ + "2927111", + "2927659", + "2927091", + "2927657", + "4869857", + "4869781", + "25897675", + "4869875" + ] + }, + "2927667": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 425.38, + "max_elevation": 507.35, + "xs_id": 288.87 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 420.01, + "max_elevation": 498.12, + "xs_id": 287.89 + }, + "eclipsed": false, + "low_flow": 171355, + "high_flow": 772284, + "network_to_id": "2927647", + "metrics": { + "xs": { + "centerline_offset": { + "count": 3, + "mean": 1186, + "std": 343, + "min": 793, + "25%": 1066, + "50%": 1339, + "75%": 1383, + "max": 1426 + }, + "thalweg_offset": { + "count": 3, + "mean": 1295, + "std": 529, + "min": 687, + "25%": 1114, + "50%": 1542, + "75%": 1598, + "max": 1655 + } + }, + "lengths": { + "ras": 5234, + "network": 7827, + "network_to_ras_ratio": 1.5 + }, + "coverage": { + "start": 0.4, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "2927647", + "overlap": 3652 + } + ], + "eclipsed_reaches": [ + "4869761", + "4867289", + "4868301", + "4868309", + "4867287", + "4869863", + "4869869", + "4869861", + "4869867", + "4869865", + "4869871", + "4869887", + "2927085", + "2927055", + "2927655", + "2927677", + "2927067", + "2927037", + "2927039", + "2927047", + "2927653", + "2927065", + "2927057" + ] + }, + "2927611": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 436.34, + "max_elevation": 500.34, + "xs_id": 289.49 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 425.38, + "max_elevation": 507.35, + "xs_id": 288.87 + }, + "eclipsed": false, + "low_flow": 171356, + "high_flow": 772311, + "network_to_id": "2927613", + "metrics": { + "xs": { + "centerline_offset": { + "count": 2, + "mean": 434, + "std": 507, + "min": 75, + "25%": 255, + "50%": 434, + "75%": 614, + "max": 793 + }, + "thalweg_offset": { + "count": 2, + "mean": 351, + "std": 475, + "min": 15, + "25%": 183, + "50%": 351, + "75%": 519, + "max": 687 + } + }, + "lengths": { + "ras": 3300, + "network": 4206, + "network_to_ras_ratio": 1.27 + }, + "coverage": { + "start": 0.63, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "2927667", + "overlap": 2785 + } + ], + "eclipsed_reaches": [ + "2927679", + "2927013", + "2927015", + "2927401", + "2927669", + "2927613", + "2938533", + "2927693", + "2927605" + ] + }, + "2927613": { + "eclipsed": true, + "low_flow": 171356, + "high_flow": 772310, + "network_to_id": "2927667" + }, + "2927647": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 420.01, + "max_elevation": 498.12, + "xs_id": 287.89 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 426.45, + "max_elevation": 498.29, + "xs_id": 287.31 + }, + "eclipsed": false, + "low_flow": 171353, + "high_flow": 772283, + "network_to_id": "2927645", + "metrics": { + "xs": { + "centerline_offset": { + "count": 2, + "mean": 1252, + "std": 245, + "min": 1079, + "25%": 1166, + "50%": 1252, + "75%": 1339, + "max": 1426 + }, + "thalweg_offset": { + "count": 2, + "mean": 1532, + "std": 174, + "min": 1409, + "25%": 1470, + "50%": 1532, + "75%": 1593, + "max": 1655 + } + }, + "lengths": { + "ras": 3072, + "network": 3483, + "network_to_ras_ratio": 1.13 + }, + "coverage": { + "start": 0.62, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "2927645", + "overlap": 1281 + } + ], + "eclipsed_reaches": [ + "4867285", + "4867731", + "4868349", + "2927663", + "2927665", + "4867251", + "4867811", + "4867813" + ] + }, + "2931037": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 424.44, + "max_elevation": 503.69, + "xs_id": 279.08 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 418.92, + "max_elevation": 499.6, + "xs_id": 278.67 + }, + "eclipsed": false, + "low_flow": 172161, + "high_flow": 783884, + "network_to_id": "2930867", + "metrics": { + "xs": { + "centerline_offset": { + "count": 2, + "mean": 68, + "std": 64, + "min": 23, + "25%": 46, + "50%": 68, + "75%": 91, + "max": 113 + }, + "thalweg_offset": { + "count": 2, + "mean": 212, + "std": 2, + "min": 211, + "25%": 211, + "50%": 212, + "75%": 213, + "max": 214 + } + }, + "lengths": { + "ras": 2160, + "network": 2312, + "network_to_ras_ratio": 1.07 + }, + "coverage": { + "start": 0.61, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "2930867", + "overlap": 614 + } + ], + "eclipsed_reaches": [ + "2928959", + "2928953" + ] + }, + "2932159": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 413.26, + "max_elevation": 496.23, + "xs_id": 285.59 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 408.16, + "max_elevation": 500.73, + "xs_id": 285.0 + }, + "eclipsed": false, + "low_flow": 171353, + "high_flow": 772255, + "network_to_id": "2932231", + "metrics": { + "xs": { + "centerline_offset": { + "count": 2, + "mean": 108, + "std": 52, + "min": 71, + "25%": 90, + "50%": 108, + "75%": 127, + "max": 146 + }, + "thalweg_offset": { + "count": 2, + "mean": 66, + "std": 21, + "min": 51, + "25%": 59, + "50%": 66, + "75%": 74, + "max": 81 + } + }, + "lengths": { + "ras": 2949, + "network": 2949, + "network_to_ras_ratio": 1.0 + }, + "coverage": { + "start": 0.89, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "2932165", + "overlap": 244 + } + ], + "eclipsed_reaches": [ + "2932231", + "2932163", + "2932237", + "2931641", + "2932161", + "2931643", + "2932233", + "2932213", + "2932215", + "2932217" + ] + }, + "2932231": { + "eclipsed": true, + "low_flow": 171353, + "high_flow": 772268, + "network_to_id": "2932165" + }, + "2932171": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 416.73, + "max_elevation": 493.34, + "xs_id": 284.4 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 411.59, + "max_elevation": 501.46, + "xs_id": 283.75 + }, + "eclipsed": false, + "low_flow": 171352, + "high_flow": 772250, + "network_to_id": "2932173", + "metrics": { + "xs": { + "centerline_offset": { + "count": 2, + "mean": 33, + "std": 27, + "min": 14, + "25%": 23, + "50%": 33, + "75%": 42, + "max": 52 + }, + "thalweg_offset": { + "count": 2, + "mean": 185, + "std": 199, + "min": 44, + "25%": 115, + "50%": 185, + "75%": 256, + "max": 326 + } + }, + "lengths": { + "ras": 3293, + "network": 3310, + "network_to_ras_ratio": 1.01 + }, + "coverage": { + "start": 0.39, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "2932173", + "overlap": 1751 + } + ], + "eclipsed_reaches": [ + "2931621", + "2931623", + "4872015" + ] + }, + "2932209": { + "eclipsed": true, + "low_flow": 171353, + "high_flow": 772276, + "network_to_id": "2932171" + }, + "2932165": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 408.16, + "max_elevation": 500.73, + "xs_id": 285.0 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 416.73, + "max_elevation": 493.34, + "xs_id": 284.4 + }, + "eclipsed": false, + "low_flow": 171353, + "high_flow": 772274, + "network_to_id": "2932209", + "metrics": { + "xs": { + "centerline_offset": { + "count": 2, + "mean": 62, + "std": 14, + "min": 52, + "25%": 57, + "50%": 62, + "75%": 66, + "max": 71 + }, + "thalweg_offset": { + "count": 2, + "mean": 63, + "std": 26, + "min": 44, + "25%": 54, + "50%": 63, + "75%": 72, + "max": 81 + } + }, + "lengths": { + "ras": 3385, + "network": 3378, + "network_to_ras_ratio": 1.0 + }, + "coverage": { + "start": 0.38, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "2932171", + "overlap": 1001 + } + ], + "eclipsed_reaches": [ + "2932211", + "2938517", + "2932209", + "2932223" + ] + }, + "2930531": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 420.55, + "max_elevation": 506.24, + "xs_id": 275.55 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 419.68, + "max_elevation": 482.49, + "xs_id": 275.0 + }, + "eclipsed": false, + "low_flow": 172157, + "high_flow": 783796, + "network_to_id": "2931035", + "metrics": { + "xs": { + "centerline_offset": { + "count": 2, + "mean": 427, + "std": 567, + "min": 26, + "25%": 227, + "50%": 427, + "75%": 628, + "max": 828 + }, + "thalweg_offset": { + "count": 2, + "mean": 620, + "std": 475, + "min": 284, + "25%": 452, + "50%": 620, + "75%": 788, + "max": 956 + } + }, + "lengths": { + "ras": 3058, + "network": 3320, + "network_to_ras_ratio": 1.09 + }, + "coverage": { + "start": 0.35, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "2931035", + "overlap": 1188 + } + ], + "eclipsed_reaches": [ + "2930995", + "2929105", + "2929091", + "2930993" + ] + }, + "2930511": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 431.18, + "max_elevation": 500.34, + "xs_id": 277.57 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 423.65, + "max_elevation": 505.12, + "xs_id": 276.86 + }, + "eclipsed": false, + "low_flow": 172160, + "high_flow": 783856, + "network_to_id": "2930871", + "metrics": { + "xs": { + "centerline_offset": { + "count": 2, + "mean": 853, + "std": 644, + "min": 397, + "25%": 625, + "50%": 853, + "75%": 1081, + "max": 1309 + }, + "thalweg_offset": { + "count": 2, + "mean": 1020, + "std": 632, + "min": 574, + "25%": 797, + "50%": 1020, + "75%": 1244, + "max": 1467 + } + }, + "lengths": { + "ras": 3891, + "network": 4352, + "network_to_ras_ratio": 1.12 + }, + "coverage": { + "start": 0.42, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "2930871", + "overlap": 4052 + } + ], + "eclipsed_reaches": [ + "2930809", + "2930519", + "2929067", + "2930509", + "2930777", + "2930811" + ] + }, + "2930871": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 423.65, + "max_elevation": 505.12, + "xs_id": 276.86 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 420.55, + "max_elevation": 506.24, + "xs_id": 275.55 + }, + "eclipsed": false, + "low_flow": 172157, + "high_flow": 783813, + "network_to_id": "2930531", + "metrics": { + "xs": { + "centerline_offset": { + "count": 3, + "mean": 1229, + "std": 367, + "min": 828, + "25%": 1069, + "50%": 1309, + "75%": 1429, + "max": 1549 + }, + "thalweg_offset": { + "count": 3, + "mean": 1373, + "std": 379, + "min": 956, + "25%": 1211, + "50%": 1467, + "75%": 1581, + "max": 1696 + } + }, + "lengths": { + "ras": 6899, + "network": 6357, + "network_to_ras_ratio": 0.92 + }, + "coverage": { + "start": 0.44, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "2930531", + "overlap": 1167 + } + ], + "eclipsed_reaches": [ + "2930535", + "2930385" + ] + }, + "2930875": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 415.51, + "max_elevation": 504.13, + "xs_id": 273.84 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 408.21, + "max_elevation": 520.45, + "xs_id": 273.53 + }, + "eclipsed": false, + "low_flow": 172160, + "high_flow": 783750, + "network_to_id": "2930553", + "metrics": { + "xs": { + "centerline_offset": { + "count": 2, + "mean": 58, + "std": 47, + "min": 25, + "25%": 41, + "50%": 58, + "75%": 74, + "max": 91 + }, + "thalweg_offset": { + "count": 2, + "mean": 366, + "std": 92, + "min": 300, + "25%": 333, + "50%": 366, + "75%": 398, + "max": 431 + } + }, + "lengths": { + "ras": 2140, + "network": 1979, + "network_to_ras_ratio": 0.92 + }, + "coverage": { + "start": 0.38, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "2930553", + "overlap": 994 + } + ], + "eclipsed_reaches": [ + "2938519", + "2930525" + ] + }, + "2930553": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 408.21, + "max_elevation": 520.45, + "xs_id": 273.53 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 391.01, + "max_elevation": 516.78, + "xs_id": 273.32 + }, + "eclipsed": false, + "low_flow": 172160, + "high_flow": 783750, + "network_to_id": "2930557", + "metrics": { + "xs": { + "centerline_offset": { + "count": 2, + "mean": 56, + "std": 50, + "min": 21, + "25%": 38, + "50%": 56, + "75%": 73, + "max": 91 + }, + "thalweg_offset": { + "count": 2, + "mean": 203, + "std": 138, + "min": 105, + "25%": 154, + "50%": 203, + "75%": 252, + "max": 300 + } + }, + "lengths": { + "ras": 1142, + "network": 1101, + "network_to_ras_ratio": 0.96 + }, + "coverage": { + "start": 0.72, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "2930557", + "overlap": 719 + } + ], + "eclipsed_reaches": [] + }, + "2930557": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 391.01, + "max_elevation": 516.78, + "xs_id": 273.32 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 401.99, + "max_elevation": 496.24, + "xs_id": 272.98 + }, + "eclipsed": false, + "low_flow": 172160, + "high_flow": 783751, + "network_to_id": "2931045", + "metrics": { + "xs": { + "centerline_offset": { + "count": 2, + "mean": 30, + "std": 13, + "min": 21, + "25%": 25, + "50%": 30, + "75%": 35, + "max": 39 + }, + "thalweg_offset": { + "count": 2, + "mean": 98, + "std": 10, + "min": 91, + "25%": 95, + "50%": 98, + "75%": 101, + "max": 105 + } + }, + "lengths": { + "ras": 1996, + "network": 1986, + "network_to_ras_ratio": 0.99 + }, + "coverage": { + "start": 0.66, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "2931045", + "overlap": 1609 + } + ], + "eclipsed_reaches": [ + "2938529", + "2930787", + "2929169", + "2930785", + "2930545", + "937110106", + "2930539", + "937110108", + "2930873", + "2930547", + "937110103", + "937110104" + ] + }, + "2930905": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 415.69, + "max_elevation": 504.07, + "xs_id": 268.76 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 417.49, + "max_elevation": 516.25, + "xs_id": 267.62 + }, + "eclipsed": false, + "low_flow": 172159, + "high_flow": 783614, + "network_to_id": "2930907", + "metrics": { + "xs": { + "centerline_offset": { + "count": 3, + "mean": 26, + "std": 23, + "min": 10, + "25%": 12, + "50%": 15, + "75%": 34, + "max": 53 + }, + "thalweg_offset": { + "count": 3, + "mean": 271, + "std": 129, + "min": 145, + "25%": 205, + "50%": 265, + "75%": 334, + "max": 404 + } + }, + "lengths": { + "ras": 6062, + "network": 6059, + "network_to_ras_ratio": 1.0 + }, + "coverage": { + "start": 0.08, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "2930909", + "overlap": 1098 + } + ], + "eclipsed_reaches": [ + "2930895", + "2929299", + "2930903", + "2930897", + "2929277", + "2930893", + "2930891", + "2930907", + "2929263", + "2930561", + "2929261" + ] + }, + "2930909": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 417.49, + "max_elevation": 516.25, + "xs_id": 267.62 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 419.05, + "max_elevation": 486.23, + "xs_id": 267.22 + }, + "eclipsed": false, + "low_flow": 172159, + "high_flow": 783625, + "network_to_id": "2930569", + "metrics": { + "xs": { + "centerline_offset": { + "count": 2, + "mean": 8, + "std": 3, + "min": 6, + "25%": 7, + "50%": 8, + "75%": 9, + "max": 10 + }, + "thalweg_offset": { + "count": 2, + "mean": 138, + "std": 180, + "min": 11, + "25%": 74, + "50%": 138, + "75%": 201, + "max": 265 + } + }, + "lengths": { + "ras": 2629, + "network": 2650, + "network_to_ras_ratio": 1.01 + }, + "coverage": { + "start": 0.72, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "2930577", + "overlap": 967 + } + ], + "eclipsed_reaches": [ + "2930901", + "2930569" + ] + }, + "2930569": { + "eclipsed": true, + "low_flow": 172159, + "high_flow": 783635, + "network_to_id": "2930577" + }, + "2930907": { + "eclipsed": true, + "low_flow": 172159, + "high_flow": 783610, + "network_to_id": "2930909" + }, + "2930577": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 419.05, + "max_elevation": 486.23, + "xs_id": 267.22 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 415.8, + "max_elevation": 480.15, + "xs_id": 265.59 + }, + "eclipsed": false, + "low_flow": 172156, + "high_flow": 783577, + "network_to_id": "2930581", + "metrics": { + "xs": { + "centerline_offset": { + "count": 4, + "mean": 51, + "std": 85, + "min": 6, + "25%": 8, + "50%": 10, + "75%": 53, + "max": 178 + }, + "thalweg_offset": { + "count": 4, + "mean": 92, + "std": 137, + "min": 11, + "25%": 23, + "50%": 30, + "75%": 98, + "max": 297 + } + }, + "lengths": { + "ras": 7878, + "network": 8236, + "network_to_ras_ratio": 1.05 + }, + "coverage": { + "start": 0.11, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "2930581", + "overlap": 295 + } + ], + "eclipsed_reaches": [ + "2930579", + "2930837", + "2929347", + "2930571", + "2929333", + "2929343", + "2929317", + "2930573", + "2930575" + ] + }, + "2930543": { + "eclipsed": true, + "low_flow": 172158, + "high_flow": 783784, + "network_to_id": "2930875" + }, + "2930867": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 418.92, + "max_elevation": 499.6, + "xs_id": 278.67 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 431.18, + "max_elevation": 500.34, + "xs_id": 277.57 + }, + "eclipsed": false, + "low_flow": 172160, + "high_flow": 783868, + "network_to_id": "2930511", + "metrics": { + "xs": { + "centerline_offset": { + "count": 3, + "mean": 203, + "std": 168, + "min": 99, + "25%": 106, + "50%": 113, + "75%": 255, + "max": 397 + }, + "thalweg_offset": { + "count": 3, + "mean": 267, + "std": 283, + "min": 17, + "25%": 114, + "50%": 211, + "75%": 392, + "max": 574 + } + }, + "lengths": { + "ras": 5967, + "network": 5883, + "network_to_ras_ratio": 0.99 + }, + "coverage": { + "start": 0.1, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "2930511", + "overlap": 217 + } + ], + "eclipsed_reaches": [ + "2928993", + "2930493", + "2930495", + "2930499", + "2930501" + ] + }, + "2931043": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 420.16, + "max_elevation": 510.2, + "xs_id": 269.91 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 421.09, + "max_elevation": 507.6, + "xs_id": 269.31 + }, + "eclipsed": false, + "low_flow": 172157, + "high_flow": 783623, + "network_to_id": "2930887", + "metrics": { + "xs": null, + "lengths": null, + "coverage": null + }, + "overlapped_reaches": [], + "eclipsed_reaches": [ + "2930565", + "2930887" + ] + }, + "2930559": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 416.58, + "max_elevation": 509.04, + "xs_id": 270.98 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 419.76, + "max_elevation": 506.29, + "xs_id": 270.45 + }, + "eclipsed": false, + "low_flow": 172158, + "high_flow": 783661, + "network_to_id": "2931041", + "metrics": { + "xs": { + "centerline_offset": { + "count": 2, + "mean": 122, + "std": 146, + "min": 19, + "25%": 71, + "50%": 122, + "75%": 174, + "max": 225 + }, + "thalweg_offset": { + "count": 2, + "mean": 209, + "std": 244, + "min": 36, + "25%": 123, + "50%": 209, + "75%": 295, + "max": 381 + } + }, + "lengths": { + "ras": 2702, + "network": 2878, + "network_to_ras_ratio": 1.07 + }, + "coverage": { + "start": 0.78, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "2931041", + "overlap": 2649 + } + ], + "eclipsed_reaches": [ + "2930563" + ] + }, + "2931041": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 419.76, + "max_elevation": 506.29, + "xs_id": 270.45 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 420.16, + "max_elevation": 510.2, + "xs_id": 269.91 + }, + "eclipsed": false, + "low_flow": 172158, + "high_flow": 783666, + "network_to_id": "2931043", + "metrics": { + "xs": { + "centerline_offset": { + "count": 2, + "mean": 119, + "std": 151, + "min": 12, + "25%": 65, + "50%": 119, + "75%": 172, + "max": 225 + }, + "thalweg_offset": { + "count": 2, + "mean": 248, + "std": 188, + "min": 115, + "25%": 182, + "50%": 248, + "75%": 315, + "max": 381 + } + }, + "lengths": { + "ras": 2807, + "network": 2866, + "network_to_ras_ratio": 1.02 + }, + "coverage": { + "start": 0.99, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "2931043", + "overlap": 2841 + } + ], + "eclipsed_reaches": [] + }, + "2930889": { + "eclipsed": true, + "low_flow": 172159, + "high_flow": 783655, + "network_to_id": "2930905" + }, + "2930565": { + "eclipsed": true, + "low_flow": 172159, + "high_flow": 783637, + "network_to_id": "2931051" + }, + "2931051": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 421.09, + "max_elevation": 507.6, + "xs_id": 269.31 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 415.69, + "max_elevation": 504.07, + "xs_id": 268.76 + }, + "eclipsed": false, + "low_flow": 172159, + "high_flow": 783654, + "network_to_id": "2930889", + "metrics": { + "xs": { + "centerline_offset": { + "count": 2, + "mean": 29, + "std": 34, + "min": 5, + "25%": 17, + "50%": 29, + "75%": 41, + "max": 53 + }, + "thalweg_offset": { + "count": 2, + "mean": 278, + "std": 178, + "min": 153, + "25%": 215, + "50%": 278, + "75%": 341, + "max": 404 + } + }, + "lengths": { + "ras": 2927, + "network": 2925, + "network_to_ras_ratio": 1.0 + }, + "coverage": { + "start": 0.27, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "2930905", + "overlap": 377 + } + ], + "eclipsed_reaches": [ + "2930883", + "2930889", + "2930567" + ] + }, + "2930887": { + "eclipsed": true, + "low_flow": 172159, + "high_flow": 783622, + "network_to_id": "2930565" + }, + "2931045": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 401.99, + "max_elevation": 496.24, + "xs_id": 272.98 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 416.58, + "max_elevation": 509.04, + "xs_id": 270.98 + }, + "eclipsed": false, + "low_flow": 172158, + "high_flow": 783658, + "network_to_id": "2930559", + "metrics": { + "xs": { + "centerline_offset": { + "count": 5, + "mean": 30, + "std": 20, + "min": 8, + "25%": 19, + "50%": 23, + "75%": 39, + "max": 59 + }, + "thalweg_offset": { + "count": 5, + "mean": 226, + "std": 156, + "min": 36, + "25%": 91, + "50%": 268, + "75%": 336, + "max": 398 + } + }, + "lengths": { + "ras": 10366, + "network": 10424, + "network_to_ras_ratio": 1.01 + }, + "coverage": { + "start": 0.14, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "2930559", + "overlap": 818 + } + ], + "eclipsed_reaches": [ + "2929193", + "2929197", + "2929155", + "2929145", + "2929137", + "2930389", + "2929177" + ] + }, + "2931035": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 419.68, + "max_elevation": 482.49, + "xs_id": 275.0 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 415.51, + "max_elevation": 504.13, + "xs_id": 273.84 + }, + "eclipsed": false, + "low_flow": 172158, + "high_flow": 783778, + "network_to_id": "2930543", + "metrics": { + "xs": { + "centerline_offset": { + "count": 3, + "mean": 52, + "std": 46, + "min": 25, + "25%": 25, + "50%": 26, + "75%": 66, + "max": 105 + }, + "thalweg_offset": { + "count": 3, + "mean": 245, + "std": 209, + "min": 19, + "25%": 152, + "50%": 284, + "75%": 358, + "max": 431 + } + }, + "lengths": { + "ras": 6027, + "network": 5939, + "network_to_ras_ratio": 0.99 + }, + "coverage": { + "start": 0.21, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "2930875", + "overlap": 606 + } + ], + "eclipsed_reaches": [ + "2930523", + "2930549", + "2930551", + "2929093", + "2929141", + "2929139", + "2930517", + "2929097", + "2930513", + "2929121", + "2930521", + "2930543" + ] + }, + "2932881": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 396.46, + "max_elevation": 484.5, + "xs_id": 238.19 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 398.66, + "max_elevation": 477.44, + "xs_id": 237.56 + }, + "eclipsed": false, + "low_flow": 172243, + "high_flow": 777268, + "network_to_id": "2932885", + "metrics": { + "xs": { + "centerline_offset": { + "count": 2, + "mean": 40, + "std": 37, + "min": 14, + "25%": 27, + "50%": 40, + "75%": 54, + "max": 67 + }, + "thalweg_offset": { + "count": 2, + "mean": 134, + "std": 20, + "min": 120, + "25%": 127, + "50%": 134, + "75%": 141, + "max": 148 + } + }, + "lengths": { + "ras": 2957, + "network": 2979, + "network_to_ras_ratio": 1.01 + }, + "coverage": { + "start": 0.01, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "2932885", + "overlap": 479 + } + ], + "eclipsed_reaches": [ + "2932879", + "2932909" + ] + }, + "2932885": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 398.66, + "max_elevation": 477.44, + "xs_id": 237.56 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 401.84, + "max_elevation": 494.13, + "xs_id": 237.0 + }, + "eclipsed": false, + "low_flow": 172243, + "high_flow": 777266, + "network_to_id": "2932901", + "metrics": { + "xs": { + "centerline_offset": { + "count": 2, + "mean": 43, + "std": 34, + "min": 19, + "25%": 31, + "50%": 43, + "75%": 55, + "max": 67 + }, + "thalweg_offset": { + "count": 2, + "mean": 241, + "std": 171, + "min": 120, + "25%": 180, + "50%": 241, + "75%": 301, + "max": 361 + } + }, + "lengths": { + "ras": 3037, + "network": 3026, + "network_to_ras_ratio": 1.0 + }, + "coverage": { + "start": 0.23, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "2932901", + "overlap": 1384 + } + ], + "eclipsed_reaches": [ + "2932883" + ] + }, + "2932869": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 399.49, + "max_elevation": 487.08, + "xs_id": 240.1 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 397.34, + "max_elevation": 476.14, + "xs_id": 239.58 + }, + "eclipsed": false, + "low_flow": 172244, + "high_flow": 777285, + "network_to_id": "2932905", + "metrics": { + "xs": { + "centerline_offset": { + "count": 2, + "mean": 21, + "std": 2, + "min": 19, + "25%": 20, + "50%": 21, + "75%": 21, + "max": 22 + }, + "thalweg_offset": { + "count": 2, + "mean": 87, + "std": 105, + "min": 12, + "25%": 49, + "50%": 87, + "75%": 124, + "max": 161 + } + }, + "lengths": { + "ras": 2732, + "network": 2726, + "network_to_ras_ratio": 1.0 + }, + "coverage": { + "start": 0.52, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "2932905", + "overlap": 111 + } + ], + "eclipsed_reaches": [ + "2932867" + ] + }, + "2930771": { + "eclipsed": true, + "low_flow": 172246, + "high_flow": 777286, + "network_to_id": "2932865" + }, + "2932865": { + "eclipsed": true, + "low_flow": 172246, + "high_flow": 777307, + "network_to_id": "2932869" + }, + "2930761": { + "eclipsed": true, + "low_flow": 172244, + "high_flow": 777838, + "network_to_id": "2930763" + }, + "2930767": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 402.6, + "max_elevation": 510.14, + "xs_id": 241.33 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 389.8, + "max_elevation": 493.29, + "xs_id": 240.64 + }, + "eclipsed": false, + "low_flow": 172244, + "high_flow": 777828, + "network_to_id": "2930771", + "metrics": { + "xs": { + "centerline_offset": { + "count": 2, + "mean": 12, + "std": 2, + "min": 11, + "25%": 12, + "50%": 12, + "75%": 13, + "max": 14 + }, + "thalweg_offset": { + "count": 2, + "mean": 26, + "std": 11, + "min": 18, + "25%": 22, + "50%": 26, + "75%": 30, + "max": 34 + } + }, + "lengths": null, + "coverage": null + }, + "overlapped_reaches": [], + "eclipsed_reaches": [ + "2930771", + "2932865", + "2938527", + "2938523", + "2930769", + "2932725", + "2932863", + "2932703", + "2931085", + "2931087" + ] + }, + "2930763": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 405.36, + "max_elevation": 517.31, + "xs_id": 241.49 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 402.6, + "max_elevation": 510.14, + "xs_id": 241.33 + }, + "eclipsed": false, + "low_flow": 172244, + "high_flow": 777839, + "network_to_id": "2930767", + "metrics": { + "xs": { + "centerline_offset": { + "count": 2, + "mean": 21, + "std": 10, + "min": 14, + "25%": 17, + "50%": 21, + "75%": 25, + "max": 28 + }, + "thalweg_offset": { + "count": 2, + "mean": 41, + "std": 32, + "min": 18, + "25%": 29, + "50%": 41, + "75%": 52, + "max": 64 + } + }, + "lengths": { + "ras": 800, + "network": 788, + "network_to_ras_ratio": 0.99 + }, + "coverage": { + "start": 0.9, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "2930767", + "overlap": 642 + } + ], + "eclipsed_reaches": [] + }, + "2930625": { + "eclipsed": true, + "low_flow": 172258, + "high_flow": 777935, + "network_to_id": "2938449" + }, + "2930607": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 402.42, + "max_elevation": 493.6, + "xs_id": 257.57 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 419.8, + "max_elevation": 486.19, + "xs_id": 256.95 + }, + "eclipsed": false, + "low_flow": 172260, + "high_flow": 777963, + "network_to_id": "2938441", + "metrics": { + "xs": { + "centerline_offset": { + "count": 2, + "mean": 26, + "std": 34, + "min": 2, + "25%": 14, + "50%": 26, + "75%": 37, + "max": 49 + }, + "thalweg_offset": { + "count": 2, + "mean": 161, + "std": 170, + "min": 41, + "25%": 101, + "50%": 161, + "75%": 221, + "max": 281 + } + }, + "lengths": { + "ras": 3292, + "network": 3371, + "network_to_ras_ratio": 1.02 + }, + "coverage": { + "start": 0.73, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "2938445", + "overlap": 1655 + } + ], + "eclipsed_reaches": [ + "2929645", + "2930997", + "2931001", + "2931003", + "2938441" + ] + }, + "2930601": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 404.67, + "max_elevation": 500.08, + "xs_id": 258.72 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 400.6, + "max_elevation": 496.17, + "xs_id": 258.0 + }, + "eclipsed": false, + "low_flow": 172260, + "high_flow": 778010, + "network_to_id": "2930603", + "metrics": { + "xs": { + "centerline_offset": { + "count": 3, + "mean": 48, + "std": 44, + "min": 9, + "25%": 24, + "50%": 38, + "75%": 67, + "max": 95 + }, + "thalweg_offset": { + "count": 3, + "mean": 72, + "std": 44, + "min": 24, + "25%": 53, + "50%": 81, + "75%": 96, + "max": 110 + } + }, + "lengths": { + "ras": 3923, + "network": 3918, + "network_to_ras_ratio": 1.0 + }, + "coverage": { + "start": 0.14, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "2930603", + "overlap": 730 + } + ], + "eclipsed_reaches": [ + "2930599", + "2930597" + ] + }, + "2930593": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 404.16, + "max_elevation": 491.53, + "xs_id": 260.68 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 404.67, + "max_elevation": 500.08, + "xs_id": 258.72 + }, + "eclipsed": false, + "low_flow": 172232, + "high_flow": 778167, + "network_to_id": "2930601", + "metrics": { + "xs": { + "centerline_offset": { + "count": 5, + "mean": 48, + "std": 29, + "min": 19, + "25%": 32, + "50%": 44, + "75%": 48, + "max": 95 + }, + "thalweg_offset": { + "count": 5, + "mean": 84, + "std": 59, + "min": 13, + "25%": 32, + "50%": 110, + "75%": 117, + "max": 150 + } + }, + "lengths": { + "ras": 10317, + "network": 10308, + "network_to_ras_ratio": 1.0 + }, + "coverage": { + "start": 0.0, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "2930601", + "overlap": 499 + } + ], + "eclipsed_reaches": [ + "2930595", + "2930425", + "2930913" + ] + }, + "2930981": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 399.35, + "max_elevation": 479.65, + "xs_id": 246.0 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 390.44, + "max_elevation": 495.85, + "xs_id": 244.67 + }, + "eclipsed": false, + "low_flow": 172250, + "high_flow": 777894, + "network_to_id": "2930749", + "metrics": { + "xs": { + "centerline_offset": { + "count": 3, + "mean": 599, + "std": 444, + "min": 94, + "25%": 434, + "50%": 773, + "75%": 852, + "max": 931 + }, + "thalweg_offset": { + "count": 3, + "mean": 938, + "std": 456, + "min": 413, + "25%": 786, + "50%": 1160, + "75%": 1200, + "max": 1241 + } + }, + "lengths": { + "ras": 7207, + "network": 5701, + "network_to_ras_ratio": 0.79 + }, + "coverage": { + "start": 0.05, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "2930749", + "overlap": 1853 + } + ], + "eclipsed_reaches": [ + "2931039", + "2930985", + "2930171", + "2930161", + "2930169", + "2930179", + "2930741", + "2930745", + "2930193", + "2930739", + "2930743", + "2930805", + "2930731", + "2930737" + ] + }, + "2930749": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 390.44, + "max_elevation": 495.85, + "xs_id": 244.67 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 410.7, + "max_elevation": 493.4, + "xs_id": 243.22 + }, + "eclipsed": false, + "low_flow": 172248, + "high_flow": 777905, + "network_to_id": "2930759", + "metrics": { + "xs": { + "centerline_offset": { + "count": 3, + "mean": 314, + "std": 399, + "min": 55, + "25%": 84, + "50%": 113, + "75%": 443, + "max": 773 + }, + "thalweg_offset": { + "count": 3, + "mean": 561, + "std": 519, + "min": 257, + "25%": 262, + "50%": 266, + "75%": 713, + "max": 1160 + } + }, + "lengths": { + "ras": 7701, + "network": 7753, + "network_to_ras_ratio": 1.01 + }, + "coverage": { + "start": 0.33, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "2930759", + "overlap": 4006 + } + ], + "eclipsed_reaches": [ + "2930789", + "2930229", + "2930747", + "2938531", + "2930215", + "2930209", + "2930987" + ] + }, + "2930759": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 410.7, + "max_elevation": 493.4, + "xs_id": 243.22 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 405.36, + "max_elevation": 517.31, + "xs_id": 241.49 + }, + "eclipsed": false, + "low_flow": 172244, + "high_flow": 777908, + "network_to_id": "2930761", + "metrics": { + "xs": { + "centerline_offset": { + "count": 4, + "mean": 31, + "std": 22, + "min": 2, + "25%": 22, + "50%": 33, + "75%": 42, + "max": 55 + }, + "thalweg_offset": { + "count": 4, + "mean": 300, + "std": 182, + "min": 64, + "25%": 209, + "50%": 330, + "75%": 421, + "max": 475 + } + }, + "lengths": { + "ras": 9061, + "network": 9146, + "network_to_ras_ratio": 1.01 + }, + "coverage": { + "start": 0.34, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "2930763", + "overlap": 1263 + } + ], + "eclipsed_reaches": [ + "2930761", + "2930311", + "2930477", + "2930265", + "2930313", + "2930273", + "2930279", + "2932707", + "2930753", + "2930757", + "2930755" + ] + }, + "2930639": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 415.44, + "max_elevation": 461.53, + "xs_id": 254.68 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 393.54, + "max_elevation": 479.99, + "xs_id": 252.67 + }, + "eclipsed": false, + "low_flow": 172253, + "high_flow": 777933, + "network_to_id": "2938505", + "metrics": { + "xs": { + "centerline_offset": { + "count": 5, + "mean": 104, + "std": 83, + "min": 21, + "25%": 55, + "50%": 81, + "75%": 130, + "max": 235 + }, + "thalweg_offset": { + "count": 5, + "mean": 132, + "std": 46, + "min": 67, + "25%": 105, + "50%": 142, + "75%": 170, + "max": 176 + } + }, + "lengths": { + "ras": 10514, + "network": 10842, + "network_to_ras_ratio": 1.03 + }, + "coverage": { + "start": 0.17, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "2938505", + "overlap": 921 + } + ], + "eclipsed_reaches": [ + "2929889", + "2929901", + "2930861", + "2930641" + ] + }, + "2930603": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 400.6, + "max_elevation": 496.17, + "xs_id": 258.0 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 402.42, + "max_elevation": 493.6, + "xs_id": 257.57 + }, + "eclipsed": false, + "low_flow": 172260, + "high_flow": 777991, + "network_to_id": "2930607", + "metrics": { + "xs": { + "centerline_offset": { + "count": 2, + "mean": 44, + "std": 8, + "min": 38, + "25%": 41, + "50%": 44, + "75%": 47, + "max": 49 + }, + "thalweg_offset": { + "count": 2, + "mean": 152, + "std": 182, + "min": 24, + "25%": 88, + "50%": 152, + "75%": 217, + "max": 281 + } + }, + "lengths": { + "ras": 2294, + "network": 2335, + "network_to_ras_ratio": 1.02 + }, + "coverage": { + "start": 0.54, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "2930607", + "overlap": 1721 + } + ], + "eclipsed_reaches": [] + }, + "2932901": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 401.84, + "max_elevation": 494.13, + "xs_id": 237.0 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 398.17, + "max_elevation": 477.05, + "xs_id": 236.39 + }, + "eclipsed": false, + "low_flow": 172243, + "high_flow": 777262, + "network_to_id": "2932893", + "metrics": { + "xs": { + "centerline_offset": { + "count": 2, + "mean": 32, + "std": 18, + "min": 19, + "25%": 26, + "50%": 32, + "75%": 39, + "max": 45 + }, + "thalweg_offset": { + "count": 2, + "mean": 325, + "std": 52, + "min": 288, + "25%": 307, + "50%": 325, + "75%": 343, + "max": 361 + } + }, + "lengths": { + "ras": 3179, + "network": 3224, + "network_to_ras_ratio": 1.01 + }, + "coverage": { + "start": 0.46, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "2932893", + "overlap": 1608 + } + ], + "eclipsed_reaches": [ + "2515899", + "2511445", + "2511065", + "2511465", + "2511443", + "2511463", + "2515907" + ] + }, + "2932905": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 397.34, + "max_elevation": 476.14, + "xs_id": 239.58 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 401.96, + "max_elevation": 448.12, + "xs_id": 238.59 + }, + "eclipsed": false, + "low_flow": 172244, + "high_flow": 777271, + "network_to_id": "2932873", + "metrics": { + "xs": { + "centerline_offset": { + "count": 3, + "mean": 62, + "std": 54, + "min": 22, + "25%": 31, + "50%": 41, + "75%": 82, + "max": 124 + }, + "thalweg_offset": { + "count": 3, + "mean": 109, + "std": 61, + "min": 42, + "25%": 83, + "50%": 124, + "75%": 142, + "max": 161 + } + }, + "lengths": { + "ras": 5332, + "network": 5359, + "network_to_ras_ratio": 1.01 + }, + "coverage": { + "start": 0.03, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "2932873", + "overlap": 1726 + } + ], + "eclipsed_reaches": [ + "2932763", + "2932769", + "2932757", + "2932851", + "2932761", + "2932767" + ] + }, + "2930591": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 415.93, + "max_elevation": 496.65, + "xs_id": 261.41 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 404.16, + "max_elevation": 491.53, + "xs_id": 260.68 + }, + "eclipsed": false, + "low_flow": 172170, + "high_flow": 783235, + "network_to_id": "2930593", + "metrics": { + "xs": { + "centerline_offset": { + "count": 2, + "mean": 30, + "std": 16, + "min": 19, + "25%": 24, + "50%": 30, + "75%": 35, + "max": 41 + }, + "thalweg_offset": { + "count": 2, + "mean": 111, + "std": 111, + "min": 32, + "25%": 71, + "50%": 111, + "75%": 150, + "max": 189 + } + }, + "lengths": { + "ras": 4072, + "network": 4041, + "network_to_ras_ratio": 0.99 + }, + "coverage": { + "start": 0.07, + "end": 1.0 + } + }, + "overlapped_reaches": [ + { + "id": "2930593", + "overlap": 11 + } + ], + "eclipsed_reaches": [ + "2938521", + "2930587" + ] + }, + "2938441": { + "eclipsed": true, + "low_flow": 172260, + "high_flow": 777926, + "network_to_id": "2938445" + }, + "2938445": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 419.8, + "max_elevation": 486.19, + "xs_id": 256.95 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 411.5, + "max_elevation": 501.52, + "xs_id": 256.4 + }, + "eclipsed": false, + "low_flow": 172260, + "high_flow": 777945, + "network_to_id": "2930621", + "metrics": { + "xs": { + "centerline_offset": { + "count": 2, + "mean": 7, + "std": 7, + "min": 2, + "25%": 4, + "50%": 7, + "75%": 10, + "max": 12 + }, + "thalweg_offset": { + "count": 2, + "mean": 58, + "std": 24, + "min": 41, + "25%": 49, + "50%": 58, + "75%": 66, + "max": 75 + } + }, + "lengths": { + "ras": 2961, + "network": 2955, + "network_to_ras_ratio": 1.0 + }, + "coverage": { + "start": 0.93, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "2930621", + "overlap": 2826 + } + ], + "eclipsed_reaches": [ + "2929661", + "2930919", + "2930923", + "2929701", + "2929707", + "2930617", + "2930611", + "2929665", + "2930613", + "2930827", + "2930921", + "2930845", + "2930917", + "2930615" + ] + }, + "2938449": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 413.86, + "max_elevation": 479.05, + "xs_id": 255.26 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 415.44, + "max_elevation": 461.53, + "xs_id": 254.68 + }, + "eclipsed": false, + "low_flow": 172258, + "high_flow": 777909, + "network_to_id": "2930639", + "metrics": { + "xs": { + "centerline_offset": { + "count": 2, + "mean": 71, + "std": 84, + "min": 11, + "25%": 41, + "50%": 71, + "75%": 100, + "max": 130 + }, + "thalweg_offset": { + "count": 2, + "mean": 99, + "std": 61, + "min": 56, + "25%": 77, + "50%": 99, + "75%": 120, + "max": 142 + } + }, + "lengths": { + "ras": 3099, + "network": 3065, + "network_to_ras_ratio": 0.99 + }, + "coverage": { + "start": 0.15, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "2930639", + "overlap": 1961 + } + ], + "eclipsed_reaches": [ + "2930849", + "2929757", + "2929735", + "2930629", + "2930627", + "2929753" + ] + }, + "2938455": { + "eclipsed": true, + "low_flow": 172252, + "high_flow": 777939, + "network_to_id": "2930679" + }, + "2930651": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 408.91, + "max_elevation": 488.88, + "xs_id": 250.85 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 395.42, + "max_elevation": 494.0, + "xs_id": 250.38 + }, + "eclipsed": false, + "low_flow": 172252, + "high_flow": 777943, + "network_to_id": "2938455", + "metrics": { + "xs": { + "centerline_offset": { + "count": 2, + "mean": 103, + "std": 38, + "min": 76, + "25%": 89, + "50%": 103, + "75%": 116, + "max": 130 + }, + "thalweg_offset": { + "count": 2, + "mean": 557, + "std": 100, + "min": 486, + "25%": 521, + "50%": 557, + "75%": 592, + "max": 628 + } + }, + "lengths": { + "ras": 2429, + "network": 2494, + "network_to_ras_ratio": 1.03 + }, + "coverage": { + "start": 0.49, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "2930679", + "overlap": 250 + } + ], + "eclipsed_reaches": [ + "2929985", + "2929983", + "2929973", + "2930667", + "2938455", + "2931059", + "2931067", + "2931071", + "937110039", + "937110040" + ] + }, + "2938461": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 402.0, + "max_elevation": 494.0, + "xs_id": 250.0 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 399.48, + "max_elevation": 488.64, + "xs_id": 248.87 + }, + "eclipsed": false, + "low_flow": 172251, + "high_flow": 777930, + "network_to_id": "2930705", + "metrics": { + "xs": { + "centerline_offset": { + "count": 3, + "mean": 71, + "std": 27, + "min": 43, + "25%": 58, + "50%": 74, + "75%": 85, + "max": 97 + }, + "thalweg_offset": { + "count": 3, + "mean": 303, + "std": 195, + "min": 78, + "25%": 246, + "50%": 415, + "75%": 416, + "max": 416 + } + }, + "lengths": { + "ras": 5668, + "network": 5581, + "network_to_ras_ratio": 0.98 + }, + "coverage": { + "start": 0.19, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "2930705", + "overlap": 2579 + } + ], + "eclipsed_reaches": [ + "2930015", + "2930027", + "2930951", + "2930035", + "2930955", + "2930031", + "2931091", + "2930687", + "2930795", + "2930949", + "2931007", + "2930953", + "2930957", + "2931023", + "2931025", + "2930701" + ] + }, + "2930713": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 400.22, + "max_elevation": 492.19, + "xs_id": 247.69 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 384.94, + "max_elevation": 497.39, + "xs_id": 247.09 + }, + "eclipsed": false, + "low_flow": 172250, + "high_flow": 777893, + "network_to_id": "2938477", + "metrics": { + "xs": { + "centerline_offset": { + "count": 2, + "mean": 53, + "std": 72, + "min": 3, + "25%": 28, + "50%": 53, + "75%": 79, + "max": 104 + }, + "thalweg_offset": { + "count": 2, + "mean": 301, + "std": 6, + "min": 297, + "25%": 299, + "50%": 301, + "75%": 303, + "max": 305 + } + }, + "lengths": { + "ras": 3106, + "network": 3109, + "network_to_ras_ratio": 1.0 + }, + "coverage": { + "start": 0.59, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "2930719", + "overlap": 1282 + } + ], + "eclipsed_reaches": [ + "2931077", + "2938477" + ] + }, + "2938477": { + "eclipsed": true, + "low_flow": 172251, + "high_flow": 777900, + "network_to_id": "2930719" + }, + "2930709": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 402.45, + "max_elevation": 468.81, + "xs_id": 248.22 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 400.22, + "max_elevation": 492.19, + "xs_id": 247.69 + }, + "eclipsed": false, + "low_flow": 172251, + "high_flow": 777896, + "network_to_id": "2930713", + "metrics": { + "xs": { + "centerline_offset": { + "count": 2, + "mean": 87, + "std": 24, + "min": 70, + "25%": 78, + "50%": 87, + "75%": 95, + "max": 104 + }, + "thalweg_offset": { + "count": 2, + "mean": 208, + "std": 126, + "min": 119, + "25%": 163, + "50%": 208, + "75%": 252, + "max": 297 + } + }, + "lengths": { + "ras": 2613, + "network": 2718, + "network_to_ras_ratio": 1.04 + }, + "coverage": { + "start": 0.12, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "2930713", + "overlap": 1988 + } + ], + "eclipsed_reaches": [ + "2930063", + "2930061", + "2930053", + "2930055" + ] + }, + "2931017": { + "eclipsed": true, + "low_flow": 172250, + "high_flow": 777881, + "network_to_id": "2930981" + }, + "2930723": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 402.82, + "max_elevation": 511.2, + "xs_id": 246.56 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 399.35, + "max_elevation": 479.65, + "xs_id": 246.0 + }, + "eclipsed": false, + "low_flow": 172250, + "high_flow": 777887, + "network_to_id": "2931017", + "metrics": { + "xs": { + "centerline_offset": { + "count": 2, + "mean": 58, + "std": 51, + "min": 22, + "25%": 40, + "50%": 58, + "75%": 76, + "max": 94 + }, + "thalweg_offset": { + "count": 2, + "mean": 209, + "std": 288, + "min": 5, + "25%": 107, + "50%": 209, + "75%": 311, + "max": 413 + } + }, + "lengths": { + "ras": 2933, + "network": 2941, + "network_to_ras_ratio": 1.0 + }, + "coverage": { + "start": 0.46, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "2930981", + "overlap": 185 + } + ], + "eclipsed_reaches": [ + "2930133", + "2930729", + "2930135", + "2930727", + "2930807", + "2930725", + "2930801", + "2931017", + "937110045", + "937110046" + ] + }, + "2930649": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 414.11, + "max_elevation": 491.07, + "xs_id": 251.22 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 408.91, + "max_elevation": 488.88, + "xs_id": 250.85 + }, + "eclipsed": false, + "low_flow": 172252, + "high_flow": 777954, + "network_to_id": "2930651", + "metrics": { + "xs": { + "centerline_offset": { + "count": 2, + "mean": 54, + "std": 30, + "min": 33, + "25%": 44, + "50%": 54, + "75%": 65, + "max": 76 + }, + "thalweg_offset": { + "count": 2, + "mean": 379, + "std": 351, + "min": 131, + "25%": 255, + "50%": 379, + "75%": 503, + "max": 628 + } + }, + "lengths": { + "ras": 2015, + "network": 2090, + "network_to_ras_ratio": 1.04 + }, + "coverage": { + "start": 0.53, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "2930651", + "overlap": 155 + } + ], + "eclipsed_reaches": [ + "2929939", + "2930655", + "2930653", + "2929959", + "2930663", + "2929961", + "2931027", + "2931061", + "2931065", + "937110086", + "937110087" + ] + }, + "2938505": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 393.54, + "max_elevation": 479.99, + "xs_id": 252.67 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 410.29, + "max_elevation": 494.07, + "xs_id": 252.19 + }, + "eclipsed": false, + "low_flow": 172253, + "high_flow": 777942, + "network_to_id": "2938507", + "metrics": { + "xs": { + "centerline_offset": { + "count": 2, + "mean": 123, + "std": 158, + "min": 12, + "25%": 67, + "50%": 123, + "75%": 179, + "max": 235 + }, + "thalweg_offset": { + "count": 2, + "mean": 268, + "std": 131, + "min": 176, + "25%": 222, + "50%": 268, + "75%": 315, + "max": 361 + } + }, + "lengths": { + "ras": 2578, + "network": 2653, + "network_to_ras_ratio": 1.03 + }, + "coverage": { + "start": 0.36, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "2938507", + "overlap": 990 + } + ], + "eclipsed_reaches": [ + "2930851" + ] + }, + "2938507": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 410.29, + "max_elevation": 494.07, + "xs_id": 252.19 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 414.11, + "max_elevation": 491.07, + "xs_id": 251.22 + }, + "eclipsed": false, + "low_flow": 172253, + "high_flow": 777944, + "network_to_id": "2930649", + "metrics": { + "xs": { + "centerline_offset": { + "count": 3, + "mean": 29, + "std": 15, + "min": 12, + "25%": 22, + "50%": 33, + "75%": 37, + "max": 41 + }, + "thalweg_offset": { + "count": 3, + "mean": 284, + "std": 133, + "min": 131, + "25%": 246, + "50%": 361, + "75%": 361, + "max": 361 + } + }, + "lengths": { + "ras": 5108, + "network": 5122, + "network_to_ras_ratio": 1.0 + }, + "coverage": { + "start": 0.25, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "2930649", + "overlap": 2176 + } + ], + "eclipsed_reaches": [ + "2929929", + "2930939", + "2930937", + "2929935", + "2930947", + "2930943", + "2929909", + "2930933", + "2930929", + "2929995", + "2930855", + "2930931", + "2930935", + "2930941", + "2930831", + "2930833", + "2930945", + "937110084", + "937110085", + "937110050", + "937110049", + "2929879" + ] + }, + "2932875": { + "eclipsed": true, + "low_flow": 172244, + "high_flow": 777291, + "network_to_id": "2932881" + }, + "2932873": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 401.96, + "max_elevation": 448.12, + "xs_id": 238.59 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 396.46, + "max_elevation": 484.5, + "xs_id": 238.19 + }, + "eclipsed": false, + "low_flow": 172243, + "high_flow": 777291, + "network_to_id": "2932875", + "metrics": { + "xs": { + "centerline_offset": { + "count": 2, + "mean": 69, + "std": 78, + "min": 14, + "25%": 41, + "50%": 69, + "75%": 96, + "max": 124 + }, + "thalweg_offset": { + "count": 2, + "mean": 95, + "std": 75, + "min": 42, + "25%": 69, + "50%": 95, + "75%": 121, + "max": 148 + } + }, + "lengths": { + "ras": 2777, + "network": 2718, + "network_to_ras_ratio": 0.98 + }, + "coverage": { + "start": 0.61, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "2932881", + "overlap": 19 + } + ], + "eclipsed_reaches": [ + "2932887", + "2932871", + "2932875", + "2511025" + ] + }, + "2930719": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 384.94, + "max_elevation": 497.39, + "xs_id": 247.09 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 402.82, + "max_elevation": 511.2, + "xs_id": 246.56 + }, + "eclipsed": false, + "low_flow": 172250, + "high_flow": 777902, + "network_to_id": "2938485", + "metrics": { + "xs": { + "centerline_offset": { + "count": 2, + "mean": 13, + "std": 14, + "min": 3, + "25%": 8, + "50%": 13, + "75%": 17, + "max": 22 + }, + "thalweg_offset": { + "count": 2, + "mean": 155, + "std": 212, + "min": 5, + "25%": 80, + "50%": 155, + "75%": 230, + "max": 305 + } + }, + "lengths": { + "ras": 3027, + "network": 3021, + "network_to_ras_ratio": 1.0 + }, + "coverage": { + "start": 0.61, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "2930723", + "overlap": 710 + } + ], + "eclipsed_reaches": [ + "2930717", + "2930089", + "2930111", + "2930721", + "2930969", + "937110055", + "937110059", + "2930975", + "2938485", + "2930117", + "2930977", + "2930971", + "2930101", + "937110083", + "937110057" + ] + }, + "2938485": { + "eclipsed": true, + "low_flow": 172250, + "high_flow": 777903, + "network_to_id": "2930723" + }, + "2930705": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 399.48, + "max_elevation": 488.64, + "xs_id": 248.87 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 402.45, + "max_elevation": 468.81, + "xs_id": 248.22 + }, + "eclipsed": false, + "low_flow": 172250, + "high_flow": 777905, + "network_to_id": "2930709", + "metrics": { + "xs": { + "centerline_offset": { + "count": 2, + "mean": 83, + "std": 20, + "min": 70, + "25%": 77, + "50%": 83, + "75%": 90, + "max": 97 + }, + "thalweg_offset": { + "count": 2, + "mean": 267, + "std": 211, + "min": 119, + "25%": 193, + "50%": 267, + "75%": 342, + "max": 416 + } + }, + "lengths": { + "ras": 3229, + "network": 3362, + "network_to_ras_ratio": 1.04 + }, + "coverage": { + "start": 0.44, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "2930709", + "overlap": 100 + } + ], + "eclipsed_reaches": [ + "2930043", + "2931013", + "2931015", + "2931011", + "2931019", + "2930703", + "2930049", + "2930965", + "2930961", + "2931021" + ] + }, + "2930679": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 395.42, + "max_elevation": 494.0, + "xs_id": 250.38 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 402.0, + "max_elevation": 494.0, + "xs_id": 250.0 + }, + "eclipsed": false, + "low_flow": 172252, + "high_flow": 777914, + "network_to_id": "2938461", + "metrics": { + "xs": { + "centerline_offset": { + "count": 2, + "mean": 87, + "std": 61, + "min": 43, + "25%": 65, + "50%": 87, + "75%": 108, + "max": 130 + }, + "thalweg_offset": { + "count": 2, + "mean": 450, + "std": 50, + "min": 415, + "25%": 433, + "50%": 450, + "75%": 468, + "max": 486 + } + }, + "lengths": { + "ras": 1965, + "network": 1990, + "network_to_ras_ratio": 1.01 + }, + "coverage": { + "start": 0.17, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "2938461", + "overlap": 723 + } + ], + "eclipsed_reaches": [ + "2929979", + "2930669", + "2930819", + "2930671", + "2930673", + "2930817", + "2929981" + ] + }, + "2930621": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 411.5, + "max_elevation": 501.52, + "xs_id": 256.4 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 413.86, + "max_elevation": 479.05, + "xs_id": 255.26 + }, + "eclipsed": false, + "low_flow": 172258, + "high_flow": 777963, + "network_to_id": "2930625", + "metrics": { + "xs": { + "centerline_offset": { + "count": 3, + "mean": 19, + "std": 12, + "min": 11, + "25%": 12, + "50%": 12, + "75%": 22, + "max": 32 + }, + "thalweg_offset": { + "count": 3, + "mean": 159, + "std": 162, + "min": 56, + "25%": 65, + "50%": 75, + "75%": 210, + "max": 346 + } + }, + "lengths": { + "ras": 5959, + "network": 5981, + "network_to_ras_ratio": 1.0 + }, + "coverage": { + "start": 0.41, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "2938449", + "overlap": 190 + } + ], + "eclipsed_reaches": [ + "2930625", + "2929745", + "2929751", + "2930623", + "2930619", + "2930925" + ] + }, + "2938437": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 412.02, + "max_elevation": 499.89, + "xs_id": 261.98 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 415.93, + "max_elevation": 496.65, + "xs_id": 261.41 + }, + "eclipsed": false, + "low_flow": 172171, + "high_flow": 783270, + "network_to_id": "2930591", + "metrics": { + "xs": { + "centerline_offset": { + "count": 2, + "mean": 38, + "std": 4, + "min": 35, + "25%": 36, + "50%": 38, + "75%": 39, + "max": 41 + }, + "thalweg_offset": { + "count": 2, + "mean": 242, + "std": 74, + "min": 189, + "25%": 215, + "50%": 242, + "75%": 268, + "max": 294 + } + }, + "lengths": { + "ras": 2868, + "network": 2816, + "network_to_ras_ratio": 0.98 + }, + "coverage": { + "start": 0.26, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "2930591", + "overlap": 303 + } + ], + "eclipsed_reaches": [] + }, + "2930581": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 415.8, + "max_elevation": 480.15, + "xs_id": 265.59 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 412.02, + "max_elevation": 499.89, + "xs_id": 261.98 + }, + "eclipsed": false, + "low_flow": 172146, + "high_flow": 783334, + "network_to_id": "2938437", + "metrics": { + "xs": { + "centerline_offset": { + "count": 7, + "mean": 129, + "std": 143, + "min": 19, + "25%": 30, + "50%": 40, + "75%": 189, + "max": 403 + }, + "thalweg_offset": { + "count": 7, + "mean": 191, + "std": 188, + "min": 32, + "25%": 72, + "50%": 109, + "75%": 242, + "max": 566 + } + }, + "lengths": { + "ras": 18974, + "network": 18595, + "network_to_ras_ratio": 0.98 + }, + "coverage": { + "start": 0.02, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "2938437", + "overlap": 873 + } + ], + "eclipsed_reaches": [ + "2930417", + "2929427", + "2929497", + "2929423", + "2929493", + "2929433", + "2929445", + "2929457", + "2930415", + "2929389", + "2929469", + "2929495", + "2929473", + "2929447", + "2930421", + "2930583", + "2929395", + "2930911", + "2931029", + "27570634" + ] + }, + "2932893": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 398.17, + "max_elevation": 477.05, + "xs_id": 236.39 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 393.67, + "max_elevation": 472.11, + "xs_id": 235.79 + }, + "eclipsed": false, + "low_flow": 172242, + "high_flow": 777280, + "network_to_id": "880776", + "metrics": { + "xs": { + "centerline_offset": { + "count": 2, + "mean": 197, + "std": 215, + "min": 45, + "25%": 121, + "50%": 197, + "75%": 273, + "max": 348 + }, + "thalweg_offset": { + "count": 2, + "mean": 320, + "std": 45, + "min": 288, + "25%": 304, + "50%": 320, + "75%": 336, + "max": 352 + } + }, + "lengths": { + "ras": 3117, + "network": 3557, + "network_to_ras_ratio": 1.14 + }, + "coverage": { + "start": 0.42, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "880776", + "overlap": 1339 + } + ], + "eclipsed_reaches": [ + "880794" + ] + }, + "880614": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 400.25, + "max_elevation": 489.31, + "xs_id": 233.59 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 399.7, + "max_elevation": 538.74, + "xs_id": 233.11 + }, + "eclipsed": false, + "low_flow": 172242, + "high_flow": 777269, + "network_to_id": "880624", + "metrics": { + "xs": { + "centerline_offset": { + "count": 2, + "mean": 43, + "std": 20, + "min": 28, + "25%": 35, + "50%": 43, + "75%": 50, + "max": 57 + }, + "thalweg_offset": { + "count": 2, + "mean": 196, + "std": 3, + "min": 194, + "25%": 195, + "50%": 196, + "75%": 198, + "max": 199 + } + }, + "lengths": { + "ras": 2589, + "network": 2640, + "network_to_ras_ratio": 1.02 + }, + "coverage": { + "start": 0.89, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "880624", + "overlap": 2469 + } + ], + "eclipsed_reaches": [] + }, + "880624": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 399.7, + "max_elevation": 538.74, + "xs_id": 233.11 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 399.36, + "max_elevation": 521.13, + "xs_id": 232.58 + }, + "eclipsed": false, + "low_flow": 172241, + "high_flow": 777257, + "network_to_id": "880820", + "metrics": { + "xs": { + "centerline_offset": { + "count": 2, + "mean": 124, + "std": 95, + "min": 57, + "25%": 91, + "50%": 124, + "75%": 158, + "max": 191 + }, + "thalweg_offset": { + "count": 2, + "mean": 216, + "std": 24, + "min": 199, + "25%": 207, + "50%": 216, + "75%": 224, + "max": 233 + } + }, + "lengths": { + "ras": 2682, + "network": 2527, + "network_to_ras_ratio": 0.94 + }, + "coverage": { + "start": 0.61, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "880820", + "overlap": 944 + } + ], + "eclipsed_reaches": [] + }, + "880776": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 393.67, + "max_elevation": 472.11, + "xs_id": 235.79 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 398.22, + "max_elevation": 503.08, + "xs_id": 235.16 + }, + "eclipsed": false, + "low_flow": 172242, + "high_flow": 777280, + "network_to_id": "880784", + "metrics": { + "xs": { + "centerline_offset": { + "count": 2, + "mean": 407, + "std": 82, + "min": 348, + "25%": 378, + "50%": 407, + "75%": 436, + "max": 465 + }, + "thalweg_offset": { + "count": 2, + "mean": 526, + "std": 246, + "min": 352, + "25%": 439, + "50%": 526, + "75%": 613, + "max": 700 + } + }, + "lengths": { + "ras": 3304, + "network": 3276, + "network_to_ras_ratio": 0.99 + }, + "coverage": { + "start": 0.36, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "880784", + "overlap": 929 + } + ], + "eclipsed_reaches": [ + "2511415", + "880724", + "880592", + "882736" + ] + }, + "880596": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 399.24, + "max_elevation": 462.33, + "xs_id": 224.7 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 403.25, + "max_elevation": 448.3, + "xs_id": 222.1 + }, + "eclipsed": false, + "low_flow": 172419, + "high_flow": 782793, + "network_to_id": "880548", + "metrics": { + "xs": { + "centerline_offset": { + "count": 6, + "mean": 28, + "std": 23, + "min": 2, + "25%": 11, + "50%": 27, + "75%": 40, + "max": 63 + }, + "thalweg_offset": { + "count": 6, + "mean": 119, + "std": 90, + "min": 27, + "25%": 44, + "50%": 101, + "75%": 188, + "max": 239 + } + }, + "lengths": { + "ras": 13434, + "network": 13565, + "network_to_ras_ratio": 1.01 + }, + "coverage": { + "start": 0.04, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "880548", + "overlap": 700 + } + ], + "eclipsed_reaches": [ + "879816", + "880582", + "880594", + "880552", + "880590", + "3601824", + "3601986", + "879804", + "879876", + "880574", + "880576" + ] + }, + "880630": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 401.77, + "max_elevation": 468.63, + "xs_id": 225.7 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 399.24, + "max_elevation": 462.33, + "xs_id": 224.7 + }, + "eclipsed": false, + "low_flow": 172425, + "high_flow": 782853, + "network_to_id": "880596", + "metrics": { + "xs": { + "centerline_offset": { + "count": 3, + "mean": 57, + "std": 48, + "min": 2, + "25%": 39, + "50%": 77, + "75%": 84, + "max": 92 + }, + "thalweg_offset": { + "count": 3, + "mean": 134, + "std": 81, + "min": 76, + "25%": 88, + "50%": 99, + "75%": 163, + "max": 226 + } + }, + "lengths": { + "ras": 5727, + "network": 5649, + "network_to_ras_ratio": 0.99 + }, + "coverage": { + "start": 0.34, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "880596", + "overlap": 543 + } + ], + "eclipsed_reaches": [ + "880598" + ] + }, + "880654": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 387.24, + "max_elevation": 481.09, + "xs_id": 227.76 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 401.77, + "max_elevation": 468.63, + "xs_id": 225.7 + }, + "eclipsed": false, + "low_flow": 172426, + "high_flow": 782814, + "network_to_id": "880630", + "metrics": { + "xs": { + "centerline_offset": { + "count": 5, + "mean": 39, + "std": 36, + "min": 0, + "25%": 17, + "50%": 30, + "75%": 54, + "max": 92 + }, + "thalweg_offset": { + "count": 5, + "mean": 172, + "std": 84, + "min": 83, + "25%": 85, + "50%": 196, + "75%": 226, + "max": 269 + } + }, + "lengths": { + "ras": 11236, + "network": 11386, + "network_to_ras_ratio": 1.01 + }, + "coverage": { + "start": 0.06, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "880630", + "overlap": 2636 + } + ], + "eclipsed_reaches": [ + "880772", + "879938", + "880400", + "880674", + "880632", + "879924", + "880658" + ] + }, + "880662": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 375.64, + "max_elevation": 512.61, + "xs_id": 228.29 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 387.24, + "max_elevation": 481.09, + "xs_id": 227.76 + }, + "eclipsed": false, + "low_flow": 172426, + "high_flow": 782842, + "network_to_id": "880654", + "metrics": { + "xs": { + "centerline_offset": { + "count": 2, + "mean": 36, + "std": 27, + "min": 17, + "25%": 27, + "50%": 36, + "75%": 46, + "max": 55 + }, + "thalweg_offset": { + "count": 2, + "mean": 147, + "std": 70, + "min": 98, + "25%": 122, + "50%": 147, + "75%": 172, + "max": 196 + } + }, + "lengths": { + "ras": 2744, + "network": 2760, + "network_to_ras_ratio": 1.01 + }, + "coverage": { + "start": 0.27, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "880654", + "overlap": 537 + } + ], + "eclipsed_reaches": [ + "879916", + "880672", + "880656" + ] + }, + "880820": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 399.36, + "max_elevation": 521.13, + "xs_id": 232.58 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 398.82, + "max_elevation": 498.79, + "xs_id": 232.01 + }, + "eclipsed": false, + "low_flow": 172431, + "high_flow": 782822, + "network_to_id": "880640", + "metrics": { + "xs": { + "centerline_offset": { + "count": 2, + "mean": 419, + "std": 322, + "min": 191, + "25%": 305, + "50%": 419, + "75%": 533, + "max": 647 + }, + "thalweg_offset": { + "count": 2, + "mean": 537, + "std": 430, + "min": 233, + "25%": 385, + "50%": 537, + "75%": 689, + "max": 842 + } + }, + "lengths": { + "ras": 2768, + "network": 2615, + "network_to_ras_ratio": 0.94 + }, + "coverage": { + "start": 0.45, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "880640", + "overlap": 1443 + } + ], + "eclipsed_reaches": [] + }, + "880818": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 399.57, + "max_elevation": 493.92, + "xs_id": 229.0 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 375.64, + "max_elevation": 512.61, + "xs_id": 228.29 + }, + "eclipsed": false, + "low_flow": 172427, + "high_flow": 782822, + "network_to_id": "880662", + "metrics": { + "xs": { + "centerline_offset": { + "count": 3, + "mean": 66, + "std": 15, + "min": 55, + "25%": 57, + "50%": 59, + "75%": 71, + "max": 83 + }, + "thalweg_offset": { + "count": 3, + "mean": 105, + "std": 34, + "min": 74, + "25%": 86, + "50%": 98, + "75%": 120, + "max": 142 + } + }, + "lengths": { + "ras": 3754, + "network": 3778, + "network_to_ras_ratio": 1.01 + }, + "coverage": { + "start": 0.3, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "880662", + "overlap": 813 + } + ], + "eclipsed_reaches": [ + "879980", + "879960", + "879966", + "882730", + "880660" + ] + }, + "880786": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 396.66, + "max_elevation": 492.37, + "xs_id": 234.55 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 399.9, + "max_elevation": 455.81, + "xs_id": 234.05 + }, + "eclipsed": false, + "low_flow": 172242, + "high_flow": 777261, + "network_to_id": "880604", + "metrics": { + "xs": { + "centerline_offset": { + "count": 2, + "mean": 239, + "std": 265, + "min": 52, + "25%": 146, + "50%": 239, + "75%": 333, + "max": 427 + }, + "thalweg_offset": { + "count": 2, + "mean": 212, + "std": 186, + "min": 81, + "25%": 146, + "50%": 212, + "75%": 278, + "max": 343 + } + }, + "lengths": { + "ras": 2649, + "network": 2591, + "network_to_ras_ratio": 0.98 + }, + "coverage": { + "start": 0.58, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "880604", + "overlap": 792 + } + ], + "eclipsed_reaches": [] + }, + "880784": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 398.22, + "max_elevation": 503.08, + "xs_id": 235.16 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 396.66, + "max_elevation": 492.37, + "xs_id": 234.55 + }, + "eclipsed": false, + "low_flow": 172242, + "high_flow": 777268, + "network_to_id": "880786", + "metrics": { + "xs": { + "centerline_offset": { + "count": 2, + "mean": 446, + "std": 27, + "min": 427, + "25%": 436, + "50%": 446, + "75%": 455, + "max": 465 + }, + "thalweg_offset": { + "count": 2, + "mean": 522, + "std": 252, + "min": 343, + "25%": 432, + "50%": 522, + "75%": 611, + "max": 700 + } + }, + "lengths": { + "ras": 3028, + "network": 3003, + "network_to_ras_ratio": 0.99 + }, + "coverage": { + "start": 0.64, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "880786", + "overlap": 2476 + } + ], + "eclipsed_reaches": [ + "880760", + "882734", + "882732", + "879812", + "880804", + "880806", + "882698", + "882726" + ] + }, + "880640": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 398.82, + "max_elevation": 498.79, + "xs_id": 232.01 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 397.94, + "max_elevation": 499.49, + "xs_id": 231.4 + }, + "eclipsed": false, + "low_flow": 172430, + "high_flow": 782830, + "network_to_id": "880644", + "metrics": { + "xs": { + "centerline_offset": { + "count": 2, + "mean": 793, + "std": 207, + "min": 647, + "25%": 720, + "50%": 793, + "75%": 866, + "max": 939 + }, + "thalweg_offset": { + "count": 2, + "mean": 982, + "std": 199, + "min": 842, + "25%": 912, + "50%": 982, + "75%": 1053, + "max": 1123 + } + }, + "lengths": { + "ras": 3166, + "network": 2933, + "network_to_ras_ratio": 0.93 + }, + "coverage": { + "start": 0.36, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "880668", + "overlap": 148 + } + ], + "eclipsed_reaches": [ + "880638", + "880642", + "880644" + ] + }, + "880644": { + "eclipsed": true, + "low_flow": 172430, + "high_flow": 782840, + "network_to_id": "880668" + }, + "880668": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 397.94, + "max_elevation": 499.49, + "xs_id": 231.4 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 399.57, + "max_elevation": 493.92, + "xs_id": 229.0 + }, + "eclipsed": false, + "low_flow": 172427, + "high_flow": 782822, + "network_to_id": "880818", + "metrics": { + "xs": { + "centerline_offset": { + "count": 6, + "mean": 676, + "std": 362, + "min": 59, + "25%": 513, + "50%": 836, + "75%": 923, + "max": 969 + }, + "thalweg_offset": { + "count": 6, + "mean": 889, + "std": 421, + "min": 74, + "25%": 880, + "50%": 1022, + "75%": 1139, + "max": 1203 + } + }, + "lengths": { + "ras": 12426, + "network": 11076, + "network_to_ras_ratio": 0.89 + }, + "coverage": { + "start": 0.01, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "880818", + "overlap": 1243 + } + ], + "eclipsed_reaches": [ + "879952", + "879964", + "879962", + "879954" + ] + }, + "880604": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 399.9, + "max_elevation": 455.81, + "xs_id": 234.05 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 400.25, + "max_elevation": 489.31, + "xs_id": 233.59 + }, + "eclipsed": false, + "low_flow": 172242, + "high_flow": 777272, + "network_to_id": "880614", + "metrics": { + "xs": { + "centerline_offset": { + "count": 2, + "mean": 40, + "std": 17, + "min": 28, + "25%": 34, + "50%": 40, + "75%": 46, + "max": 52 + }, + "thalweg_offset": { + "count": 2, + "mean": 137, + "std": 80, + "min": 81, + "25%": 109, + "50%": 137, + "75%": 166, + "max": 194 + } + }, + "lengths": { + "ras": 2431, + "network": 2423, + "network_to_ras_ratio": 1.0 + }, + "coverage": { + "start": 0.44, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "880614", + "overlap": 1405 + } + ], + "eclipsed_reaches": [ + "880602", + "879868", + "880756" + ] + }, + "880536": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 388.02, + "max_elevation": 493.41, + "xs_id": 213.87 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 385.67, + "max_elevation": 512.89, + "xs_id": 211.92 + }, + "eclipsed": false, + "low_flow": 245382, + "high_flow": 862345, + "network_to_id": "880544", + "metrics": { + "xs": { + "centerline_offset": { + "count": 5, + "mean": 62, + "std": 27, + "min": 21, + "25%": 54, + "50%": 62, + "75%": 82, + "max": 89 + }, + "thalweg_offset": { + "count": 5, + "mean": 219, + "std": 50, + "min": 170, + "25%": 173, + "50%": 217, + "75%": 250, + "max": 285 + } + }, + "lengths": { + "ras": 9830, + "network": 9898, + "network_to_ras_ratio": 1.01 + }, + "coverage": { + "start": 0.13, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "880544", + "overlap": 2011 + } + ], + "eclipsed_reaches": [ + "880538", + "879720", + "880540", + "880792" + ] + }, + "880816": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 395.57, + "max_elevation": 442.19, + "xs_id": 220.47 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 374.01, + "max_elevation": 502.23, + "xs_id": 218.86 + }, + "eclipsed": false, + "low_flow": 172618, + "high_flow": 784046, + "network_to_id": "880494", + "metrics": { + "xs": { + "centerline_offset": { + "count": 4, + "mean": 36, + "std": 47, + "min": 2, + "25%": 7, + "50%": 18, + "75%": 47, + "max": 105 + }, + "thalweg_offset": { + "count": 4, + "mean": 701, + "std": 572, + "min": 73, + "25%": 375, + "50%": 655, + "75%": 980, + "max": 1421 + } + }, + "lengths": { + "ras": 8127, + "network": 8065, + "network_to_ras_ratio": 0.99 + }, + "coverage": { + "start": 0.13, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "880494", + "overlap": 170 + } + ], + "eclipsed_reaches": [ + "880500", + "880458", + "880462", + "880456", + "882682", + "880802", + "880460", + "880810", + "880464", + "3607100", + "3601938", + "3601996", + "3601944", + "3607074", + "3601958", + "3601960", + "3601962" + ] + }, + "880548": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 403.25, + "max_elevation": 448.3, + "xs_id": 222.1 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 395.11, + "max_elevation": 443.7, + "xs_id": 221.05 + }, + "eclipsed": false, + "low_flow": 172418, + "high_flow": 782797, + "network_to_id": "880534", + "metrics": { + "xs": { + "centerline_offset": { + "count": 3, + "mean": 34, + "std": 7, + "min": 30, + "25%": 30, + "50%": 31, + "75%": 36, + "max": 42 + }, + "thalweg_offset": { + "count": 3, + "mean": 160, + "std": 60, + "min": 124, + "25%": 125, + "50%": 126, + "75%": 178, + "max": 230 + } + }, + "lengths": { + "ras": 5664, + "network": 5782, + "network_to_ras_ratio": 1.02 + }, + "coverage": { + "start": 0.14, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "880534", + "overlap": 1491 + } + ], + "eclipsed_reaches": [ + "3601904" + ] + }, + "880478": { + "eclipsed": true, + "low_flow": 245387, + "high_flow": 862351, + "network_to_id": "880484" + }, + "880484": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 384.94, + "max_elevation": 457.98, + "xs_id": 217.47 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 387.19, + "max_elevation": 498.66, + "xs_id": 216.55 + }, + "eclipsed": false, + "low_flow": 245386, + "high_flow": 862355, + "network_to_id": "880486", + "metrics": { + "xs": { + "centerline_offset": { + "count": 3, + "mean": 16, + "std": 13, + "min": 4, + "25%": 10, + "50%": 15, + "75%": 22, + "max": 29 + }, + "thalweg_offset": { + "count": 3, + "mean": 125, + "std": 44, + "min": 86, + "25%": 102, + "50%": 117, + "75%": 145, + "max": 173 + } + }, + "lengths": { + "ras": 4517, + "network": 4506, + "network_to_ras_ratio": 1.0 + }, + "coverage": { + "start": 0.08, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "880486", + "overlap": 1157 + } + ], + "eclipsed_reaches": [ + "879640", + "880482" + ] + }, + "880494": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 374.01, + "max_elevation": 502.23, + "xs_id": 218.86 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 384.94, + "max_elevation": 457.98, + "xs_id": 217.47 + }, + "eclipsed": false, + "low_flow": 172618, + "high_flow": 784064, + "network_to_id": "880478", + "metrics": { + "xs": { + "centerline_offset": { + "count": 4, + "mean": 37, + "std": 41, + "min": 2, + "25%": 3, + "50%": 30, + "75%": 63, + "max": 87 + }, + "thalweg_offset": { + "count": 4, + "mean": 421, + "std": 319, + "min": 86, + "25%": 235, + "50%": 382, + "75%": 568, + "max": 834 + } + }, + "lengths": { + "ras": 6524, + "network": 6597, + "network_to_ras_ratio": 1.01 + }, + "coverage": { + "start": 0.04, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "880484", + "overlap": 295 + } + ], + "eclipsed_reaches": [ + "879796", + "879662", + "880514", + "879684", + "879686", + "880516", + "879708", + "880466", + "880470", + "880476", + "880478", + "880480", + "880472" + ] + }, + "882686": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 387.18, + "max_elevation": 511.37, + "xs_id": 215.6 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 392.15, + "max_elevation": 495.18, + "xs_id": 214.48 + }, + "eclipsed": false, + "low_flow": 245384, + "high_flow": 862330, + "network_to_id": "882688", + "metrics": { + "xs": { + "centerline_offset": { + "count": 3, + "mean": 45, + "std": 1, + "min": 44, + "25%": 45, + "50%": 45, + "75%": 45, + "max": 45 + }, + "thalweg_offset": { + "count": 3, + "mean": 255, + "std": 69, + "min": 177, + "25%": 228, + "50%": 280, + "75%": 294, + "max": 309 + } + }, + "lengths": { + "ras": 5855, + "network": 5893, + "network_to_ras_ratio": 1.01 + }, + "coverage": { + "start": 0.03, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "880512", + "overlap": 779 + } + ], + "eclipsed_reaches": [ + "882688" + ] + }, + "880534": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 395.11, + "max_elevation": 443.7, + "xs_id": 221.05 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 395.57, + "max_elevation": 442.19, + "xs_id": 220.47 + }, + "eclipsed": false, + "low_flow": 172621, + "high_flow": 784079, + "network_to_id": "880816", + "metrics": { + "xs": { + "centerline_offset": { + "count": 2, + "mean": 29, + "std": 1, + "min": 28, + "25%": 29, + "50%": 29, + "75%": 29, + "max": 30 + }, + "thalweg_offset": { + "count": 2, + "mean": 99, + "std": 36, + "min": 73, + "25%": 86, + "50%": 99, + "75%": 112, + "max": 124 + } + }, + "lengths": { + "ras": 2882, + "network": 2911, + "network_to_ras_ratio": 1.01 + }, + "coverage": { + "start": 0.46, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "880816", + "overlap": 1172 + } + ], + "eclipsed_reaches": [ + "3601988", + "3601802" + ] + }, + "24745881": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 392.04, + "max_elevation": 516.98, + "xs_id": 210.79 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 377.4, + "max_elevation": 497.99, + "xs_id": 210.13 + }, + "eclipsed": false, + "low_flow": 245384, + "high_flow": 862581, + "network_to_id": "880768", + "metrics": { + "xs": { + "centerline_offset": { + "count": 2, + "mean": 89, + "std": 103, + "min": 16, + "25%": 52, + "50%": 89, + "75%": 125, + "max": 162 + }, + "thalweg_offset": { + "count": 2, + "mean": 425, + "std": 220, + "min": 269, + "25%": 347, + "50%": 425, + "75%": 503, + "max": 581 + } + }, + "lengths": { + "ras": 3051, + "network": 3228, + "network_to_ras_ratio": 1.06 + }, + "coverage": { + "start": 0.42, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "880768", + "overlap": 1662 + } + ], + "eclipsed_reaches": [ + "879770", + "880554", + "880558", + "880564" + ] + }, + "880544": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 385.67, + "max_elevation": 512.89, + "xs_id": 211.92 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 392.04, + "max_elevation": 516.98, + "xs_id": 210.79 + }, + "eclipsed": false, + "low_flow": 245384, + "high_flow": 862593, + "network_to_id": "24745881", + "metrics": { + "xs": { + "centerline_offset": { + "count": 3, + "mean": 148, + "std": 60, + "min": 82, + "25%": 122, + "50%": 162, + "75%": 181, + "max": 200 + }, + "thalweg_offset": { + "count": 3, + "mean": 337, + "std": 212, + "min": 212, + "25%": 214, + "50%": 217, + "75%": 399, + "max": 581 + } + }, + "lengths": { + "ras": 5636, + "network": 5558, + "network_to_ras_ratio": 0.99 + }, + "coverage": { + "start": 0.31, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "24745881", + "overlap": 1140 + } + ], + "eclipsed_reaches": [ + "880738", + "879776" + ] + }, + "880512": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 392.15, + "max_elevation": 495.18, + "xs_id": 214.48 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 388.02, + "max_elevation": 493.41, + "xs_id": 213.87 + }, + "eclipsed": false, + "low_flow": 245386, + "high_flow": 862402, + "network_to_id": "880536", + "metrics": { + "xs": { + "centerline_offset": { + "count": 2, + "mean": 53, + "std": 12, + "min": 44, + "25%": 49, + "50%": 53, + "75%": 57, + "max": 62 + }, + "thalweg_offset": { + "count": 2, + "mean": 239, + "std": 98, + "min": 170, + "25%": 205, + "50%": 239, + "75%": 274, + "max": 309 + } + }, + "lengths": { + "ras": 3020, + "network": 3079, + "network_to_ras_ratio": 1.02 + }, + "coverage": { + "start": 0.29, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "880536", + "overlap": 1176 + } + ], + "eclipsed_reaches": [ + "879700", + "880510", + "880520", + "882722", + "880524", + "880522" + ] + }, + "882688": { + "eclipsed": true, + "low_flow": 245386, + "high_flow": 862414, + "network_to_id": "880512" + }, + "880490": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 384.53, + "max_elevation": 495.13, + "xs_id": 215.99 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 387.18, + "max_elevation": 511.37, + "xs_id": 215.6 + }, + "eclipsed": false, + "low_flow": 245386, + "high_flow": 862322, + "network_to_id": "882686", + "metrics": { + "xs": { + "centerline_offset": { + "count": 2, + "mean": 35, + "std": 14, + "min": 26, + "25%": 31, + "50%": 35, + "75%": 40, + "max": 45 + }, + "thalweg_offset": { + "count": 2, + "mean": 221, + "std": 62, + "min": 177, + "25%": 199, + "50%": 221, + "75%": 242, + "max": 264 + } + }, + "lengths": { + "ras": 2145, + "network": 2139, + "network_to_ras_ratio": 1.0 + }, + "coverage": { + "start": 0.41, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "882686", + "overlap": 146 + } + ], + "eclipsed_reaches": [ + "880488", + "880506" + ] + }, + "880486": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 387.19, + "max_elevation": 498.66, + "xs_id": 216.55 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 384.53, + "max_elevation": 495.13, + "xs_id": 215.99 + }, + "eclipsed": false, + "low_flow": 245386, + "high_flow": 862344, + "network_to_id": "880490", + "metrics": { + "xs": { + "centerline_offset": { + "count": 2, + "mean": 21, + "std": 7, + "min": 15, + "25%": 18, + "50%": 21, + "75%": 23, + "max": 26 + }, + "thalweg_offset": { + "count": 2, + "mean": 218, + "std": 64, + "min": 173, + "25%": 196, + "50%": 218, + "75%": 241, + "max": 264 + } + }, + "lengths": { + "ras": 2955, + "network": 2948, + "network_to_ras_ratio": 1.0 + }, + "coverage": { + "start": 0.42, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "880490", + "overlap": 1381 + } + ], + "eclipsed_reaches": [ + "879692", + "879648", + "880498", + "24745901", + "880502" + ] + }, + "880666": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 363.0, + "max_elevation": 463.4, + "xs_id": 198.28 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 368.19, + "max_elevation": 463.52, + "xs_id": 197.71 + }, + "eclipsed": false, + "low_flow": 245432, + "high_flow": 852745, + "network_to_id": "882710", + "metrics": { + "xs": { + "centerline_offset": { + "count": 2, + "mean": 30, + "std": 33, + "min": 7, + "25%": 18, + "50%": 30, + "75%": 41, + "max": 53 + }, + "thalweg_offset": { + "count": 2, + "mean": 516, + "std": 604, + "min": 89, + "25%": 302, + "50%": 516, + "75%": 729, + "max": 943 + } + }, + "lengths": { + "ras": 3032, + "network": 3007, + "network_to_ras_ratio": 0.99 + }, + "coverage": { + "start": 0.31, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "882710", + "overlap": 630 + } + ], + "eclipsed_reaches": [ + "879920", + "880664" + ] + }, + "880652": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 365.55, + "max_elevation": 461.57, + "xs_id": 198.81 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 363.0, + "max_elevation": 463.4, + "xs_id": 198.28 + }, + "eclipsed": false, + "low_flow": 245426, + "high_flow": 852690, + "network_to_id": "880666", + "metrics": { + "xs": { + "centerline_offset": { + "count": 2, + "mean": 32, + "std": 29, + "min": 12, + "25%": 22, + "50%": 32, + "75%": 43, + "max": 53 + }, + "thalweg_offset": { + "count": 2, + "mean": 949, + "std": 8, + "min": 943, + "25%": 946, + "50%": 949, + "75%": 952, + "max": 955 + } + }, + "lengths": { + "ras": 2761, + "network": 2853, + "network_to_ras_ratio": 1.03 + }, + "coverage": { + "start": 0.5, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "880666", + "overlap": 1085 + } + ], + "eclipsed_reaches": [ + "880650", + "882728" + ] + }, + "880622": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 374.16, + "max_elevation": 445.46, + "xs_id": 201.29 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 359.98, + "max_elevation": 450.18, + "xs_id": 200.85 + }, + "eclipsed": false, + "low_flow": 245383, + "high_flow": 852328, + "network_to_id": "880636", + "metrics": { + "xs": { + "centerline_offset": { + "count": 2, + "mean": 21, + "std": 4, + "min": 18, + "25%": 19, + "50%": 21, + "75%": 22, + "max": 24 + }, + "thalweg_offset": { + "count": 2, + "mean": 1719, + "std": 247, + "min": 1544, + "25%": 1631, + "50%": 1719, + "75%": 1806, + "max": 1893 + } + }, + "lengths": { + "ras": 2303, + "network": 2308, + "network_to_ras_ratio": 1.0 + }, + "coverage": { + "start": 0.61, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "880636", + "overlap": 1037 + } + ], + "eclipsed_reaches": [ + "880628", + "880726" + ] + }, + "880580": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 380.56, + "max_elevation": 505.23, + "xs_id": 206.6 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 384.77, + "max_elevation": 452.42, + "xs_id": 204.96 + }, + "eclipsed": false, + "low_flow": 245386, + "high_flow": 852434, + "network_to_id": "880606", + "metrics": { + "xs": { + "centerline_offset": { + "count": 4, + "mean": 34, + "std": 21, + "min": 9, + "25%": 22, + "50%": 39, + "75%": 51, + "max": 51 + }, + "thalweg_offset": { + "count": 4, + "mean": 197, + "std": 138, + "min": 32, + "25%": 120, + "50%": 203, + "75%": 280, + "max": 351 + } + }, + "lengths": { + "ras": 8646, + "network": 8624, + "network_to_ras_ratio": 1.0 + }, + "coverage": { + "start": 0.1, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "880606", + "overlap": 679 + } + ], + "eclipsed_reaches": [ + "880740", + "880578", + "880796", + "879822", + "880584" + ] + }, + "880550": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 379.68, + "max_elevation": 476.58, + "xs_id": 209.46 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 386.61, + "max_elevation": 475.82, + "xs_id": 208.89 + }, + "eclipsed": false, + "low_flow": 245383, + "high_flow": 862606, + "network_to_id": "880814", + "metrics": { + "xs": { + "centerline_offset": { + "count": 2, + "mean": 30, + "std": 14, + "min": 20, + "25%": 25, + "50%": 30, + "75%": 35, + "max": 39 + }, + "thalweg_offset": { + "count": 2, + "mean": 199, + "std": 126, + "min": 110, + "25%": 154, + "50%": 199, + "75%": 244, + "max": 288 + } + }, + "lengths": { + "ras": 2849, + "network": 2861, + "network_to_ras_ratio": 1.0 + }, + "coverage": { + "start": 0.03, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "880562", + "overlap": 438 + } + ], + "eclipsed_reaches": [ + "880530", + "882724", + "880528", + "880814" + ] + }, + "880768": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 377.4, + "max_elevation": 497.99, + "xs_id": 210.13 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 379.68, + "max_elevation": 476.58, + "xs_id": 209.46 + }, + "eclipsed": false, + "low_flow": 245383, + "high_flow": 862597, + "network_to_id": "880550", + "metrics": { + "xs": { + "centerline_offset": { + "count": 2, + "mean": 18, + "std": 3, + "min": 16, + "25%": 17, + "50%": 18, + "75%": 19, + "max": 20 + }, + "thalweg_offset": { + "count": 2, + "mean": 279, + "std": 13, + "min": 269, + "25%": 274, + "50%": 279, + "75%": 284, + "max": 288 + } + }, + "lengths": { + "ras": 3216, + "network": 3226, + "network_to_ras_ratio": 1.0 + }, + "coverage": { + "start": 0.34, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "880550", + "overlap": 49 + } + ], + "eclipsed_reaches": [ + "879772", + "880556", + "879774", + "879778" + ] + }, + "880678": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 365.08, + "max_elevation": 463.94, + "xs_id": 197.31 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 356.78, + "max_elevation": 451.43, + "xs_id": 194.97 + }, + "eclipsed": false, + "low_flow": 245427, + "high_flow": 852664, + "network_to_id": "3624763", + "metrics": { + "xs": { + "centerline_offset": { + "count": 6, + "mean": 42, + "std": 26, + "min": 8, + "25%": 21, + "50%": 44, + "75%": 58, + "max": 77 + }, + "thalweg_offset": { + "count": 6, + "mean": 225, + "std": 193, + "min": 34, + "25%": 162, + "50%": 172, + "75%": 205, + "max": 598 + } + }, + "lengths": { + "ras": 12202, + "network": 12201, + "network_to_ras_ratio": 1.0 + }, + "coverage": { + "start": 0.06, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "3624763", + "overlap": 1903 + } + ], + "eclipsed_reaches": [ + "6018266" + ] + }, + "880814": { + "eclipsed": true, + "low_flow": 245383, + "high_flow": 862599, + "network_to_id": "880562" + }, + "880648": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 349.49, + "max_elevation": 465.63, + "xs_id": 200.31 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 365.55, + "max_elevation": 461.57, + "xs_id": 198.81 + }, + "eclipsed": false, + "low_flow": 245382, + "high_flow": 852311, + "network_to_id": "880652", + "metrics": { + "xs": { + "centerline_offset": { + "count": 4, + "mean": 13, + "std": 10, + "min": 6, + "25%": 7, + "50%": 9, + "75%": 16, + "max": 28 + }, + "thalweg_offset": { + "count": 4, + "mean": 1463, + "std": 1108, + "min": 161, + "25%": 757, + "50%": 1554, + "75%": 2260, + "max": 2584 + } + }, + "lengths": { + "ras": 7904, + "network": 7912, + "network_to_ras_ratio": 1.0 + }, + "coverage": { + "start": 0.01, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "880652", + "overlap": 1745 + } + ], + "eclipsed_reaches": [ + "879898", + "880646", + "6010082" + ] + }, + "882710": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 368.19, + "max_elevation": 463.52, + "xs_id": 197.71 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 365.08, + "max_elevation": 463.94, + "xs_id": 197.31 + }, + "eclipsed": false, + "low_flow": 245436, + "high_flow": 852750, + "network_to_id": "880678", + "metrics": { + "xs": { + "centerline_offset": { + "count": 2, + "mean": 8, + "std": 1, + "min": 7, + "25%": 7, + "50%": 8, + "75%": 8, + "max": 8 + }, + "thalweg_offset": { + "count": 2, + "mean": 124, + "std": 50, + "min": 89, + "25%": 106, + "50%": 124, + "75%": 142, + "max": 159 + } + }, + "lengths": { + "ras": 2118, + "network": 2153, + "network_to_ras_ratio": 1.02 + }, + "coverage": { + "start": 0.3, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "880678", + "overlap": 651 + } + ], + "eclipsed_reaches": [ + "880744", + "879928" + ] + }, + "880636": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 359.98, + "max_elevation": 450.18, + "xs_id": 200.85 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 349.49, + "max_elevation": 465.63, + "xs_id": 200.31 + }, + "eclipsed": false, + "low_flow": 245383, + "high_flow": 852347, + "network_to_id": "880648", + "metrics": { + "xs": { + "centerline_offset": { + "count": 4, + "mean": 26, + "std": 2, + "min": 24, + "25%": 25, + "50%": 25, + "75%": 27, + "max": 28 + }, + "thalweg_offset": { + "count": 4, + "mean": 1077, + "std": 1098, + "min": 104, + "25%": 144, + "50%": 1025, + "75%": 1958, + "max": 2152 + } + }, + "lengths": { + "ras": 2817, + "network": 2804, + "network_to_ras_ratio": 1.0 + }, + "coverage": { + "start": 0.27, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "880648", + "overlap": 43 + } + ], + "eclipsed_reaches": [ + "879892", + "880634" + ] + }, + "880562": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 386.61, + "max_elevation": 475.82, + "xs_id": 208.89 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 380.56, + "max_elevation": 505.23, + "xs_id": 206.6 + }, + "eclipsed": false, + "low_flow": 245381, + "high_flow": 862559, + "network_to_id": "880580", + "metrics": { + "xs": { + "centerline_offset": { + "count": 5, + "mean": 49, + "std": 7, + "min": 39, + "25%": 47, + "50%": 50, + "75%": 51, + "max": 60 + }, + "thalweg_offset": { + "count": 5, + "mean": 289, + "std": 198, + "min": 51, + "25%": 110, + "50%": 351, + "75%": 452, + "max": 482 + } + }, + "lengths": { + "ras": 11144, + "network": 11093, + "network_to_ras_ratio": 1.0 + }, + "coverage": { + "start": 0.04, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "880580", + "overlap": 902 + } + ], + "eclipsed_reaches": [ + "880830", + "880812", + "880560", + "880764" + ] + }, + "880618": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 363.8, + "max_elevation": 464.35, + "xs_id": 202.68 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 374.16, + "max_elevation": 445.46, + "xs_id": 201.29 + }, + "eclipsed": false, + "low_flow": 245381, + "high_flow": 852311, + "network_to_id": "880622", + "metrics": { + "xs": { + "centerline_offset": { + "count": 6, + "mean": 27, + "std": 17, + "min": 5, + "25%": 19, + "50%": 26, + "75%": 34, + "max": 54 + }, + "thalweg_offset": { + "count": 6, + "mean": 492, + "std": 596, + "min": 110, + "25%": 111, + "50%": 155, + "75%": 709, + "max": 1544 + } + }, + "lengths": { + "ras": 6688, + "network": 6731, + "network_to_ras_ratio": 1.01 + }, + "coverage": { + "start": 0.19, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "880622", + "overlap": 1995 + } + ], + "eclipsed_reaches": [ + "880742", + "880616", + "6010090" + ] + }, + "880608": { + "eclipsed": true, + "low_flow": 0, + "high_flow": 852363, + "network_to_id": "880618" + }, + "880606": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 384.77, + "max_elevation": 452.42, + "xs_id": 204.96 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 363.8, + "max_elevation": 464.35, + "xs_id": 202.68 + }, + "eclipsed": false, + "low_flow": 245383, + "high_flow": 852365, + "network_to_id": "880608", + "metrics": { + "xs": { + "centerline_offset": { + "count": 6, + "mean": 43, + "std": 27, + "min": 17, + "25%": 24, + "50%": 37, + "75%": 51, + "max": 90 + }, + "thalweg_offset": { + "count": 6, + "mean": 220, + "std": 97, + "min": 108, + "25%": 134, + "50%": 230, + "75%": 283, + "max": 347 + } + }, + "lengths": { + "ras": 12053, + "network": 12050, + "network_to_ras_ratio": 1.0 + }, + "coverage": { + "start": 0.06, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "880618", + "overlap": 1100 + } + ], + "eclipsed_reaches": [ + "880608" + ] + }, + "3624763": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 356.78, + "max_elevation": 451.43, + "xs_id": 194.97 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 360.55, + "max_elevation": 448.83, + "xs_id": 194.63 + }, + "eclipsed": false, + "low_flow": 405915, + "high_flow": 1942292, + "network_to_id": "3624695", + "metrics": { + "xs": { + "centerline_offset": { + "count": 2, + "mean": 37, + "std": 32, + "min": 15, + "25%": 26, + "50%": 37, + "75%": 49, + "max": 60 + }, + "thalweg_offset": { + "count": 2, + "mean": 435, + "std": 309, + "min": 216, + "25%": 326, + "50%": 435, + "75%": 544, + "max": 653 + } + }, + "lengths": { + "ras": 1820, + "network": 1825, + "network_to_ras_ratio": 1.0 + }, + "coverage": { + "start": 0.84, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "3624695", + "overlap": 1464 + } + ], + "eclipsed_reaches": [] + }, + "3624701": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 342.65, + "max_elevation": 448.69, + "xs_id": 194.16 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 366.06, + "max_elevation": 447.78, + "xs_id": 193.28 + }, + "eclipsed": false, + "low_flow": 406090, + "high_flow": 1942224, + "network_to_id": "3624705", + "metrics": { + "xs": { + "centerline_offset": { + "count": 3, + "mean": 26, + "std": 7, + "min": 17, + "25%": 23, + "50%": 29, + "75%": 30, + "max": 31 + }, + "thalweg_offset": { + "count": 3, + "mean": 1102, + "std": 214, + "min": 926, + "25%": 983, + "50%": 1040, + "75%": 1190, + "max": 1341 + } + }, + "lengths": { + "ras": 4466, + "network": 4457, + "network_to_ras_ratio": 1.0 + }, + "coverage": { + "start": 0.2, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "3624705", + "overlap": 1418 + } + ], + "eclipsed_reaches": [ + "3624699" + ] + }, + "3624695": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 360.55, + "max_elevation": 448.83, + "xs_id": 194.63 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 1", + "min_elevation": 342.65, + "max_elevation": 448.69, + "xs_id": 194.16 + }, + "eclipsed": false, + "low_flow": 406090, + "high_flow": 1942380, + "network_to_id": "3624701", + "metrics": { + "xs": { + "centerline_offset": { + "count": 2, + "mean": 39, + "std": 30, + "min": 17, + "25%": 28, + "50%": 39, + "75%": 49, + "max": 60 + }, + "thalweg_offset": { + "count": 2, + "mean": 790, + "std": 193, + "min": 653, + "25%": 721, + "50%": 790, + "75%": 858, + "max": 926 + } + }, + "lengths": { + "ras": 2365, + "network": 2449, + "network_to_ras_ratio": 1.04 + }, + "coverage": { + "start": 0.47, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "3624701", + "overlap": 782 + } + ], + "eclipsed_reaches": [] + }, + "5092604": { + "eclipsed": true, + "low_flow": 417521, + "high_flow": 1893095, + "network_to_id": "5092614" + }, + "5092614": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 2", + "min_elevation": 279.89, + "max_elevation": 397.65, + "xs_id": 47.34 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 2", + "min_elevation": 274.89, + "max_elevation": 400.1, + "xs_id": 45.36 + }, + "eclipsed": false, + "low_flow": 417488, + "high_flow": 1893092, + "network_to_id": "5096814", + "metrics": { + "xs": { + "centerline_offset": { + "count": 4, + "mean": 162, + "std": 76, + "min": 50, + "25%": 151, + "50%": 192, + "75%": 203, + "max": 216 + }, + "thalweg_offset": { + "count": 4, + "mean": 173, + "std": 149, + "min": 32, + "25%": 57, + "50%": 157, + "75%": 273, + "max": 344 + } + }, + "lengths": { + "ras": 9676, + "network": 10867, + "network_to_ras_ratio": 1.12 + }, + "coverage": { + "start": 0.03, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "5096814", + "overlap": 761 + } + ], + "eclipsed_reaches": [ + "5092254", + "5092612", + "5092610" + ] + }, + "5092606": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 2", + "min_elevation": 285.8, + "max_elevation": 385.91, + "xs_id": 48.58 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 2", + "min_elevation": 279.89, + "max_elevation": 397.65, + "xs_id": 47.34 + }, + "eclipsed": false, + "low_flow": 417517, + "high_flow": 1893048, + "network_to_id": "5092604", + "metrics": { + "xs": { + "centerline_offset": { + "count": 4, + "mean": 209, + "std": 172, + "min": 50, + "25%": 103, + "50%": 171, + "75%": 277, + "max": 445 + }, + "thalweg_offset": { + "count": 4, + "mean": 221, + "std": 50, + "min": 154, + "25%": 199, + "50%": 231, + "75%": 253, + "max": 267 + } + }, + "lengths": { + "ras": 7390, + "network": 8138, + "network_to_ras_ratio": 1.1 + }, + "coverage": { + "start": 0.16, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "5092614", + "overlap": 348 + } + ], + "eclipsed_reaches": [ + "5092604", + "5092528", + "5092608" + ] + }, + "5092594": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 2", + "min_elevation": 287.95, + "max_elevation": 386.42, + "xs_id": 54.43 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 2", + "min_elevation": 286.58, + "max_elevation": 371.94, + "xs_id": 52.15 + }, + "eclipsed": false, + "low_flow": 415952, + "high_flow": 1885044, + "network_to_id": "5092598", + "metrics": { + "xs": { + "centerline_offset": { + "count": 6, + "mean": 102, + "std": 85, + "min": 32, + "25%": 62, + "50%": 71, + "75%": 102, + "max": 268 + }, + "thalweg_offset": { + "count": 6, + "mean": 176, + "std": 123, + "min": 6, + "25%": 120, + "50%": 176, + "75%": 213, + "max": 374 + } + }, + "lengths": { + "ras": 12410, + "network": 12611, + "network_to_ras_ratio": 1.02 + }, + "coverage": { + "start": 0.01, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "5092598", + "overlap": 2475 + } + ], + "eclipsed_reaches": [ + "5092596" + ] + }, + "5092598": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 2", + "min_elevation": 286.58, + "max_elevation": 371.94, + "xs_id": 52.15 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 2", + "min_elevation": 281.43, + "max_elevation": 374.53, + "xs_id": 49.85 + }, + "eclipsed": false, + "low_flow": 415927, + "high_flow": 1884942, + "network_to_id": "5092748", + "metrics": { + "xs": { + "centerline_offset": { + "count": 9, + "mean": 117, + "std": 40, + "min": 21, + "25%": 110, + "50%": 135, + "75%": 144, + "max": 145 + }, + "thalweg_offset": { + "count": 9, + "mean": 220, + "std": 68, + "min": 105, + "25%": 220, + "50%": 234, + "75%": 255, + "max": 299 + } + }, + "lengths": { + "ras": 14305, + "network": 13929, + "network_to_ras_ratio": 0.97 + }, + "coverage": { + "start": 0.17, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "5092748", + "overlap": 1938 + } + ], + "eclipsed_reaches": [ + "5092236", + "5092600" + ] + }, + "5092590": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 2", + "min_elevation": 289.32, + "max_elevation": 381.9, + "xs_id": 55.0 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 2", + "min_elevation": 287.95, + "max_elevation": 386.42, + "xs_id": 54.43 + }, + "eclipsed": false, + "low_flow": 415953, + "high_flow": 1885091, + "network_to_id": "5092594", + "metrics": { + "xs": { + "centerline_offset": { + "count": 2, + "mean": 175, + "std": 131, + "min": 82, + "25%": 128, + "50%": 175, + "75%": 221, + "max": 268 + }, + "thalweg_offset": { + "count": 2, + "mean": 513, + "std": 196, + "min": 374, + "25%": 444, + "50%": 513, + "75%": 582, + "max": 652 + } + }, + "lengths": { + "ras": 2809, + "network": 2968, + "network_to_ras_ratio": 1.06 + }, + "coverage": { + "start": 0.25, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "5092594", + "overlap": 65 + } + ], + "eclipsed_reaches": [ + "5092592" + ] + }, + "5092586": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 2", + "min_elevation": 277.82, + "max_elevation": 379.98, + "xs_id": 60.52 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 2", + "min_elevation": 289.32, + "max_elevation": 381.9, + "xs_id": 55.0 + }, + "eclipsed": false, + "low_flow": 415937, + "high_flow": 1885024, + "network_to_id": "5092590", + "metrics": { + "xs": { + "centerline_offset": { + "count": 12, + "mean": 107, + "std": 72, + "min": 15, + "25%": 54, + "50%": 84, + "75%": 171, + "max": 225 + }, + "thalweg_offset": { + "count": 12, + "mean": 228, + "std": 180, + "min": 17, + "25%": 109, + "50%": 184, + "75%": 272, + "max": 652 + } + }, + "lengths": { + "ras": 28174, + "network": 27440, + "network_to_ras_ratio": 0.97 + }, + "coverage": { + "start": 0.01, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "5092590", + "overlap": 967 + } + ], + "eclipsed_reaches": [ + "5092160", + "5092148", + "5092130", + "5092114", + "5092092", + "5092588", + "5092100", + "5092098", + "5092116", + "5092152", + "5092150", + "5092146", + "5092074", + "5092072" + ] + }, + "5092582": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 2", + "min_elevation": 296.85, + "max_elevation": 378.78, + "xs_id": 61.83 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 2", + "min_elevation": 277.82, + "max_elevation": 379.98, + "xs_id": 60.52 + }, + "eclipsed": false, + "low_flow": 416059, + "high_flow": 1885913, + "network_to_id": "5092586", + "metrics": { + "xs": { + "centerline_offset": { + "count": 3, + "mean": 14, + "std": 10, + "min": 4, + "25%": 10, + "50%": 16, + "75%": 20, + "max": 23 + }, + "thalweg_offset": { + "count": 3, + "mean": 214, + "std": 63, + "min": 177, + "25%": 177, + "50%": 178, + "75%": 232, + "max": 286 + } + }, + "lengths": { + "ras": 6204, + "network": 6274, + "network_to_ras_ratio": 1.01 + }, + "coverage": { + "start": 0.13, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "5092586", + "overlap": 337 + } + ], + "eclipsed_reaches": [ + "5092022", + "5092578", + "5092580" + ] + }, + "5092552": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 2", + "min_elevation": 289.11, + "max_elevation": 380.06, + "xs_id": 68.66 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 2", + "min_elevation": 299.46, + "max_elevation": 381.52, + "xs_id": 68.09 + }, + "eclipsed": false, + "low_flow": 416085, + "high_flow": 1885928, + "network_to_id": "5092562", + "metrics": { + "xs": { + "centerline_offset": { + "count": 2, + "mean": 92, + "std": 17, + "min": 80, + "25%": 86, + "50%": 92, + "75%": 98, + "max": 104 + }, + "thalweg_offset": { + "count": 2, + "mean": 191, + "std": 64, + "min": 146, + "25%": 169, + "50%": 191, + "75%": 214, + "max": 237 + } + }, + "lengths": { + "ras": 2969, + "network": 2972, + "network_to_ras_ratio": 1.0 + }, + "coverage": { + "start": 0.47, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "5092562", + "overlap": 1449 + } + ], + "eclipsed_reaches": [ + "5092474", + "5091702", + "5092550", + "5096806" + ] + }, + "5092542": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 2", + "min_elevation": 302.66, + "max_elevation": 386.33, + "xs_id": 69.75 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 2", + "min_elevation": 289.11, + "max_elevation": 380.06, + "xs_id": 68.66 + }, + "eclipsed": false, + "low_flow": 416065, + "high_flow": 1885832, + "network_to_id": "5092552", + "metrics": { + "xs": { + "centerline_offset": { + "count": 3, + "mean": 78, + "std": 43, + "min": 34, + "25%": 57, + "50%": 80, + "75%": 100, + "max": 120 + }, + "thalweg_offset": { + "count": 3, + "mean": 189, + "std": 111, + "min": 62, + "25%": 150, + "50%": 237, + "75%": 253, + "max": 268 + } + }, + "lengths": { + "ras": 5773, + "network": 5815, + "network_to_ras_ratio": 1.01 + }, + "coverage": { + "start": 0.37, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "5092552", + "overlap": 1346 + } + ], + "eclipsed_reaches": [ + "5092546", + "5092544", + "5089718" + ] + }, + "5090014": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 2", + "min_elevation": 286.95, + "max_elevation": 387.38, + "xs_id": 70.27 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 2", + "min_elevation": 302.66, + "max_elevation": 386.33, + "xs_id": 69.75 + }, + "eclipsed": false, + "low_flow": 416073, + "high_flow": 1885951, + "network_to_id": "5092542", + "metrics": { + "xs": { + "centerline_offset": { + "count": 2, + "mean": 98, + "std": 32, + "min": 76, + "25%": 87, + "50%": 98, + "75%": 109, + "max": 120 + }, + "thalweg_offset": { + "count": 2, + "mean": 147, + "std": 121, + "min": 62, + "25%": 105, + "50%": 147, + "75%": 190, + "max": 233 + } + }, + "lengths": { + "ras": 2748, + "network": 2899, + "network_to_ras_ratio": 1.06 + }, + "coverage": { + "start": 0.77, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "5092542", + "overlap": 2664 + } + ], + "eclipsed_reaches": [] + }, + "5090010": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 2", + "min_elevation": 297.2, + "max_elevation": 395.98, + "xs_id": 71.78 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 2", + "min_elevation": 286.95, + "max_elevation": 387.38, + "xs_id": 70.27 + }, + "eclipsed": false, + "low_flow": 416072, + "high_flow": 1885914, + "network_to_id": "5090014", + "metrics": { + "xs": { + "centerline_offset": { + "count": 4, + "mean": 55, + "std": 18, + "min": 32, + "25%": 49, + "50%": 55, + "75%": 61, + "max": 76 + }, + "thalweg_offset": { + "count": 4, + "mean": 137, + "std": 100, + "min": 7, + "25%": 87, + "50%": 154, + "75%": 203, + "max": 233 + } + }, + "lengths": { + "ras": 8067, + "network": 8175, + "network_to_ras_ratio": 1.01 + }, + "coverage": { + "start": 0.08, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "5090014", + "overlap": 796 + } + ], + "eclipsed_reaches": [ + "5090012" + ] + }, + "5090004": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 2", + "min_elevation": 305.12, + "max_elevation": 388.18, + "xs_id": 72.31 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 2", + "min_elevation": 297.2, + "max_elevation": 395.98, + "xs_id": 71.78 + }, + "eclipsed": false, + "low_flow": 416082, + "high_flow": 1885943, + "network_to_id": "5090010", + "metrics": { + "xs": { + "centerline_offset": { + "count": 2, + "mean": 45, + "std": 15, + "min": 35, + "25%": 40, + "50%": 45, + "75%": 50, + "max": 56 + }, + "thalweg_offset": { + "count": 2, + "mean": 115, + "std": 112, + "min": 36, + "25%": 75, + "50%": 115, + "75%": 154, + "max": 193 + } + }, + "lengths": { + "ras": 2843, + "network": 2866, + "network_to_ras_ratio": 1.01 + }, + "coverage": { + "start": 0.53, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "5090010", + "overlap": 648 + } + ], + "eclipsed_reaches": [ + "5090006", + "5089602" + ] + }, + "5090000": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 2", + "min_elevation": 302.05, + "max_elevation": 392.26, + "xs_id": 73.56 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 2", + "min_elevation": 305.12, + "max_elevation": 388.18, + "xs_id": 72.31 + }, + "eclipsed": false, + "low_flow": 416084, + "high_flow": 1885976, + "network_to_id": "5090004", + "metrics": { + "xs": { + "centerline_offset": { + "count": 3, + "mean": 37, + "std": 2, + "min": 35, + "25%": 36, + "50%": 38, + "75%": 39, + "max": 39 + }, + "thalweg_offset": { + "count": 3, + "mean": 154, + "std": 103, + "min": 36, + "25%": 120, + "50%": 205, + "75%": 214, + "max": 222 + } + }, + "lengths": { + "ras": 6379, + "network": 6447, + "network_to_ras_ratio": 1.01 + }, + "coverage": { + "start": 0.07, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "5090004", + "overlap": 2525 + } + ], + "eclipsed_reaches": [ + "5090002" + ] + }, + "5089998": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 2", + "min_elevation": 303.92, + "max_elevation": 389.02, + "xs_id": 74.89 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 2", + "min_elevation": 302.05, + "max_elevation": 392.26, + "xs_id": 73.56 + }, + "eclipsed": false, + "low_flow": 416084, + "high_flow": 1885953, + "network_to_id": "5090000", + "metrics": { + "xs": { + "centerline_offset": { + "count": 3, + "mean": 27, + "std": 11, + "min": 20, + "25%": 21, + "50%": 22, + "75%": 31, + "max": 39 + }, + "thalweg_offset": { + "count": 3, + "mean": 133, + "std": 110, + "min": 10, + "25%": 89, + "50%": 168, + "75%": 195, + "max": 222 + } + }, + "lengths": { + "ras": 7210, + "network": 7215, + "network_to_ras_ratio": 1.0 + }, + "coverage": { + "start": 0.08, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "5090000", + "overlap": 314 + } + ], + "eclipsed_reaches": [ + "5089526", + "5089994", + "5089996" + ] + }, + "5089990": { + "eclipsed": true, + "low_flow": 416053, + "high_flow": 1885248, + "network_to_id": "5089998" + }, + "5089984": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 2", + "min_elevation": 297.11, + "max_elevation": 380.04, + "xs_id": 77.21 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 2", + "min_elevation": 298.22, + "max_elevation": 389.7, + "xs_id": 76.2 + }, + "eclipsed": false, + "low_flow": 415015, + "high_flow": 1897025, + "network_to_id": "5089986", + "metrics": { + "xs": { + "centerline_offset": { + "count": 3, + "mean": 78, + "std": 63, + "min": 10, + "25%": 49, + "50%": 87, + "75%": 112, + "max": 136 + }, + "thalweg_offset": { + "count": 3, + "mean": 191, + "std": 50, + "min": 133, + "25%": 176, + "50%": 219, + "75%": 220, + "max": 222 + } + }, + "lengths": { + "ras": 5018, + "network": 5010, + "network_to_ras_ratio": 1.0 + }, + "coverage": { + "start": 0.47, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "5089986", + "overlap": 1086 + } + ], + "eclipsed_reaches": [ + "5090036", + "5089412", + "5089982" + ] + }, + "5089978": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 2", + "min_elevation": 300.31, + "max_elevation": 390.84, + "xs_id": 81.09 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 2", + "min_elevation": 297.11, + "max_elevation": 380.04, + "xs_id": 77.21 + }, + "eclipsed": false, + "low_flow": 415023, + "high_flow": 1897010, + "network_to_id": "5089984", + "metrics": { + "xs": { + "centerline_offset": { + "count": 10, + "mean": 228, + "std": 182, + "min": 8, + "25%": 110, + "50%": 176, + "75%": 258, + "max": 557 + }, + "thalweg_offset": { + "count": 10, + "mean": 309, + "std": 302, + "min": 49, + "25%": 84, + "50%": 224, + "75%": 433, + "max": 1036 + } + }, + "lengths": { + "ras": 20960, + "network": 21216, + "network_to_ras_ratio": 1.01 + }, + "coverage": { + "start": 0.08, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "5089984", + "overlap": 3500 + } + ], + "eclipsed_reaches": [ + "5089980", + "13786976", + "13786380", + "13786364", + "13786672", + "13786978", + "13786368", + "13786968" + ] + }, + "5092698": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 2", + "min_elevation": 269.488, + "max_elevation": 341.5351, + "xs_id": 30.82 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 2", + "min_elevation": 275.459, + "max_elevation": 342.95, + "xs_id": 28.57 + }, + "eclipsed": false, + "low_flow": 417506, + "high_flow": 1893973, + "network_to_id": "5092712", + "metrics": { + "xs": { + "centerline_offset": { + "count": 5, + "mean": 46, + "std": 26, + "min": 3, + "25%": 46, + "50%": 50, + "75%": 60, + "max": 71 + }, + "thalweg_offset": { + "count": 5, + "mean": 147, + "std": 119, + "min": 16, + "25%": 74, + "50%": 126, + "75%": 191, + "max": 326 + } + }, + "lengths": { + "ras": 12389, + "network": 12442, + "network_to_ras_ratio": 1.0 + }, + "coverage": { + "start": 0.03, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "5092712", + "overlap": 1660 + } + ], + "eclipsed_reaches": [] + }, + "5092676": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 2", + "min_elevation": 278.543, + "max_elevation": 344.488, + "xs_id": 34.69 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 2", + "min_elevation": 269.488, + "max_elevation": 341.5351, + "xs_id": 30.82 + }, + "eclipsed": false, + "low_flow": 417509, + "high_flow": 1893931, + "network_to_id": "5092698", + "metrics": { + "xs": { + "centerline_offset": { + "count": 10, + "mean": 26, + "std": 19, + "min": 2, + "25%": 14, + "50%": 25, + "75%": 32, + "max": 60 + }, + "thalweg_offset": { + "count": 10, + "mean": 163, + "std": 104, + "min": 10, + "25%": 70, + "50%": 173, + "75%": 234, + "max": 326 + } + }, + "lengths": { + "ras": 20591, + "network": 20578, + "network_to_ras_ratio": 1.0 + }, + "coverage": { + "start": 0.08, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "5092698", + "overlap": 327 + } + ], + "eclipsed_reaches": [ + "5092372", + "5092678" + ] + }, + "5092652": { + "eclipsed": true, + "low_flow": 417668, + "high_flow": 1894321, + "network_to_id": "5092676" + }, + "5092634": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 2", + "min_elevation": 285.86, + "max_elevation": 361.22, + "xs_id": 39.02 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 2", + "min_elevation": 287.73, + "max_elevation": 354.3309, + "xs_id": 38.58 + }, + "eclipsed": false, + "low_flow": 417756, + "high_flow": 1894581, + "network_to_id": "5092646", + "metrics": { + "xs": { + "centerline_offset": { + "count": 2, + "mean": 49, + "std": 17, + "min": 37, + "25%": 43, + "50%": 49, + "75%": 55, + "max": 61 + }, + "thalweg_offset": { + "count": 2, + "mean": 114, + "std": 136, + "min": 18, + "25%": 66, + "50%": 114, + "75%": 162, + "max": 210 + } + }, + "lengths": { + "ras": 2393, + "network": 2466, + "network_to_ras_ratio": 1.03 + }, + "coverage": { + "start": 0.49, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "5092646", + "overlap": 53 + } + ], + "eclipsed_reaches": [ + "5092636" + ] + }, + "5092626": { + "eclipsed": true, + "low_flow": 417796, + "high_flow": 1894604, + "network_to_id": "5092630" + }, + "5092630": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 2", + "min_elevation": 284.71, + "max_elevation": 367.99, + "xs_id": 41.1 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 2", + "min_elevation": 285.86, + "max_elevation": 361.22, + "xs_id": 39.02 + }, + "eclipsed": false, + "low_flow": 417758, + "high_flow": 1894601, + "network_to_id": "5092634", + "metrics": { + "xs": { + "centerline_offset": { + "count": 5, + "mean": 65, + "std": 32, + "min": 27, + "25%": 37, + "50%": 72, + "75%": 94, + "max": 96 + }, + "thalweg_offset": { + "count": 5, + "mean": 141, + "std": 98, + "min": 18, + "25%": 116, + "50%": 117, + "75%": 165, + "max": 288 + } + }, + "lengths": { + "ras": 10891, + "network": 10760, + "network_to_ras_ratio": 0.99 + }, + "coverage": { + "start": 0.21, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "5092634", + "overlap": 2320 + } + ], + "eclipsed_reaches": [ + "5092632" + ] + }, + "5092602": { + "eclipsed": true, + "low_flow": 415966, + "high_flow": 1885418, + "network_to_id": "5092606" + }, + "5089946": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 2", + "min_elevation": 306.03, + "max_elevation": 401.3, + "xs_id": 87.94 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 2", + "min_elevation": 290.92, + "max_elevation": 389.66, + "xs_id": 84.96 + }, + "eclipsed": false, + "low_flow": 415064, + "high_flow": 1897775, + "network_to_id": "5096766", + "metrics": { + "xs": { + "centerline_offset": { + "count": 7, + "mean": 30, + "std": 23, + "min": 4, + "25%": 10, + "50%": 30, + "75%": 45, + "max": 66 + }, + "thalweg_offset": { + "count": 7, + "mean": 209, + "std": 112, + "min": 39, + "25%": 139, + "50%": 243, + "75%": 269, + "max": 363 + } + }, + "lengths": { + "ras": 15159, + "network": 15243, + "network_to_ras_ratio": 1.01 + }, + "coverage": { + "start": 0.06, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "5096766", + "overlap": 938 + } + ], + "eclipsed_reaches": [ + "5088922", + "5088934", + "5089944", + "13786622", + "5089816", + "5088802", + "13785886", + "13785900" + ] + }, + "5096766": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 2", + "min_elevation": 290.92, + "max_elevation": 389.66, + "xs_id": 84.96 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 2", + "min_elevation": 292.77, + "max_elevation": 400.4, + "xs_id": 83.97 + }, + "eclipsed": false, + "low_flow": 415077, + "high_flow": 1897755, + "network_to_id": "5089952", + "metrics": { + "xs": { + "centerline_offset": { + "count": 3, + "mean": 83, + "std": 111, + "min": 10, + "25%": 20, + "50%": 30, + "75%": 120, + "max": 210 + }, + "thalweg_offset": { + "count": 3, + "mean": 355, + "std": 126, + "min": 265, + "25%": 284, + "50%": 302, + "75%": 400, + "max": 499 + } + }, + "lengths": { + "ras": 5128, + "network": 4846, + "network_to_ras_ratio": 0.94 + }, + "coverage": { + "start": 0.27, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "5089952", + "overlap": 2369 + } + ], + "eclipsed_reaches": [ + "13786030", + "13786800", + "13785944", + "13785948", + "13785966", + "13785964", + "13785946" + ] + }, + "5089952": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 2", + "min_elevation": 292.77, + "max_elevation": 400.4, + "xs_id": 83.97 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 2", + "min_elevation": 295.95, + "max_elevation": 400.43, + "xs_id": 82.48 + }, + "eclipsed": false, + "low_flow": 415066, + "high_flow": 1897693, + "network_to_id": "5089960", + "metrics": { + "xs": { + "centerline_offset": { + "count": 4, + "mean": 111, + "std": 73, + "min": 35, + "25%": 82, + "50%": 100, + "75%": 129, + "max": 210 + }, + "thalweg_offset": { + "count": 4, + "mean": 161, + "std": 96, + "min": 89, + "25%": 107, + "50%": 126, + "75%": 181, + "max": 302 + } + }, + "lengths": { + "ras": 8045, + "network": 7935, + "network_to_ras_ratio": 0.99 + }, + "coverage": { + "start": 0.28, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "5089970", + "overlap": 354 + } + ], + "eclipsed_reaches": [ + "5089074", + "5089958", + "5089956", + "5089954", + "5089960", + "5090064", + "13786888", + "13786882", + "13786874", + "13786884", + "13786886", + "13786860", + "13786104", + "13786892", + "13786666", + "13786880", + "13786890" + ] + }, + "5092562": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 2", + "min_elevation": 299.46, + "max_elevation": 381.52, + "xs_id": 68.09 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 2", + "min_elevation": 298.71, + "max_elevation": 380.4, + "xs_id": 66.98 + }, + "eclipsed": false, + "low_flow": 416079, + "high_flow": 1886048, + "network_to_id": "5092566", + "metrics": { + "xs": { + "centerline_offset": { + "count": 3, + "mean": 42, + "std": 55, + "min": 3, + "25%": 11, + "50%": 19, + "75%": 62, + "max": 104 + }, + "thalweg_offset": { + "count": 3, + "mean": 158, + "std": 59, + "min": 106, + "25%": 126, + "50%": 146, + "75%": 184, + "max": 222 + } + }, + "lengths": { + "ras": 5950, + "network": 5971, + "network_to_ras_ratio": 1.0 + }, + "coverage": { + "start": 0.23, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "5092566", + "overlap": 1210 + } + ], + "eclipsed_reaches": [ + "5091732", + "5091768", + "5092556", + "5092560" + ] + }, + "5096814": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 2", + "min_elevation": 274.89, + "max_elevation": 400.1, + "xs_id": 45.36 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 2", + "min_elevation": 277.43, + "max_elevation": 400.0, + "xs_id": 44.29 + }, + "eclipsed": false, + "low_flow": 417816, + "high_flow": 1894550, + "network_to_id": "5092616", + "metrics": { + "xs": { + "centerline_offset": { + "count": 3, + "mean": 130, + "std": 60, + "min": 66, + "25%": 103, + "50%": 140, + "75%": 162, + "max": 185 + }, + "thalweg_offset": { + "count": 3, + "mean": 112, + "std": 133, + "min": 32, + "25%": 35, + "50%": 39, + "75%": 152, + "max": 265 + } + }, + "lengths": { + "ras": 5807, + "network": 5609, + "network_to_ras_ratio": 0.97 + }, + "coverage": { + "start": 0.13, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "5092616", + "overlap": 635 + } + ], + "eclipsed_reaches": [ + "5092752" + ] + }, + "5092748": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 2", + "min_elevation": 281.43, + "max_elevation": 374.53, + "xs_id": 49.85 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 2", + "min_elevation": 285.8, + "max_elevation": 385.91, + "xs_id": 48.58 + }, + "eclipsed": false, + "low_flow": 415946, + "high_flow": 1885169, + "network_to_id": "5092602", + "metrics": { + "xs": { + "centerline_offset": { + "count": 3, + "mean": 309, + "std": 173, + "min": 115, + "25%": 241, + "50%": 367, + "75%": 406, + "max": 445 + }, + "thalweg_offset": { + "count": 3, + "mean": 237, + "std": 75, + "min": 154, + "25%": 206, + "50%": 258, + "75%": 278, + "max": 299 + } + }, + "lengths": { + "ras": 7080, + "network": 7892, + "network_to_ras_ratio": 1.11 + }, + "coverage": { + "start": 0.25, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "5092606", + "overlap": 1185 + } + ], + "eclipsed_reaches": [ + "5092244", + "5092242", + "5092746", + "5092750", + "5092602", + "5027669", + "5027717" + ] + }, + "5092566": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 2", + "min_elevation": 298.71, + "max_elevation": 380.4, + "xs_id": 66.98 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 2", + "min_elevation": 298.52, + "max_elevation": 380.14, + "xs_id": 66.3 + }, + "eclipsed": false, + "low_flow": 416079, + "high_flow": 1886047, + "network_to_id": "5092568", + "metrics": { + "xs": { + "centerline_offset": { + "count": 2, + "mean": 12, + "std": 13, + "min": 3, + "25%": 7, + "50%": 12, + "75%": 17, + "max": 21 + }, + "thalweg_offset": { + "count": 2, + "mean": 75, + "std": 43, + "min": 45, + "25%": 60, + "50%": 75, + "75%": 91, + "max": 106 + } + }, + "lengths": { + "ras": 3028, + "network": 3038, + "network_to_ras_ratio": 1.0 + }, + "coverage": { + "start": 0.4, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "5092568", + "overlap": 1213 + } + ], + "eclipsed_reaches": [ + "5092564" + ] + }, + "5092568": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 2", + "min_elevation": 298.52, + "max_elevation": 380.14, + "xs_id": 66.3 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 2", + "min_elevation": 297.35, + "max_elevation": 385.17, + "xs_id": 65.84 + }, + "eclipsed": false, + "low_flow": 416078, + "high_flow": 1886003, + "network_to_id": "5092572", + "metrics": { + "xs": { + "centerline_offset": { + "count": 2, + "mean": 42, + "std": 29, + "min": 21, + "25%": 32, + "50%": 42, + "75%": 52, + "max": 63 + }, + "thalweg_offset": { + "count": 2, + "mean": 216, + "std": 241, + "min": 45, + "25%": 130, + "50%": 216, + "75%": 301, + "max": 386 + } + }, + "lengths": { + "ras": 3120, + "network": 3052, + "network_to_ras_ratio": 0.98 + }, + "coverage": { + "start": 0.46, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "5092572", + "overlap": 1652 + } + ], + "eclipsed_reaches": [ + "5092570" + ] + }, + "5092572": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 2", + "min_elevation": 297.35, + "max_elevation": 385.17, + "xs_id": 65.84 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 2", + "min_elevation": 296.85, + "max_elevation": 378.78, + "xs_id": 61.83 + }, + "eclipsed": false, + "low_flow": 416064, + "high_flow": 1885986, + "network_to_id": "5092582", + "metrics": { + "xs": { + "centerline_offset": { + "count": 8, + "mean": 93, + "std": 80, + "min": 4, + "25%": 45, + "50%": 63, + "75%": 123, + "max": 244 + }, + "thalweg_offset": { + "count": 8, + "mean": 239, + "std": 80, + "min": 125, + "25%": 187, + "50%": 233, + "75%": 277, + "max": 386 + } + }, + "lengths": { + "ras": 21093, + "network": 21102, + "network_to_ras_ratio": 1.0 + }, + "coverage": { + "start": 0.08, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "5092582", + "overlap": 904 + } + ], + "eclipsed_reaches": [ + "5091838", + "5092574", + "5091798", + "5091816", + "5091844", + "5091722", + "937140085", + "5091974" + ] + }, + "5089986": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 2", + "min_elevation": 298.22, + "max_elevation": 389.7, + "xs_id": 76.2 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 2", + "min_elevation": 303.92, + "max_elevation": 389.02, + "xs_id": 74.89 + }, + "eclipsed": false, + "low_flow": 415018, + "high_flow": 1897026, + "network_to_id": "5089990", + "metrics": { + "xs": { + "centerline_offset": { + "count": 3, + "mean": 64, + "std": 36, + "min": 22, + "25%": 52, + "50%": 82, + "75%": 85, + "max": 87 + }, + "thalweg_offset": { + "count": 3, + "mean": 200, + "std": 180, + "min": 10, + "25%": 116, + "50%": 222, + "75%": 295, + "max": 369 + } + }, + "lengths": { + "ras": 6485, + "network": 6537, + "network_to_ras_ratio": 1.01 + }, + "coverage": { + "start": 0.26, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "5089998", + "overlap": 634 + } + ], + "eclipsed_reaches": [ + "5089990", + "13786982", + "13786980" + ] + }, + "5089970": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 2", + "min_elevation": 295.95, + "max_elevation": 400.43, + "xs_id": 82.48 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 2", + "min_elevation": 300.31, + "max_elevation": 390.84, + "xs_id": 81.09 + }, + "eclipsed": false, + "low_flow": 415061, + "high_flow": 1897602, + "network_to_id": "5089978", + "metrics": { + "xs": { + "centerline_offset": { + "count": 4, + "mean": 62, + "std": 48, + "min": 7, + "25%": 29, + "50%": 67, + "75%": 100, + "max": 107 + }, + "thalweg_offset": { + "count": 4, + "mean": 177, + "std": 104, + "min": 89, + "25%": 108, + "50%": 148, + "75%": 217, + "max": 322 + } + }, + "lengths": { + "ras": 7420, + "network": 7518, + "network_to_ras_ratio": 1.01 + }, + "coverage": { + "start": 0.06, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "5089978", + "overlap": 1449 + } + ], + "eclipsed_reaches": [ + "5089154", + "5089972" + ] + }, + "5089960": { + "eclipsed": true, + "low_flow": 415069, + "high_flow": 1897713, + "network_to_id": "5089970" + }, + "5089926": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 2", + "min_elevation": 306.01, + "max_elevation": 399.91, + "xs_id": 91.32 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 2", + "min_elevation": 307.68, + "max_elevation": 403.64, + "xs_id": 89.55 + }, + "eclipsed": false, + "low_flow": 415067, + "high_flow": 1897887, + "network_to_id": "5089932", + "metrics": { + "xs": { + "centerline_offset": { + "count": 4, + "mean": 41, + "std": 33, + "min": 8, + "25%": 17, + "50%": 40, + "75%": 64, + "max": 77 + }, + "thalweg_offset": { + "count": 4, + "mean": 184, + "std": 174, + "min": 4, + "25%": 56, + "50%": 180, + "75%": 308, + "max": 374 + } + }, + "lengths": { + "ras": 8403, + "network": 8420, + "network_to_ras_ratio": 1.0 + }, + "coverage": { + "start": 0.05, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "5089938", + "overlap": 131 + } + ], + "eclipsed_reaches": [ + "5089934", + "5089928", + "5089930", + "5089932" + ] + }, + "5089932": { + "eclipsed": true, + "low_flow": 415069, + "high_flow": 1897867, + "network_to_id": "5089938" + }, + "5089938": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 2", + "min_elevation": 307.68, + "max_elevation": 403.64, + "xs_id": 89.55 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 2", + "min_elevation": 306.03, + "max_elevation": 401.3, + "xs_id": 87.94 + }, + "eclipsed": false, + "low_flow": 415061, + "high_flow": 1897750, + "network_to_id": "5089946", + "metrics": { + "xs": { + "centerline_offset": { + "count": 4, + "mean": 80, + "std": 52, + "min": 20, + "25%": 54, + "50%": 77, + "75%": 102, + "max": 145 + }, + "thalweg_offset": { + "count": 4, + "mean": 121, + "std": 97, + "min": 4, + "25%": 62, + "50%": 132, + "75%": 191, + "max": 217 + } + }, + "lengths": { + "ras": 8457, + "network": 8553, + "network_to_ras_ratio": 1.01 + }, + "coverage": { + "start": 0.02, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "5089946", + "overlap": 941 + } + ], + "eclipsed_reaches": [ + "5088902", + "5089936", + "5088756" + ] + }, + "5092646": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 2", + "min_elevation": 287.73, + "max_elevation": 354.3309, + "xs_id": 38.58 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 2", + "min_elevation": 278.543, + "max_elevation": 344.488, + "xs_id": 34.69 + }, + "eclipsed": false, + "low_flow": 417668, + "high_flow": 1894346, + "network_to_id": "5092652", + "metrics": { + "xs": { + "centerline_offset": { + "count": 9, + "mean": 33, + "std": 32, + "min": 2, + "25%": 4, + "50%": 27, + "75%": 41, + "max": 100 + }, + "thalweg_offset": { + "count": 9, + "mean": 242, + "std": 159, + "min": 56, + "25%": 88, + "50%": 210, + "75%": 350, + "max": 458 + } + }, + "lengths": { + "ras": 20823, + "network": 20962, + "network_to_ras_ratio": 1.01 + }, + "coverage": { + "start": 0.0, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "5092676", + "overlap": 1742 + } + ], + "eclipsed_reaches": [ + "5092652", + "5092740", + "5092332", + "5092340", + "5092338", + "5092644", + "5092650", + "5092342", + "5092638", + "5092334", + "5092640", + "5092648", + "5092642" + ] + }, + "5092622": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 2", + "min_elevation": 273.06, + "max_elevation": 360.15, + "xs_id": 43.2 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 2", + "min_elevation": 284.71, + "max_elevation": 367.99, + "xs_id": 41.1 + }, + "eclipsed": false, + "low_flow": 417793, + "high_flow": 1894602, + "network_to_id": "5092626", + "metrics": { + "xs": { + "centerline_offset": { + "count": 5, + "mean": 105, + "std": 56, + "min": 57, + "25%": 70, + "50%": 72, + "75%": 144, + "max": 184 + }, + "thalweg_offset": { + "count": 5, + "mean": 152, + "std": 88, + "min": 75, + "25%": 88, + "50%": 116, + "75%": 197, + "max": 285 + } + }, + "lengths": { + "ras": 11279, + "network": 11468, + "network_to_ras_ratio": 1.02 + }, + "coverage": { + "start": 0.12, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "5092630", + "overlap": 2266 + } + ], + "eclipsed_reaches": [ + "5092628", + "5092624", + "5092620", + "5092626" + ] + }, + "5092616": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 2", + "min_elevation": 277.43, + "max_elevation": 400.0, + "xs_id": 44.29 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 2", + "min_elevation": 273.06, + "max_elevation": 360.15, + "xs_id": 43.2 + }, + "eclipsed": false, + "low_flow": 417817, + "high_flow": 1894585, + "network_to_id": "5092622", + "gage": "07022000", + "gage_url": "https://waterdata.usgs.gov/nwis/uv?site_no=07022000&legacy=1", + "metrics": { + "xs": { + "centerline_offset": { + "count": 6, + "mean": 158, + "std": 16, + "min": 140, + "25%": 149, + "50%": 157, + "75%": 164, + "max": 184 + }, + "thalweg_offset": { + "count": 6, + "mean": 91, + "std": 90, + "min": 19, + "25%": 37, + "50%": 73, + "75%": 87, + "max": 265 + } + }, + "lengths": { + "ras": 5448, + "network": 5765, + "network_to_ras_ratio": 1.06 + }, + "coverage": { + "start": 0.12, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "5092622", + "overlap": 1103 + } + ], + "eclipsed_reaches": [ + "5092618" + ] + }, + "5092658": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 2", + "min_elevation": 266.437, + "max_elevation": 328.15, + "xs_id": 15.43 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 3", + "min_elevation": 252.133, + "max_elevation": 340.2229, + "xs_id": 12.67 + }, + "eclipsed": false, + "low_flow": 417345, + "high_flow": 1893676, + "network_to_id": "5092656", + "metrics": { + "xs": { + "centerline_offset": { + "count": 7, + "mean": 64, + "std": 36, + "min": 6, + "25%": 44, + "50%": 71, + "75%": 84, + "max": 114 + }, + "thalweg_offset": { + "count": 7, + "mean": 337, + "std": 233, + "min": 108, + "25%": 157, + "50%": 202, + "75%": 541, + "max": 655 + } + }, + "lengths": { + "ras": 12587, + "network": 13001, + "network_to_ras_ratio": 1.03 + }, + "coverage": { + "start": 0.07, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "5092656", + "overlap": 2302 + } + ], + "eclipsed_reaches": [ + "5092742", + "5092654", + "5092354" + ] + }, + "5093444": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 2", + "min_elevation": 278.084, + "max_elevation": 340.2229, + "xs_id": 24.49 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 2", + "min_elevation": 272.507, + "max_elevation": 339.567, + "xs_id": 22.03 + }, + "eclipsed": false, + "low_flow": 417416, + "high_flow": 1893742, + "network_to_id": "5092710", + "metrics": { + "xs": { + "centerline_offset": { + "count": 6, + "mean": 26, + "std": 26, + "min": 3, + "25%": 8, + "50%": 21, + "75%": 30, + "max": 74 + }, + "thalweg_offset": { + "count": 6, + "mean": 153, + "std": 67, + "min": 89, + "25%": 111, + "50%": 150, + "75%": 155, + "max": 276 + } + }, + "lengths": { + "ras": 15881, + "network": 15624, + "network_to_ras_ratio": 0.98 + }, + "coverage": { + "start": 0.08, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "5092704", + "overlap": 386 + } + ], + "eclipsed_reaches": [ + "5092710", + "5092424", + "5092708", + "653824" + ] + }, + "5092712": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 2", + "min_elevation": 275.459, + "max_elevation": 342.95, + "xs_id": 28.57 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 2", + "min_elevation": 278.084, + "max_elevation": 340.2229, + "xs_id": 24.49 + }, + "eclipsed": false, + "low_flow": 417479, + "high_flow": 1893923, + "network_to_id": "5093444", + "metrics": { + "xs": { + "centerline_offset": { + "count": 8, + "mean": 33, + "std": 37, + "min": 3, + "25%": 4, + "50%": 15, + "75%": 59, + "max": 95 + }, + "thalweg_offset": { + "count": 8, + "mean": 235, + "std": 122, + "min": 89, + "25%": 189, + "50%": 216, + "75%": 234, + "max": 513 + } + }, + "lengths": { + "ras": 21765, + "network": 21946, + "network_to_ras_ratio": 1.01 + }, + "coverage": { + "start": 0.07, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "5093444", + "overlap": 1188 + } + ], + "eclipsed_reaches": [] + }, + "5092704": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 2", + "min_elevation": 272.507, + "max_elevation": 339.567, + "xs_id": 22.03 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 2", + "min_elevation": 264.698, + "max_elevation": 340.2102, + "xs_id": 18.05 + }, + "eclipsed": false, + "low_flow": 417393, + "high_flow": 1893700, + "network_to_id": "5092684", + "metrics": { + "xs": { + "centerline_offset": { + "count": 10, + "mean": 15, + "std": 8, + "min": 4, + "25%": 10, + "50%": 13, + "75%": 19, + "max": 32 + }, + "thalweg_offset": { + "count": 10, + "mean": 208, + "std": 115, + "min": 59, + "25%": 150, + "50%": 173, + "75%": 212, + "max": 433 + } + }, + "lengths": { + "ras": 20504, + "network": 20561, + "network_to_ras_ratio": 1.0 + }, + "coverage": { + "start": 0.02, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "5092684", + "overlap": 1429 + } + ], + "eclipsed_reaches": [ + "5092382", + "5092402", + "5092690", + "5092688" + ] + }, + "5092664": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 2", + "min_elevation": 264.075, + "max_elevation": 323.819, + "xs_id": 16.95 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 2", + "min_elevation": 266.437, + "max_elevation": 328.15, + "xs_id": 15.43 + }, + "eclipsed": false, + "low_flow": 417384, + "high_flow": 1893818, + "network_to_id": "5092658", + "metrics": { + "xs": { + "centerline_offset": { + "count": 4, + "mean": 29, + "std": 14, + "min": 9, + "25%": 26, + "50%": 34, + "75%": 38, + "max": 40 + }, + "thalweg_offset": { + "count": 4, + "mean": 170, + "std": 224, + "min": 6, + "25%": 60, + "50%": 86, + "75%": 196, + "max": 501 + } + }, + "lengths": { + "ras": 7956, + "network": 8175, + "network_to_ras_ratio": 1.03 + }, + "coverage": { + "start": 0.08, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "5092658", + "overlap": 850 + } + ], + "eclipsed_reaches": [] + }, + "5092670": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 2", + "min_elevation": 230.282, + "max_elevation": 323.491, + "xs_id": 17.25 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 2", + "min_elevation": 264.075, + "max_elevation": 323.819, + "xs_id": 16.95 + }, + "eclipsed": false, + "low_flow": 417386, + "high_flow": 1893798, + "network_to_id": "5092664", + "metrics": { + "xs": { + "centerline_offset": { + "count": 2, + "mean": 33, + "std": 10, + "min": 26, + "25%": 30, + "50%": 33, + "75%": 37, + "max": 40 + }, + "thalweg_offset": { + "count": 2, + "mean": 212, + "std": 290, + "min": 6, + "25%": 109, + "50%": 212, + "75%": 314, + "max": 417 + } + }, + "lengths": { + "ras": 1597, + "network": 1666, + "network_to_ras_ratio": 1.04 + }, + "coverage": { + "start": 0.29, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "5092664", + "overlap": 611 + } + ], + "eclipsed_reaches": [ + "5092666" + ] + }, + "5092684": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 2", + "min_elevation": 264.698, + "max_elevation": 340.2102, + "xs_id": 18.05 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 2", + "min_elevation": 230.282, + "max_elevation": 323.491, + "xs_id": 17.25 + }, + "eclipsed": false, + "low_flow": 417387, + "high_flow": 1893770, + "network_to_id": "5092670", + "metrics": { + "xs": { + "centerline_offset": { + "count": 4, + "mean": 25, + "std": 14, + "min": 4, + "25%": 21, + "50%": 29, + "75%": 33, + "max": 37 + }, + "thalweg_offset": { + "count": 4, + "mean": 366, + "std": 42, + "min": 326, + "25%": 334, + "50%": 361, + "75%": 393, + "max": 417 + } + }, + "lengths": { + "ras": 4478, + "network": 4477, + "network_to_ras_ratio": 1.0 + }, + "coverage": { + "start": 0.26, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "5092670", + "overlap": 440 + } + ], + "eclipsed_reaches": [ + "5092386", + "5092680", + "5092682" + ] + }, + "5092710": { + "eclipsed": true, + "low_flow": 417414, + "high_flow": 1893797, + "network_to_id": "5092704" + }, + "5089922": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 2", + "min_elevation": 308.77, + "max_elevation": 399.97, + "xs_id": 91.83 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 2", + "min_elevation": 306.01, + "max_elevation": 399.91, + "xs_id": 91.32 + }, + "eclipsed": false, + "low_flow": 415074, + "high_flow": 1897907, + "network_to_id": "5089926", + "metrics": { + "xs": { + "centerline_offset": { + "count": 2, + "mean": 25, + "std": 24, + "min": 8, + "25%": 17, + "50%": 25, + "75%": 34, + "max": 43 + }, + "thalweg_offset": { + "count": 2, + "mean": 79, + "std": 7, + "min": 73, + "25%": 76, + "50%": 79, + "75%": 81, + "max": 84 + } + }, + "lengths": { + "ras": 2680, + "network": 2719, + "network_to_ras_ratio": 1.01 + }, + "coverage": { + "start": 0.08, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "5089926", + "overlap": 359 + } + ], + "eclipsed_reaches": [ + "5089924" + ] + }, + "5089920": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 2", + "min_elevation": 287.72, + "max_elevation": 400.06, + "xs_id": 94.37 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 2", + "min_elevation": 308.77, + "max_elevation": 399.97, + "xs_id": 91.83 + }, + "eclipsed": false, + "low_flow": 415073, + "high_flow": 1897871, + "network_to_id": "5089922", + "metrics": { + "xs": { + "centerline_offset": { + "count": 6, + "mean": 45, + "std": 39, + "min": 8, + "25%": 20, + "50%": 38, + "75%": 51, + "max": 117 + }, + "thalweg_offset": { + "count": 6, + "mean": 70, + "std": 43, + "min": 22, + "25%": 34, + "50%": 75, + "75%": 85, + "max": 137 + } + }, + "lengths": { + "ras": 11351, + "network": 11188, + "network_to_ras_ratio": 0.99 + }, + "coverage": { + "start": 0.03, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "5089922", + "overlap": 192 + } + ], + "eclipsed_reaches": [ + "5089918" + ] + }, + "5089914": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 2", + "min_elevation": 307.17, + "max_elevation": 400.11, + "xs_id": 97.15 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 2", + "min_elevation": 287.72, + "max_elevation": 400.06, + "xs_id": 94.37 + }, + "eclipsed": false, + "low_flow": 414997, + "high_flow": 1897817, + "network_to_id": "5089920", + "metrics": { + "xs": { + "centerline_offset": { + "count": 6, + "mean": 50, + "std": 39, + "min": 16, + "25%": 18, + "50%": 36, + "75%": 84, + "max": 100 + }, + "thalweg_offset": { + "count": 6, + "mean": 231, + "std": 156, + "min": 24, + "25%": 105, + "50%": 280, + "75%": 339, + "max": 400 + } + }, + "lengths": { + "ras": 14469, + "network": 14254, + "network_to_ras_ratio": 0.99 + }, + "coverage": { + "start": 0.17, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "5089920", + "overlap": 397 + } + ], + "eclipsed_reaches": [ + "5088798", + "5089916" + ] + }, + "5089912": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 2", + "min_elevation": 315.0, + "max_elevation": 399.97, + "xs_id": 106.23 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 2", + "min_elevation": 307.17, + "max_elevation": 400.11, + "xs_id": 97.15 + }, + "eclipsed": false, + "low_flow": 414999, + "high_flow": 1897903, + "network_to_id": "5089914", + "metrics": { + "xs": { + "centerline_offset": { + "count": 18, + "mean": 113, + "std": 52, + "min": 19, + "25%": 88, + "50%": 104, + "75%": 152, + "max": 197 + }, + "thalweg_offset": { + "count": 18, + "mean": 332, + "std": 104, + "min": 153, + "25%": 276, + "50%": 326, + "75%": 397, + "max": 510 + } + }, + "lengths": { + "ras": 47435, + "network": 47243, + "network_to_ras_ratio": 1.0 + }, + "coverage": { + "start": 0.02, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "5089914", + "overlap": 2921 + } + ], + "eclipsed_reaches": [ + "5088776", + "5089786", + "5089910", + "5088774", + "5088640", + "5088742", + "5088686", + "5088658", + "5088656", + "5088740", + "5088672", + "5089788", + "5089790" + ] + }, + "5089904": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 2", + "min_elevation": 315.74, + "max_elevation": 400.13, + "xs_id": 109.93 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 2", + "min_elevation": 315.0, + "max_elevation": 399.97, + "xs_id": 106.23 + }, + "eclipsed": false, + "low_flow": 415058, + "high_flow": 1897827, + "network_to_id": "5089912", + "gage": "07020500", + "gage_url": "https://waterdata.usgs.gov/nwis/uv?site_no=07020500&legacy=1", + "metrics": { + "xs": { + "centerline_offset": { + "count": 11, + "mean": 50, + "std": 25, + "min": 1, + "25%": 42, + "50%": 53, + "75%": 58, + "max": 98 + }, + "thalweg_offset": { + "count": 11, + "mean": 144, + "std": 60, + "min": 12, + "25%": 131, + "50%": 158, + "75%": 188, + "max": 198 + } + }, + "lengths": { + "ras": 19363, + "network": 19372, + "network_to_ras_ratio": 1.0 + }, + "coverage": { + "start": 0.11, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "5089912", + "overlap": 1122 + } + ], + "eclipsed_reaches": [ + "5089902", + "5088632", + "5088630" + ] + }, + "5092376": { + "eclipsed": true, + "low_flow": 334, + "high_flow": 2226, + "network_to_id": "5092666" + }, + "5092706": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 3", + "min_elevation": 236.22, + "max_elevation": 337.72, + "xs_id": 6.25 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 3", + "min_elevation": 254.97, + "max_elevation": 339.98, + "xs_id": 5.11 + }, + "eclipsed": false, + "low_flow": 417777, + "high_flow": 1869108, + "network_to_id": "5093440", + "metrics": { + "xs": { + "centerline_offset": { + "count": 3, + "mean": 77, + "std": 90, + "min": 24, + "25%": 25, + "50%": 27, + "75%": 104, + "max": 182 + }, + "thalweg_offset": { + "count": 3, + "mean": 1646, + "std": 1434, + "min": 41, + "25%": 1070, + "50%": 2099, + "75%": 2449, + "max": 2799 + } + }, + "lengths": { + "ras": 5995, + "network": 6023, + "network_to_ras_ratio": 1.0 + }, + "coverage": { + "start": 0.13, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "5093440", + "overlap": 2068 + } + ], + "eclipsed_reaches": [] + }, + "5093440": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 3", + "min_elevation": 254.97, + "max_elevation": 339.98, + "xs_id": 5.11 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 3", + "min_elevation": 260.61, + "max_elevation": 336.55, + "xs_id": 4.58 + }, + "eclipsed": false, + "low_flow": 417772, + "high_flow": 1869041, + "network_to_id": "5093450", + "metrics": { + "xs": { + "centerline_offset": { + "count": 2, + "mean": 103, + "std": 112, + "min": 23, + "25%": 63, + "50%": 103, + "75%": 142, + "max": 182 + }, + "thalweg_offset": { + "count": 2, + "mean": 418, + "std": 533, + "min": 41, + "25%": 229, + "50%": 418, + "75%": 606, + "max": 795 + } + }, + "lengths": { + "ras": 3276, + "network": 3253, + "network_to_ras_ratio": 0.99 + }, + "coverage": { + "start": 0.48, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "5093450", + "overlap": 992 + } + ], + "eclipsed_reaches": [ + "5093442" + ] + }, + "5092674": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 3", + "min_elevation": 260.86, + "max_elevation": 338.911, + "xs_id": 11.25 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 3", + "min_elevation": 257.6122, + "max_elevation": 338.911, + "xs_id": 9.6 + }, + "eclipsed": false, + "low_flow": 417811, + "high_flow": 1869283, + "network_to_id": "5092686", + "metrics": { + "xs": { + "centerline_offset": { + "count": 4, + "mean": 37, + "std": 30, + "min": 10, + "25%": 18, + "50%": 29, + "75%": 47, + "max": 79 + }, + "thalweg_offset": { + "count": 4, + "mean": 488, + "std": 274, + "min": 91, + "25%": 414, + "50%": 592, + "75%": 666, + "max": 676 + } + }, + "lengths": { + "ras": 8491, + "network": 8629, + "network_to_ras_ratio": 1.02 + }, + "coverage": { + "start": 0.12, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "5092686", + "overlap": 1574 + } + ], + "eclipsed_reaches": [ + "5092378", + "5092672" + ] + }, + "5092696": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 3", + "min_elevation": 255.32, + "max_elevation": 339.26, + "xs_id": 8.23 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 3", + "min_elevation": 256.08, + "max_elevation": 341.92, + "xs_id": 7.517 + }, + "eclipsed": false, + "low_flow": 417795, + "high_flow": 1869127, + "network_to_id": "5092702", + "metrics": { + "xs": { + "centerline_offset": { + "count": 3, + "mean": 143, + "std": 33, + "min": 121, + "25%": 124, + "50%": 126, + "75%": 153, + "max": 180 + }, + "thalweg_offset": { + "count": 3, + "mean": 719, + "std": 924, + "min": 131, + "25%": 186, + "50%": 242, + "75%": 1013, + "max": 1784 + } + }, + "lengths": { + "ras": 3088, + "network": 3118, + "network_to_ras_ratio": 1.01 + }, + "coverage": { + "start": 0.58, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "5092702", + "overlap": 146 + } + ], + "eclipsed_reaches": [] + }, + "5092686": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 3", + "min_elevation": 257.6122, + "max_elevation": 338.911, + "xs_id": 9.6 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 3", + "min_elevation": 255.32, + "max_elevation": 339.26, + "xs_id": 8.23 + }, + "eclipsed": false, + "low_flow": 417808, + "high_flow": 1869280, + "network_to_id": "5092696", + "metrics": { + "xs": { + "centerline_offset": { + "count": 3, + "mean": 134, + "std": 51, + "min": 79, + "25%": 111, + "50%": 142, + "75%": 161, + "max": 180 + }, + "thalweg_offset": { + "count": 3, + "mean": 375, + "std": 141, + "min": 242, + "25%": 301, + "50%": 360, + "75%": 441, + "max": 522 + } + }, + "lengths": { + "ras": 8937, + "network": 8233, + "network_to_ras_ratio": 0.92 + }, + "coverage": { + "start": 0.28, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "5092696", + "overlap": 4104 + } + ], + "eclipsed_reaches": [ + "5092398", + "5092692" + ] + }, + "5092702": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 3", + "min_elevation": 256.08, + "max_elevation": 341.92, + "xs_id": 7.517 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 3", + "min_elevation": 236.22, + "max_elevation": 337.72, + "xs_id": 6.25 + }, + "eclipsed": false, + "low_flow": 417783, + "high_flow": 1869170, + "network_to_id": "5092706", + "metrics": { + "xs": { + "centerline_offset": { + "count": 6, + "mean": 116, + "std": 47, + "min": 24, + "25%": 122, + "50%": 126, + "75%": 144, + "max": 151 + }, + "thalweg_offset": { + "count": 6, + "mean": 2125, + "std": 513, + "min": 1781, + "25%": 1788, + "50%": 1805, + "75%": 2535, + "max": 2799 + } + }, + "lengths": { + "ras": 6966, + "network": 6593, + "network_to_ras_ratio": 0.95 + }, + "coverage": { + "start": 0.02, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "5092706", + "overlap": 594 + } + ], + "eclipsed_reaches": [ + "5092744", + "5092700", + "5092404" + ] + }, + "5092660": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 3", + "min_elevation": 248.458, + "max_elevation": 337.9269, + "xs_id": 12.2 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 3", + "min_elevation": 260.86, + "max_elevation": 338.911, + "xs_id": 11.25 + }, + "eclipsed": false, + "low_flow": 417830, + "high_flow": 1869275, + "network_to_id": "5092674", + "metrics": { + "xs": { + "centerline_offset": { + "count": 3, + "mean": 16, + "std": 11, + "min": 8, + "25%": 9, + "50%": 10, + "75%": 20, + "max": 29 + }, + "thalweg_offset": { + "count": 3, + "mean": 164, + "std": 104, + "min": 91, + "25%": 104, + "50%": 117, + "75%": 200, + "max": 283 + } + }, + "lengths": { + "ras": 5467, + "network": 5490, + "network_to_ras_ratio": 1.0 + }, + "coverage": { + "start": 0.35, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "5092674", + "overlap": 1000 + } + ], + "eclipsed_reaches": [ + "5092662" + ] + }, + "5092656": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 3", + "min_elevation": 252.133, + "max_elevation": 340.2229, + "xs_id": 12.67 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 3", + "min_elevation": 248.458, + "max_elevation": 337.9269, + "xs_id": 12.2 + }, + "eclipsed": false, + "low_flow": 417343, + "high_flow": 1893707, + "network_to_id": "5092660", + "metrics": { + "xs": { + "centerline_offset": { + "count": 2, + "mean": 40, + "std": 16, + "min": 29, + "25%": 34, + "50%": 40, + "75%": 45, + "max": 51 + }, + "thalweg_offset": { + "count": 2, + "mean": 115, + "std": 3, + "min": 113, + "25%": 114, + "50%": 115, + "75%": 116, + "max": 117 + } + }, + "lengths": { + "ras": 2408, + "network": 2385, + "network_to_ras_ratio": 0.99 + }, + "coverage": { + "start": 0.99, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "5092660", + "overlap": 2367 + } + ], + "eclipsed_reaches": [] + }, + "5093448": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 3", + "min_elevation": 254.19, + "max_elevation": 335.68, + "xs_id": 2.67 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 3", + "min_elevation": 250.24, + "max_elevation": 334.67, + "xs_id": 1.39 + }, + "eclipsed": false, + "low_flow": 417741, + "high_flow": 1868931, + "network_to_id": "5093446", + "metrics": { + "xs": { + "centerline_offset": { + "count": 7, + "mean": 41, + "std": 60, + "min": 15, + "25%": 18, + "50%": 19, + "75%": 20, + "max": 178 + }, + "thalweg_offset": { + "count": 7, + "mean": 509, + "std": 224, + "min": 95, + "25%": 423, + "50%": 590, + "75%": 615, + "max": 799 + } + }, + "lengths": { + "ras": 6724, + "network": 6754, + "network_to_ras_ratio": 1.0 + }, + "coverage": { + "start": 0.0, + "end": 0.73 + } + }, + "overlapped_reaches": [], + "eclipsed_reaches": [] + }, + "5093450": { + "us_xs": { + "river": "Mississippi", + "reach": "Reach 3", + "min_elevation": 260.61, + "max_elevation": 336.55, + "xs_id": 4.58 + }, + "ds_xs": { + "river": "Mississippi", + "reach": "Reach 3", + "min_elevation": 254.19, + "max_elevation": 335.68, + "xs_id": 2.67 + }, + "eclipsed": false, + "low_flow": 417743, + "high_flow": 1869007, + "network_to_id": "5093448", + "metrics": { + "xs": { + "centerline_offset": { + "count": 4, + "mean": 75, + "std": 78, + "min": 6, + "25%": 19, + "50%": 59, + "75%": 115, + "max": 178 + }, + "thalweg_offset": { + "count": 4, + "mean": 452, + "std": 381, + "min": 95, + "25%": 136, + "50%": 459, + "75%": 774, + "max": 795 + } + }, + "lengths": { + "ras": 10309, + "network": 10111, + "network_to_ras_ratio": 0.98 + }, + "coverage": { + "start": 0.09, + "end": 1.0 + } + }, + "overlapped_reaches": [ + { + "id": "5093448", + "overlap": 8 + } + ], + "eclipsed_reaches": [ + "5093180", + "5093452" + ] + } + }, + "metadata": { + "source_network": { + "file_name": "flows.parquet", + "version": "2.1", + "type": "nwm_hydrofabric" + }, + "conflation_png": "MissFldwy.conflation.png", + "conflation_ripple1d_version": "0.4.2", + "metrics_ripple1d_version": "0.4.2", + "source_ras_model": { + "stac_api": "https://stac2.dewberryanalytics.com", + "stac_collection_id": "ebfe-12090301_LowerColoradoCummins", + "stac_item_id": "137a9667-e5cf-4cea-b6ec-2e882a42fdc8", + "source_ras_files": { + "geometry": "MissFldwy.g01", + "forcing": "MissFldwy.f01", + "project-file": "MissFldwy.prj", + "plan": "MissFldwy.p01" + } + }, + "length_units": "feet", + "flow_units": "cfs" + } +} \ No newline at end of file diff --git a/tests/ras-data/MissFldwy/MissFldwy.conflation.png b/tests/ras-data/MissFldwy/MissFldwy.conflation.png new file mode 100644 index 00000000..fbe3bf72 Binary files /dev/null and b/tests/ras-data/MissFldwy/MissFldwy.conflation.png differ diff --git a/tests/ras-data/MissFldwy/MissFldwy.gpkg b/tests/ras-data/MissFldwy/MissFldwy.gpkg index 29d81c77..3c6e26ad 100644 Binary files a/tests/ras-data/MissFldwy/MissFldwy.gpkg and b/tests/ras-data/MissFldwy/MissFldwy.gpkg differ diff --git a/tests/ras-data/PatuxentRiver/PatuxentRiver.conflation.json b/tests/ras-data/PatuxentRiver/PatuxentRiver.conflation.json index 50419aeb..b4b57039 100644 --- a/tests/ras-data/PatuxentRiver/PatuxentRiver.conflation.json +++ b/tests/ras-data/PatuxentRiver/PatuxentRiver.conflation.json @@ -1,1276 +1,3696 @@ { - "11908582": { - "us_xs": { - "river": "Patuxent River", - "reach": "1", - "min_elevation": -10.6, - "max_elevation": 93.12, - "xs_id": 32805.59 - }, - "ds_xs": { - "river": "Patuxent River", - "reach": "1", - "min_elevation": -8.5, - "max_elevation": 53.21, - "xs_id": 26469.46 - }, - "low_flow_cfs": 2025, - "high_flow_cfs": 19969, - "nwm_to_id": "11908588", - "source_nwm_reach": "nwm_flows_v3.parquet" - }, - "11907736": { - "us_xs": { - "river": "Patuxent River", - "reach": "1", - "min_elevation": 18.1, - "max_elevation": 95.86, - "xs_id": 122117.8 - }, - "ds_xs": { - "river": "Patuxent River", - "reach": "1", - "min_elevation": 20.5, - "max_elevation": 81.42, - "xs_id": 118899.1 - }, - "low_flow_cfs": 983, - "high_flow_cfs": 6615, - "nwm_to_id": "11908292", - "source_nwm_reach": "nwm_flows_v3.parquet" - }, - "11906060": { - "us_xs": { - "xs_id": "-9999" - }, - "low_flow_cfs": 931, - "high_flow_cfs": 5365, - "nwm_to_id": "11907726", - "source_nwm_reach": "nwm_flows_v3.parquet" - }, - "11907726": { - "us_xs": { - "river": "Patuxent River", - "reach": "1", - "min_elevation": 23.5, - "max_elevation": 92.56, - "xs_id": 127390.9 - }, - "ds_xs": { - "river": "Patuxent River", - "reach": "1", - "min_elevation": 18.1, - "max_elevation": 95.86, - "xs_id": 122117.8 - }, - "low_flow_cfs": 961, - "high_flow_cfs": 5617, - "nwm_to_id": "11907736", - "source_nwm_reach": "nwm_flows_v3.parquet" - }, - "11906328": { - "us_xs": { - "river": "Patuxent River", - "reach": "1", - "min_elevation": 36.4, - "max_elevation": 65.54, - "xs_id": 131156.0 - }, - "ds_xs": { - "river": "Patuxent River", - "reach": "1", - "min_elevation": 23.5, - "max_elevation": 92.56, - "xs_id": 127390.9 - }, - "low_flow_cfs": 930, - "high_flow_cfs": 5503, - "nwm_to_id": "11906060", - "source_nwm_reach": "nwm_flows_v3.parquet" - }, - "11906034": { - "us_xs": { - "river": "Patuxent River", - "reach": "1", - "min_elevation": 41.3, - "max_elevation": 82.06, - "xs_id": 137262.7 - }, - "ds_xs": { - "river": "Patuxent River", - "reach": "1", - "min_elevation": 40.3, - "max_elevation": 68.8, - "xs_id": 136140.3 - }, - "low_flow_cfs": 863, - "high_flow_cfs": 4639, - "nwm_to_id": "11906036", - "source_nwm_reach": "nwm_flows_v3.parquet" - }, - "11906000": { - "us_xs": { - "xs_id": "-9999" - }, - "low_flow_cfs": 838, - "high_flow_cfs": 4552, - "nwm_to_id": "11906304", - "source_nwm_reach": "nwm_flows_v3.parquet" - }, - "11905990": { - "us_xs": { - "river": "Patuxent River", - "reach": "1", - "min_elevation": 58.8, - "max_elevation": 82.0, - "xs_id": 149785.6 - }, - "ds_xs": { - "river": "Patuxent River", - "reach": "1", - "min_elevation": 55.7, - "max_elevation": 102.27, - "xs_id": 148278.9 - }, - "low_flow_cfs": 840, - "high_flow_cfs": 4625, - "nwm_to_id": "11905994", - "source_nwm_reach": "nwm_flows_v3.parquet" - }, - "11906276": { - "us_xs": { - "river": "Patuxent River", - "reach": "1", - "min_elevation": 73.6, - "max_elevation": 122.77, - "xs_id": 163384.4 - }, - "ds_xs": { - "river": "Patuxent River", - "reach": "1", - "min_elevation": 71.9, - "max_elevation": 166.1, - "xs_id": 161033.5 - }, - "low_flow_cfs": 836, - "high_flow_cfs": 4814, - "nwm_to_id": "11906282", - "source_nwm_reach": "nwm_flows_v3.parquet" - }, - "11905958": { - "us_xs": { - "river": "Patuxent River", - "reach": "1", - "min_elevation": 72.95, - "max_elevation": 105.86, - "xs_id": 164309.7 - }, - "ds_xs": { - "river": "Patuxent River", - "reach": "1", - "min_elevation": 73.6, - "max_elevation": 122.77, - "xs_id": 163384.4 - }, - "low_flow_cfs": 835, - "high_flow_cfs": 4790, - "nwm_to_id": "11906276", - "source_nwm_reach": "nwm_flows_v3.parquet" - }, - "11906270": { - "us_xs": { - "river": "Patuxent River", - "reach": "1", - "min_elevation": 73.1, - "max_elevation": 103.51, - "xs_id": 165339.0 - }, - "ds_xs": { - "river": "Patuxent River", - "reach": "1", - "min_elevation": 72.95, - "max_elevation": 105.86, - "xs_id": 164309.7 - }, - "low_flow_cfs": 833, - "high_flow_cfs": 4774, - "nwm_to_id": "11905958", - "source_nwm_reach": "nwm_flows_v3.parquet" - }, - "11905918": { - "us_xs": { - "river": "Patuxent River", - "reach": "1", - "min_elevation": 73.2, - "max_elevation": 101.98, - "xs_id": 166384.6 - }, - "ds_xs": { - "river": "Patuxent River", - "reach": "1", - "min_elevation": 73.1, - "max_elevation": 103.51, - "xs_id": 165339.0 - }, - "low_flow_cfs": 841, - "high_flow_cfs": 4901, - "nwm_to_id": "11906270", - "source_nwm_reach": "nwm_flows_v3.parquet" - }, - "11905914": { - "us_xs": { - "river": "Patuxent River", - "reach": "1", - "min_elevation": 77.2, - "max_elevation": 133.77, - "xs_id": 168859.9 - }, - "ds_xs": { - "river": "Patuxent River", - "reach": "1", - "min_elevation": 73.2, - "max_elevation": 101.98, - "xs_id": 166384.6 - }, - "low_flow_cfs": 842, - "high_flow_cfs": 4919, - "nwm_to_id": "11905918", - "source_nwm_reach": "nwm_flows_v3.parquet" - }, - "11905886": { - "us_xs": { - "xs_id": "-9999" - }, - "low_flow_cfs": 846, - "high_flow_cfs": 4954, - "nwm_to_id": "11905914", - "source_nwm_reach": "nwm_flows_v3.parquet" - }, - "11905848": { - "us_xs": { - "xs_id": "-9999" - }, - "low_flow_cfs": 832, - "high_flow_cfs": 4814, - "nwm_to_id": "11906232", - "source_nwm_reach": "nwm_flows_v3.parquet" - }, - "11905844": { - "us_xs": { - "river": "Patuxent River", - "reach": "1", - "min_elevation": 96.6, - "max_elevation": 126.51, - "xs_id": 180215.6 - }, - "ds_xs": { - "river": "Patuxent River", - "reach": "1", - "min_elevation": 90.1, - "max_elevation": 108.89, - "xs_id": 176090.0 - }, - "low_flow_cfs": 833, - "high_flow_cfs": 4852, - "nwm_to_id": "11905848", - "source_nwm_reach": "nwm_flows_v3.parquet" - }, - "11905836": { - "us_xs": { - "xs_id": "-9999" - }, - "low_flow_cfs": 836, - "high_flow_cfs": 4799, - "nwm_to_id": "11905844", - "source_nwm_reach": "nwm_flows_v3.parquet" - }, - "11905838": { - "us_xs": { - "river": "Patuxent River", - "reach": "1", - "min_elevation": 99.89999, - "max_elevation": 133.81, - "xs_id": 183459.5 - }, - "ds_xs": { - "river": "Patuxent River", - "reach": "1", - "min_elevation": 96.6, - "max_elevation": 126.51, - "xs_id": 180215.6 - }, - "low_flow_cfs": 835, - "high_flow_cfs": 4812, - "nwm_to_id": "11905836", - "source_nwm_reach": "nwm_flows_v3.parquet" - }, - "11906208": { - "us_xs": { - "river": "Patuxent River", - "reach": "1", - "min_elevation": 102.33, - "max_elevation": 130.77, - "xs_id": 185454.7 - }, - "ds_xs": { - "river": "Patuxent River", - "reach": "1", - "min_elevation": 99.89999, - "max_elevation": 133.81, - "xs_id": 183459.5 - }, - "low_flow_cfs": 836, - "high_flow_cfs": 4915, - "nwm_to_id": "11905838", - "source_nwm_reach": "nwm_flows_v3.parquet" - }, - "11905834": { - "us_xs": { - "river": "Patuxent River", - "reach": "1", - "min_elevation": 103.26, - "max_elevation": 141.2, - "xs_id": 186994.1 - }, - "ds_xs": { - "river": "Patuxent River", - "reach": "1", - "min_elevation": 99.03, - "max_elevation": 132.69, - "xs_id": 183710.5 - }, - "low_flow_cfs": 836, - "high_flow_cfs": 4785, - "nwm_to_id": "11906208", - "source_nwm_reach": "nwm_flows_v3.parquet" - }, - "11905828": { - "us_xs": { - "river": "Patuxent River", - "reach": "1", - "min_elevation": 105.79, - "max_elevation": 146.6, - "xs_id": 189009.2 - }, - "ds_xs": { - "river": "Patuxent River", - "reach": "1", - "min_elevation": 103.26, - "max_elevation": 141.2, - "xs_id": 186994.1 - }, - "low_flow_cfs": 809, - "high_flow_cfs": 4408, - "nwm_to_id": "11905834", - "source_nwm_reach": "nwm_flows_v3.parquet" - }, - "11905820": { - "us_xs": { - "river": "Patuxent River", - "reach": "1", - "min_elevation": 112.1, - "max_elevation": 141.7, - "xs_id": 192514.9 - }, - "ds_xs": { - "river": "Patuxent River", - "reach": "1", - "min_elevation": 105.79, - "max_elevation": 146.6, - "xs_id": 189009.2 - }, - "low_flow_cfs": 780, - "high_flow_cfs": 3751, - "nwm_to_id": "11905828", - "source_nwm_reach": "nwm_flows_v3.parquet" - }, - "11906198": { - "us_xs": { - "river": "Patuxent River", - "reach": "1", - "min_elevation": 112.3, - "max_elevation": 141.81, - "xs_id": 193854.4 - }, - "ds_xs": { - "river": "Patuxent River", - "reach": "1", - "min_elevation": 112.3, - "max_elevation": 146.72, - "xs_id": 193176.6 - }, - "low_flow_cfs": 416, - "high_flow_cfs": 2088, - "nwm_to_id": "11905820", - "source_nwm_reach": "nwm_flows_v3.parquet" - }, - "11906196": { - "us_xs": { - "river": "Patuxent River", - "reach": "1", - "min_elevation": 112.95, - "max_elevation": 156.24, - "xs_id": 194817.8 - }, - "ds_xs": { - "river": "Patuxent River", - "reach": "1", - "min_elevation": 112.3, - "max_elevation": 141.81, - "xs_id": 193854.4 - }, - "low_flow_cfs": 406, - "high_flow_cfs": 2128, - "nwm_to_id": "11906198", - "source_nwm_reach": "nwm_flows_v3.parquet" - }, - "11905796": { - "us_xs": { - "river": "Patuxent River", - "reach": "1", - "min_elevation": 113.45, - "max_elevation": 160.38, - "xs_id": 195583.1 - }, - "ds_xs": { - "river": "Patuxent River", - "reach": "1", - "min_elevation": 112.95, - "max_elevation": 156.24, - "xs_id": 194817.8 - }, - "low_flow_cfs": 400, - "high_flow_cfs": 2343, - "nwm_to_id": "11906196", - "source_nwm_reach": "nwm_flows_v3.parquet" - }, - "11906190": { - "us_xs": { - "river": "Patuxent River", - "reach": "1", - "min_elevation": 127.07, - "max_elevation": 179.11, - "xs_id": 208205.5 - }, - "ds_xs": { - "river": "Patuxent River", - "reach": "1", - "min_elevation": 113.45, - "max_elevation": 160.38, - "xs_id": 195583.1 - }, - "low_flow_cfs": 428, - "high_flow_cfs": 2568, - "nwm_to_id": "11905796", - "source_nwm_reach": "nwm_flows_v3.parquet" - }, - "11905756": { - "us_xs": { - "river": "Patuxent River", - "reach": "1", - "min_elevation": 134.3, - "max_elevation": 221.64, - "xs_id": 211665.0 - }, - "ds_xs": { - "river": "Patuxent River", - "reach": "1", - "min_elevation": 127.07, - "max_elevation": 179.11, - "xs_id": 208205.5 - }, - "low_flow_cfs": 284, - "high_flow_cfs": 1501, - "nwm_to_id": "11906190", - "source_nwm_reach": "nwm_flows_v3.parquet" - }, - "11905746": { - "us_xs": { - "river": "Patuxent River", - "reach": "1", - "min_elevation": 155.57, - "max_elevation": 271.48, - "xs_id": 216363.5 - }, - "ds_xs": { - "river": "Patuxent River", - "reach": "1", - "min_elevation": 134.3, - "max_elevation": 221.64, - "xs_id": 211665.0 - }, - "low_flow_cfs": 140, - "high_flow_cfs": 1509, - "nwm_to_id": "11905756", - "gage": "01592500", - "gage_url": "https://waterdata.usgs.gov/nwis/uv?site_no=01592500&legacy=1", - "source_nwm_reach": "nwm_flows_v3.parquet" - }, - "11905994": { - "us_xs": { - "river": "Patuxent River", - "reach": "1", - "min_elevation": 55.7, - "max_elevation": 102.27, - "xs_id": 148278.9 - }, - "ds_xs": { - "river": "Patuxent River", - "reach": "1", - "min_elevation": 50.2, - "max_elevation": 114.55, - "xs_id": 147072.6 - }, - "low_flow_cfs": 839, - "high_flow_cfs": 4564, - "nwm_to_id": "11906000", - "source_nwm_reach": "nwm_flows_v3.parquet" - }, - "11905974": { - "us_xs": { - "xs_id": "-9999" - }, - "low_flow_cfs": 825, - "high_flow_cfs": 4686, - "nwm_to_id": "11905976", - "source_nwm_reach": "nwm_flows_v3.parquet" - }, - "11905984": { - "us_xs": { - "river": "Patuxent River", - "reach": "1", - "min_elevation": 62.6, - "max_elevation": 100.3, - "xs_id": 155014.3 - }, - "ds_xs": { - "river": "Patuxent River", - "reach": "1", - "min_elevation": 61.6, - "max_elevation": 97.16, - "xs_id": 153499.9 - }, - "low_flow_cfs": 841, - "high_flow_cfs": 4702, - "nwm_to_id": "11906290", - "source_nwm_reach": "nwm_flows_v3.parquet" - }, - "11906030": { - "us_xs": { - "river": "Patuxent River", - "reach": "1", - "min_elevation": 43.8, - "max_elevation": 83.0, - "xs_id": 140356.0 - }, - "ds_xs": { - "river": "Patuxent River", - "reach": "1", - "min_elevation": 41.3, - "max_elevation": 82.06, - "xs_id": 137262.7 - }, - "low_flow_cfs": 835, - "high_flow_cfs": 4530, - "nwm_to_id": "11906034", - "source_nwm_reach": "nwm_flows_v3.parquet" - }, - "11906036": { - "us_xs": { - "river": "Patuxent River", - "reach": "1", - "min_elevation": 40.3, - "max_elevation": 68.8, - "xs_id": 136140.3 - }, - "ds_xs": { - "river": "Patuxent River", - "reach": "1", - "min_elevation": 39.1, - "max_elevation": 81.69, - "xs_id": 134652.2 - }, - "low_flow_cfs": 861, - "high_flow_cfs": 4603, - "nwm_to_id": "11906038", - "source_nwm_reach": "nwm_flows_v3.parquet" - }, - "11906232": { - "us_xs": { - "river": "Patuxent River", - "reach": "1", - "min_elevation": 90.1, - "max_elevation": 108.89, - "xs_id": 176090.0 - }, - "ds_xs": { - "river": "Patuxent River", - "reach": "1", - "min_elevation": 85.1, - "max_elevation": 117.87, - "xs_id": 173461.9 - }, - "low_flow_cfs": 851, - "high_flow_cfs": 4986, - "nwm_to_id": "11906240", - "source_nwm_reach": "nwm_flows_v3.parquet" - }, - "11905976": { - "us_xs": { - "river": "Patuxent River", - "reach": "1", - "min_elevation": 63.5, - "max_elevation": 104.21, - "xs_id": 156362.6 - }, - "ds_xs": { - "river": "Patuxent River", - "reach": "1", - "min_elevation": 62.6, - "max_elevation": 100.3, - "xs_id": 155014.3 - }, - "low_flow_cfs": 831, - "high_flow_cfs": 4626, - "nwm_to_id": "11905984", - "source_nwm_reach": "nwm_flows_v3.parquet" - }, - "11906048": { - "us_xs": { - "river": "Patuxent River", - "reach": "1", - "min_elevation": 37.2, - "max_elevation": 70.85, - "xs_id": 132261.7 - }, - "ds_xs": { - "river": "Patuxent River", - "reach": "1", - "min_elevation": 36.4, - "max_elevation": 65.54, - "xs_id": 131156.0 - }, - "low_flow_cfs": 925, - "high_flow_cfs": 5350, - "nwm_to_id": "11906328", - "source_nwm_reach": "nwm_flows_v3.parquet" - }, - "11906046": { - "us_xs": { - "river": "Patuxent River", - "reach": "1", - "min_elevation": 39.1, - "max_elevation": 81.69, - "xs_id": 134652.2 - }, - "ds_xs": { - "river": "Patuxent River", - "reach": "1", - "min_elevation": 37.2, - "max_elevation": 70.85, - "xs_id": 132261.7 - }, - "low_flow_cfs": 916, - "high_flow_cfs": 5085, - "nwm_to_id": "11906048", - "source_nwm_reach": "nwm_flows_v3.parquet" - }, - "11906038": { - "us_xs": { - "xs_id": "-9999" - }, - "low_flow_cfs": 863, - "high_flow_cfs": 4597, - "nwm_to_id": "11906046", - "source_nwm_reach": "nwm_flows_v3.parquet" - }, - "11906304": { - "us_xs": { - "river": "Patuxent River", - "reach": "1", - "min_elevation": 50.2, - "max_elevation": 114.55, - "xs_id": 147072.6 - }, - "ds_xs": { - "river": "Patuxent River", - "reach": "1", - "min_elevation": 43.8, - "max_elevation": 83.0, - "xs_id": 140356.0 - }, - "low_flow_cfs": 838, - "high_flow_cfs": 4597, - "nwm_to_id": "11906030", - "source_nwm_reach": "nwm_flows_v3.parquet" - }, - "11906290": { - "us_xs": { - "river": "Patuxent River", - "reach": "1", - "min_elevation": 61.6, - "max_elevation": 97.16, - "xs_id": 153499.9 - }, - "ds_xs": { - "river": "Patuxent River", - "reach": "1", - "min_elevation": 58.8, - "max_elevation": 82.0, - "xs_id": 149785.6 - }, - "low_flow_cfs": 837, - "high_flow_cfs": 4647, - "nwm_to_id": "11905990", - "source_nwm_reach": "nwm_flows_v3.parquet" - }, - "11906282": { - "us_xs": { - "river": "Patuxent River", - "reach": "1", - "min_elevation": 71.9, - "max_elevation": 166.1, - "xs_id": 161033.5 - }, - "ds_xs": { - "river": "Patuxent River", - "reach": "1", - "min_elevation": 63.5, - "max_elevation": 104.21, - "xs_id": 156362.6 - }, - "low_flow_cfs": 826, - "high_flow_cfs": 4759, - "nwm_to_id": "11905974", - "source_nwm_reach": "nwm_flows_v3.parquet" - }, - "11906240": { - "us_xs": { - "river": "Patuxent River", - "reach": "1", - "min_elevation": 85.1, - "max_elevation": 117.87, - "xs_id": 173461.9 - }, - "ds_xs": { - "river": "Patuxent River", - "reach": "1", - "min_elevation": 77.2, - "max_elevation": 133.77, - "xs_id": 168859.9 - }, - "low_flow_cfs": 844, - "high_flow_cfs": 4928, - "nwm_to_id": "11905886", - "source_nwm_reach": "nwm_flows_v3.parquet" - }, - "11908588": { - "us_xs": { - "river": "Patuxent River", - "reach": "1", - "min_elevation": -8.5, - "max_elevation": 53.21, - "xs_id": 26469.46 - }, - "ds_xs": { - "river": "Patuxent River", - "reach": "1", - "min_elevation": -16.2, - "max_elevation": 70.28, - "xs_id": 21021.22 - }, - "low_flow_cfs": 2030, - "high_flow_cfs": 19073, - "nwm_to_id": "11908594", - "source_nwm_reach": "nwm_flows_v3.parquet" - }, - "11908578": { - "us_xs": { - "xs_id": "-9999" - }, - "low_flow_cfs": 2023, - "high_flow_cfs": 20836, - "nwm_to_id": "11908582", - "source_nwm_reach": "nwm_flows_v3.parquet" - }, - "11908576": { - "us_xs": { - "river": "Patuxent River", - "reach": "1", - "min_elevation": -5.3, - "max_elevation": 62.95, - "xs_id": 39893.46 - }, - "ds_xs": { - "river": "Patuxent River", - "reach": "1", - "min_elevation": -10.6, - "max_elevation": 93.12, - "xs_id": 32805.59 - }, - "low_flow_cfs": 2018, - "high_flow_cfs": 20822, - "nwm_to_id": "11908578", - "source_nwm_reach": "nwm_flows_v3.parquet" - }, - "11908572": { - "us_xs": { - "river": "Patuxent River", - "reach": "1", - "min_elevation": -1.0, - "max_elevation": 25.3, - "xs_id": 41827.22 - }, - "ds_xs": { - "river": "Patuxent River", - "reach": "1", - "min_elevation": -5.3, - "max_elevation": 62.95, - "xs_id": 39893.46 - }, - "low_flow_cfs": 2032, - "high_flow_cfs": 21336, - "nwm_to_id": "11908576", - "source_nwm_reach": "nwm_flows_v3.parquet" - }, - "11908562": { - "us_xs": { - "river": "Patuxent River", - "reach": "1", - "min_elevation": -7.2, - "max_elevation": 87.88, - "xs_id": 44258.6 - }, - "ds_xs": { - "river": "Patuxent River", - "reach": "1", - "min_elevation": -6.8, - "max_elevation": 58.8, - "xs_id": 42465.83 - }, - "low_flow_cfs": 2032, - "high_flow_cfs": 21368, - "nwm_to_id": "11908566", - "source_nwm_reach": "nwm_flows_v3.parquet" - }, - "11908566": { - "us_xs": { - "river": "Patuxent River", - "reach": "1", - "min_elevation": -6.8, - "max_elevation": 58.8, - "xs_id": 42465.83 - }, - "ds_xs": { - "river": "Patuxent River", - "reach": "1", - "min_elevation": -1.0, - "max_elevation": 25.3, - "xs_id": 41827.22 - }, - "low_flow_cfs": 2033, - "high_flow_cfs": 21395, - "nwm_to_id": "11908572", - "source_nwm_reach": "nwm_flows_v3.parquet" - }, - "11907892": { - "us_xs": { - "river": "Patuxent River", - "reach": "1", - "min_elevation": -7.3, - "max_elevation": 54.01, - "xs_id": 51040.86 - }, - "ds_xs": { - "river": "Patuxent River", - "reach": "1", - "min_elevation": -6.6, - "max_elevation": 56.39, - "xs_id": 49806.06 - }, - "low_flow_cfs": 2031, - "high_flow_cfs": 21512, - "nwm_to_id": "11908554", - "source_nwm_reach": "nwm_flows_v3.parquet" - }, - "11908554": { - "us_xs": { - "river": "Patuxent River", - "reach": "1", - "min_elevation": -6.6, - "max_elevation": 56.39, - "xs_id": 49806.06 - }, - "ds_xs": { - "river": "Patuxent River", - "reach": "1", - "min_elevation": -7.0, - "max_elevation": 51.18, - "xs_id": 45507.47 - }, - "low_flow_cfs": 2024, - "high_flow_cfs": 21267, - "nwm_to_id": "11908560", - "source_nwm_reach": "nwm_flows_v3.parquet" - }, - "11908560": { - "us_xs": { - "river": "Patuxent River", - "reach": "1", - "min_elevation": -7.0, - "max_elevation": 51.18, - "xs_id": 45507.47 - }, - "ds_xs": { - "river": "Patuxent River", - "reach": "1", - "min_elevation": -7.2, - "max_elevation": 87.88, - "xs_id": 44258.6 - }, - "low_flow_cfs": 2025, - "high_flow_cfs": 21095, - "nwm_to_id": "11908562", - "source_nwm_reach": "nwm_flows_v3.parquet" - }, - "11907880": { - "us_xs": { - "river": "Patuxent River", - "reach": "1", - "min_elevation": -8.5, - "max_elevation": 64.68, - "xs_id": 59049.43 - }, - "ds_xs": { - "river": "Patuxent River", - "reach": "1", - "min_elevation": -7.3, - "max_elevation": 54.01, - "xs_id": 51040.86 - }, - "low_flow_cfs": 2015, - "high_flow_cfs": 20649, - "nwm_to_id": "11907892", - "source_nwm_reach": "nwm_flows_v3.parquet" - }, - "11907860": { - "us_xs": { - "river": "Patuxent River", - "reach": "1", - "min_elevation": -7.6, - "max_elevation": 67.85, - "xs_id": 59680.21 - }, - "ds_xs": { - "river": "Patuxent River", - "reach": "1", - "min_elevation": -8.5, - "max_elevation": 64.68, - "xs_id": 59049.43 - }, - "low_flow_cfs": 2031, - "high_flow_cfs": 22720, - "nwm_to_id": "11907880", - "source_nwm_reach": "nwm_flows_v3.parquet" - }, - "11907854": { - "us_xs": { - "river": "Patuxent River", - "reach": "1", - "min_elevation": -5.7, - "max_elevation": 74.83, - "xs_id": 60994.13 - }, - "ds_xs": { - "river": "Patuxent River", - "reach": "1", - "min_elevation": -7.6, - "max_elevation": 67.85, - "xs_id": 59680.21 - }, - "low_flow_cfs": 2017, - "high_flow_cfs": 22677, - "nwm_to_id": "11907860", - "source_nwm_reach": "nwm_flows_v3.parquet" - }, - "11907848": { - "us_xs": { - "river": "Patuxent River", - "reach": "1", - "min_elevation": -7.9, - "max_elevation": 73.85, - "xs_id": 63352.65 - }, - "ds_xs": { - "river": "Patuxent River", - "reach": "1", - "min_elevation": -5.7, - "max_elevation": 74.83, - "xs_id": 60994.13 - }, - "low_flow_cfs": 2018, - "high_flow_cfs": 22600, - "nwm_to_id": "11907854", - "source_nwm_reach": "nwm_flows_v3.parquet" - }, - "11907838": { - "us_xs": { - "river": "Patuxent River", - "reach": "1", - "min_elevation": -5.9, - "max_elevation": 75.34, - "xs_id": 64024.26 - }, - "ds_xs": { - "river": "Patuxent River", - "reach": "1", - "min_elevation": -7.9, - "max_elevation": 73.85, - "xs_id": 63352.65 - }, - "low_flow_cfs": 1980, - "high_flow_cfs": 22834, - "nwm_to_id": "11907848", - "source_nwm_reach": "nwm_flows_v3.parquet" - }, - "11907832": { - "us_xs": { - "river": "Patuxent River", - "reach": "1", - "min_elevation": -2.8, - "max_elevation": 58.98, - "xs_id": 69955.36 - }, - "ds_xs": { - "river": "Patuxent River", - "reach": "1", - "min_elevation": -5.9, - "max_elevation": 75.34, - "xs_id": 64024.26 - }, - "low_flow_cfs": 1965, - "high_flow_cfs": 22816, - "nwm_to_id": "11907838", - "source_nwm_reach": "nwm_flows_v3.parquet" - }, - "11907806": { - "us_xs": { - "river": "Patuxent River", - "reach": "1", - "min_elevation": 4.7, - "max_elevation": 64.61, - "xs_id": 79897.28 - }, - "ds_xs": { - "river": "Patuxent River", - "reach": "1", - "min_elevation": -2.8, - "max_elevation": 58.98, - "xs_id": 69955.36 - }, - "low_flow_cfs": 2023, - "high_flow_cfs": 24523, - "nwm_to_id": "11907832", - "source_nwm_reach": "nwm_flows_v3.parquet" - }, - "11907782": { - "us_xs": { - "river": "Patuxent River", - "reach": "1", - "min_elevation": 5.1, - "max_elevation": 95.95, - "xs_id": 86341.97 - }, - "ds_xs": { - "river": "Patuxent River", - "reach": "1", - "min_elevation": 4.7, - "max_elevation": 64.61, - "xs_id": 79897.28 - }, - "low_flow_cfs": 2057, - "high_flow_cfs": 25101, - "nwm_to_id": "11907806", - "source_nwm_reach": "nwm_flows_v3.parquet" - }, - "11907774": { - "us_xs": { - "xs_id": "-9999" - }, - "low_flow_cfs": 2036, - "high_flow_cfs": 25139, - "nwm_to_id": "11907782", - "source_nwm_reach": "nwm_flows_v3.parquet" - }, - "11908324": { - "us_xs": { - "river": "Patuxent River", - "reach": "1", - "min_elevation": 3.9, - "max_elevation": 68.46, - "xs_id": 92395.85 - }, - "ds_xs": { - "river": "Patuxent River", - "reach": "1", - "min_elevation": 5.1, - "max_elevation": 95.95, - "xs_id": 86341.97 - }, - "low_flow_cfs": 2023, - "high_flow_cfs": 24922, - "nwm_to_id": "11907774", - "source_nwm_reach": "nwm_flows_v3.parquet" - }, - "11908316": { - "us_xs": { - "river": "Patuxent River", - "reach": "1", - "min_elevation": 7.0, - "max_elevation": 62.04, - "xs_id": 97274.14 - }, - "ds_xs": { - "river": "Patuxent River", - "reach": "1", - "min_elevation": 3.9, - "max_elevation": 68.46, - "xs_id": 92395.85 - }, - "low_flow_cfs": 2042, - "high_flow_cfs": 25872, - "nwm_to_id": "11908324", - "source_nwm_reach": "nwm_flows_v3.parquet" - }, - "11907764": { - "us_xs": { - "xs_id": "-9999" - }, - "low_flow_cfs": 2093, - "high_flow_cfs": 28222, - "nwm_to_id": "11908316", - "source_nwm_reach": "nwm_flows_v3.parquet" - }, - "11907762": { - "us_xs": { - "river": "Patuxent River", - "reach": "1", - "min_elevation": 10.38, - "max_elevation": 66.53, - "xs_id": 101166.3 - }, - "ds_xs": { - "river": "Patuxent River", - "reach": "1", - "min_elevation": 7.0, - "max_elevation": 62.04, - "xs_id": 97274.14 - }, - "low_flow_cfs": 2084, - "high_flow_cfs": 29199, - "nwm_to_id": "11907764", - "source_nwm_reach": "nwm_flows_v3.parquet" - }, - "11907758": { - "us_xs": { - "river": "Patuxent River", - "reach": "1", - "min_elevation": 8.7, - "max_elevation": 97.41, - "xs_id": 106061.7 - }, - "ds_xs": { - "river": "Patuxent River", - "reach": "1", - "min_elevation": 10.38, - "max_elevation": 66.53, - "xs_id": 101166.3 - }, - "low_flow_cfs": 2082, - "high_flow_cfs": 30112, - "nwm_to_id": "11907762", - "gage": "01594440", - "gage_url": "https://waterdata.usgs.gov/nwis/uv?site_no=01594440&legacy=1", - "source_nwm_reach": "nwm_flows_v3.parquet" - }, - "11907746": { - "us_xs": { - "river": "Patuxent River", - "reach": "1", - "min_elevation": 10.5, - "max_elevation": 93.12, - "xs_id": 110321.2 - }, - "ds_xs": { - "river": "Patuxent River", - "reach": "1", - "min_elevation": 8.7, - "max_elevation": 97.41, - "xs_id": 106061.7 - }, - "low_flow_cfs": 2087, - "high_flow_cfs": 30505, - "nwm_to_id": "11907758", - "source_nwm_reach": "nwm_flows_v3.parquet" - }, - "11908300": { - "us_xs": { - "river": "Patuxent River", - "reach": "1", - "min_elevation": 10.4, - "max_elevation": 112.8, - "xs_id": 113857.7 - }, - "ds_xs": { - "river": "Patuxent River", - "reach": "1", - "min_elevation": 10.5, - "max_elevation": 93.12, - "xs_id": 110321.2 - }, - "low_flow_cfs": 2084, - "high_flow_cfs": 31491, - "nwm_to_id": "11907746", - "source_nwm_reach": "nwm_flows_v3.parquet" - }, - "11908298": { - "us_xs": { - "river": "Patuxent River", - "reach": "1", - "min_elevation": 11.8, - "max_elevation": 96.51, - "xs_id": 117158.6 - }, - "ds_xs": { - "river": "Patuxent River", - "reach": "1", - "min_elevation": 10.4, - "max_elevation": 112.8, - "xs_id": 113857.7 - }, - "low_flow_cfs": 2081, - "high_flow_cfs": 31142, - "nwm_to_id": "11908300", - "source_nwm_reach": "nwm_flows_v3.parquet" - }, - "11908292": { - "us_xs": { - "river": "Patuxent River", - "reach": "1", - "min_elevation": 20.5, - "max_elevation": 81.42, - "xs_id": 118899.1 - }, - "ds_xs": { - "river": "Patuxent River", - "reach": "1", - "min_elevation": 11.8, - "max_elevation": 96.51, - "xs_id": 117158.6 - }, - "low_flow_cfs": 2082, - "high_flow_cfs": 30793, - "nwm_to_id": "11908298", - "source_nwm_reach": "nwm_flows_v3.parquet" + "reaches": { + "11908582": { + "us_xs": { + "river": "Patuxent River", + "reach": "1", + "min_elevation": -10.6, + "max_elevation": 93.12, + "xs_id": 32805.59 + }, + "ds_xs": { + "river": "Patuxent River", + "reach": "1", + "min_elevation": -8.5, + "max_elevation": 53.21, + "xs_id": 26469.46 + }, + "eclipsed": false, + "low_flow": 2025, + "high_flow": 19969, + "network_to_id": "11908588", + "metrics": { + "xs": { + "centerline_offset": { + "count": 10, + "mean": 13, + "std": 8, + "min": 1, + "25%": 6, + "50%": 14, + "75%": 21, + "max": 24 + }, + "thalweg_offset": { + "count": 10, + "mean": 40, + "std": 34, + "min": 1, + "25%": 12, + "50%": 39, + "75%": 54, + "max": 98 + } + }, + "lengths": { + "ras": 6377, + "network": 6334, + "network_to_ras_ratio": 0.99 + }, + "coverage": { + "start": 0.09, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "11908588", + "overlap": 757 + } + ], + "eclipsed_reaches": [ + "11908584", + "11908586" + ] + }, + "11907736": { + "us_xs": { + "river": "Patuxent River", + "reach": "1", + "min_elevation": 18.1, + "max_elevation": 95.86, + "xs_id": 122117.8 + }, + "ds_xs": { + "river": "Patuxent River", + "reach": "1", + "min_elevation": 20.5, + "max_elevation": 81.42, + "xs_id": 118899.1 + }, + "eclipsed": false, + "low_flow": 983, + "high_flow": 6615, + "network_to_id": "11908292", + "metrics": { + "xs": { + "centerline_offset": { + "count": 5, + "mean": 55, + "std": 26, + "min": 23, + "25%": 39, + "50%": 54, + "75%": 66, + "max": 92 + }, + "thalweg_offset": { + "count": 5, + "mean": 47, + "std": 18, + "min": 25, + "25%": 36, + "50%": 41, + "75%": 65, + "max": 67 + } + }, + "lengths": { + "ras": 3220, + "network": 2712, + "network_to_ras_ratio": 0.84 + }, + "coverage": { + "start": 0.19, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "11908292", + "overlap": 299 + } + ], + "eclipsed_reaches": [ + "11907734" + ] + }, + "11906060": { + "eclipsed": true, + "low_flow": 931, + "high_flow": 5365, + "network_to_id": "11907726" + }, + "11907726": { + "us_xs": { + "river": "Patuxent River", + "reach": "1", + "min_elevation": 23.5, + "max_elevation": 92.56, + "xs_id": 127390.9 + }, + "ds_xs": { + "river": "Patuxent River", + "reach": "1", + "min_elevation": 18.1, + "max_elevation": 95.86, + "xs_id": 122117.8 + }, + "eclipsed": false, + "low_flow": 961, + "high_flow": 5617, + "network_to_id": "11907736", + "metrics": { + "xs": { + "centerline_offset": { + "count": 4, + "mean": 30, + "std": 41, + "min": 6, + "25%": 9, + "50%": 12, + "75%": 33, + "max": 92 + }, + "thalweg_offset": { + "count": 4, + "mean": 25, + "std": 29, + "min": 3, + "25%": 10, + "50%": 14, + "75%": 29, + "max": 67 + } + }, + "lengths": { + "ras": 5260, + "network": 5254, + "network_to_ras_ratio": 1.0 + }, + "coverage": { + "start": 0.01, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "11907736", + "overlap": 577 + } + ], + "eclipsed_reaches": [] + }, + "11906328": { + "us_xs": { + "river": "Patuxent River", + "reach": "1", + "min_elevation": 36.4, + "max_elevation": 65.54, + "xs_id": 131156.0 + }, + "ds_xs": { + "river": "Patuxent River", + "reach": "1", + "min_elevation": 23.5, + "max_elevation": 92.56, + "xs_id": 127390.9 + }, + "eclipsed": false, + "low_flow": 930, + "high_flow": 5503, + "network_to_id": "11906060", + "metrics": { + "xs": { + "centerline_offset": { + "count": 4, + "mean": 19, + "std": 15, + "min": 5, + "25%": 9, + "50%": 15, + "75%": 25, + "max": 40 + }, + "thalweg_offset": { + "count": 4, + "mean": 19, + "std": 14, + "min": 8, + "25%": 11, + "50%": 15, + "75%": 23, + "max": 39 + } + }, + "lengths": { + "ras": 3776, + "network": 3574, + "network_to_ras_ratio": 0.95 + }, + "coverage": { + "start": 0.02, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "11907726", + "overlap": 53 + } + ], + "eclipsed_reaches": [ + "11906060" + ] + }, + "11906034": { + "us_xs": { + "river": "Patuxent River", + "reach": "1", + "min_elevation": 41.3, + "max_elevation": 82.06, + "xs_id": 137262.7 + }, + "ds_xs": { + "river": "Patuxent River", + "reach": "1", + "min_elevation": 40.3, + "max_elevation": 68.8, + "xs_id": 136140.3 + }, + "eclipsed": false, + "low_flow": 863, + "high_flow": 4639, + "network_to_id": "11906036", + "metrics": { + "xs": { + "centerline_offset": { + "count": 2, + "mean": 17, + "std": 4, + "min": 14, + "25%": 16, + "50%": 17, + "75%": 19, + "max": 20 + }, + "thalweg_offset": { + "count": 2, + "mean": 20, + "std": 4, + "min": 17, + "25%": 19, + "50%": 20, + "75%": 21, + "max": 23 + } + }, + "lengths": { + "ras": 1125, + "network": 1068, + "network_to_ras_ratio": 0.95 + }, + "coverage": { + "start": 0.05, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "11906036", + "overlap": 49 + } + ], + "eclipsed_reaches": [] + }, + "11906000": { + "eclipsed": true, + "low_flow": 838, + "high_flow": 4552, + "network_to_id": "11906304" + }, + "11905990": { + "us_xs": { + "river": "Patuxent River", + "reach": "1", + "min_elevation": 58.8, + "max_elevation": 82.0, + "xs_id": 149785.6 + }, + "ds_xs": { + "river": "Patuxent River", + "reach": "1", + "min_elevation": 55.7, + "max_elevation": 102.27, + "xs_id": 148278.9 + }, + "eclipsed": false, + "low_flow": 840, + "high_flow": 4625, + "network_to_id": "11905994", + "metrics": { + "xs": { + "centerline_offset": { + "count": 2, + "mean": 12, + "std": 8, + "min": 6, + "25%": 9, + "50%": 12, + "75%": 14, + "max": 17 + }, + "thalweg_offset": { + "count": 2, + "mean": 21, + "std": 4, + "min": 18, + "25%": 19, + "50%": 21, + "75%": 22, + "max": 24 + } + }, + "lengths": { + "ras": 1497, + "network": 1421, + "network_to_ras_ratio": 0.95 + }, + "coverage": { + "start": 0.39, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "11905994", + "overlap": 1093 + } + ], + "eclipsed_reaches": [] + }, + "11906276": { + "us_xs": { + "river": "Patuxent River", + "reach": "1", + "min_elevation": 73.6, + "max_elevation": 122.77, + "xs_id": 163384.4 + }, + "ds_xs": { + "river": "Patuxent River", + "reach": "1", + "min_elevation": 71.9, + "max_elevation": 166.1, + "xs_id": 161033.5 + }, + "eclipsed": false, + "low_flow": 836, + "high_flow": 4814, + "network_to_id": "11906282", + "metrics": { + "xs": { + "centerline_offset": { + "count": 5, + "mean": 8, + "std": 4, + "min": 2, + "25%": 6, + "50%": 9, + "75%": 9, + "max": 12 + }, + "thalweg_offset": { + "count": 5, + "mean": 15, + "std": 7, + "min": 4, + "25%": 14, + "50%": 16, + "75%": 20, + "max": 22 + } + }, + "lengths": { + "ras": 2342, + "network": 2140, + "network_to_ras_ratio": 0.91 + }, + "coverage": { + "start": 0.25, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "11906282", + "overlap": 1025 + } + ], + "eclipsed_reaches": [ + "11906444", + "11906278" + ] + }, + "11905958": { + "us_xs": { + "river": "Patuxent River", + "reach": "1", + "min_elevation": 72.95, + "max_elevation": 105.86, + "xs_id": 164309.7 + }, + "ds_xs": { + "river": "Patuxent River", + "reach": "1", + "min_elevation": 73.6, + "max_elevation": 122.77, + "xs_id": 163384.4 + }, + "eclipsed": false, + "low_flow": 835, + "high_flow": 4790, + "network_to_id": "11906276", + "metrics": { + "xs": { + "centerline_offset": { + "count": 3, + "mean": 4, + "std": 5, + "min": 1, + "25%": 2, + "50%": 2, + "75%": 6, + "max": 9 + }, + "thalweg_offset": { + "count": 3, + "mean": 3, + "std": 2, + "min": 1, + "25%": 2, + "50%": 2, + "75%": 3, + "max": 4 + } + }, + "lengths": { + "ras": 919, + "network": 943, + "network_to_ras_ratio": 1.03 + }, + "coverage": { + "start": 0.25, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "11906276", + "overlap": 373 + } + ], + "eclipsed_reaches": [ + "11906424", + "11906426" + ] + }, + "11906270": { + "us_xs": { + "river": "Patuxent River", + "reach": "1", + "min_elevation": 73.1, + "max_elevation": 103.51, + "xs_id": 165339.0 + }, + "ds_xs": { + "river": "Patuxent River", + "reach": "1", + "min_elevation": 72.95, + "max_elevation": 105.86, + "xs_id": 164309.7 + }, + "eclipsed": false, + "low_flow": 833, + "high_flow": 4774, + "network_to_id": "11905958", + "metrics": { + "xs": { + "centerline_offset": { + "count": 2, + "mean": 13, + "std": 16, + "min": 2, + "25%": 7, + "50%": 13, + "75%": 19, + "max": 24 + }, + "thalweg_offset": { + "count": 2, + "mean": 13, + "std": 17, + "min": 1, + "25%": 7, + "50%": 13, + "75%": 19, + "max": 25 + } + }, + "lengths": { + "ras": 1033, + "network": 1097, + "network_to_ras_ratio": 1.06 + }, + "coverage": { + "start": 0.27, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "11905958", + "overlap": 190 + } + ], + "eclipsed_reaches": [ + "11906274" + ] + }, + "11905918": { + "us_xs": { + "river": "Patuxent River", + "reach": "1", + "min_elevation": 73.2, + "max_elevation": 101.98, + "xs_id": 166384.6 + }, + "ds_xs": { + "river": "Patuxent River", + "reach": "1", + "min_elevation": 73.1, + "max_elevation": 103.51, + "xs_id": 165339.0 + }, + "eclipsed": false, + "low_flow": 841, + "high_flow": 4901, + "network_to_id": "11906270", + "metrics": { + "xs": { + "centerline_offset": { + "count": 2, + "mean": 110, + "std": 122, + "min": 24, + "25%": 67, + "50%": 110, + "75%": 153, + "max": 196 + }, + "thalweg_offset": { + "count": 2, + "mean": 109, + "std": 119, + "min": 25, + "25%": 67, + "50%": 109, + "75%": 151, + "max": 193 + } + }, + "lengths": { + "ras": 1053, + "network": 975, + "network_to_ras_ratio": 0.93 + }, + "coverage": { + "start": 0.54, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "11906270", + "overlap": 343 + } + ], + "eclipsed_reaches": [] + }, + "11905914": { + "us_xs": { + "river": "Patuxent River", + "reach": "1", + "min_elevation": 77.2, + "max_elevation": 133.77, + "xs_id": 168859.9 + }, + "ds_xs": { + "river": "Patuxent River", + "reach": "1", + "min_elevation": 73.2, + "max_elevation": 101.98, + "xs_id": 166384.6 + }, + "eclipsed": false, + "low_flow": 842, + "high_flow": 4919, + "network_to_id": "11905918", + "metrics": { + "xs": { + "centerline_offset": { + "count": 3, + "mean": 315, + "std": 118, + "min": 196, + "25%": 255, + "50%": 314, + "75%": 374, + "max": 433 + }, + "thalweg_offset": { + "count": 3, + "mean": 315, + "std": 120, + "min": 193, + "25%": 256, + "50%": 320, + "75%": 376, + "max": 433 + } + }, + "lengths": { + "ras": 2478, + "network": 1988, + "network_to_ras_ratio": 0.8 + }, + "coverage": { + "start": 0.4, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "11905918", + "overlap": 743 + } + ], + "eclipsed_reaches": [ + "11905910" + ] + }, + "11905886": { + "eclipsed": true, + "low_flow": 846, + "high_flow": 4954, + "network_to_id": "11905914" + }, + "11905848": { + "eclipsed": true, + "low_flow": 832, + "high_flow": 4814, + "network_to_id": "11906232" + }, + "11905844": { + "us_xs": { + "river": "Patuxent River", + "reach": "1", + "min_elevation": 96.6, + "max_elevation": 126.51, + "xs_id": 180215.6 + }, + "ds_xs": { + "river": "Patuxent River", + "reach": "1", + "min_elevation": 90.1, + "max_elevation": 108.89, + "xs_id": 176090.0 + }, + "eclipsed": false, + "low_flow": 833, + "high_flow": 4852, + "network_to_id": "11905848", + "metrics": { + "xs": { + "centerline_offset": { + "count": 5, + "mean": 141, + "std": 68, + "min": 34, + "25%": 126, + "50%": 143, + "75%": 199, + "max": 200 + }, + "thalweg_offset": { + "count": 5, + "mean": 138, + "std": 66, + "min": 40, + "25%": 121, + "50%": 133, + "75%": 189, + "max": 207 + } + }, + "lengths": { + "ras": 4112, + "network": 3437, + "network_to_ras_ratio": 0.84 + }, + "coverage": { + "start": 0.34, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "11906232", + "overlap": 610 + } + ], + "eclipsed_reaches": [ + "11905848", + "11905854", + "11905856" + ] + }, + "11905836": { + "eclipsed": true, + "low_flow": 836, + "high_flow": 4799, + "network_to_id": "11905844" + }, + "11905838": { + "us_xs": { + "river": "Patuxent River", + "reach": "1", + "min_elevation": 99.89999, + "max_elevation": 133.81, + "xs_id": 183459.5 + }, + "ds_xs": { + "river": "Patuxent River", + "reach": "1", + "min_elevation": 96.6, + "max_elevation": 126.51, + "xs_id": 180215.6 + }, + "eclipsed": false, + "low_flow": 835, + "high_flow": 4812, + "network_to_id": "11905836", + "metrics": { + "xs": { + "centerline_offset": { + "count": 5, + "mean": 51, + "std": 84, + "min": 6, + "25%": 7, + "50%": 11, + "75%": 32, + "max": 199 + }, + "thalweg_offset": { + "count": 5, + "mean": 54, + "std": 86, + "min": 5, + "25%": 9, + "50%": 15, + "75%": 31, + "max": 207 + } + }, + "lengths": { + "ras": 3253, + "network": 3980, + "network_to_ras_ratio": 1.22 + }, + "coverage": { + "start": 0.06, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "11905844", + "overlap": 1270 + } + ], + "eclipsed_reaches": [ + "11905836" + ] + }, + "11906208": { + "us_xs": { + "river": "Patuxent River", + "reach": "1", + "min_elevation": 102.33, + "max_elevation": 130.77, + "xs_id": 185454.7 + }, + "ds_xs": { + "river": "Patuxent River", + "reach": "1", + "min_elevation": 99.89999, + "max_elevation": 133.81, + "xs_id": 183459.5 + }, + "eclipsed": false, + "low_flow": 836, + "high_flow": 4915, + "network_to_id": "11905838", + "metrics": { + "xs": { + "centerline_offset": { + "count": 4, + "mean": 78, + "std": 98, + "min": 11, + "25%": 23, + "50%": 39, + "75%": 94, + "max": 223 + }, + "thalweg_offset": { + "count": 4, + "mean": 76, + "std": 99, + "min": 15, + "25%": 15, + "50%": 32, + "75%": 93, + "max": 223 + } + }, + "lengths": { + "ras": 1988, + "network": 825, + "network_to_ras_ratio": 0.42 + }, + "coverage": { + "start": 0.81, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "11905838", + "overlap": 120 + } + ], + "eclipsed_reaches": [ + "11905832" + ] + }, + "11905834": { + "us_xs": { + "river": "Patuxent River", + "reach": "1", + "min_elevation": 103.26, + "max_elevation": 141.2, + "xs_id": 186994.1 + }, + "ds_xs": { + "river": "Patuxent River", + "reach": "1", + "min_elevation": 99.03, + "max_elevation": 132.69, + "xs_id": 183710.5 + }, + "eclipsed": false, + "low_flow": 836, + "high_flow": 4785, + "network_to_id": "11906208", + "metrics": { + "xs": { + "centerline_offset": { + "count": 7, + "mean": 14, + "std": 17, + "min": 3, + "25%": 5, + "50%": 8, + "75%": 12, + "max": 51 + }, + "thalweg_offset": { + "count": 7, + "mean": 17, + "std": 16, + "min": 2, + "25%": 9, + "50%": 14, + "75%": 18, + "max": 50 + } + }, + "lengths": { + "ras": 3287, + "network": 6323, + "network_to_ras_ratio": 1.92 + }, + "coverage": { + "start": 0.0, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "11906208", + "overlap": 2965 + } + ], + "eclipsed_reaches": [] + }, + "11905828": { + "us_xs": { + "river": "Patuxent River", + "reach": "1", + "min_elevation": 105.79, + "max_elevation": 146.6, + "xs_id": 189009.2 + }, + "ds_xs": { + "river": "Patuxent River", + "reach": "1", + "min_elevation": 103.26, + "max_elevation": 141.2, + "xs_id": 186994.1 + }, + "eclipsed": false, + "low_flow": 809, + "high_flow": 4408, + "network_to_id": "11905834", + "metrics": { + "xs": { + "centerline_offset": { + "count": 4, + "mean": 21, + "std": 20, + "min": 4, + "25%": 7, + "50%": 16, + "75%": 29, + "max": 47 + }, + "thalweg_offset": { + "count": 4, + "mean": 22, + "std": 24, + "min": 2, + "25%": 3, + "50%": 17, + "75%": 37, + "max": 53 + } + }, + "lengths": { + "ras": 2019, + "network": 2057, + "network_to_ras_ratio": 1.02 + }, + "coverage": { + "start": 0.11, + "end": 1.0 + } + }, + "overlapped_reaches": [ + { + "id": "11906208", + "overlap": 644 + } + ], + "eclipsed_reaches": [] + }, + "11905820": { + "us_xs": { + "river": "Patuxent River", + "reach": "1", + "min_elevation": 112.1, + "max_elevation": 141.7, + "xs_id": 192514.9 + }, + "ds_xs": { + "river": "Patuxent River", + "reach": "1", + "min_elevation": 105.79, + "max_elevation": 146.6, + "xs_id": 189009.2 + }, + "eclipsed": false, + "low_flow": 780, + "high_flow": 3751, + "network_to_id": "11905828", + "metrics": { + "xs": { + "centerline_offset": { + "count": 5, + "mean": 28, + "std": 12, + "min": 15, + "25%": 24, + "50%": 27, + "75%": 28, + "max": 47 + }, + "thalweg_offset": { + "count": 5, + "mean": 258, + "std": 154, + "min": 53, + "25%": 158, + "50%": 272, + "75%": 383, + "max": 422 + } + }, + "lengths": { + "ras": 3524, + "network": 3416, + "network_to_ras_ratio": 0.97 + }, + "coverage": { + "start": 0.16, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "11905828", + "overlap": 265 + } + ], + "eclipsed_reaches": [] + }, + "11906198": { + "us_xs": { + "river": "Patuxent River", + "reach": "1", + "min_elevation": 112.3, + "max_elevation": 141.81, + "xs_id": 193854.4 + }, + "ds_xs": { + "river": "Patuxent River", + "reach": "1", + "min_elevation": 112.3, + "max_elevation": 146.72, + "xs_id": 193176.6 + }, + "eclipsed": false, + "low_flow": 416, + "high_flow": 2088, + "network_to_id": "11905820", + "metrics": { + "xs": { + "centerline_offset": { + "count": 2, + "mean": 131, + "std": 182, + "min": 3, + "25%": 67, + "50%": 131, + "75%": 196, + "max": 260 + }, + "thalweg_offset": { + "count": 2, + "mean": 133, + "std": 183, + "min": 4, + "25%": 68, + "50%": 133, + "75%": 198, + "max": 262 + } + }, + "lengths": { + "ras": 679, + "network": 1119, + "network_to_ras_ratio": 1.65 + }, + "coverage": { + "start": 0.04, + "end": 1.0 + } + }, + "overlapped_reaches": [ + { + "id": "11905820", + "overlap": 3 + } + ], + "eclipsed_reaches": [ + "11905808" + ] + }, + "11906196": { + "us_xs": { + "river": "Patuxent River", + "reach": "1", + "min_elevation": 112.95, + "max_elevation": 156.24, + "xs_id": 194817.8 + }, + "ds_xs": { + "river": "Patuxent River", + "reach": "1", + "min_elevation": 112.3, + "max_elevation": 141.81, + "xs_id": 193854.4 + }, + "eclipsed": false, + "low_flow": 406, + "high_flow": 2128, + "network_to_id": "11906198", + "metrics": { + "xs": { + "centerline_offset": { + "count": 2, + "mean": 193, + "std": 95, + "min": 126, + "25%": 160, + "50%": 193, + "75%": 227, + "max": 260 + }, + "thalweg_offset": { + "count": 2, + "mean": 194, + "std": 97, + "min": 125, + "25%": 159, + "50%": 194, + "75%": 228, + "max": 262 + } + }, + "lengths": { + "ras": 962, + "network": 934, + "network_to_ras_ratio": 0.97 + }, + "coverage": { + "start": 0.4, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "11906198", + "overlap": 46 + } + ], + "eclipsed_reaches": [] + }, + "11905796": { + "us_xs": { + "river": "Patuxent River", + "reach": "1", + "min_elevation": 113.45, + "max_elevation": 160.38, + "xs_id": 195583.1 + }, + "ds_xs": { + "river": "Patuxent River", + "reach": "1", + "min_elevation": 112.95, + "max_elevation": 156.24, + "xs_id": 194817.8 + }, + "eclipsed": false, + "low_flow": 400, + "high_flow": 2343, + "network_to_id": "11906196", + "metrics": { + "xs": { + "centerline_offset": { + "count": 2, + "mean": 118, + "std": 12, + "min": 109, + "25%": 113, + "50%": 118, + "75%": 122, + "max": 126 + }, + "thalweg_offset": { + "count": 2, + "mean": 116, + "std": 13, + "min": 107, + "25%": 112, + "50%": 116, + "75%": 121, + "max": 125 + } + }, + "lengths": { + "ras": 765, + "network": 638, + "network_to_ras_ratio": 0.83 + }, + "coverage": { + "start": 0.92, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "11906196", + "overlap": 590 + } + ], + "eclipsed_reaches": [] + }, + "11906190": { + "us_xs": { + "river": "Patuxent River", + "reach": "1", + "min_elevation": 127.07, + "max_elevation": 179.11, + "xs_id": 208205.5 + }, + "ds_xs": { + "river": "Patuxent River", + "reach": "1", + "min_elevation": 113.45, + "max_elevation": 160.38, + "xs_id": 195583.1 + }, + "eclipsed": false, + "low_flow": 428, + "high_flow": 2568, + "network_to_id": "11905796", + "metrics": { + "xs": { + "centerline_offset": { + "count": 26, + "mean": 15, + "std": 22, + "min": 0, + "25%": 3, + "50%": 6, + "75%": 23, + "max": 109 + }, + "thalweg_offset": { + "count": 26, + "mean": 131, + "std": 316, + "min": 1, + "25%": 10, + "50%": 16, + "75%": 27, + "max": 1036 + } + }, + "lengths": { + "ras": 12636, + "network": 12325, + "network_to_ras_ratio": 0.98 + }, + "coverage": { + "start": 0.08, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "11905796", + "overlap": 559 + } + ], + "eclipsed_reaches": [ + "11906438" + ] + }, + "11905756": { + "us_xs": { + "river": "Patuxent River", + "reach": "1", + "min_elevation": 134.3, + "max_elevation": 221.64, + "xs_id": 211665.0 + }, + "ds_xs": { + "river": "Patuxent River", + "reach": "1", + "min_elevation": 127.07, + "max_elevation": 179.11, + "xs_id": 208205.5 + }, + "eclipsed": false, + "low_flow": 284, + "high_flow": 1501, + "network_to_id": "11906190", + "metrics": { + "xs": { + "centerline_offset": { + "count": 7, + "mean": 10, + "std": 8, + "min": 0, + "25%": 6, + "50%": 11, + "75%": 12, + "max": 24 + }, + "thalweg_offset": { + "count": 7, + "mean": 16, + "std": 7, + "min": 7, + "25%": 10, + "50%": 16, + "75%": 22, + "max": 25 + } + }, + "lengths": { + "ras": 3435, + "network": 3440, + "network_to_ras_ratio": 1.0 + }, + "coverage": { + "start": 0.3, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "11906190", + "overlap": 962 + } + ], + "eclipsed_reaches": [] + }, + "11905746": { + "us_xs": { + "river": "Patuxent River", + "reach": "1", + "min_elevation": 155.57, + "max_elevation": 271.48, + "xs_id": 216363.5 + }, + "ds_xs": { + "river": "Patuxent River", + "reach": "1", + "min_elevation": 134.3, + "max_elevation": 221.64, + "xs_id": 211665.0 + }, + "eclipsed": false, + "low_flow": 140, + "high_flow": 1509, + "network_to_id": "11905756", + "gage": "01592500", + "gage_url": "https://waterdata.usgs.gov/nwis/uv?site_no=01592500&legacy=1", + "metrics": { + "xs": { + "centerline_offset": { + "count": 8, + "mean": 14, + "std": 10, + "min": 5, + "25%": 7, + "50%": 9, + "75%": 22, + "max": 29 + }, + "thalweg_offset": { + "count": 8, + "mean": 15, + "std": 9, + "min": 5, + "25%": 6, + "50%": 14, + "75%": 21, + "max": 29 + } + }, + "lengths": { + "ras": 4680, + "network": 4562, + "network_to_ras_ratio": 0.97 + }, + "coverage": { + "start": 0.15, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "11905756", + "overlap": 1076 + } + ], + "eclipsed_reaches": [] + }, + "11905994": { + "us_xs": { + "river": "Patuxent River", + "reach": "1", + "min_elevation": 55.7, + "max_elevation": 102.27, + "xs_id": 148278.9 + }, + "ds_xs": { + "river": "Patuxent River", + "reach": "1", + "min_elevation": 50.2, + "max_elevation": 114.55, + "xs_id": 147072.6 + }, + "eclipsed": false, + "low_flow": 839, + "high_flow": 4564, + "network_to_id": "11906000", + "metrics": { + "xs": { + "centerline_offset": { + "count": 2, + "mean": 11, + "std": 9, + "min": 4, + "25%": 7, + "50%": 11, + "75%": 14, + "max": 17 + }, + "thalweg_offset": { + "count": 2, + "mean": 21, + "std": 4, + "min": 18, + "25%": 20, + "50%": 21, + "75%": 22, + "max": 24 + } + }, + "lengths": { + "ras": 1206, + "network": 1052, + "network_to_ras_ratio": 0.87 + }, + "coverage": { + "start": 0.67, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "11906304", + "overlap": 46 + } + ], + "eclipsed_reaches": [ + "11906000" + ] + }, + "11905974": { + "eclipsed": true, + "low_flow": 825, + "high_flow": 4686, + "network_to_id": "11905976" + }, + "11905984": { + "us_xs": { + "river": "Patuxent River", + "reach": "1", + "min_elevation": 62.6, + "max_elevation": 100.3, + "xs_id": 155014.3 + }, + "ds_xs": { + "river": "Patuxent River", + "reach": "1", + "min_elevation": 61.6, + "max_elevation": 97.16, + "xs_id": 153499.9 + }, + "eclipsed": false, + "low_flow": 841, + "high_flow": 4702, + "network_to_id": "11906290", + "metrics": { + "xs": { + "centerline_offset": { + "count": 2, + "mean": 60, + "std": 84, + "min": 1, + "25%": 31, + "50%": 60, + "75%": 90, + "max": 120 + }, + "thalweg_offset": { + "count": 2, + "mean": 60, + "std": 70, + "min": 10, + "25%": 35, + "50%": 60, + "75%": 85, + "max": 110 + } + }, + "lengths": { + "ras": 1513, + "network": 2235, + "network_to_ras_ratio": 1.48 + }, + "coverage": { + "start": 0.08, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "11906290", + "overlap": 871 + } + ], + "eclipsed_reaches": [ + "11905992" + ] + }, + "11906030": { + "us_xs": { + "river": "Patuxent River", + "reach": "1", + "min_elevation": 43.8, + "max_elevation": 83.0, + "xs_id": 140356.0 + }, + "ds_xs": { + "river": "Patuxent River", + "reach": "1", + "min_elevation": 41.3, + "max_elevation": 82.06, + "xs_id": 137262.7 + }, + "eclipsed": false, + "low_flow": 835, + "high_flow": 4530, + "network_to_id": "11906034", + "metrics": { + "xs": { + "centerline_offset": { + "count": 3, + "mean": 20, + "std": 11, + "min": 8, + "25%": 14, + "50%": 20, + "75%": 26, + "max": 31 + }, + "thalweg_offset": { + "count": 3, + "mean": 17, + "std": 15, + "min": 2, + "25%": 10, + "50%": 17, + "75%": 24, + "max": 32 + } + }, + "lengths": { + "ras": 3104, + "network": 2889, + "network_to_ras_ratio": 0.93 + }, + "coverage": { + "start": 0.04, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "11906034", + "overlap": 58 + } + ], + "eclipsed_reaches": [ + "11906306", + "11906026", + "11906310" + ] + }, + "11906036": { + "us_xs": { + "river": "Patuxent River", + "reach": "1", + "min_elevation": 40.3, + "max_elevation": 68.8, + "xs_id": 136140.3 + }, + "ds_xs": { + "river": "Patuxent River", + "reach": "1", + "min_elevation": 39.1, + "max_elevation": 81.69, + "xs_id": 134652.2 + }, + "eclipsed": false, + "low_flow": 861, + "high_flow": 4603, + "network_to_id": "11906038", + "metrics": { + "xs": { + "centerline_offset": { + "count": 4, + "mean": 12, + "std": 4, + "min": 6, + "25%": 12, + "50%": 14, + "75%": 14, + "max": 15 + }, + "thalweg_offset": { + "count": 4, + "mean": 18, + "std": 7, + "min": 7, + "25%": 16, + "50%": 20, + "75%": 21, + "max": 23 + } + }, + "lengths": { + "ras": 1485, + "network": 1614, + "network_to_ras_ratio": 1.09 + }, + "coverage": { + "start": 0.07, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "11906046", + "overlap": 7 + } + ], + "eclipsed_reaches": [ + "11906038" + ] + }, + "11906232": { + "us_xs": { + "river": "Patuxent River", + "reach": "1", + "min_elevation": 90.1, + "max_elevation": 108.89, + "xs_id": 176090.0 + }, + "ds_xs": { + "river": "Patuxent River", + "reach": "1", + "min_elevation": 85.1, + "max_elevation": 117.87, + "xs_id": 173461.9 + }, + "eclipsed": false, + "low_flow": 851, + "high_flow": 4986, + "network_to_id": "11906240", + "metrics": { + "xs": { + "centerline_offset": { + "count": 3, + "mean": 120, + "std": 174, + "min": 5, + "25%": 19, + "50%": 34, + "75%": 177, + "max": 320 + }, + "thalweg_offset": { + "count": 3, + "mean": 126, + "std": 182, + "min": 3, + "25%": 22, + "50%": 40, + "75%": 188, + "max": 336 + } + }, + "lengths": { + "ras": 2614, + "network": 2376, + "network_to_ras_ratio": 0.91 + }, + "coverage": { + "start": 0.26, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "11906240", + "overlap": 630 + } + ], + "eclipsed_reaches": [ + "11905862" + ] + }, + "11905976": { + "us_xs": { + "river": "Patuxent River", + "reach": "1", + "min_elevation": 63.5, + "max_elevation": 104.21, + "xs_id": 156362.6 + }, + "ds_xs": { + "river": "Patuxent River", + "reach": "1", + "min_elevation": 62.6, + "max_elevation": 100.3, + "xs_id": 155014.3 + }, + "eclipsed": false, + "low_flow": 831, + "high_flow": 4626, + "network_to_id": "11905984", + "metrics": { + "xs": { + "centerline_offset": { + "count": 2, + "mean": 10, + "std": 13, + "min": 1, + "25%": 6, + "50%": 10, + "75%": 15, + "max": 20 + }, + "thalweg_offset": { + "count": 2, + "mean": 10, + "std": 0, + "min": 10, + "25%": 10, + "50%": 10, + "75%": 10, + "max": 10 + } + }, + "lengths": { + "ras": 1346, + "network": 1225, + "network_to_ras_ratio": 0.91 + }, + "coverage": { + "start": 0.21, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "11905984", + "overlap": 121 + } + ], + "eclipsed_reaches": [] + }, + "11906048": { + "us_xs": { + "river": "Patuxent River", + "reach": "1", + "min_elevation": 37.2, + "max_elevation": 70.85, + "xs_id": 132261.7 + }, + "ds_xs": { + "river": "Patuxent River", + "reach": "1", + "min_elevation": 36.4, + "max_elevation": 65.54, + "xs_id": 131156.0 + }, + "eclipsed": false, + "low_flow": 925, + "high_flow": 5350, + "network_to_id": "11906328", + "metrics": { + "xs": { + "centerline_offset": { + "count": 2, + "mean": 23, + "std": 23, + "min": 7, + "25%": 15, + "50%": 23, + "75%": 31, + "max": 40 + }, + "thalweg_offset": { + "count": 2, + "mean": 24, + "std": 22, + "min": 8, + "25%": 16, + "50%": 24, + "75%": 31, + "max": 39 + } + }, + "lengths": { + "ras": 1100, + "network": 1195, + "network_to_ras_ratio": 1.09 + }, + "coverage": { + "start": 0.2, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "11906328", + "overlap": 52 + } + ], + "eclipsed_reaches": [] + }, + "11906046": { + "us_xs": { + "river": "Patuxent River", + "reach": "1", + "min_elevation": 39.1, + "max_elevation": 81.69, + "xs_id": 134652.2 + }, + "ds_xs": { + "river": "Patuxent River", + "reach": "1", + "min_elevation": 37.2, + "max_elevation": 70.85, + "xs_id": 132261.7 + }, + "eclipsed": false, + "low_flow": 916, + "high_flow": 5085, + "network_to_id": "11906048", + "metrics": { + "xs": { + "centerline_offset": { + "count": 3, + "mean": 11, + "std": 8, + "min": 6, + "25%": 6, + "50%": 7, + "75%": 14, + "max": 21 + }, + "thalweg_offset": { + "count": 3, + "mean": 13, + "std": 9, + "min": 7, + "25%": 8, + "50%": 8, + "75%": 16, + "max": 23 + } + }, + "lengths": { + "ras": 2394, + "network": 2183, + "network_to_ras_ratio": 0.91 + }, + "coverage": { + "start": 0.0, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "11906048", + "overlap": 285 + } + ], + "eclipsed_reaches": [ + "11906042", + "11906044" + ] + }, + "11906038": { + "eclipsed": true, + "low_flow": 863, + "high_flow": 4597, + "network_to_id": "11906046" + }, + "11906304": { + "us_xs": { + "river": "Patuxent River", + "reach": "1", + "min_elevation": 50.2, + "max_elevation": 114.55, + "xs_id": 147072.6 + }, + "ds_xs": { + "river": "Patuxent River", + "reach": "1", + "min_elevation": 43.8, + "max_elevation": 83.0, + "xs_id": 140356.0 + }, + "eclipsed": false, + "low_flow": 838, + "high_flow": 4597, + "network_to_id": "11906030", + "metrics": { + "xs": { + "centerline_offset": { + "count": 9, + "mean": 9, + "std": 7, + "min": 2, + "25%": 4, + "50%": 5, + "75%": 15, + "max": 22 + }, + "thalweg_offset": { + "count": 9, + "mean": 9, + "std": 8, + "min": 1, + "25%": 2, + "50%": 6, + "75%": 14, + "max": 22 + } + }, + "lengths": { + "ras": 6726, + "network": 6523, + "network_to_ras_ratio": 0.97 + }, + "coverage": { + "start": 0.01, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "11906030", + "overlap": 119 + } + ], + "eclipsed_reaches": [] + }, + "11906290": { + "us_xs": { + "river": "Patuxent River", + "reach": "1", + "min_elevation": 61.6, + "max_elevation": 97.16, + "xs_id": 153499.9 + }, + "ds_xs": { + "river": "Patuxent River", + "reach": "1", + "min_elevation": 58.8, + "max_elevation": 82.0, + "xs_id": 149785.6 + }, + "eclipsed": false, + "low_flow": 837, + "high_flow": 4647, + "network_to_id": "11905990", + "metrics": { + "xs": { + "centerline_offset": { + "count": 3, + "mean": 68, + "std": 57, + "min": 6, + "25%": 42, + "50%": 78, + "75%": 99, + "max": 120 + }, + "thalweg_offset": { + "count": 3, + "mean": 63, + "std": 46, + "min": 18, + "25%": 40, + "50%": 62, + "75%": 86, + "max": 110 + } + }, + "lengths": { + "ras": 3717, + "network": 4401, + "network_to_ras_ratio": 1.18 + }, + "coverage": { + "start": 0.17, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "11905990", + "overlap": 207 + } + ], + "eclipsed_reaches": [ + "11906006", + "11905998" + ] + }, + "11906282": { + "us_xs": { + "river": "Patuxent River", + "reach": "1", + "min_elevation": 71.9, + "max_elevation": 166.1, + "xs_id": 161033.5 + }, + "ds_xs": { + "river": "Patuxent River", + "reach": "1", + "min_elevation": 63.5, + "max_elevation": 104.21, + "xs_id": 156362.6 + }, + "eclipsed": false, + "low_flow": 826, + "high_flow": 4759, + "network_to_id": "11905974", + "metrics": { + "xs": { + "centerline_offset": { + "count": 5, + "mean": 7, + "std": 8, + "min": 1, + "25%": 2, + "50%": 5, + "75%": 7, + "max": 20 + }, + "thalweg_offset": { + "count": 5, + "mean": 62, + "std": 119, + "min": 2, + "25%": 9, + "50%": 10, + "75%": 14, + "max": 275 + } + }, + "lengths": { + "ras": 4660, + "network": 4580, + "network_to_ras_ratio": 0.98 + }, + "coverage": { + "start": 0.22, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "11905976", + "overlap": 288 + } + ], + "eclipsed_reaches": [ + "11905974" + ] + }, + "11906240": { + "us_xs": { + "river": "Patuxent River", + "reach": "1", + "min_elevation": 85.1, + "max_elevation": 117.87, + "xs_id": 173461.9 + }, + "ds_xs": { + "river": "Patuxent River", + "reach": "1", + "min_elevation": 77.2, + "max_elevation": 133.77, + "xs_id": 168859.9 + }, + "eclipsed": false, + "low_flow": 844, + "high_flow": 4928, + "network_to_id": "11905886", + "metrics": { + "xs": { + "centerline_offset": { + "count": 5, + "mean": 411, + "std": 91, + "min": 314, + "25%": 320, + "50%": 427, + "75%": 481, + "max": 514 + }, + "thalweg_offset": { + "count": 5, + "mean": 421, + "std": 92, + "min": 320, + "25%": 336, + "50%": 428, + "75%": 490, + "max": 530 + } + }, + "lengths": { + "ras": 4608, + "network": 4049, + "network_to_ras_ratio": 0.88 + }, + "coverage": { + "start": 0.17, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "11905914", + "overlap": 817 + } + ], + "eclipsed_reaches": [ + "11905886", + "11905880" + ] + }, + "11908588": { + "us_xs": { + "river": "Patuxent River", + "reach": "1", + "min_elevation": -8.5, + "max_elevation": 53.21, + "xs_id": 26469.46 + }, + "ds_xs": { + "river": "Patuxent River", + "reach": "1", + "min_elevation": -16.2, + "max_elevation": 70.28, + "xs_id": 21021.22 + }, + "eclipsed": false, + "low_flow": 2030, + "high_flow": 19073, + "network_to_id": "11908594", + "metrics": { + "xs": { + "centerline_offset": { + "count": 5, + "mean": 18, + "std": 15, + "min": 0, + "25%": 12, + "50%": 14, + "75%": 25, + "max": 41 + }, + "thalweg_offset": { + "count": 5, + "mean": 68, + "std": 25, + "min": 29, + "25%": 64, + "50%": 67, + "75%": 89, + "max": 92 + } + }, + "lengths": { + "ras": 5464, + "network": 5292, + "network_to_ras_ratio": 0.97 + }, + "coverage": { + "start": 0.08, + "end": 0.67 + } + }, + "overlapped_reaches": [], + "eclipsed_reaches": [] + }, + "11908578": { + "eclipsed": true, + "low_flow": 2023, + "high_flow": 20836, + "network_to_id": "11908582" + }, + "11908576": { + "us_xs": { + "river": "Patuxent River", + "reach": "1", + "min_elevation": -5.3, + "max_elevation": 62.95, + "xs_id": 39893.46 + }, + "ds_xs": { + "river": "Patuxent River", + "reach": "1", + "min_elevation": -10.6, + "max_elevation": 93.12, + "xs_id": 32805.59 + }, + "eclipsed": false, + "low_flow": 2018, + "high_flow": 20822, + "network_to_id": "11908578", + "metrics": { + "xs": { + "centerline_offset": { + "count": 9, + "mean": 8, + "std": 8, + "min": 0, + "25%": 2, + "50%": 3, + "75%": 12, + "max": 23 + }, + "thalweg_offset": { + "count": 9, + "mean": 32, + "std": 15, + "min": 1, + "25%": 27, + "50%": 30, + "75%": 41, + "max": 54 + } + }, + "lengths": { + "ras": 7086, + "network": 6999, + "network_to_ras_ratio": 0.99 + }, + "coverage": { + "start": 0.05, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "11908582", + "overlap": 534 + } + ], + "eclipsed_reaches": [ + "11908580", + "11908578", + "11908574" + ] + }, + "11908572": { + "us_xs": { + "river": "Patuxent River", + "reach": "1", + "min_elevation": -1.0, + "max_elevation": 25.3, + "xs_id": 41827.22 + }, + "ds_xs": { + "river": "Patuxent River", + "reach": "1", + "min_elevation": -5.3, + "max_elevation": 62.95, + "xs_id": 39893.46 + }, + "eclipsed": false, + "low_flow": 2032, + "high_flow": 21336, + "network_to_id": "11908576", + "metrics": { + "xs": { + "centerline_offset": { + "count": 3, + "mean": 11, + "std": 10, + "min": 3, + "25%": 5, + "50%": 7, + "75%": 14, + "max": 22 + }, + "thalweg_offset": { + "count": 3, + "mean": 41, + "std": 19, + "min": 27, + "25%": 30, + "50%": 33, + "75%": 48, + "max": 63 + } + }, + "lengths": { + "ras": 1950, + "network": 1966, + "network_to_ras_ratio": 1.01 + }, + "coverage": { + "start": 0.22, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "11908576", + "overlap": 297 + } + ], + "eclipsed_reaches": [ + "11908570" + ] + }, + "11908562": { + "us_xs": { + "river": "Patuxent River", + "reach": "1", + "min_elevation": -7.2, + "max_elevation": 87.88, + "xs_id": 44258.6 + }, + "ds_xs": { + "river": "Patuxent River", + "reach": "1", + "min_elevation": -6.8, + "max_elevation": 58.8, + "xs_id": 42465.83 + }, + "eclipsed": false, + "low_flow": 2032, + "high_flow": 21368, + "network_to_id": "11908566", + "metrics": { + "xs": { + "centerline_offset": { + "count": 3, + "mean": 35, + "std": 18, + "min": 23, + "25%": 25, + "50%": 28, + "75%": 41, + "max": 55 + }, + "thalweg_offset": { + "count": 3, + "mean": 36, + "std": 13, + "min": 28, + "25%": 29, + "50%": 29, + "75%": 40, + "max": 51 + } + }, + "lengths": { + "ras": 1806, + "network": 1722, + "network_to_ras_ratio": 0.95 + }, + "coverage": { + "start": 0.36, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "11908566", + "overlap": 404 + } + ], + "eclipsed_reaches": [ + "11908564" + ] + }, + "11908566": { + "us_xs": { + "river": "Patuxent River", + "reach": "1", + "min_elevation": -6.8, + "max_elevation": 58.8, + "xs_id": 42465.83 + }, + "ds_xs": { + "river": "Patuxent River", + "reach": "1", + "min_elevation": -1.0, + "max_elevation": 25.3, + "xs_id": 41827.22 + }, + "eclipsed": false, + "low_flow": 2033, + "high_flow": 21395, + "network_to_id": "11908572", + "metrics": { + "xs": { + "centerline_offset": { + "count": 2, + "mean": 38, + "std": 24, + "min": 22, + "25%": 30, + "50%": 38, + "75%": 47, + "max": 55 + }, + "thalweg_offset": { + "count": 2, + "mean": 57, + "std": 8, + "min": 51, + "25%": 54, + "50%": 57, + "75%": 60, + "max": 63 + } + }, + "lengths": { + "ras": 644, + "network": 678, + "network_to_ras_ratio": 1.05 + }, + "coverage": { + "start": 0.66, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "11908572", + "overlap": 474 + } + ], + "eclipsed_reaches": [ + "11908568" + ] + }, + "11907892": { + "us_xs": { + "river": "Patuxent River", + "reach": "1", + "min_elevation": -7.3, + "max_elevation": 54.01, + "xs_id": 51040.86 + }, + "ds_xs": { + "river": "Patuxent River", + "reach": "1", + "min_elevation": -6.6, + "max_elevation": 56.39, + "xs_id": 49806.06 + }, + "eclipsed": false, + "low_flow": 2031, + "high_flow": 21512, + "network_to_id": "11908554", + "metrics": { + "xs": { + "centerline_offset": { + "count": 2, + "mean": 11, + "std": 0, + "min": 11, + "25%": 11, + "50%": 11, + "75%": 11, + "max": 11 + }, + "thalweg_offset": { + "count": 2, + "mean": 14, + "std": 2, + "min": 12, + "25%": 13, + "50%": 14, + "75%": 14, + "max": 15 + } + }, + "lengths": { + "ras": 1241, + "network": 1248, + "network_to_ras_ratio": 1.01 + }, + "coverage": { + "start": 0.4, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "11908554", + "overlap": 314 + } + ], + "eclipsed_reaches": [] + }, + "11908554": { + "us_xs": { + "river": "Patuxent River", + "reach": "1", + "min_elevation": -6.6, + "max_elevation": 56.39, + "xs_id": 49806.06 + }, + "ds_xs": { + "river": "Patuxent River", + "reach": "1", + "min_elevation": -7.0, + "max_elevation": 51.18, + "xs_id": 45507.47 + }, + "eclipsed": false, + "low_flow": 2024, + "high_flow": 21267, + "network_to_id": "11908560", + "metrics": { + "xs": { + "centerline_offset": { + "count": 5, + "mean": 16, + "std": 4, + "min": 11, + "25%": 15, + "50%": 17, + "75%": 18, + "max": 21 + }, + "thalweg_offset": { + "count": 5, + "mean": 4, + "std": 5, + "min": 0, + "25%": 0, + "50%": 0, + "75%": 7, + "max": 12 + } + }, + "lengths": { + "ras": 4324, + "network": 4238, + "network_to_ras_ratio": 0.98 + }, + "coverage": { + "start": 0.09, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "11908560", + "overlap": 1020 + } + ], + "eclipsed_reaches": [ + "11908556" + ] + }, + "11908560": { + "us_xs": { + "river": "Patuxent River", + "reach": "1", + "min_elevation": -7.0, + "max_elevation": 51.18, + "xs_id": 45507.47 + }, + "ds_xs": { + "river": "Patuxent River", + "reach": "1", + "min_elevation": -7.2, + "max_elevation": 87.88, + "xs_id": 44258.6 + }, + "eclipsed": false, + "low_flow": 2025, + "high_flow": 21095, + "network_to_id": "11908562", + "metrics": { + "xs": { + "centerline_offset": { + "count": 2, + "mean": 24, + "std": 5, + "min": 21, + "25%": 23, + "50%": 24, + "75%": 26, + "max": 28 + }, + "thalweg_offset": { + "count": 2, + "mean": 18, + "std": 16, + "min": 7, + "25%": 12, + "50%": 18, + "75%": 24, + "max": 29 + } + }, + "lengths": { + "ras": 1260, + "network": 1277, + "network_to_ras_ratio": 1.01 + }, + "coverage": { + "start": 0.65, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "11908562", + "overlap": 730 + } + ], + "eclipsed_reaches": [ + "11908558" + ] + }, + "11907880": { + "us_xs": { + "river": "Patuxent River", + "reach": "1", + "min_elevation": -8.5, + "max_elevation": 64.68, + "xs_id": 59049.43 + }, + "ds_xs": { + "river": "Patuxent River", + "reach": "1", + "min_elevation": -7.3, + "max_elevation": 54.01, + "xs_id": 51040.86 + }, + "eclipsed": false, + "low_flow": 2015, + "high_flow": 20649, + "network_to_id": "11907892", + "metrics": { + "xs": { + "centerline_offset": { + "count": 9, + "mean": 11, + "std": 4, + "min": 6, + "25%": 10, + "50%": 10, + "75%": 13, + "max": 17 + }, + "thalweg_offset": { + "count": 9, + "mean": 6, + "std": 6, + "min": 0, + "25%": 2, + "50%": 3, + "75%": 11, + "max": 17 + } + }, + "lengths": { + "ras": 8039, + "network": 7981, + "network_to_ras_ratio": 0.99 + }, + "coverage": { + "start": 0.02, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "11907892", + "overlap": 625 + } + ], + "eclipsed_reaches": [] + }, + "11907860": { + "us_xs": { + "river": "Patuxent River", + "reach": "1", + "min_elevation": -7.6, + "max_elevation": 67.85, + "xs_id": 59680.21 + }, + "ds_xs": { + "river": "Patuxent River", + "reach": "1", + "min_elevation": -8.5, + "max_elevation": 64.68, + "xs_id": 59049.43 + }, + "eclipsed": false, + "low_flow": 2031, + "high_flow": 22720, + "network_to_id": "11907880", + "metrics": { + "xs": { + "centerline_offset": { + "count": 2, + "mean": 8, + "std": 3, + "min": 6, + "25%": 7, + "50%": 8, + "75%": 10, + "max": 11 + }, + "thalweg_offset": { + "count": 2, + "mean": 3, + "std": 0, + "min": 3, + "25%": 3, + "50%": 3, + "75%": 3, + "max": 3 + } + }, + "lengths": { + "ras": 636, + "network": 632, + "network_to_ras_ratio": 0.99 + }, + "coverage": { + "start": 0.67, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "11907880", + "overlap": 122 + } + ], + "eclipsed_reaches": [] + }, + "11907854": { + "us_xs": { + "river": "Patuxent River", + "reach": "1", + "min_elevation": -5.7, + "max_elevation": 74.83, + "xs_id": 60994.13 + }, + "ds_xs": { + "river": "Patuxent River", + "reach": "1", + "min_elevation": -7.6, + "max_elevation": 67.85, + "xs_id": 59680.21 + }, + "eclipsed": false, + "low_flow": 2017, + "high_flow": 22677, + "network_to_id": "11907860", + "metrics": { + "xs": { + "centerline_offset": { + "count": 2, + "mean": 7, + "std": 5, + "min": 4, + "25%": 6, + "50%": 7, + "75%": 9, + "max": 11 + }, + "thalweg_offset": { + "count": 2, + "mean": 8, + "std": 7, + "min": 3, + "25%": 5, + "50%": 8, + "75%": 10, + "max": 13 + } + }, + "lengths": { + "ras": 1312, + "network": 1320, + "network_to_ras_ratio": 1.01 + }, + "coverage": { + "start": 0.61, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "11907860", + "overlap": 1023 + } + ], + "eclipsed_reaches": [] + }, + "11907848": { + "us_xs": { + "river": "Patuxent River", + "reach": "1", + "min_elevation": -7.9, + "max_elevation": 73.85, + "xs_id": 63352.65 + }, + "ds_xs": { + "river": "Patuxent River", + "reach": "1", + "min_elevation": -5.7, + "max_elevation": 74.83, + "xs_id": 60994.13 + }, + "eclipsed": false, + "low_flow": 2018, + "high_flow": 22600, + "network_to_id": "11907854", + "metrics": { + "xs": { + "centerline_offset": { + "count": 5, + "mean": 3, + "std": 2, + "min": 0, + "25%": 2, + "50%": 3, + "75%": 4, + "max": 4 + }, + "thalweg_offset": { + "count": 5, + "mean": 10, + "std": 3, + "min": 6, + "25%": 8, + "50%": 10, + "75%": 13, + "max": 13 + } + }, + "lengths": { + "ras": 2378, + "network": 2383, + "network_to_ras_ratio": 1.0 + }, + "coverage": { + "start": 0.2, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "11907854", + "overlap": 463 + } + ], + "eclipsed_reaches": [] + }, + "11907838": { + "us_xs": { + "river": "Patuxent River", + "reach": "1", + "min_elevation": -5.9, + "max_elevation": 75.34, + "xs_id": 64024.26 + }, + "ds_xs": { + "river": "Patuxent River", + "reach": "1", + "min_elevation": -7.9, + "max_elevation": 73.85, + "xs_id": 63352.65 + }, + "eclipsed": false, + "low_flow": 1980, + "high_flow": 22834, + "network_to_id": "11907848", + "metrics": { + "xs": { + "centerline_offset": { + "count": 2, + "mean": 15, + "std": 21, + "min": 0, + "25%": 8, + "50%": 15, + "75%": 22, + "max": 30 + }, + "thalweg_offset": { + "count": 2, + "mean": 24, + "std": 23, + "min": 8, + "25%": 16, + "50%": 24, + "75%": 32, + "max": 40 + } + }, + "lengths": { + "ras": 674, + "network": 642, + "network_to_ras_ratio": 0.95 + }, + "coverage": { + "start": 0.55, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "11907848", + "overlap": 485 + } + ], + "eclipsed_reaches": [] + }, + "11907832": { + "us_xs": { + "river": "Patuxent River", + "reach": "1", + "min_elevation": -2.8, + "max_elevation": 58.98, + "xs_id": 69955.36 + }, + "ds_xs": { + "river": "Patuxent River", + "reach": "1", + "min_elevation": -5.9, + "max_elevation": 75.34, + "xs_id": 64024.26 + }, + "eclipsed": false, + "low_flow": 1965, + "high_flow": 22816, + "network_to_id": "11907838", + "metrics": { + "xs": { + "centerline_offset": { + "count": 8, + "mean": 12, + "std": 8, + "min": 4, + "25%": 7, + "50%": 10, + "75%": 13, + "max": 30 + }, + "thalweg_offset": { + "count": 8, + "mean": 14, + "std": 12, + "min": 0, + "25%": 8, + "50%": 12, + "75%": 16, + "max": 40 + } + }, + "lengths": { + "ras": 5952, + "network": 5823, + "network_to_ras_ratio": 0.98 + }, + "coverage": { + "start": 0.16, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "11907838", + "overlap": 194 + } + ], + "eclipsed_reaches": [] + }, + "11907806": { + "us_xs": { + "river": "Patuxent River", + "reach": "1", + "min_elevation": 4.7, + "max_elevation": 64.61, + "xs_id": 79897.28 + }, + "ds_xs": { + "river": "Patuxent River", + "reach": "1", + "min_elevation": -2.8, + "max_elevation": 58.98, + "xs_id": 69955.36 + }, + "eclipsed": false, + "low_flow": 2023, + "high_flow": 24523, + "network_to_id": "11907832", + "metrics": { + "xs": { + "centerline_offset": { + "count": 12, + "mean": 16, + "std": 11, + "min": 1, + "25%": 9, + "50%": 18, + "75%": 21, + "max": 39 + }, + "thalweg_offset": { + "count": 12, + "mean": 29, + "std": 23, + "min": 3, + "25%": 15, + "50%": 24, + "75%": 39, + "max": 77 + } + }, + "lengths": { + "ras": 9961, + "network": 9332, + "network_to_ras_ratio": 0.94 + }, + "coverage": { + "start": 0.09, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "11907832", + "overlap": 1088 + } + ], + "eclipsed_reaches": [] + }, + "11907782": { + "us_xs": { + "river": "Patuxent River", + "reach": "1", + "min_elevation": 5.1, + "max_elevation": 95.95, + "xs_id": 86341.97 + }, + "ds_xs": { + "river": "Patuxent River", + "reach": "1", + "min_elevation": 4.7, + "max_elevation": 64.61, + "xs_id": 79897.28 + }, + "eclipsed": false, + "low_flow": 2057, + "high_flow": 25101, + "network_to_id": "11907806", + "metrics": { + "xs": { + "centerline_offset": { + "count": 6, + "mean": 20, + "std": 19, + "min": 3, + "25%": 5, + "50%": 14, + "75%": 27, + "max": 52 + }, + "thalweg_offset": { + "count": 6, + "mean": 30, + "std": 29, + "min": 0, + "25%": 11, + "50%": 20, + "75%": 44, + "max": 77 + } + }, + "lengths": { + "ras": 6458, + "network": 6218, + "network_to_ras_ratio": 0.96 + }, + "coverage": { + "start": 0.09, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "11907806", + "overlap": 828 + } + ], + "eclipsed_reaches": [] + }, + "11907774": { + "eclipsed": true, + "low_flow": 2036, + "high_flow": 25139, + "network_to_id": "11907782" + }, + "11908324": { + "us_xs": { + "river": "Patuxent River", + "reach": "1", + "min_elevation": 3.9, + "max_elevation": 68.46, + "xs_id": 92395.85 + }, + "ds_xs": { + "river": "Patuxent River", + "reach": "1", + "min_elevation": 5.1, + "max_elevation": 95.95, + "xs_id": 86341.97 + }, + "eclipsed": false, + "low_flow": 2023, + "high_flow": 24922, + "network_to_id": "11907774", + "metrics": { + "xs": { + "centerline_offset": { + "count": 4, + "mean": 7, + "std": 5, + "min": 3, + "25%": 4, + "50%": 5, + "75%": 8, + "max": 14 + }, + "thalweg_offset": { + "count": 4, + "mean": 7, + "std": 3, + "min": 3, + "25%": 6, + "50%": 8, + "75%": 10, + "max": 10 + } + }, + "lengths": { + "ras": 6048, + "network": 5968, + "network_to_ras_ratio": 0.99 + }, + "coverage": { + "start": 0.17, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "11907782", + "overlap": 533 + } + ], + "eclipsed_reaches": [ + "11907774" + ] + }, + "11908316": { + "us_xs": { + "river": "Patuxent River", + "reach": "1", + "min_elevation": 7.0, + "max_elevation": 62.04, + "xs_id": 97274.14 + }, + "ds_xs": { + "river": "Patuxent River", + "reach": "1", + "min_elevation": 3.9, + "max_elevation": 68.46, + "xs_id": 92395.85 + }, + "eclipsed": false, + "low_flow": 2042, + "high_flow": 25872, + "network_to_id": "11908324", + "metrics": { + "xs": { + "centerline_offset": { + "count": 5, + "mean": 15, + "std": 13, + "min": 3, + "25%": 4, + "50%": 12, + "75%": 20, + "max": 34 + }, + "thalweg_offset": { + "count": 5, + "mean": 17, + "std": 15, + "min": 3, + "25%": 3, + "50%": 16, + "75%": 27, + "max": 37 + } + }, + "lengths": { + "ras": 4888, + "network": 4869, + "network_to_ras_ratio": 1.0 + }, + "coverage": { + "start": 0.03, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "11908324", + "overlap": 595 + } + ], + "eclipsed_reaches": [] + }, + "11907764": { + "eclipsed": true, + "low_flow": 2093, + "high_flow": 28222, + "network_to_id": "11908316" + }, + "11907762": { + "us_xs": { + "river": "Patuxent River", + "reach": "1", + "min_elevation": 10.38, + "max_elevation": 66.53, + "xs_id": 101166.3 + }, + "ds_xs": { + "river": "Patuxent River", + "reach": "1", + "min_elevation": 7.0, + "max_elevation": 62.04, + "xs_id": 97274.14 + }, + "eclipsed": false, + "low_flow": 2084, + "high_flow": 29199, + "network_to_id": "11907764", + "metrics": { + "xs": { + "centerline_offset": { + "count": 10, + "mean": 18, + "std": 17, + "min": 4, + "25%": 8, + "50%": 11, + "75%": 19, + "max": 57 + }, + "thalweg_offset": { + "count": 10, + "mean": 19, + "std": 13, + "min": 5, + "25%": 12, + "50%": 15, + "75%": 25, + "max": 49 + } + }, + "lengths": { + "ras": 3914, + "network": 3962, + "network_to_ras_ratio": 1.01 + }, + "coverage": { + "start": 0.04, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "11908316", + "overlap": 135 + } + ], + "eclipsed_reaches": [ + "11907764" + ] + }, + "11907758": { + "us_xs": { + "river": "Patuxent River", + "reach": "1", + "min_elevation": 8.7, + "max_elevation": 97.41, + "xs_id": 106061.7 + }, + "ds_xs": { + "river": "Patuxent River", + "reach": "1", + "min_elevation": 10.38, + "max_elevation": 66.53, + "xs_id": 101166.3 + }, + "eclipsed": false, + "low_flow": 2082, + "high_flow": 30112, + "network_to_id": "11907762", + "gage": "01594440", + "gage_url": "https://waterdata.usgs.gov/nwis/uv?site_no=01594440&legacy=1", + "metrics": { + "xs": { + "centerline_offset": { + "count": 7, + "mean": 7, + "std": 7, + "min": 2, + "25%": 3, + "50%": 4, + "75%": 10, + "max": 18 + }, + "thalweg_offset": { + "count": 7, + "mean": 8, + "std": 5, + "min": 1, + "25%": 5, + "50%": 8, + "75%": 11, + "max": 14 + } + }, + "lengths": { + "ras": 4916, + "network": 4554, + "network_to_ras_ratio": 0.93 + }, + "coverage": { + "start": 0.17, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "11907762", + "overlap": 134 + } + ], + "eclipsed_reaches": [] + }, + "11907746": { + "us_xs": { + "river": "Patuxent River", + "reach": "1", + "min_elevation": 10.5, + "max_elevation": 93.12, + "xs_id": 110321.2 + }, + "ds_xs": { + "river": "Patuxent River", + "reach": "1", + "min_elevation": 8.7, + "max_elevation": 97.41, + "xs_id": 106061.7 + }, + "eclipsed": false, + "low_flow": 2087, + "high_flow": 30505, + "network_to_id": "11907758", + "metrics": { + "xs": { + "centerline_offset": { + "count": 4, + "mean": 15, + "std": 16, + "min": 3, + "25%": 3, + "50%": 11, + "75%": 23, + "max": 36 + }, + "thalweg_offset": { + "count": 4, + "mean": 13, + "std": 15, + "min": 1, + "25%": 1, + "50%": 12, + "75%": 25, + "max": 29 + } + }, + "lengths": { + "ras": 4276, + "network": 4105, + "network_to_ras_ratio": 0.96 + }, + "coverage": { + "start": 0.24, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "11907758", + "overlap": 933 + } + ], + "eclipsed_reaches": [] + }, + "11908300": { + "us_xs": { + "river": "Patuxent River", + "reach": "1", + "min_elevation": 10.4, + "max_elevation": 112.8, + "xs_id": 113857.7 + }, + "ds_xs": { + "river": "Patuxent River", + "reach": "1", + "min_elevation": 10.5, + "max_elevation": 93.12, + "xs_id": 110321.2 + }, + "eclipsed": false, + "low_flow": 2084, + "high_flow": 31491, + "network_to_id": "11907746", + "metrics": { + "xs": { + "centerline_offset": { + "count": 4, + "mean": 11, + "std": 10, + "min": 1, + "25%": 3, + "50%": 10, + "75%": 18, + "max": 23 + }, + "thalweg_offset": { + "count": 4, + "mean": 10, + "std": 10, + "min": 1, + "25%": 2, + "50%": 8, + "75%": 16, + "max": 22 + } + }, + "lengths": { + "ras": 3548, + "network": 3362, + "network_to_ras_ratio": 0.95 + }, + "coverage": { + "start": 0.03, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "11907746", + "overlap": 1022 + } + ], + "eclipsed_reaches": [] + }, + "11908298": { + "us_xs": { + "river": "Patuxent River", + "reach": "1", + "min_elevation": 11.8, + "max_elevation": 96.51, + "xs_id": 117158.6 + }, + "ds_xs": { + "river": "Patuxent River", + "reach": "1", + "min_elevation": 10.4, + "max_elevation": 112.8, + "xs_id": 113857.7 + }, + "eclipsed": false, + "low_flow": 2081, + "high_flow": 31142, + "network_to_id": "11908300", + "metrics": { + "xs": { + "centerline_offset": { + "count": 3, + "mean": 43, + "std": 71, + "min": 1, + "25%": 2, + "50%": 3, + "75%": 64, + "max": 125 + }, + "thalweg_offset": { + "count": 3, + "mean": 75, + "std": 125, + "min": 2, + "25%": 3, + "50%": 3, + "75%": 111, + "max": 220 + } + }, + "lengths": { + "ras": 3309, + "network": 3732, + "network_to_ras_ratio": 1.13 + }, + "coverage": { + "start": 0.15, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "11908300", + "overlap": 79 + } + ], + "eclipsed_reaches": [] + }, + "11908292": { + "us_xs": { + "river": "Patuxent River", + "reach": "1", + "min_elevation": 20.5, + "max_elevation": 81.42, + "xs_id": 118899.1 + }, + "ds_xs": { + "river": "Patuxent River", + "reach": "1", + "min_elevation": 11.8, + "max_elevation": 96.51, + "xs_id": 117158.6 + }, + "eclipsed": false, + "low_flow": 2082, + "high_flow": 30793, + "network_to_id": "11908298", + "metrics": { + "xs": { + "centerline_offset": { + "count": 4, + "mean": 42, + "std": 35, + "min": 3, + "25%": 18, + "50%": 45, + "75%": 69, + "max": 76 + }, + "thalweg_offset": { + "count": 4, + "mean": 26, + "std": 17, + "min": 3, + "25%": 17, + "50%": 29, + "75%": 37, + "max": 42 + } + }, + "lengths": { + "ras": 1738, + "network": 1673, + "network_to_ras_ratio": 0.96 + }, + "coverage": { + "start": 0.23, + "end": 1 + } + }, + "overlapped_reaches": [ + { + "id": "11908298", + "overlap": 647 + } + ], + "eclipsed_reaches": [] + } + }, + "metadata": { + "source_network": { + "file_name": "flows.parquet", + "version": "2.1", + "type": "nwm_hydrofabric" + }, + "conflation_png": "PatuxentRiver.conflation.png", + "conflation_ripple1d_version": "0.4.2", + "metrics_ripple1d_version": "0.4.2", + "source_ras_model": { + "stac_api": "https://stac2.dewberryanalytics.com", + "stac_collection_id": "ebfe-12090301_LowerColoradoCummins", + "stac_item_id": "137a9667-e5cf-4cea-b6ec-2e882a42fdc8", + "source_ras_files": { + "geometry": "PatuxentRiver.g01", + "forcing": "PatuxentRiver.f01", + "project-file": "PatuxentRiver.prj", + "plan": "PatuxentRiver.p06" + } + }, + "length_units": "feet", + "flow_units": "cfs" } } \ No newline at end of file diff --git a/tests/ras-data/PatuxentRiver/PatuxentRiver.conflation.png b/tests/ras-data/PatuxentRiver/PatuxentRiver.conflation.png new file mode 100644 index 00000000..860421ef Binary files /dev/null and b/tests/ras-data/PatuxentRiver/PatuxentRiver.conflation.png differ diff --git a/tests/ras-data/PatuxentRiver/PatuxentRiver.gpkg b/tests/ras-data/PatuxentRiver/PatuxentRiver.gpkg index 7242d677..fafc46f3 100644 Binary files a/tests/ras-data/PatuxentRiver/PatuxentRiver.gpkg and b/tests/ras-data/PatuxentRiver/PatuxentRiver.gpkg differ diff --git a/tests/run_api_tests.py b/tests/run_api_tests.py index 59c0cead..e2ba8488 100644 --- a/tests/run_api_tests.py +++ b/tests/run_api_tests.py @@ -4,18 +4,21 @@ import subprocess import sys import time +from pathlib import Path -from api_tests import start_server +from api_tests import start_server, submit_job, wait_for_job def main(test_model: str = None, reach_id: str = None, clean_up: bool = True): current_dir = os.path.dirname(__file__) + if not test_model: test_models = ["Baxter", "MissFldwy", "PatuxentRiver"] else: test_models = [test_model] + if not reach_id: reach_ids = [ "2826228", @@ -42,7 +45,15 @@ def main(test_model: str = None, reach_id: str = None, clean_up: bool = True): fails = {} passes = 0 for test_model in test_models: - + pre_process=subprocess.Popen([sys.executable.replace("python.exe", "pytest.exe"), + "tests/api_tests.py::TestPreprocessAPI", + "--model", + test_model, + "--reach_id", + "1", + "--min_elevation", + "1"]) + pre_process.wait() conflation_file = os.path.join(current_dir, "ras-data", test_model, f"{test_model}.conflation.json") if not os.path.exists(conflation_file): raise FileNotFoundError(f"Conflation file not found: {conflation_file}") @@ -53,9 +64,11 @@ def main(test_model: str = None, reach_id: str = None, clean_up: bool = True): for reach_id in reach_ids: reach_id = str(reach_id) - if reach_id not in data.keys(): + if reach_id not in data["reaches"].keys(): continue - + sub_model_dir=os.path.join(current_dir,"ras-data",test_model,"submodels",reach_id) + if os.path.exists(sub_model_dir): + shutil.rmtree(sub_model_dir,ignore_errors=True) results_files.append(os.path.join(current_dir, f"{test_model}-{reach_id}.json")) p.append( subprocess.Popen( @@ -69,33 +82,40 @@ def main(test_model: str = None, reach_id: str = None, clean_up: bool = True): results_files[-1], "--json-report-indent", "4", - r"tests/api_tests.py", + r"tests/api_tests.py::TestApi", "--model", test_model, "--reach_id", reach_id, "--min_elevation", - str(data[reach_id]["ds_xs"]["min_elevation"]), + str(data["reaches"][reach_id]["ds_xs"]["min_elevation"]), ] ) ) if len(p) == 3: [i.wait() for i in p] - for results_file in results_files: - with open(results_file, "r") as f: - results = json.loads(f.read()) - if "passed" in results["summary"]: - passes += results["summary"]["passed"] - if "failed" not in results["summary"]: - os.remove(results_file) - - else: - for test in results["tests"]: - if test["outcome"] != "passed": - fails.update({f"{test_model}-{reach_id}": test}) - - p, results_files = [], [] + p=[] + [i.wait() for i in p] + for results_file in results_files: + test_model,reach_id=Path(results_file).name.rstrip('.json').split("-") + with open(results_file, "r") as f: + results = json.loads(f.read()) + if "passed" in results["summary"]: + passes += results["summary"]["passed"] + if "failed" not in results["summary"]: + os.remove(results_file) + sub_model_dir=os.path.join(current_dir,"ras-data",test_model,"submodels",reach_id) + if os.path.exists(sub_model_dir): + shutil.rmtree(sub_model_dir,ignore_errors=True) + + else: + for test in results["tests"]: + if test["outcome"] != "passed": + fails.update({f"{test_model}-{reach_id}": test}) + + + fails["pass count"] = passes with open(os.path.join(current_dir, "summary_api_tests.json"), "w") as f: @@ -116,6 +136,6 @@ def main(test_model: str = None, reach_id: str = None, clean_up: bool = True): Alternatively, you can specify the test model and reach id to run as args. Example 2 usage: - python test/run_api_tests.py Baxter 2826228 + python tests/run_api_tests.py Baxter 2826228 """ main(*sys.argv[1:])