diff --git a/.gitignore b/.gitignore index 794e5a8..6eebcb8 100755 --- a/.gitignore +++ b/.gitignore @@ -4,6 +4,7 @@ .nox .pytest_cache .ipynb_checkpoints +*.geojson __pycache__ poetry.lock docs/_build diff --git a/docs/conf.py b/docs/conf.py new file mode 100644 index 0000000..dbb23f5 --- /dev/null +++ b/docs/conf.py @@ -0,0 +1,15 @@ +""" +Configuration for SPHINX document generator +""" +project = "NLDI Crawler" +author = "USGS" +copyright = f"2022, {author}" +extensions= [ + "sphinx.ext.autodoc", + "sphinx.ext.napoleon", + "sphinx_autodoc_typehints", + "myst_parser", + "sphinx_rtd_theme", + 'sphinxcontrib.mermaid' +] +html_theme = "sphinx_rtd_theme" diff --git a/docs/index.rst b/docs/index.rst new file mode 100644 index 0000000..22e720f --- /dev/null +++ b/docs/index.rst @@ -0,0 +1,8 @@ +SS-Delineate Documentation +========================== + +.. toctree:: + :hidden: + + source_table + workflow diff --git a/docs/source_table.md b/docs/source_table.md new file mode 100644 index 0000000..7ee4d94 --- /dev/null +++ b/docs/source_table.md @@ -0,0 +1,51 @@ +# Sources Table + +Annotations for the `crawler_source` table, which holds information for finding and processing feature sources: + +| Type | Column Name | Description | +|------|-------------| ------------| +| integer | crawler_source_id | The unique identifier to differentiate sources in this table. | +| string | source_name | A human-readable, friendly discriptor for the data source | +| string | source_suffix | This string is used to build table names internally. It should be a unique string with no special characters | +| string | source_uri | The web address from which feature data is retrieved. | +| string | feature_id | The returned GeoJSON from `source_uri` includes feature properties/attributes. This field identifies the name of the property which uniquely identifies the feature within the feature collection. This is treated as the `KEY` within the feature collection | +| string | feature_name | The property name within the returned GeoJSON which holds the name of the feature. | +| string | feature_uri | the property name within the returned GeoJSON which holds the URL by which a feature can be accessed directly. | +| string | feature_reach | The property name within the returned GeoJSON which holds the reach identifier | +| string | feature_measure | The property name within the returned GeoJSON which holds the M-value along the `feature_reach` where this feature can be found | +| string | ingest_type | The type of feature to be parsed. This string should be one of [ `reach` , `point` ] | +| string | feature_type | Unknown. This string is one of [ `hydrolocation` , `point` , `varies` ] + + +## Example + +```sql +SELECT * from nldi_data.crawler_source where crawler_source_id = 10 +``` +|Source number `10` contains the following data: + +|Column | Value | +|-------|-------| +|crawler_source_id | 10 +|source_name | Vigil Network Data +|source_suffix | vigil +|source_uri | https://www.sciencebase.gov/catalog/file/get/60c7b895d34e86b9389b2a6c?name=vigil.geojson +|feature_id | SBID +|feature_name | Site Name +|feature_uri | SBURL +|feature_reach | REACHCODE +|feature_measure | REACH_measure +|ingest_type | reach +|feature_type | hydrolocation + +If we fetch the GeoJSON for this source, we see that the feature table looks like this: + +| SBID | Site Name | SBURL | REACHCODE | REACH_measure | Location | geometry | ... | +|------|-----------|-------|-----------|---------------|----------|----------| ----| +|5fe395bbd34ea5387deb4950 | Aching Shoulder Slope, New Mexico, USA | https://www.sciencebase.gov/catalog/item/5fe395bbd34ea5387deb4950 | null | null | Mitten Rock, New Mexico USA | Point() | ... | +5fe39807d34ea5387deb4970 | Armells Creek, Montana, USA | https://www.sciencebase.gov/catalog/item/5fe39807d34ea5387deb4970 | 10100001000709 | 90.193048735368549 | Yellowstone River Basin, Southeastern Montana, USA | Point() | ... | +|...| +|...| + + + diff --git a/docs/workflow.md b/docs/workflow.md new file mode 100644 index 0000000..42e8cdf --- /dev/null +++ b/docs/workflow.md @@ -0,0 +1,47 @@ +# Workflow + +The crawler CLI will bulk-download feature data from pre-defined sources. The sequence is a follows: + +## Sequence Diagram + +```mermaid +%%{init: { + "theme": "default", + "mid-width": 2500, + "max-width": 5000, + "sequence": {"showSequenceNumbers": true } + } +}%% +sequenceDiagram + actor CLI + CLI->>Crawler: launch + Crawler->>+NLDI-DB: Get Source Information + Note left of NLDI-DB: SELECT * FROM nldi_data.crawler_source + NLDI-DB-->>-Crawler: Sources table + + Crawler->>+FeatureSource: Request Features + Note left of FeatureSource: HTTP GET ${crawler_source.source_uri} + FeatureSource-->>-Crawler: GeoJSON FeatureCollection + loop foreach feature in Collection + Crawler-->>+Crawler: ORM + Note right of Crawler: Parses and maps feature to SQL + Crawler->>-NLDI-DB: Add to feature table + Note left of NLDI-DB: INSERT INTO nldi_data.features + end + Crawler->>NLDI-DB: Relate Features + + %NLDI-DB-->>-Crawler: Success +``` + +## Annotations + +1) Launch CLI tool +2) Connect to NLDI master database, requesting the list of configured feature sources. +3) Returns a list of feature sources. The crawler can either: + * list all sources and exit + * Proceed to 'crawl' one of the sources in the table +4) For the identified feature source, make a GET request via HTTP. The URI is taken from the `crawler_sources` table. +5) The feature source returns GeoJSON. Among the returned data is a list of 'features'. +6) **[Per-Feature]** Use the ORM to map the feature data to the schema reflected from the `features` table +7) **[Per-Feature]** Insert the new feature to the master NLDI database +8) "Relate" features -- build the relationships matching features to their adjacent features in the NLDI topology. \ No newline at end of file diff --git a/notebooks/ORM.ipynb b/notebooks/ORM.ipynb index 13c9794..9a0eb05 100644 --- a/notebooks/ORM.ipynb +++ b/notebooks/ORM.ipynb @@ -10,7 +10,7 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 1, "metadata": {}, "outputs": [ { @@ -19,7 +19,7 @@ "'2.0.0b1'" ] }, - "execution_count": 2, + "execution_count": 1, "metadata": {}, "output_type": "execute_result" } @@ -31,7 +31,7 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 2, "metadata": {}, "outputs": [], "source": [ @@ -44,7 +44,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 3, "metadata": {}, "outputs": [], "source": [ @@ -57,7 +57,7 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 4, "metadata": {}, "outputs": [], "source": [ @@ -67,7 +67,7 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 5, "metadata": {}, "outputs": [], "source": [ @@ -89,7 +89,7 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 6, "metadata": {}, "outputs": [], "source": [ @@ -99,24 +99,123 @@ }, { "cell_type": "code", - "execution_count": 18, + "execution_count": 9, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - " 1 :: Water Quality Portal :: https://www.waterqualitydata.us/data/Station/sea...\n", - " 2 :: HUC12 Pour Points :: https://www.sciencebase.gov/catalogMaps/mapping/...\n", - " 5 :: NWIS Surface Water Sites :: https://www.sciencebase.gov/catalog/file/get/60c...\n", - " 6 :: Water Data Exchange 2.0 Sites :: https://www.hydroshare.org/resource/5f665b7b82d7...\n", - " 7 :: geoconnex.us reference gages :: https://www.hydroshare.org/resource/3295a17b4cc2...\n", - " 8 :: Streamgage catalog for CA SB19 :: https://sb19.linked-data.internetofwater.dev/col...\n", - " 9 :: USGS Geospatial Fabric V1.1 Poin :: https://www.sciencebase.gov/catalogMaps/mapping/...\n", - "10 :: Vigil Network Data :: https://www.sciencebase.gov/catalog/file/get/60c...\n", - "11 :: NWIS Groundwater Sites :: https://www.sciencebase.gov/catalog/file/get/60c...\n", - "12 :: New Mexico Water Data Initative :: https://locations.newmexicowaterdata.org/collect...\n", - "13 :: geoconnex contribution demo site :: https://geoconnex-demo-pages.internetofwater.dev...\n" + " 1 :: Water Quality Portal \n", + "\t Source Suffix: WQP\n", + "\t Source URI: https://www.waterqualitydata.us/data/Station/search?mimeType=geojson&minactivities=1&counts=no\n", + "\t Feature ID: MonitoringLocationIdentifier\n", + "\t Feature Name: MonitoringLocationName\n", + "\t Feature URI: siteUrl\n", + "\t Feature Reach: None\n", + "\t Feature Measure:None\n", + "\t Ingest Type: point\n", + "\t Feature Type varies\n", + " 2 :: HUC12 Pour Points \n", + "\t Source Suffix: huc12pp\n", + "\t Source URI: https://www.sciencebase.gov/catalogMaps/mapping/ows/57336b02e4b0dae0d5dd619a?service=WFS&version=1.0.0&request=GetFeature&srsName=EPSG:4326&typeName=sb:fpp&outputFormat=json\n", + "\t Feature ID: HUC_12\n", + "\t Feature Name: HUC_12\n", + "\t Feature URI: HUC_12\n", + "\t Feature Reach: None\n", + "\t Feature Measure:None\n", + "\t Ingest Type: point\n", + "\t Feature Type hydrolocation\n", + " 5 :: NWIS Surface Water Sites \n", + "\t Source Suffix: nwissite\n", + "\t Source URI: https://www.sciencebase.gov/catalog/file/get/60c7b895d34e86b9389b2a6c?name=usgs_nldi_gages.geojson\n", + "\t Feature ID: provider_id\n", + "\t Feature Name: name\n", + "\t Feature URI: subjectOf\n", + "\t Feature Reach: nhdpv2_REACHCODE\n", + "\t Feature Measure:nhdpv2_REACH_measure\n", + "\t Ingest Type: reach\n", + "\t Feature Type hydrolocation\n", + " 6 :: Water Data Exchange 2.0 Sites \n", + "\t Source Suffix: wade\n", + "\t Source URI: https://www.hydroshare.org/resource/5f665b7b82d74476930712f7e423a0d2/data/contents/wade.geojson\n", + "\t Feature ID: feature_id\n", + "\t Feature Name: feature_name\n", + "\t Feature URI: feature_uri\n", + "\t Feature Reach: None\n", + "\t Feature Measure:None\n", + "\t Ingest Type: point\n", + "\t Feature Type varies\n", + " 7 :: geoconnex.us reference gages \n", + "\t Source Suffix: ref_gage\n", + "\t Source URI: https://www.hydroshare.org/resource/3295a17b4cc24d34bd6a5c5aaf753c50/data/contents/nldi_gages.geojson\n", + "\t Feature ID: id\n", + "\t Feature Name: name\n", + "\t Feature URI: subjectOf\n", + "\t Feature Reach: nhdpv2_REACHCODE\n", + "\t Feature Measure:nhdpv2_REACH_measure\n", + "\t Ingest Type: reach\n", + "\t Feature Type hydrolocation\n", + " 8 :: Streamgage catalog for CA SB19 \n", + "\t Source Suffix: ca_gages\n", + "\t Source URI: https://sb19.linked-data.internetofwater.dev/collections/ca_gages/items?f=json&limit=10000\n", + "\t Feature ID: site_id\n", + "\t Feature Name: sitename\n", + "\t Feature URI: uri\n", + "\t Feature Reach: rchcd_medres\n", + "\t Feature Measure:reach_measure\n", + "\t Ingest Type: reach\n", + "\t Feature Type hydrolocation\n", + " 9 :: USGS Geospatial Fabric V1.1 Poin\n", + "\t Source Suffix: gfv11_pois\n", + "\t Source URI: https://www.sciencebase.gov/catalogMaps/mapping/ows/609c8a63d34ea221ce3acfd3?service=WFS&version=1.0.0&request=GetFeature&srsName=EPSG:4326&typeName=sb::gfv11&outputFormat=json\n", + "\t Feature ID: prvdr_d\n", + "\t Feature Name: name\n", + "\t Feature URI: uri\n", + "\t Feature Reach: n2_REACHC\n", + "\t Feature Measure:n2_REACH_\n", + "\t Ingest Type: reach\n", + "\t Feature Type hydrolocation\n", + "10 :: Vigil Network Data \n", + "\t Source Suffix: vigil\n", + "\t Source URI: https://www.sciencebase.gov/catalog/file/get/60c7b895d34e86b9389b2a6c?name=vigil.geojson\n", + "\t Feature ID: SBID\n", + "\t Feature Name: Site Name\n", + "\t Feature URI: SBURL\n", + "\t Feature Reach: nhdpv2_REACHCODE\n", + "\t Feature Measure:nhdpv2_REACH_measure\n", + "\t Ingest Type: reach\n", + "\t Feature Type hydrolocation\n", + "11 :: NWIS Groundwater Sites \n", + "\t Source Suffix: nwisgw\n", + "\t Source URI: https://www.sciencebase.gov/catalog/file/get/60c7b895d34e86b9389b2a6c?name=nwis_wells.geojson\n", + "\t Feature ID: provider_id\n", + "\t Feature Name: name\n", + "\t Feature URI: subjectOf\n", + "\t Feature Reach: None\n", + "\t Feature Measure:None\n", + "\t Ingest Type: point\n", + "\t Feature Type point\n", + "12 :: New Mexico Water Data Initative \n", + "\t Source Suffix: nmwdi-st\n", + "\t Source URI: https://locations.newmexicowaterdata.org/collections/Things/items?f=json&limit=100000\n", + "\t Feature ID: id\n", + "\t Feature Name: name\n", + "\t Feature URI: geoconnex\n", + "\t Feature Reach: None\n", + "\t Feature Measure:None\n", + "\t Ingest Type: point\n", + "\t Feature Type point\n", + "13 :: geoconnex contribution demo site\n", + "\t Source Suffix: geoconnex-demo\n", + "\t Source URI: https://geoconnex-demo-pages.internetofwater.dev/collections/demo-gpkg/items?f=json&limit=10000\n", + "\t Feature ID: id\n", + "\t Feature Name: GNIS_NAME\n", + "\t Feature URI: uri\n", + "\t Feature Reach: NHDPv2ReachCode\n", + "\t Feature Measure:NHDPv2Measure\n", + "\t Ingest Type: reach\n", + "\t Feature Type hydrolocation\n" ] } ], @@ -124,7 +223,16 @@ "stmt = select(CrawlerSource).order_by(CrawlerSource.crawler_source_id) #.where(CrawlerSource.crawler_source_id == 1)\n", "with Session(eng) as session:\n", " for source in session.scalars(stmt):\n", - " print(f\"{source.crawler_source_id:2} :: {source.source_name[0:32]:32} :: {source.source_uri[0:48]:48}...\")" + " print(f\"{source.crawler_source_id:2} :: {source.source_name[0:32]:32}\")\n", + " print(f\"\\t Source Suffix: {source.source_suffix}\")\n", + " print(f\"\\t Source URI: {source.source_uri}\")\n", + " print(f\"\\t Feature ID: {source.feature_id}\") \n", + " print(f\"\\t Feature Name: {source.feature_name}\")\n", + " print(f\"\\t Feature URI: {source.feature_uri}\") \n", + " print(f\"\\t Feature Reach: {source.feature_reach}\") \n", + " print(f\"\\t Feature Measure:{source.feature_measure}\") \n", + " print(f\"\\t Ingest Type: {source.ingest_type}\")\n", + " print(f\"\\t Feature Type {source.feature_type}\")" ] }, { diff --git a/notebooks/fetch_data.ipynb b/notebooks/fetch_data.ipynb new file mode 100644 index 0000000..3257119 --- /dev/null +++ b/notebooks/fetch_data.ipynb @@ -0,0 +1,3524 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "import aiohttp\n", + "session = aiohttp.ClientSession()\n" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [], + "source": [ + "async with session.get('https://geoconnex-demo-pages.internetofwater.dev/collections/demo-gpkg/items?f=json&limit=1000', allow_redirects=True) as resp:\n", + " with open(\"nldi_sample_data.geojson\", 'wb') as fd:\n", + " async for chunk in resp.content.iter_chunked(1024):\n", + " fd.write(chunk)" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [], + "source": [ + "\n", + "import httpx" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{'type': 'FeatureCollection',\n", + " 'features': [{'type': 'Feature',\n", + " 'geometry': {'type': 'Point',\n", + " 'coordinates': [-69.28754452464723, 46.49314140574131]},\n", + " 'properties': {'fid': 1,\n", + " 'SourceAgency': None,\n", + " 'SourceDataset': None,\n", + " 'SourceFeatureURL': None,\n", + " 'FeatureType': None,\n", + " 'ReachCode': '01010002001452',\n", + " 'Measure': 64.87204415982373,\n", + " 'ReachSMDate': '2012-03-07T00:00:00.000Z',\n", + " 'AddressDate': '2022-03-01T01:26:08.000Z',\n", + " 'Catchment': 0.0,\n", + " 'HU': '',\n", + " 'OnNetwork': 1,\n", + " 'HydroAddressID': '78f8fbec-d4e9-4e72-bcf9-32136d391bbb',\n", + " 'GNIS_NAME': 'Allagash River',\n", + " 'GNIS_ID': None,\n", + " 'SnapTolerance': 250.0,\n", + " 'SnapDistance': 93.1321,\n", + " 'InSnapTolerance': 1,\n", + " 'QCTolerance': 250.0,\n", + " 'InQCTolerance': 1,\n", + " 'QCApproved': 1,\n", + " 'NHDPv2ReachCode': '01010002001002',\n", + " 'NHDPv2Measure': 0.0,\n", + " 'Latitude': 46.49333333,\n", + " 'Longitude': -69.28833333,\n", + " 'uri': 'https://geoconnex.us/iow/demo/ME00237',\n", + " 'state': 'https://geoconnex.us/ref/states/23',\n", + " 'huc8': 'https://geoconnex.us/ref/hu08/01010002',\n", + " 'reachcode_nhdpv2': 'https://geoconnex.us/nhdplusv2/reachcode/01010002001002'},\n", + " 'id': 'ME00237'},\n", + " {'type': 'Feature',\n", + " 'geometry': {'type': 'Point',\n", + " 'coordinates': [-68.00154815977119, 46.84888746287133]},\n", + " 'properties': {'fid': 2,\n", + " 'SourceAgency': None,\n", + " 'SourceDataset': None,\n", + " 'SourceFeatureURL': None,\n", + " 'FeatureType': None,\n", + " 'ReachCode': '01010004000009',\n", + " 'Measure': 28.082673915760665,\n", + " 'ReachSMDate': '2012-03-07T00:00:00.000Z',\n", + " 'AddressDate': '2022-03-01T01:26:08.000Z',\n", + " 'Catchment': 0.0,\n", + " 'HU': '',\n", + " 'OnNetwork': 1,\n", + " 'HydroAddressID': '258ac38a-9b2d-4642-80b0-1de1a8be1a82',\n", + " 'GNIS_NAME': 'Aroostook River',\n", + " 'GNIS_ID': None,\n", + " 'SnapTolerance': 250.0,\n", + " 'SnapDistance': 5.73634,\n", + " 'InSnapTolerance': 1,\n", + " 'QCTolerance': 250.0,\n", + " 'InQCTolerance': 1,\n", + " 'QCApproved': 1,\n", + " 'NHDPv2ReachCode': '01010004000009',\n", + " 'NHDPv2Measure': 0.0,\n", + " 'Latitude': 46.8489,\n", + " 'Longitude': -68.0015,\n", + " 'uri': 'https://geoconnex.us/iow/demo/ME00227',\n", + " 'state': 'https://geoconnex.us/ref/states/23',\n", + " 'huc8': 'https://geoconnex.us/ref/hu08/01010004',\n", + " 'reachcode_nhdpv2': 'https://geoconnex.us/nhdplusv2/reachcode/01010004000009'},\n", + " 'id': 'ME00227'},\n", + " {'type': 'Feature',\n", + " 'geometry': {'type': 'Point',\n", + " 'coordinates': [-69.62308012253605, 44.48433981437317]},\n", + " 'properties': {'fid': 3,\n", + " 'SourceAgency': None,\n", + " 'SourceDataset': None,\n", + " 'SourceFeatureURL': None,\n", + " 'FeatureType': None,\n", + " 'ReachCode': '01030003000057',\n", + " 'Measure': 21.349901208628555,\n", + " 'ReachSMDate': '2012-03-07T00:00:00.000Z',\n", + " 'AddressDate': '2022-03-01T01:26:09.000Z',\n", + " 'Catchment': 0.0,\n", + " 'HU': '',\n", + " 'OnNetwork': 1,\n", + " 'HydroAddressID': 'b98af245-46e2-4acc-a63f-03b4c6dd28b0',\n", + " 'GNIS_NAME': 'Outlet Stream',\n", + " 'GNIS_ID': None,\n", + " 'SnapTolerance': 250.0,\n", + " 'SnapDistance': 12.4095,\n", + " 'InSnapTolerance': 1,\n", + " 'QCTolerance': 250.0,\n", + " 'InQCTolerance': 1,\n", + " 'QCApproved': 1,\n", + " 'NHDPv2ReachCode': '01010004000561',\n", + " 'NHDPv2Measure': 0.92457,\n", + " 'Latitude': 44.484392,\n", + " 'Longitude': -69.622996,\n", + " 'uri': 'https://geoconnex.us/iow/demo/ME00350',\n", + " 'state': 'https://geoconnex.us/ref/states/23',\n", + " 'huc8': 'https://geoconnex.us/ref/hu08/01030003',\n", + " 'reachcode_nhdpv2': 'https://geoconnex.us/nhdplusv2/reachcode/01010004000561'},\n", + " 'id': 'ME00350'},\n", + " {'type': 'Feature',\n", + " 'geometry': {'type': 'Point',\n", + " 'coordinates': [-68.01743169451791, 46.68168448777537]},\n", + " 'properties': {'fid': 4,\n", + " 'SourceAgency': None,\n", + " 'SourceDataset': None,\n", + " 'SourceFeatureURL': None,\n", + " 'FeatureType': None,\n", + " 'ReachCode': '01010004000561',\n", + " 'Measure': 45.107645733697574,\n", + " 'ReachSMDate': '2019-03-19T11:46:26.000Z',\n", + " 'AddressDate': '2022-03-01T01:26:10.000Z',\n", + " 'Catchment': 0.0,\n", + " 'HU': '',\n", + " 'OnNetwork': 1,\n", + " 'HydroAddressID': 'f70aedce-b36f-4506-bad7-9686eef967c3',\n", + " 'GNIS_NAME': 'Presque Isle Stream',\n", + " 'GNIS_ID': None,\n", + " 'SnapTolerance': 250.0,\n", + " 'SnapDistance': 10.0293,\n", + " 'InSnapTolerance': 1,\n", + " 'QCTolerance': 250.0,\n", + " 'InQCTolerance': 1,\n", + " 'QCApproved': 1,\n", + " 'NHDPv2ReachCode': '01010004000561',\n", + " 'NHDPv2Measure': 0.92457,\n", + " 'Latitude': 46.681657,\n", + " 'Longitude': -68.017351,\n", + " 'uri': 'https://geoconnex.us/iow/demo/ME00479',\n", + " 'state': 'https://geoconnex.us/ref/states/23',\n", + " 'huc8': 'https://geoconnex.us/ref/hu08/01010004',\n", + " 'reachcode_nhdpv2': 'https://geoconnex.us/nhdplusv2/reachcode/01010004000561'},\n", + " 'id': 'ME00479'},\n", + " {'type': 'Feature',\n", + " 'geometry': {'type': 'Point',\n", + " 'coordinates': [-70.1933885577219, 46.01114402591814]},\n", + " 'properties': {'fid': 5,\n", + " 'SourceAgency': None,\n", + " 'SourceDataset': None,\n", + " 'SourceFeatureURL': None,\n", + " 'FeatureType': None,\n", + " 'ReachCode': '01020001000177',\n", + " 'Measure': 99.27739413451516,\n", + " 'ReachSMDate': '2012-03-07T00:00:00.000Z',\n", + " 'AddressDate': '2022-03-01T01:26:13.000Z',\n", + " 'Catchment': 0.0,\n", + " 'HU': '',\n", + " 'OnNetwork': 1,\n", + " 'HydroAddressID': 'a234e7dc-d93b-4dd0-92db-9a9853da8d6f',\n", + " 'GNIS_NAME': 'Dole Brook',\n", + " 'GNIS_ID': None,\n", + " 'SnapTolerance': 250.0,\n", + " 'SnapDistance': 15.3099,\n", + " 'InSnapTolerance': 1,\n", + " 'QCTolerance': 250.0,\n", + " 'InQCTolerance': 1,\n", + " 'QCApproved': 1,\n", + " 'NHDPv2ReachCode': '01020001002199',\n", + " 'NHDPv2Measure': 0.0,\n", + " 'Latitude': 46.0112,\n", + " 'Longitude': -70.1935,\n", + " 'uri': 'https://geoconnex.us/iow/demo/ME00213',\n", + " 'state': 'https://geoconnex.us/ref/states/23',\n", + " 'huc8': 'https://geoconnex.us/ref/hu08/01020001',\n", + " 'reachcode_nhdpv2': 'https://geoconnex.us/nhdplusv2/reachcode/01020001002199'},\n", + " 'id': 'ME00213'},\n", + " {'type': 'Feature',\n", + " 'geometry': {'type': 'Point',\n", + " 'coordinates': [-69.1923660080685, 45.94765142630122]},\n", + " 'properties': {'fid': 6,\n", + " 'SourceAgency': None,\n", + " 'SourceDataset': None,\n", + " 'SourceFeatureURL': None,\n", + " 'FeatureType': None,\n", + " 'ReachCode': '01020001006926',\n", + " 'Measure': 5.4540854266793115,\n", + " 'ReachSMDate': '2019-03-08T08:36:44.000Z',\n", + " 'AddressDate': '2022-03-01T01:26:10.000Z',\n", + " 'Catchment': 0.0,\n", + " 'HU': '',\n", + " 'OnNetwork': 1,\n", + " 'HydroAddressID': '438e8e40-d6af-4598-b92c-ff50a315a8b2',\n", + " 'GNIS_NAME': 'Duck Brook',\n", + " 'GNIS_ID': None,\n", + " 'SnapTolerance': 250.0,\n", + " 'SnapDistance': 30.1216,\n", + " 'InSnapTolerance': 1,\n", + " 'QCTolerance': 250.0,\n", + " 'InQCTolerance': 1,\n", + " 'QCApproved': 1,\n", + " 'NHDPv2ReachCode': '01020001002378',\n", + " 'NHDPv2Measure': 0.0,\n", + " 'Latitude': 45.9478,\n", + " 'Longitude': -69.1922,\n", + " 'uri': 'https://geoconnex.us/iow/demo/ME00208',\n", + " 'state': 'https://geoconnex.us/ref/states/23',\n", + " 'huc8': 'https://geoconnex.us/ref/hu08/01020001',\n", + " 'reachcode_nhdpv2': 'https://geoconnex.us/nhdplusv2/reachcode/01020001002378'},\n", + " 'id': 'ME00208'},\n", + " {'type': 'Feature',\n", + " 'geometry': {'type': 'Point',\n", + " 'coordinates': [-68.79056993461126, 46.14114330799758]},\n", + " 'properties': {'fid': 7,\n", + " 'SourceAgency': None,\n", + " 'SourceDataset': None,\n", + " 'SourceFeatureURL': None,\n", + " 'FeatureType': None,\n", + " 'ReachCode': '01020002002293',\n", + " 'Measure': 0.5122040579266829,\n", + " 'ReachSMDate': '2012-03-07T00:00:00.000Z',\n", + " 'AddressDate': '2022-03-01T01:26:14.000Z',\n", + " 'Catchment': 0.0,\n", + " 'HU': '',\n", + " 'OnNetwork': 1,\n", + " 'HydroAddressID': '8f17b672-b09d-445f-9fb8-bf9014d8f934',\n", + " 'GNIS_NAME': 'East Branch Penobscot River',\n", + " 'GNIS_ID': None,\n", + " 'SnapTolerance': 250.0,\n", + " 'SnapDistance': 16.2516,\n", + " 'InSnapTolerance': 1,\n", + " 'QCTolerance': 250.0,\n", + " 'InQCTolerance': 1,\n", + " 'QCApproved': 1,\n", + " 'NHDPv2ReachCode': '01020002001096',\n", + " 'NHDPv2Measure': 0.0,\n", + " 'Latitude': 46.1411,\n", + " 'Longitude': -68.790438,\n", + " 'uri': 'https://geoconnex.us/iow/demo/ME00180',\n", + " 'state': 'https://geoconnex.us/ref/states/23',\n", + " 'huc8': 'https://geoconnex.us/ref/hu08/01020002',\n", + " 'reachcode_nhdpv2': 'https://geoconnex.us/nhdplusv2/reachcode/01020002001096'},\n", + " 'id': 'ME00180'},\n", + " {'type': 'Feature',\n", + " 'geometry': {'type': 'Point',\n", + " 'coordinates': [-69.12671878180181, 46.14805575784269]},\n", + " 'properties': {'fid': 8,\n", + " 'SourceAgency': None,\n", + " 'SourceDataset': None,\n", + " 'SourceFeatureURL': None,\n", + " 'FeatureType': None,\n", + " 'ReachCode': '01020002000121',\n", + " 'Measure': 90.27743400330398,\n", + " 'ReachSMDate': '2012-03-07T00:00:00.000Z',\n", + " 'AddressDate': '2022-03-01T01:26:12.000Z',\n", + " 'Catchment': 0.0,\n", + " 'HU': '',\n", + " 'OnNetwork': 1,\n", + " 'HydroAddressID': 'cdc894eb-cc8e-4459-b36a-d440ffbace44',\n", + " 'GNIS_NAME': None,\n", + " 'GNIS_ID': None,\n", + " 'SnapTolerance': 250.0,\n", + " 'SnapDistance': 5.80115,\n", + " 'InSnapTolerance': 1,\n", + " 'QCTolerance': 250.0,\n", + " 'InQCTolerance': 1,\n", + " 'QCApproved': 1,\n", + " 'NHDPv2ReachCode': '01020002001118',\n", + " 'NHDPv2Measure': 0.0,\n", + " 'Latitude': 46.14805556,\n", + " 'Longitude': -69.12666667,\n", + " 'uri': 'https://geoconnex.us/iow/demo/ME00197',\n", + " 'state': 'https://geoconnex.us/ref/states/23',\n", + " 'huc8': 'https://geoconnex.us/ref/hu08/01020002',\n", + " 'reachcode_nhdpv2': 'https://geoconnex.us/nhdplusv2/reachcode/01020002001118'},\n", + " 'id': 'ME00197'},\n", + " {'type': 'Feature',\n", + " 'geometry': {'type': 'Point',\n", + " 'coordinates': [-68.28479593583725, 45.35918300382451]},\n", + " 'properties': {'fid': 9,\n", + " 'SourceAgency': None,\n", + " 'SourceDataset': None,\n", + " 'SourceFeatureURL': None,\n", + " 'FeatureType': None,\n", + " 'ReachCode': '01020003002428',\n", + " 'Measure': 80.77594699900544,\n", + " 'ReachSMDate': '2012-03-07T00:00:00.000Z',\n", + " 'AddressDate': '2022-03-01T01:26:14.000Z',\n", + " 'Catchment': 0.0,\n", + " 'HU': '',\n", + " 'OnNetwork': 1,\n", + " 'HydroAddressID': 'd80ef8e4-9e84-456e-99c5-d1d4eac0050f',\n", + " 'GNIS_NAME': 'Mattakeunk Stream',\n", + " 'GNIS_ID': None,\n", + " 'SnapTolerance': 250.0,\n", + " 'SnapDistance': 36.6357,\n", + " 'InSnapTolerance': 1,\n", + " 'QCTolerance': 250.0,\n", + " 'InQCTolerance': 1,\n", + " 'QCApproved': 1,\n", + " 'NHDPv2ReachCode': '01020003000014',\n", + " 'NHDPv2Measure': 0.0,\n", + " 'Latitude': 45.359135,\n", + " 'Longitude': -68.284474,\n", + " 'uri': 'https://geoconnex.us/iow/demo/ME00382',\n", + " 'state': 'https://geoconnex.us/ref/states/23',\n", + " 'huc8': 'https://geoconnex.us/ref/hu08/01020003',\n", + " 'reachcode_nhdpv2': 'https://geoconnex.us/nhdplusv2/reachcode/01020003000014'},\n", + " 'id': 'ME00382'},\n", + " {'type': 'Feature',\n", + " 'geometry': {'type': 'Point',\n", + " 'coordinates': [-68.6578983476793, 45.23913617714094]},\n", + " 'properties': {'fid': 10,\n", + " 'SourceAgency': None,\n", + " 'SourceDataset': None,\n", + " 'SourceFeatureURL': None,\n", + " 'FeatureType': None,\n", + " 'ReachCode': '01020004000001',\n", + " 'Measure': 2.7565080533840067,\n", + " 'ReachSMDate': '2012-03-07T00:00:00.000Z',\n", + " 'AddressDate': '2022-03-01T01:26:15.000Z',\n", + " 'Catchment': 0.0,\n", + " 'HU': '',\n", + " 'OnNetwork': 1,\n", + " 'HydroAddressID': 'c8e409b4-bcff-46ad-b533-3906d6c5e73a',\n", + " 'GNIS_NAME': 'Piscataquis River',\n", + " 'GNIS_ID': None,\n", + " 'SnapTolerance': 250.0,\n", + " 'SnapDistance': 60.8764,\n", + " 'InSnapTolerance': 1,\n", + " 'QCTolerance': 250.0,\n", + " 'InQCTolerance': 1,\n", + " 'QCApproved': 1,\n", + " 'NHDPv2ReachCode': '01020004000001',\n", + " 'NHDPv2Measure': 3.75439,\n", + " 'Latitude': 45.2394,\n", + " 'Longitude': -68.6575,\n", + " 'uri': 'https://geoconnex.us/iow/demo/ME00155',\n", + " 'state': 'https://geoconnex.us/ref/states/23',\n", + " 'huc8': 'https://geoconnex.us/ref/hu08/01020004',\n", + " 'reachcode_nhdpv2': 'https://geoconnex.us/nhdplusv2/reachcode/01020004000001'},\n", + " 'id': 'ME00155'},\n", + " {'type': 'Feature',\n", + " 'geometry': {'type': 'Point',\n", + " 'coordinates': [-69.53268064776044, 45.45207824909668]},\n", + " 'properties': {'fid': 11,\n", + " 'SourceAgency': None,\n", + " 'SourceDataset': None,\n", + " 'SourceFeatureURL': None,\n", + " 'FeatureType': None,\n", + " 'ReachCode': '01020004000206',\n", + " 'Measure': 70.19997186061659,\n", + " 'ReachSMDate': '2012-03-07T00:00:00.000Z',\n", + " 'AddressDate': '2022-03-01T01:26:15.000Z',\n", + " 'Catchment': 0.0,\n", + " 'HU': '',\n", + " 'OnNetwork': 1,\n", + " 'HydroAddressID': '7cb793fc-85ca-47be-9c2f-f8d104d226b2',\n", + " 'GNIS_NAME': 'Big Wilson Stream',\n", + " 'GNIS_ID': None,\n", + " 'SnapTolerance': 250.0,\n", + " 'SnapDistance': 1.57327,\n", + " 'InSnapTolerance': 1,\n", + " 'QCTolerance': 250.0,\n", + " 'InQCTolerance': 1,\n", + " 'QCApproved': 1,\n", + " 'NHDPv2ReachCode': '01020004000206',\n", + " 'NHDPv2Measure': 0.0,\n", + " 'Latitude': 45.452075,\n", + " 'Longitude': -69.532694,\n", + " 'uri': 'https://geoconnex.us/iow/demo/ME00604',\n", + " 'state': 'https://geoconnex.us/ref/states/23',\n", + " 'huc8': 'https://geoconnex.us/ref/hu08/01020004',\n", + " 'reachcode_nhdpv2': 'https://geoconnex.us/nhdplusv2/reachcode/01020004000206'},\n", + " 'id': 'ME00604'},\n", + " {'type': 'Feature',\n", + " 'geometry': {'type': 'Point',\n", + " 'coordinates': [-69.22996176484187, 45.18371105630038]},\n", + " 'properties': {'fid': 12,\n", + " 'SourceAgency': None,\n", + " 'SourceDataset': None,\n", + " 'SourceFeatureURL': None,\n", + " 'FeatureType': None,\n", + " 'ReachCode': '01020004000243',\n", + " 'Measure': 2.2793325816022265,\n", + " 'ReachSMDate': '2012-03-07T00:00:00.000Z',\n", + " 'AddressDate': '2022-03-01T01:26:13.000Z',\n", + " 'Catchment': 0.0,\n", + " 'HU': '',\n", + " 'OnNetwork': 1,\n", + " 'HydroAddressID': '500b9f5d-20a4-4ef8-a83a-33e15adc977d',\n", + " 'GNIS_NAME': 'Piscataquis River',\n", + " 'GNIS_ID': None,\n", + " 'SnapTolerance': 250.0,\n", + " 'SnapDistance': 4.60062,\n", + " 'InSnapTolerance': 1,\n", + " 'QCTolerance': 250.0,\n", + " 'InQCTolerance': 1,\n", + " 'QCApproved': 1,\n", + " 'NHDPv2ReachCode': '01020004000243',\n", + " 'NHDPv2Measure': 0.0,\n", + " 'Latitude': 45.1837,\n", + " 'Longitude': -69.23,\n", + " 'uri': 'https://geoconnex.us/iow/demo/ME00157',\n", + " 'state': 'https://geoconnex.us/ref/states/23',\n", + " 'huc8': 'https://geoconnex.us/ref/hu08/01020004',\n", + " 'reachcode_nhdpv2': 'https://geoconnex.us/nhdplusv2/reachcode/01020004000243'},\n", + " 'id': 'ME00157'},\n", + " {'type': 'Feature',\n", + " 'geometry': {'type': 'Point',\n", + " 'coordinates': [-69.38517703646122, 45.16839648393087]},\n", + " 'properties': {'fid': 13,\n", + " 'SourceAgency': None,\n", + " 'SourceDataset': None,\n", + " 'SourceFeatureURL': None,\n", + " 'FeatureType': None,\n", + " 'ReachCode': '01020004000250',\n", + " 'Measure': 25.99967030414671,\n", + " 'ReachSMDate': '2012-03-07T00:00:00.000Z',\n", + " 'AddressDate': '2022-03-01T01:26:17.000Z',\n", + " 'Catchment': 0.0,\n", + " 'HU': '',\n", + " 'OnNetwork': 1,\n", + " 'HydroAddressID': '90890031-d163-447c-a9c1-b8de3c9f26e2',\n", + " 'GNIS_NAME': 'Piscataquis River',\n", + " 'GNIS_ID': None,\n", + " 'SnapTolerance': 250.0,\n", + " 'SnapDistance': 2.12966,\n", + " 'InSnapTolerance': 1,\n", + " 'QCTolerance': 250.0,\n", + " 'InQCTolerance': 1,\n", + " 'QCApproved': 1,\n", + " 'NHDPv2ReachCode': '01020004000250',\n", + " 'NHDPv2Measure': 0.0,\n", + " 'Latitude': 45.168386,\n", + " 'Longitude': -69.385165,\n", + " 'uri': 'https://geoconnex.us/iow/demo/ME00158',\n", + " 'state': 'https://geoconnex.us/ref/states/23',\n", + " 'huc8': 'https://geoconnex.us/ref/hu08/01020004',\n", + " 'reachcode_nhdpv2': 'https://geoconnex.us/nhdplusv2/reachcode/01020004000250'},\n", + " 'id': 'ME00158'},\n", + " {'type': 'Feature',\n", + " 'geometry': {'type': 'Point',\n", + " 'coordinates': [-68.72145207083761, 44.59216033108896]},\n", + " 'properties': {'fid': 14,\n", + " 'SourceAgency': None,\n", + " 'SourceDataset': None,\n", + " 'SourceFeatureURL': None,\n", + " 'FeatureType': None,\n", + " 'ReachCode': '01020005006958',\n", + " 'Measure': 100.0,\n", + " 'ReachSMDate': '2012-03-07T00:00:00.000Z',\n", + " 'AddressDate': '2022-03-01T01:26:13.000Z',\n", + " 'Catchment': 0.0,\n", + " 'HU': '',\n", + " 'OnNetwork': 1,\n", + " 'HydroAddressID': 'e5f28e31-89e4-47ef-81aa-8215f11b32c4',\n", + " 'GNIS_NAME': 'Narramissic River',\n", + " 'GNIS_ID': None,\n", + " 'SnapTolerance': 250.0,\n", + " 'SnapDistance': 12.2587,\n", + " 'InSnapTolerance': 1,\n", + " 'QCTolerance': 250.0,\n", + " 'InQCTolerance': 1,\n", + " 'QCApproved': 1,\n", + " 'NHDPv2ReachCode': '01020005000004',\n", + " 'NHDPv2Measure': 63.20769,\n", + " 'Latitude': 44.592142,\n", + " 'Longitude': -68.721345,\n", + " 'uri': 'https://geoconnex.us/iow/demo/ME00144',\n", + " 'state': 'https://geoconnex.us/ref/states/23',\n", + " 'huc8': 'https://geoconnex.us/ref/hu08/01020005',\n", + " 'reachcode_nhdpv2': 'https://geoconnex.us/nhdplusv2/reachcode/01020005000004'},\n", + " 'id': 'ME00144'},\n", + " {'type': 'Feature',\n", + " 'geometry': {'type': 'Point',\n", + " 'coordinates': [-68.87318988134707, 44.60909088588564]},\n", + " 'properties': {'fid': 15,\n", + " 'SourceAgency': None,\n", + " 'SourceDataset': None,\n", + " 'SourceFeatureURL': None,\n", + " 'FeatureType': None,\n", + " 'ReachCode': '01020005000434',\n", + " 'Measure': 10.069791758874498,\n", + " 'ReachSMDate': '2015-09-21T10:26:26.000Z',\n", + " 'AddressDate': '2022-03-01T01:26:14.000Z',\n", + " 'Catchment': 0.0,\n", + " 'HU': '',\n", + " 'OnNetwork': 1,\n", + " 'HydroAddressID': '2e86105b-abb2-49f7-8b33-d87004a356d8',\n", + " 'GNIS_NAME': 'Marsh Stream',\n", + " 'GNIS_ID': None,\n", + " 'SnapTolerance': 250.0,\n", + " 'SnapDistance': 6.9349,\n", + " 'InSnapTolerance': 1,\n", + " 'QCTolerance': 250.0,\n", + " 'InQCTolerance': 1,\n", + " 'QCApproved': 1,\n", + " 'NHDPv2ReachCode': '01020005000434',\n", + " 'NHDPv2Measure': 0.0,\n", + " 'Latitude': 44.609096,\n", + " 'Longitude': -68.873128,\n", + " 'uri': 'https://geoconnex.us/iow/demo/ME00149',\n", + " 'state': 'https://geoconnex.us/ref/states/23',\n", + " 'huc8': 'https://geoconnex.us/ref/hu08/01020005',\n", + " 'reachcode_nhdpv2': 'https://geoconnex.us/nhdplusv2/reachcode/01020005000434'},\n", + " 'id': 'ME00149'},\n", + " {'type': 'Feature',\n", + " 'geometry': {'type': 'Point',\n", + " 'coordinates': [-68.66457990716813, 44.88339462005755]},\n", + " 'properties': {'fid': 16,\n", + " 'SourceAgency': None,\n", + " 'SourceDataset': None,\n", + " 'SourceFeatureURL': None,\n", + " 'FeatureType': None,\n", + " 'ReachCode': '01020005001742',\n", + " 'Measure': 8.897529472102228,\n", + " 'ReachSMDate': '2021-06-16T16:22:34.000Z',\n", + " 'AddressDate': '2022-03-01T01:26:15.000Z',\n", + " 'Catchment': 0.0,\n", + " 'HU': '',\n", + " 'OnNetwork': 1,\n", + " 'HydroAddressID': 'a6f01d40-8da6-4322-9d0b-ea239e6102a2',\n", + " 'GNIS_NAME': 'Stillwater River',\n", + " 'GNIS_ID': None,\n", + " 'SnapTolerance': 250.0,\n", + " 'SnapDistance': 38.4692,\n", + " 'InSnapTolerance': 1,\n", + " 'QCTolerance': 250.0,\n", + " 'InQCTolerance': 1,\n", + " 'QCApproved': 1,\n", + " 'NHDPv2ReachCode': '01020005001742',\n", + " 'NHDPv2Measure': 2.97386,\n", + " 'Latitude': 44.883277,\n", + " 'Longitude': -68.664883,\n", + " 'uri': 'https://geoconnex.us/iow/demo/ME00138',\n", + " 'state': 'https://geoconnex.us/ref/states/23',\n", + " 'huc8': 'https://geoconnex.us/ref/hu08/01020005',\n", + " 'reachcode_nhdpv2': 'https://geoconnex.us/nhdplusv2/reachcode/01020005001742'},\n", + " 'id': 'ME00138'},\n", + " {'type': 'Feature',\n", + " 'geometry': {'type': 'Point',\n", + " 'coordinates': [-69.43410881256963, 45.69150392477956]},\n", + " 'properties': {'fid': 17,\n", + " 'SourceAgency': None,\n", + " 'SourceDataset': None,\n", + " 'SourceFeatureURL': None,\n", + " 'FeatureType': None,\n", + " 'ReachCode': '01030001002906',\n", + " 'Measure': 99.28762711687321,\n", + " 'ReachSMDate': '2012-03-07T00:00:00.000Z',\n", + " 'AddressDate': '2022-03-01T01:26:21.000Z',\n", + " 'Catchment': 0.0,\n", + " 'HU': '',\n", + " 'OnNetwork': 1,\n", + " 'HydroAddressID': '2b4ff26e-f70b-4c94-b006-7cc9b17a35a4',\n", + " 'GNIS_NAME': 'Lazy Tom Stream',\n", + " 'GNIS_ID': None,\n", + " 'SnapTolerance': 250.0,\n", + " 'SnapDistance': 1.80207,\n", + " 'InSnapTolerance': 1,\n", + " 'QCTolerance': 250.0,\n", + " 'InQCTolerance': 1,\n", + " 'QCApproved': 1,\n", + " 'NHDPv2ReachCode': '01030001000213',\n", + " 'NHDPv2Measure': 0.0,\n", + " 'Latitude': 45.691504,\n", + " 'Longitude': -69.434125,\n", + " 'uri': 'https://geoconnex.us/iow/demo/ME00405',\n", + " 'state': 'https://geoconnex.us/ref/states/23',\n", + " 'huc8': 'https://geoconnex.us/ref/hu08/01030001',\n", + " 'reachcode_nhdpv2': 'https://geoconnex.us/nhdplusv2/reachcode/01030001000213'},\n", + " 'id': 'ME00405'},\n", + " {'type': 'Feature',\n", + " 'geometry': {'type': 'Point',\n", + " 'coordinates': [-70.20109376454496, 45.22315116583686]},\n", + " 'properties': {'fid': 18,\n", + " 'SourceAgency': None,\n", + " 'SourceDataset': None,\n", + " 'SourceFeatureURL': None,\n", + " 'FeatureType': None,\n", + " 'ReachCode': '01030002000319',\n", + " 'Measure': 96.53076274024983,\n", + " 'ReachSMDate': '2012-03-07T00:00:00.000Z',\n", + " 'AddressDate': '2022-03-01T01:26:17.000Z',\n", + " 'Catchment': 0.0,\n", + " 'HU': '',\n", + " 'OnNetwork': 1,\n", + " 'HydroAddressID': '7358443a-e2ef-48c4-9e9c-312e7aaf2e85',\n", + " 'GNIS_NAME': 'Dead River',\n", + " 'GNIS_ID': None,\n", + " 'SnapTolerance': 250.0,\n", + " 'SnapDistance': 34.9528,\n", + " 'InSnapTolerance': 1,\n", + " 'QCTolerance': 250.0,\n", + " 'InQCTolerance': 1,\n", + " 'QCApproved': 1,\n", + " 'NHDPv2ReachCode': '01030002002649',\n", + " 'NHDPv2Measure': 0.0,\n", + " 'Latitude': 45.2232,\n", + " 'Longitude': -70.2014,\n", + " 'uri': 'https://geoconnex.us/iow/demo/ME00127',\n", + " 'state': 'https://geoconnex.us/ref/states/23',\n", + " 'huc8': 'https://geoconnex.us/ref/hu08/01030002',\n", + " 'reachcode_nhdpv2': 'https://geoconnex.us/nhdplusv2/reachcode/01030002002649'},\n", + " 'id': 'ME00127'},\n", + " {'type': 'Feature',\n", + " 'geometry': {'type': 'Point',\n", + " 'coordinates': [-70.62620157866425, 45.31354772960627]},\n", + " 'properties': {'fid': 19,\n", + " 'SourceAgency': None,\n", + " 'SourceDataset': None,\n", + " 'SourceFeatureURL': None,\n", + " 'FeatureType': None,\n", + " 'ReachCode': '01030002000085',\n", + " 'Measure': 84.362875,\n", + " 'ReachSMDate': '2014-12-16T14:14:50.000Z',\n", + " 'AddressDate': '2022-03-01T01:26:23.000Z',\n", + " 'Catchment': 0.0,\n", + " 'HU': '',\n", + " 'OnNetwork': 1,\n", + " 'HydroAddressID': '28fa371a-f2f1-418e-b9e3-dcd3924728ab',\n", + " 'GNIS_NAME': 'North Branch Dead River',\n", + " 'GNIS_ID': None,\n", + " 'SnapTolerance': 250.0,\n", + " 'SnapDistance': 61.9061,\n", + " 'InSnapTolerance': 1,\n", + " 'QCTolerance': 250.0,\n", + " 'InQCTolerance': 1,\n", + " 'QCApproved': 1,\n", + " 'NHDPv2ReachCode': '01030002002778',\n", + " 'NHDPv2Measure': 0.0,\n", + " 'Latitude': 45.31333333,\n", + " 'Longitude': -70.62666667,\n", + " 'uri': 'https://geoconnex.us/iow/demo/ME00130',\n", + " 'state': 'https://geoconnex.us/ref/states/23',\n", + " 'huc8': 'https://geoconnex.us/ref/hu08/01030002',\n", + " 'reachcode_nhdpv2': 'https://geoconnex.us/nhdplusv2/reachcode/01030002002778'},\n", + " 'id': 'ME00130'},\n", + " {'type': 'Feature',\n", + " 'geometry': {'type': 'Point',\n", + " 'coordinates': [-69.7592333531338, 44.84667743784503]},\n", + " 'properties': {'fid': 20,\n", + " 'SourceAgency': None,\n", + " 'SourceDataset': None,\n", + " 'SourceFeatureURL': None,\n", + " 'FeatureType': None,\n", + " 'ReachCode': '01030003000321',\n", + " 'Measure': 10.926326840238005,\n", + " 'ReachSMDate': '2012-03-07T00:00:00.000Z',\n", + " 'AddressDate': '2022-03-01T01:26:15.000Z',\n", + " 'Catchment': 0.0,\n", + " 'HU': '',\n", + " 'OnNetwork': 1,\n", + " 'HydroAddressID': '6b515348-bb15-45c9-9d81-4b4a2d8f97f5',\n", + " 'GNIS_NAME': None,\n", + " 'GNIS_ID': None,\n", + " 'SnapTolerance': 250.0,\n", + " 'SnapDistance': 7.61317,\n", + " 'InSnapTolerance': 1,\n", + " 'QCTolerance': 250.0,\n", + " 'InQCTolerance': 1,\n", + " 'QCApproved': 1,\n", + " 'NHDPv2ReachCode': '01030003000321',\n", + " 'NHDPv2Measure': 0.0,\n", + " 'Latitude': 44.84666667,\n", + " 'Longitude': -69.75916667,\n", + " 'uri': 'https://geoconnex.us/iow/demo/ME00118',\n", + " 'state': 'https://geoconnex.us/ref/states/23',\n", + " 'huc8': 'https://geoconnex.us/ref/hu08/01030003',\n", + " 'reachcode_nhdpv2': 'https://geoconnex.us/nhdplusv2/reachcode/01030003000321'},\n", + " 'id': 'ME00118'},\n", + " {'type': 'Feature',\n", + " 'geometry': {'type': 'Point',\n", + " 'coordinates': [-69.72133927573601, 44.76493612168209]},\n", + " 'properties': {'fid': 21,\n", + " 'SourceAgency': None,\n", + " 'SourceDataset': None,\n", + " 'SourceFeatureURL': None,\n", + " 'FeatureType': None,\n", + " 'ReachCode': '01030003000323',\n", + " 'Measure': 6.477390448723462,\n", + " 'ReachSMDate': '2012-03-07T00:00:00.000Z',\n", + " 'AddressDate': '2022-03-01T01:26:26.000Z',\n", + " 'Catchment': 0.0,\n", + " 'HU': '',\n", + " 'OnNetwork': 1,\n", + " 'HydroAddressID': 'b376054f-d319-4254-b84b-5710eb658c3f',\n", + " 'GNIS_NAME': 'Kennebec River',\n", + " 'GNIS_ID': None,\n", + " 'SnapTolerance': 250.0,\n", + " 'SnapDistance': 22.3872,\n", + " 'InSnapTolerance': 1,\n", + " 'QCTolerance': 250.0,\n", + " 'InQCTolerance': 1,\n", + " 'QCApproved': 1,\n", + " 'NHDPv2ReachCode': '01030003000323',\n", + " 'NHDPv2Measure': 0.0,\n", + " 'Latitude': 44.7648,\n", + " 'Longitude': -69.7214,\n", + " 'uri': 'https://geoconnex.us/iow/demo/ME00085',\n", + " 'state': 'https://geoconnex.us/ref/states/23',\n", + " 'huc8': 'https://geoconnex.us/ref/hu08/01030003',\n", + " 'reachcode_nhdpv2': 'https://geoconnex.us/nhdplusv2/reachcode/01030003000323'},\n", + " 'id': 'ME00085'},\n", + " {'type': 'Feature',\n", + " 'geometry': {'type': 'Point',\n", + " 'coordinates': [-69.88551424518445, 44.79260160613417]},\n", + " 'properties': {'fid': 22,\n", + " 'SourceAgency': None,\n", + " 'SourceDataset': None,\n", + " 'SourceFeatureURL': None,\n", + " 'FeatureType': None,\n", + " 'ReachCode': '01030003000326',\n", + " 'Measure': 25.61143714362518,\n", + " 'ReachSMDate': '2016-01-26T11:36:37.000Z',\n", + " 'AddressDate': '2022-03-01T01:26:26.000Z',\n", + " 'Catchment': 0.0,\n", + " 'HU': '',\n", + " 'OnNetwork': 1,\n", + " 'HydroAddressID': '1b46ed40-8c15-47a4-b117-2b0a493a89a6',\n", + " 'GNIS_NAME': 'Kennebec River',\n", + " 'GNIS_ID': None,\n", + " 'SnapTolerance': 250.0,\n", + " 'SnapDistance': 67.5671,\n", + " 'InSnapTolerance': 1,\n", + " 'QCTolerance': 250.0,\n", + " 'InQCTolerance': 1,\n", + " 'QCApproved': 1,\n", + " 'NHDPv2ReachCode': '01030003000326',\n", + " 'NHDPv2Measure': 4.88948,\n", + " 'Latitude': 44.792882,\n", + " 'Longitude': -69.885975,\n", + " 'uri': 'https://geoconnex.us/iow/demo/ME00086',\n", + " 'state': 'https://geoconnex.us/ref/states/23',\n", + " 'huc8': 'https://geoconnex.us/ref/hu08/01030003',\n", + " 'reachcode_nhdpv2': 'https://geoconnex.us/nhdplusv2/reachcode/01030003000326'},\n", + " 'id': 'ME00086'},\n", + " {'type': 'Feature',\n", + " 'geometry': {'type': 'Point',\n", + " 'coordinates': [-70.08685047426962, 44.55104753030136]},\n", + " 'properties': {'fid': 23,\n", + " 'SourceAgency': None,\n", + " 'SourceDataset': None,\n", + " 'SourceFeatureURL': None,\n", + " 'FeatureType': None,\n", + " 'ReachCode': '01030003000489',\n", + " 'Measure': 92.70277552839877,\n", + " 'ReachSMDate': '2012-03-07T00:00:00.000Z',\n", + " 'AddressDate': '2022-03-01T01:26:29.000Z',\n", + " 'Catchment': 0.0,\n", + " 'HU': '',\n", + " 'OnNetwork': 1,\n", + " 'HydroAddressID': 'e1afae8f-f2de-43fb-b3a3-d1c0d0398d99',\n", + " 'GNIS_NAME': 'Little Norridgewock Stream',\n", + " 'GNIS_ID': None,\n", + " 'SnapTolerance': 250.0,\n", + " 'SnapDistance': 1.76733,\n", + " 'InSnapTolerance': 1,\n", + " 'QCTolerance': 250.0,\n", + " 'InQCTolerance': 1,\n", + " 'QCApproved': 1,\n", + " 'NHDPv2ReachCode': '01030003000489',\n", + " 'NHDPv2Measure': 0.0,\n", + " 'Latitude': 44.551045,\n", + " 'Longitude': -70.086835,\n", + " 'uri': 'https://geoconnex.us/iow/demo/ME00122',\n", + " 'state': 'https://geoconnex.us/ref/states/23',\n", + " 'huc8': 'https://geoconnex.us/ref/hu08/01030003',\n", + " 'reachcode_nhdpv2': 'https://geoconnex.us/nhdplusv2/reachcode/01030003000489'},\n", + " 'id': 'ME00122'},\n", + " {'type': 'Feature',\n", + " 'geometry': {'type': 'Point',\n", + " 'coordinates': [-69.90184459386863, 44.43278032081647]},\n", + " 'properties': {'fid': 24,\n", + " 'SourceAgency': None,\n", + " 'SourceDataset': None,\n", + " 'SourceFeatureURL': None,\n", + " 'FeatureType': None,\n", + " 'ReachCode': '01030003000537',\n", + " 'Measure': 24.293370317679493,\n", + " 'ReachSMDate': '2012-03-07T00:00:00.000Z',\n", + " 'AddressDate': '2022-03-01T01:26:16.000Z',\n", + " 'Catchment': 0.0,\n", + " 'HU': '',\n", + " 'OnNetwork': 1,\n", + " 'HydroAddressID': '18d27513-9492-4a5d-aa6b-b8d9e728467a',\n", + " 'GNIS_NAME': 'Belgrade Stream',\n", + " 'GNIS_ID': None,\n", + " 'SnapTolerance': 250.0,\n", + " 'SnapDistance': 18.812,\n", + " 'InSnapTolerance': 1,\n", + " 'QCTolerance': 250.0,\n", + " 'InQCTolerance': 1,\n", + " 'QCApproved': 1,\n", + " 'NHDPv2ReachCode': '01030003000537',\n", + " 'NHDPv2Measure': 0.0,\n", + " 'Latitude': 44.432843,\n", + " 'Longitude': -69.901989,\n", + " 'uri': 'https://geoconnex.us/iow/demo/ME00468',\n", + " 'state': 'https://geoconnex.us/ref/states/23',\n", + " 'huc8': 'https://geoconnex.us/ref/hu08/01030003',\n", + " 'reachcode_nhdpv2': 'https://geoconnex.us/nhdplusv2/reachcode/01030003000537'},\n", + " 'id': 'ME00468'},\n", + " {'type': 'Feature',\n", + " 'geometry': {'type': 'Point',\n", + " 'coordinates': [-68.01141420651803, 46.62625489097383]},\n", + " 'properties': {'fid': 25,\n", + " 'SourceAgency': None,\n", + " 'SourceDataset': None,\n", + " 'SourceFeatureURL': None,\n", + " 'FeatureType': None,\n", + " 'ReachCode': '01010004003723',\n", + " 'Measure': 98.80679479021859,\n", + " 'ReachSMDate': '2012-03-07T00:00:00.000Z',\n", + " 'AddressDate': '2022-03-01T01:26:21.000Z',\n", + " 'Catchment': 0.0,\n", + " 'HU': '',\n", + " 'OnNetwork': 1,\n", + " 'HydroAddressID': 'a3644d1f-560f-40fe-b4c5-68f081cc585a',\n", + " 'GNIS_NAME': None,\n", + " 'GNIS_ID': None,\n", + " 'SnapTolerance': 250.0,\n", + " 'SnapDistance': 1.14534,\n", + " 'InSnapTolerance': 1,\n", + " 'QCTolerance': 250.0,\n", + " 'InQCTolerance': 1,\n", + " 'QCApproved': 1,\n", + " 'NHDPv2ReachCode': '01030003000789',\n", + " 'NHDPv2Measure': 0.0,\n", + " 'Latitude': 46.626254,\n", + " 'Longitude': -68.011404,\n", + " 'uri': 'https://geoconnex.us/iow/demo/ME00302',\n", + " 'state': 'https://geoconnex.us/ref/states/23',\n", + " 'huc8': 'https://geoconnex.us/ref/hu08/01010004',\n", + " 'reachcode_nhdpv2': 'https://geoconnex.us/nhdplusv2/reachcode/01030003000789'},\n", + " 'id': 'ME00302'},\n", + " {'type': 'Feature',\n", + " 'geometry': {'type': 'Point',\n", + " 'coordinates': [-70.03278633817709, 44.27829508889268]},\n", + " 'properties': {'fid': 26,\n", + " 'SourceAgency': None,\n", + " 'SourceDataset': None,\n", + " 'SourceFeatureURL': None,\n", + " 'FeatureType': None,\n", + " 'ReachCode': '01030003000789',\n", + " 'Measure': 5.671304729897351,\n", + " 'ReachSMDate': '2019-05-03T14:31:36.000Z',\n", + " 'AddressDate': '2022-03-01T01:26:28.000Z',\n", + " 'Catchment': 0.0,\n", + " 'HU': '',\n", + " 'OnNetwork': 1,\n", + " 'HydroAddressID': '07c742fd-ca45-4dfd-a6a9-efa9b7a37dd2',\n", + " 'GNIS_NAME': None,\n", + " 'GNIS_ID': None,\n", + " 'SnapTolerance': 250.0,\n", + " 'SnapDistance': 12.2432,\n", + " 'InSnapTolerance': 1,\n", + " 'QCTolerance': 250.0,\n", + " 'InQCTolerance': 1,\n", + " 'QCApproved': 1,\n", + " 'NHDPv2ReachCode': '01030003000789',\n", + " 'NHDPv2Measure': 0.0,\n", + " 'Latitude': 44.278279,\n", + " 'Longitude': -70.032894,\n", + " 'uri': 'https://geoconnex.us/iow/demo/ME00101',\n", + " 'state': 'https://geoconnex.us/ref/states/23',\n", + " 'huc8': 'https://geoconnex.us/ref/hu08/01030003',\n", + " 'reachcode_nhdpv2': 'https://geoconnex.us/nhdplusv2/reachcode/01030003000789'},\n", + " 'id': 'ME00101'},\n", + " {'type': 'Feature',\n", + " 'geometry': {'type': 'Point',\n", + " 'coordinates': [-69.86965729248531, 44.95980162058801]},\n", + " 'properties': {'fid': 27,\n", + " 'SourceAgency': None,\n", + " 'SourceDataset': None,\n", + " 'SourceFeatureURL': None,\n", + " 'FeatureType': None,\n", + " 'ReachCode': '01030003003914',\n", + " 'Measure': 22.393861337444427,\n", + " 'ReachSMDate': '2012-03-07T00:00:00.000Z',\n", + " 'AddressDate': '2022-03-01T01:26:29.000Z',\n", + " 'Catchment': 0.0,\n", + " 'HU': '',\n", + " 'OnNetwork': 1,\n", + " 'HydroAddressID': '71779ab2-2d2c-4f7b-a9fa-90b79c6c8b7f',\n", + " 'GNIS_NAME': 'Kennebec River',\n", + " 'GNIS_ID': None,\n", + " 'SnapTolerance': 250.0,\n", + " 'SnapDistance': 10.813,\n", + " 'InSnapTolerance': 1,\n", + " 'QCTolerance': 250.0,\n", + " 'InQCTolerance': 1,\n", + " 'QCApproved': 1,\n", + " 'NHDPv2ReachCode': '01030003001833',\n", + " 'NHDPv2Measure': 18.0713,\n", + " 'Latitude': 44.959751,\n", + " 'Longitude': -69.869723,\n", + " 'uri': 'https://geoconnex.us/iow/demo/ME00088',\n", + " 'state': 'https://geoconnex.us/ref/states/23',\n", + " 'huc8': 'https://geoconnex.us/ref/hu08/01030003',\n", + " 'reachcode_nhdpv2': 'https://geoconnex.us/nhdplusv2/reachcode/01030003001833'},\n", + " 'id': 'ME00088'},\n", + " {'type': 'Feature',\n", + " 'geometry': {'type': 'Point',\n", + " 'coordinates': [-69.2762524167599, 44.83972539354687]},\n", + " 'properties': {'fid': 28,\n", + " 'SourceAgency': None,\n", + " 'SourceDataset': None,\n", + " 'SourceFeatureURL': None,\n", + " 'FeatureType': None,\n", + " 'ReachCode': '01030003002738',\n", + " 'Measure': 34.857976230450184,\n", + " 'ReachSMDate': '2015-03-19T11:16:03.000Z',\n", + " 'AddressDate': '2022-03-01T01:26:29.000Z',\n", + " 'Catchment': 0.0,\n", + " 'HU': '',\n", + " 'OnNetwork': 1,\n", + " 'HydroAddressID': '8d9e26af-5dc0-4e23-a640-f9b841199882',\n", + " 'GNIS_NAME': 'East Branch Sebasticook River',\n", + " 'GNIS_ID': None,\n", + " 'SnapTolerance': 250.0,\n", + " 'SnapDistance': 31.4644,\n", + " 'InSnapTolerance': 1,\n", + " 'QCTolerance': 250.0,\n", + " 'InQCTolerance': 1,\n", + " 'QCApproved': 1,\n", + " 'NHDPv2ReachCode': '01030003002738',\n", + " 'NHDPv2Measure': 0.0,\n", + " 'Latitude': 44.839821,\n", + " 'Longitude': -69.276004,\n", + " 'uri': 'https://geoconnex.us/iow/demo/ME00115',\n", + " 'state': 'https://geoconnex.us/ref/states/23',\n", + " 'huc8': 'https://geoconnex.us/ref/hu08/01030003',\n", + " 'reachcode_nhdpv2': 'https://geoconnex.us/nhdplusv2/reachcode/01030003002738'},\n", + " 'id': 'ME00115'},\n", + " {'type': 'Feature',\n", + " 'geometry': {'type': 'Point',\n", + " 'coordinates': [-69.72187417128374, 44.53986399927043]},\n", + " 'properties': {'fid': 29,\n", + " 'SourceAgency': None,\n", + " 'SourceDataset': None,\n", + " 'SourceFeatureURL': None,\n", + " 'FeatureType': None,\n", + " 'ReachCode': '01030003000528',\n", + " 'Measure': 99.75392764499527,\n", + " 'ReachSMDate': '2012-03-07T00:00:00.000Z',\n", + " 'AddressDate': '2022-03-01T01:26:29.000Z',\n", + " 'Catchment': 0.0,\n", + " 'HU': '',\n", + " 'OnNetwork': 1,\n", + " 'HydroAddressID': 'cf22f355-55d4-461e-90cc-9a125dee4860',\n", + " 'GNIS_NAME': 'Messalonskee Stream',\n", + " 'GNIS_ID': None,\n", + " 'SnapTolerance': 250.0,\n", + " 'SnapDistance': 6.3151,\n", + " 'InSnapTolerance': 1,\n", + " 'QCTolerance': 250.0,\n", + " 'InQCTolerance': 1,\n", + " 'QCApproved': 1,\n", + " 'NHDPv2ReachCode': '01030003002797',\n", + " 'NHDPv2Measure': 0.0,\n", + " 'Latitude': 44.5399,\n", + " 'Longitude': -69.7219,\n", + " 'uri': 'https://geoconnex.us/iow/demo/ME00106',\n", + " 'state': 'https://geoconnex.us/ref/states/23',\n", + " 'huc8': 'https://geoconnex.us/ref/hu08/01030003',\n", + " 'reachcode_nhdpv2': 'https://geoconnex.us/nhdplusv2/reachcode/01030003002797'},\n", + " 'id': 'ME00106'},\n", + " {'type': 'Feature',\n", + " 'geometry': {'type': 'Point',\n", + " 'coordinates': [-69.88678459504852, 44.27870096160639]},\n", + " 'properties': {'fid': 30,\n", + " 'SourceAgency': None,\n", + " 'SourceDataset': None,\n", + " 'SourceFeatureURL': None,\n", + " 'FeatureType': None,\n", + " 'ReachCode': '01030003000561',\n", + " 'Measure': 86.44345380008824,\n", + " 'ReachSMDate': '2012-03-07T00:00:00.000Z',\n", + " 'AddressDate': '2022-03-01T01:26:30.000Z',\n", + " 'Catchment': 0.0,\n", + " 'HU': '',\n", + " 'OnNetwork': 1,\n", + " 'HydroAddressID': 'f1f298f0-541b-406d-828b-37c4f0737d23',\n", + " 'GNIS_NAME': 'Cobbosseecontee Stream',\n", + " 'GNIS_ID': None,\n", + " 'SnapTolerance': 250.0,\n", + " 'SnapDistance': 8.9471,\n", + " 'InSnapTolerance': 1,\n", + " 'QCTolerance': 250.0,\n", + " 'InQCTolerance': 1,\n", + " 'QCApproved': 1,\n", + " 'NHDPv2ReachCode': '01030003002853',\n", + " 'NHDPv2Measure': 0.0,\n", + " 'Latitude': 44.278644,\n", + " 'Longitude': -69.886796,\n", + " 'uri': 'https://geoconnex.us/iow/demo/ME00096',\n", + " 'state': 'https://geoconnex.us/ref/states/23',\n", + " 'huc8': 'https://geoconnex.us/ref/hu08/01030003',\n", + " 'reachcode_nhdpv2': 'https://geoconnex.us/nhdplusv2/reachcode/01030003002853'},\n", + " 'id': 'ME00096'},\n", + " {'type': 'Feature',\n", + " 'geometry': {'type': 'Point',\n", + " 'coordinates': [-69.90631300004311, 45.06974199990772]},\n", + " 'properties': {'fid': 31,\n", + " 'SourceAgency': None,\n", + " 'SourceDataset': None,\n", + " 'SourceFeatureURL': None,\n", + " 'FeatureType': None,\n", + " 'ReachCode': '1030003002999',\n", + " 'Measure': 0.0,\n", + " 'ReachSMDate': None,\n", + " 'AddressDate': None,\n", + " 'Catchment': None,\n", + " 'HU': None,\n", + " 'OnNetwork': 0,\n", + " 'HydroAddressID': None,\n", + " 'GNIS_NAME': 'Kennebec River',\n", + " 'GNIS_ID': None,\n", + " 'SnapTolerance': 0.0,\n", + " 'SnapDistance': 0.0,\n", + " 'InSnapTolerance': 0,\n", + " 'QCTolerance': 0.0,\n", + " 'InQCTolerance': 0,\n", + " 'QCApproved': 0,\n", + " 'NHDPv2ReachCode': '01030003002999',\n", + " 'NHDPv2Measure': 0.0,\n", + " 'Latitude': 45.069742,\n", + " 'Longitude': -69.906313,\n", + " 'uri': 'https://geoconnex.us/iow/demo/ME00089',\n", + " 'state': 'https://geoconnex.us/ref/states/23',\n", + " 'huc8': 'https://geoconnex.us/ref/hu08/01030003',\n", + " 'reachcode_nhdpv2': 'https://geoconnex.us/nhdplusv2/reachcode/01030003002999'},\n", + " 'id': 'ME00089'},\n", + " {'type': 'Feature',\n", + " 'geometry': {'type': 'Point',\n", + " 'coordinates': [-71.19515250674223, 44.40838841461621]},\n", + " 'properties': {'fid': 32,\n", + " 'SourceAgency': None,\n", + " 'SourceDataset': None,\n", + " 'SourceFeatureURL': None,\n", + " 'FeatureType': None,\n", + " 'ReachCode': '01040002008473',\n", + " 'Measure': 99.47886192435942,\n", + " 'ReachSMDate': '2021-06-22T13:04:49.000Z',\n", + " 'AddressDate': '2022-03-01T01:26:30.000Z',\n", + " 'Catchment': 0.0,\n", + " 'HU': '',\n", + " 'OnNetwork': 1,\n", + " 'HydroAddressID': 'c4e98022-5417-4d04-9a08-a6e7b21b5df6',\n", + " 'GNIS_NAME': 'Androscoggin River',\n", + " 'GNIS_ID': None,\n", + " 'SnapTolerance': 250.0,\n", + " 'SnapDistance': 5.58666,\n", + " 'InSnapTolerance': 1,\n", + " 'QCTolerance': 250.0,\n", + " 'InQCTolerance': 1,\n", + " 'QCApproved': 1,\n", + " 'NHDPv2ReachCode': '01040001000006',\n", + " 'NHDPv2Measure': 10.75794,\n", + " 'Latitude': 44.4084,\n", + " 'Longitude': -71.1952,\n", + " 'uri': 'https://geoconnex.us/iow/demo/NH00191',\n", + " 'state': 'https://geoconnex.us/ref/states/33',\n", + " 'huc8': 'https://geoconnex.us/ref/hu08/01040001',\n", + " 'reachcode_nhdpv2': 'https://geoconnex.us/nhdplusv2/reachcode/01040001000006'},\n", + " 'id': 'NH00191'},\n", + " {'type': 'Feature',\n", + " 'geometry': {'type': 'Point',\n", + " 'coordinates': [-70.92085961982357, 44.77605167458943]},\n", + " 'properties': {'fid': 33,\n", + " 'SourceAgency': None,\n", + " 'SourceDataset': None,\n", + " 'SourceFeatureURL': None,\n", + " 'FeatureType': None,\n", + " 'ReachCode': '01040001000043',\n", + " 'Measure': 90.04524878324222,\n", + " 'ReachSMDate': '2012-03-02T00:00:00.000Z',\n", + " 'AddressDate': '2022-03-01T01:26:30.000Z',\n", + " 'Catchment': 0.0,\n", + " 'HU': '',\n", + " 'OnNetwork': 1,\n", + " 'HydroAddressID': '90809942-6c76-4653-89cf-9ae18f317a96',\n", + " 'GNIS_NAME': 'Rapid River',\n", + " 'GNIS_ID': None,\n", + " 'SnapTolerance': 250.0,\n", + " 'SnapDistance': 29.6895,\n", + " 'InSnapTolerance': 1,\n", + " 'QCTolerance': 250.0,\n", + " 'InQCTolerance': 1,\n", + " 'QCApproved': 1,\n", + " 'NHDPv2ReachCode': '01040001003431',\n", + " 'NHDPv2Measure': 0.0,\n", + " 'Latitude': 44.7759,\n", + " 'Longitude': -70.9207,\n", + " 'uri': 'https://geoconnex.us/iow/demo/ME00025',\n", + " 'state': 'https://geoconnex.us/ref/states/23',\n", + " 'huc8': 'https://geoconnex.us/ref/hu08/01040001',\n", + " 'reachcode_nhdpv2': 'https://geoconnex.us/nhdplusv2/reachcode/01040001003431'},\n", + " 'id': 'ME00025'},\n", + " {'type': 'Feature',\n", + " 'geometry': {'type': 'Point',\n", + " 'coordinates': [-70.8638525929788, 44.88189707765347]},\n", + " 'properties': {'fid': 34,\n", + " 'SourceAgency': None,\n", + " 'SourceDataset': None,\n", + " 'SourceFeatureURL': None,\n", + " 'FeatureType': None,\n", + " 'ReachCode': '01040001001835',\n", + " 'Measure': 53.46438361878629,\n", + " 'ReachSMDate': '2012-03-02T00:00:00.000Z',\n", + " 'AddressDate': '2022-03-01T01:26:30.000Z',\n", + " 'Catchment': 0.0,\n", + " 'HU': '',\n", + " 'OnNetwork': 1,\n", + " 'HydroAddressID': '969a162f-89b5-4873-b92d-4df12bc64236',\n", + " 'GNIS_NAME': 'Kennebago River',\n", + " 'GNIS_ID': None,\n", + " 'SnapTolerance': 250.0,\n", + " 'SnapDistance': 22.4025,\n", + " 'InSnapTolerance': 1,\n", + " 'QCTolerance': 250.0,\n", + " 'InQCTolerance': 1,\n", + " 'QCApproved': 1,\n", + " 'NHDPv2ReachCode': '01040001003439',\n", + " 'NHDPv2Measure': 0.0,\n", + " 'Latitude': 44.8818,\n", + " 'Longitude': -70.864,\n", + " 'uri': 'https://geoconnex.us/iow/demo/ME00026',\n", + " 'state': 'https://geoconnex.us/ref/states/23',\n", + " 'huc8': 'https://geoconnex.us/ref/hu08/01040001',\n", + " 'reachcode_nhdpv2': 'https://geoconnex.us/nhdplusv2/reachcode/01040001003439'},\n", + " 'id': 'ME00026'},\n", + " {'type': 'Feature',\n", + " 'geometry': {'type': 'Point',\n", + " 'coordinates': [-70.0633299193215, 43.99411882984838]},\n", + " 'properties': {'fid': 35,\n", + " 'SourceAgency': None,\n", + " 'SourceDataset': None,\n", + " 'SourceFeatureURL': None,\n", + " 'FeatureType': None,\n", + " 'ReachCode': '01040002000007',\n", + " 'Measure': 25.93802525997929,\n", + " 'ReachSMDate': '2012-03-03T00:00:00.000Z',\n", + " 'AddressDate': '2022-03-01T01:26:19.000Z',\n", + " 'Catchment': 0.0,\n", + " 'HU': '',\n", + " 'OnNetwork': 1,\n", + " 'HydroAddressID': '4cd0e7f6-8b2e-4d89-af8f-7c485f60a0f6',\n", + " 'GNIS_NAME': 'Androscoggin River',\n", + " 'GNIS_ID': None,\n", + " 'SnapTolerance': 250.0,\n", + " 'SnapDistance': 45.2823,\n", + " 'InSnapTolerance': 1,\n", + " 'QCTolerance': 250.0,\n", + " 'InQCTolerance': 1,\n", + " 'QCApproved': 1,\n", + " 'NHDPv2ReachCode': '01040002000007',\n", + " 'NHDPv2Measure': 10.44906,\n", + " 'Latitude': 43.9939,\n", + " 'Longitude': -70.0636,\n", + " 'uri': 'https://geoconnex.us/iow/demo/ME00004',\n", + " 'state': 'https://geoconnex.us/ref/states/23',\n", + " 'huc8': 'https://geoconnex.us/ref/hu08/01040002',\n", + " 'reachcode_nhdpv2': 'https://geoconnex.us/nhdplusv2/reachcode/01040002000007'},\n", + " 'id': 'ME00004'},\n", + " {'type': 'Feature',\n", + " 'geometry': {'type': 'Point',\n", + " 'coordinates': [-70.24980777375718, 44.50242696783954]},\n", + " 'properties': {'fid': 36,\n", + " 'SourceAgency': None,\n", + " 'SourceDataset': None,\n", + " 'SourceFeatureURL': None,\n", + " 'FeatureType': None,\n", + " 'ReachCode': '01040002002095',\n", + " 'Measure': 79.52462553709783,\n", + " 'ReachSMDate': '2012-03-03T00:00:00.000Z',\n", + " 'AddressDate': '2022-03-01T01:26:31.000Z',\n", + " 'Catchment': 0.0,\n", + " 'HU': '',\n", + " 'OnNetwork': 1,\n", + " 'HydroAddressID': 'bee8f930-387a-4e60-bd8e-61e32bdb531e',\n", + " 'GNIS_NAME': 'Androscoggin River',\n", + " 'GNIS_ID': None,\n", + " 'SnapTolerance': 250.0,\n", + " 'SnapDistance': 36.5652,\n", + " 'InSnapTolerance': 1,\n", + " 'QCTolerance': 250.0,\n", + " 'InQCTolerance': 1,\n", + " 'QCApproved': 1,\n", + " 'NHDPv2ReachCode': '01040002000031',\n", + " 'NHDPv2Measure': 0.0,\n", + " 'Latitude': 44.502436,\n", + " 'Longitude': -70.250136,\n", + " 'uri': 'https://geoconnex.us/iow/demo/ME00011',\n", + " 'state': 'https://geoconnex.us/ref/states/23',\n", + " 'huc8': 'https://geoconnex.us/ref/hu08/01040002',\n", + " 'reachcode_nhdpv2': 'https://geoconnex.us/nhdplusv2/reachcode/01040002000031'},\n", + " 'id': 'ME00011'},\n", + " {'type': 'Feature',\n", + " 'geometry': {'type': 'Point',\n", + " 'coordinates': [-70.23510562601703, 44.07850824480382]},\n", + " 'properties': {'fid': 37,\n", + " 'SourceAgency': None,\n", + " 'SourceDataset': None,\n", + " 'SourceFeatureURL': None,\n", + " 'FeatureType': None,\n", + " 'ReachCode': '01040002000158',\n", + " 'Measure': 95.73407384123084,\n", + " 'ReachSMDate': '2012-03-03T00:00:00.000Z',\n", + " 'AddressDate': '2022-03-01T01:26:31.000Z',\n", + " 'Catchment': 0.0,\n", + " 'HU': '',\n", + " 'OnNetwork': 1,\n", + " 'HydroAddressID': '5e6474fe-d8df-47ea-82bb-b170c0af1392',\n", + " 'GNIS_NAME': 'Little Androscoggin River',\n", + " 'GNIS_ID': None,\n", + " 'SnapTolerance': 250.0,\n", + " 'SnapDistance': 35.7212,\n", + " 'InSnapTolerance': 1,\n", + " 'QCTolerance': 250.0,\n", + " 'InQCTolerance': 1,\n", + " 'QCApproved': 1,\n", + " 'NHDPv2ReachCode': '01040002000158',\n", + " 'NHDPv2Measure': 4.63325,\n", + " 'Latitude': 44.0786,\n", + " 'Longitude': -70.2354,\n", + " 'uri': 'https://geoconnex.us/iow/demo/ME83013',\n", + " 'state': 'https://geoconnex.us/ref/states/23',\n", + " 'huc8': 'https://geoconnex.us/ref/hu08/01040002',\n", + " 'reachcode_nhdpv2': 'https://geoconnex.us/nhdplusv2/reachcode/01040002000158'},\n", + " 'id': 'ME83013'},\n", + " {'type': 'Feature',\n", + " 'geometry': {'type': 'Point',\n", + " 'coordinates': [-70.39119902238613, 44.11118353554439]},\n", + " 'properties': {'fid': 38,\n", + " 'SourceAgency': None,\n", + " 'SourceDataset': None,\n", + " 'SourceFeatureURL': None,\n", + " 'FeatureType': None,\n", + " 'ReachCode': '01040002000163',\n", + " 'Measure': 73.57063212749947,\n", + " 'ReachSMDate': '2012-03-03T00:00:00.000Z',\n", + " 'AddressDate': '2022-03-01T01:26:31.000Z',\n", + " 'Catchment': 0.0,\n", + " 'HU': '',\n", + " 'OnNetwork': 1,\n", + " 'HydroAddressID': '54d01379-6b8d-46c3-ad71-95728edc23c4',\n", + " 'GNIS_NAME': 'Little Androscoggin River',\n", + " 'GNIS_ID': None,\n", + " 'SnapTolerance': 250.0,\n", + " 'SnapDistance': 57.2528,\n", + " 'InSnapTolerance': 1,\n", + " 'QCTolerance': 250.0,\n", + " 'InQCTolerance': 1,\n", + " 'QCApproved': 1,\n", + " 'NHDPv2ReachCode': '01040002000163',\n", + " 'NHDPv2Measure': 0.0,\n", + " 'Latitude': 44.1111,\n", + " 'Longitude': -70.3917,\n", + " 'uri': 'https://geoconnex.us/iow/demo/ME00379',\n", + " 'state': 'https://geoconnex.us/ref/states/23',\n", + " 'huc8': 'https://geoconnex.us/ref/hu08/01040002',\n", + " 'reachcode_nhdpv2': 'https://geoconnex.us/nhdplusv2/reachcode/01040002000163'},\n", + " 'id': 'ME00379'},\n", + " {'type': 'Feature',\n", + " 'geometry': {'type': 'Point',\n", + " 'coordinates': [-69.06961429763018, 46.02001746358487]},\n", + " 'properties': {'fid': 39,\n", + " 'SourceAgency': None,\n", + " 'SourceDataset': None,\n", + " 'SourceFeatureURL': None,\n", + " 'FeatureType': None,\n", + " 'ReachCode': '01020001000048',\n", + " 'Measure': 99.78405246440583,\n", + " 'ReachSMDate': '2012-03-07T00:00:00.000Z',\n", + " 'AddressDate': '2022-03-01T01:26:33.000Z',\n", + " 'Catchment': 0.0,\n", + " 'HU': '',\n", + " 'OnNetwork': 1,\n", + " 'HydroAddressID': 'dec0db61-e756-4ded-ac38-cb2a4b8147d9',\n", + " 'GNIS_NAME': 'Nesowadnehunk Stream',\n", + " 'GNIS_ID': None,\n", + " 'SnapTolerance': 250.0,\n", + " 'SnapDistance': 33.3178,\n", + " 'InSnapTolerance': 1,\n", + " 'QCTolerance': 250.0,\n", + " 'InQCTolerance': 1,\n", + " 'QCApproved': 1,\n", + " 'NHDPv2ReachCode': '01040002000183',\n", + " 'NHDPv2Measure': 43.82375,\n", + " 'Latitude': 46.020018,\n", + " 'Longitude': -69.069315,\n", + " 'uri': 'https://geoconnex.us/iow/demo/ME00207',\n", + " 'state': 'https://geoconnex.us/ref/states/23',\n", + " 'huc8': 'https://geoconnex.us/ref/hu08/01020001',\n", + " 'reachcode_nhdpv2': 'https://geoconnex.us/nhdplusv2/reachcode/01040002000183'},\n", + " 'id': 'ME00207'},\n", + " {'type': 'Feature',\n", + " 'geometry': {'type': 'Point',\n", + " 'coordinates': [-70.50931162698306, 44.22247646149182]},\n", + " 'properties': {'fid': 40,\n", + " 'SourceAgency': None,\n", + " 'SourceDataset': None,\n", + " 'SourceFeatureURL': None,\n", + " 'FeatureType': None,\n", + " 'ReachCode': '01040002000179',\n", + " 'Measure': 28.379567509425268,\n", + " 'ReachSMDate': '2012-03-03T00:00:00.000Z',\n", + " 'AddressDate': '2022-03-01T01:26:32.000Z',\n", + " 'Catchment': 0.0,\n", + " 'HU': '',\n", + " 'OnNetwork': 1,\n", + " 'HydroAddressID': '9a7a5a64-d26d-472f-aace-554490149bef',\n", + " 'GNIS_NAME': 'Little Androscoggin River',\n", + " 'GNIS_ID': None,\n", + " 'SnapTolerance': 250.0,\n", + " 'SnapDistance': 10.1007,\n", + " 'InSnapTolerance': 1,\n", + " 'QCTolerance': 250.0,\n", + " 'InQCTolerance': 1,\n", + " 'QCApproved': 1,\n", + " 'NHDPv2ReachCode': '01040002000183',\n", + " 'NHDPv2Measure': 43.82375,\n", + " 'Latitude': 44.222494,\n", + " 'Longitude': -70.509399,\n", + " 'uri': 'https://geoconnex.us/iow/demo/ME00295',\n", + " 'state': 'https://geoconnex.us/ref/states/23',\n", + " 'huc8': 'https://geoconnex.us/ref/hu08/01040002',\n", + " 'reachcode_nhdpv2': 'https://geoconnex.us/nhdplusv2/reachcode/01040002000183'},\n", + " 'id': 'ME00295'},\n", + " {'type': 'Feature',\n", + " 'geometry': {'type': 'Point',\n", + " 'coordinates': [-70.20173046796047, 44.13614179808301]},\n", + " 'properties': {'fid': 41,\n", + " 'SourceAgency': None,\n", + " 'SourceDataset': None,\n", + " 'SourceFeatureURL': None,\n", + " 'FeatureType': None,\n", + " 'ReachCode': '01040002000748',\n", + " 'Measure': 18.633875,\n", + " 'ReachSMDate': '2012-03-03T00:00:00.000Z',\n", + " 'AddressDate': '2022-03-01T01:26:32.000Z',\n", + " 'Catchment': 0.0,\n", + " 'HU': '',\n", + " 'OnNetwork': 1,\n", + " 'HydroAddressID': '7df3bbb3-18af-461f-8fae-27f32a99a8af',\n", + " 'GNIS_NAME': 'Androscoggin River',\n", + " 'GNIS_ID': None,\n", + " 'SnapTolerance': 250.0,\n", + " 'SnapDistance': 23.1283,\n", + " 'InSnapTolerance': 1,\n", + " 'QCTolerance': 250.0,\n", + " 'InQCTolerance': 1,\n", + " 'QCApproved': 1,\n", + " 'NHDPv2ReachCode': '01040002000748',\n", + " 'NHDPv2Measure': 0.0,\n", + " 'Latitude': 44.136229,\n", + " 'Longitude': -70.201899,\n", + " 'uri': 'https://geoconnex.us/iow/demo/ME00006',\n", + " 'state': 'https://geoconnex.us/ref/states/23',\n", + " 'huc8': 'https://geoconnex.us/ref/hu08/01040002',\n", + " 'reachcode_nhdpv2': 'https://geoconnex.us/nhdplusv2/reachcode/01040002000748'},\n", + " 'id': 'ME00006'},\n", + " {'type': 'Feature',\n", + " 'geometry': {'type': 'Point',\n", + " 'coordinates': [-70.10790928241988, 44.12227883741191]},\n", + " 'properties': {'fid': 42,\n", + " 'SourceAgency': None,\n", + " 'SourceDataset': None,\n", + " 'SourceFeatureURL': None,\n", + " 'FeatureType': None,\n", + " 'ReachCode': '01040002000011',\n", + " 'Measure': 99.88936141414246,\n", + " 'ReachSMDate': '2012-03-03T00:00:00.000Z',\n", + " 'AddressDate': '2022-03-01T01:26:32.000Z',\n", + " 'Catchment': 0.0,\n", + " 'HU': '',\n", + " 'OnNetwork': 1,\n", + " 'HydroAddressID': 'fc8c6bb2-809b-49bb-8176-4c0d6c40dd45',\n", + " 'GNIS_NAME': 'Sabattus River',\n", + " 'GNIS_ID': None,\n", + " 'SnapTolerance': 250.0,\n", + " 'SnapDistance': 0.0837675,\n", + " 'InSnapTolerance': 1,\n", + " 'QCTolerance': 250.0,\n", + " 'InQCTolerance': 1,\n", + " 'QCApproved': 1,\n", + " 'NHDPv2ReachCode': '01040002007735',\n", + " 'NHDPv2Measure': 0.0,\n", + " 'Latitude': 44.122279,\n", + " 'Longitude': -70.10791,\n", + " 'uri': 'https://geoconnex.us/iow/demo/ME00014',\n", + " 'state': 'https://geoconnex.us/ref/states/23',\n", + " 'huc8': 'https://geoconnex.us/ref/hu08/01040002',\n", + " 'reachcode_nhdpv2': 'https://geoconnex.us/nhdplusv2/reachcode/01040002007735'},\n", + " 'id': 'ME00014'},\n", + " {'type': 'Feature',\n", + " 'geometry': {'type': 'Point',\n", + " 'coordinates': [-70.06791674680665, 44.34813649723192]},\n", + " 'properties': {'fid': 43,\n", + " 'SourceAgency': None,\n", + " 'SourceDataset': None,\n", + " 'SourceFeatureURL': None,\n", + " 'FeatureType': None,\n", + " 'ReachCode': '01040002008068',\n", + " 'Measure': 35.62691479675941,\n", + " 'ReachSMDate': '2013-02-21T11:54:45.000Z',\n", + " 'AddressDate': '2022-03-01T01:26:32.000Z',\n", + " 'Catchment': 0.0,\n", + " 'HU': '',\n", + " 'OnNetwork': 1,\n", + " 'HydroAddressID': '37748cc9-f44c-47d8-90bf-c498afa0d2fc',\n", + " 'GNIS_NAME': 'Dead River',\n", + " 'GNIS_ID': None,\n", + " 'SnapTolerance': 250.0,\n", + " 'SnapDistance': 1.16517,\n", + " 'InSnapTolerance': 1,\n", + " 'QCTolerance': 250.0,\n", + " 'InQCTolerance': 1,\n", + " 'QCApproved': 1,\n", + " 'NHDPv2ReachCode': '01040002008093',\n", + " 'NHDPv2Measure': 0.0,\n", + " 'Latitude': 44.348133,\n", + " 'Longitude': -70.067926,\n", + " 'uri': 'https://geoconnex.us/iow/demo/ME00370',\n", + " 'state': 'https://geoconnex.us/ref/states/23',\n", + " 'huc8': 'https://geoconnex.us/ref/hu08/01040002',\n", + " 'reachcode_nhdpv2': 'https://geoconnex.us/nhdplusv2/reachcode/01040002008093'},\n", + " 'id': 'ME00370'},\n", + " {'type': 'Feature',\n", + " 'geometry': {'type': 'Point',\n", + " 'coordinates': [-67.42773919204404, 45.56913180663565]},\n", + " 'properties': {'fid': 44,\n", + " 'SourceAgency': None,\n", + " 'SourceDataset': None,\n", + " 'SourceFeatureURL': None,\n", + " 'FeatureType': None,\n", + " 'ReachCode': '01050001010973',\n", + " 'Measure': 95.5373944969747,\n", + " 'ReachSMDate': '2015-05-15T13:18:23.000Z',\n", + " 'AddressDate': '2022-03-01T01:26:33.000Z',\n", + " 'Catchment': 0.0,\n", + " 'HU': '',\n", + " 'OnNetwork': 1,\n", + " 'HydroAddressID': '38c2a486-d1ff-4872-9711-add1ac3cf729',\n", + " 'GNIS_NAME': 'St. Croix River',\n", + " 'GNIS_ID': None,\n", + " 'SnapTolerance': 250.0,\n", + " 'SnapDistance': 32.1835,\n", + " 'InSnapTolerance': 1,\n", + " 'QCTolerance': 250.0,\n", + " 'InQCTolerance': 1,\n", + " 'QCApproved': 1,\n", + " 'NHDPv2ReachCode': '01050001000016',\n", + " 'NHDPv2Measure': 76.53665,\n", + " 'Latitude': 45.5693,\n", + " 'Longitude': -67.4279,\n", + " 'uri': 'https://geoconnex.us/iow/demo/ME00220',\n", + " 'state': None,\n", + " 'huc8': 'https://geoconnex.us/ref/hu08/01050001',\n", + " 'reachcode_nhdpv2': 'https://geoconnex.us/nhdplusv2/reachcode/01050001000016'},\n", + " 'id': 'ME00220'},\n", + " {'type': 'Feature',\n", + " 'geometry': {'type': 'Point',\n", + " 'coordinates': [-67.73403243374885, 45.66469863001302]},\n", + " 'properties': {'fid': 45,\n", + " 'SourceAgency': None,\n", + " 'SourceDataset': None,\n", + " 'SourceFeatureURL': None,\n", + " 'FeatureType': None,\n", + " 'ReachCode': '01050001010481',\n", + " 'Measure': 35.59987188066644,\n", + " 'ReachSMDate': '2015-05-15T13:18:10.000Z',\n", + " 'AddressDate': '2022-03-01T01:26:34.000Z',\n", + " 'Catchment': 0.0,\n", + " 'HU': '',\n", + " 'OnNetwork': 1,\n", + " 'HydroAddressID': '2464ead7-fd0f-447b-9bdd-df1d609b807f',\n", + " 'GNIS_NAME': 'Forest City Stream',\n", + " 'GNIS_ID': None,\n", + " 'SnapTolerance': 250.0,\n", + " 'SnapDistance': 15.9309,\n", + " 'InSnapTolerance': 1,\n", + " 'QCTolerance': 250.0,\n", + " 'InQCTolerance': 1,\n", + " 'QCApproved': 1,\n", + " 'NHDPv2ReachCode': '01050001000926',\n", + " 'NHDPv2Measure': 0.0,\n", + " 'Latitude': 45.664647,\n", + " 'Longitude': -67.734155,\n", + " 'uri': 'https://geoconnex.us/iow/demo/ME00221',\n", + " 'state': None,\n", + " 'huc8': 'https://geoconnex.us/ref/hu08/01050001',\n", + " 'reachcode_nhdpv2': 'https://geoconnex.us/nhdplusv2/reachcode/01050001000926'},\n", + " 'id': 'ME00221'},\n", + " {'type': 'Feature',\n", + " 'geometry': {'type': 'Point',\n", + " 'coordinates': [-67.9700849894401, 45.21140169167416]},\n", + " 'properties': {'fid': 46,\n", + " 'SourceAgency': None,\n", + " 'SourceDataset': None,\n", + " 'SourceFeatureURL': None,\n", + " 'FeatureType': None,\n", + " 'ReachCode': '01050001001977',\n", + " 'Measure': 21.722595708262652,\n", + " 'ReachSMDate': '2020-03-25T11:59:12.000Z',\n", + " 'AddressDate': '2022-03-01T01:26:33.000Z',\n", + " 'Catchment': 0.0,\n", + " 'HU': '',\n", + " 'OnNetwork': 1,\n", + " 'HydroAddressID': 'da739a70-cd94-4cb3-9696-1ade72daf003',\n", + " 'GNIS_NAME': None,\n", + " 'GNIS_ID': None,\n", + " 'SnapTolerance': 250.0,\n", + " 'SnapDistance': 28.5339,\n", + " 'InSnapTolerance': 1,\n", + " 'QCTolerance': 250.0,\n", + " 'InQCTolerance': 1,\n", + " 'QCApproved': 1,\n", + " 'NHDPv2ReachCode': '01050002002391',\n", + " 'NHDPv2Measure': 0.0,\n", + " 'Latitude': 45.2115,\n", + " 'Longitude': -67.9703,\n", + " 'uri': 'https://geoconnex.us/iow/demo/ME00602',\n", + " 'state': 'https://geoconnex.us/ref/states/23',\n", + " 'huc8': 'https://geoconnex.us/ref/hu08/01050001',\n", + " 'reachcode_nhdpv2': 'https://geoconnex.us/nhdplusv2/reachcode/01050002002391'},\n", + " 'id': 'ME00602'},\n", + " {'type': 'Feature',\n", + " 'geometry': {'type': 'Point',\n", + " 'coordinates': [-67.71164237983972, 44.95125194189151]},\n", + " 'properties': {'fid': 47,\n", + " 'SourceAgency': None,\n", + " 'SourceDataset': None,\n", + " 'SourceFeatureURL': None,\n", + " 'FeatureType': None,\n", + " 'ReachCode': '01050002006041',\n", + " 'Measure': 99.9754074199581,\n", + " 'ReachSMDate': '2012-03-07T00:00:00.000Z',\n", + " 'AddressDate': '2022-03-01T01:26:34.000Z',\n", + " 'Catchment': 0.0,\n", + " 'HU': '',\n", + " 'OnNetwork': 1,\n", + " 'HydroAddressID': 'e9a89c7f-1151-482a-965e-4194f0a776c7',\n", + " 'GNIS_NAME': 'Chain Lake Stream',\n", + " 'GNIS_ID': None,\n", + " 'SnapTolerance': 250.0,\n", + " 'SnapDistance': 4.71771,\n", + " 'InSnapTolerance': 1,\n", + " 'QCTolerance': 250.0,\n", + " 'InQCTolerance': 1,\n", + " 'QCApproved': 1,\n", + " 'NHDPv2ReachCode': '01050002002391',\n", + " 'NHDPv2Measure': 0.0,\n", + " 'Latitude': 44.951252,\n", + " 'Longitude': -67.7116,\n", + " 'uri': 'https://geoconnex.us/iow/demo/ME00718',\n", + " 'state': 'https://geoconnex.us/ref/states/23',\n", + " 'huc8': 'https://geoconnex.us/ref/hu08/01050002',\n", + " 'reachcode_nhdpv2': 'https://geoconnex.us/nhdplusv2/reachcode/01050002002391'},\n", + " 'id': 'ME00718'},\n", + " {'type': 'Feature',\n", + " 'geometry': {'type': 'Point',\n", + " 'coordinates': [-69.26764227945895, 44.37639474129618]},\n", + " 'properties': {'fid': 48,\n", + " 'SourceAgency': None,\n", + " 'SourceDataset': None,\n", + " 'SourceFeatureURL': None,\n", + " 'FeatureType': None,\n", + " 'ReachCode': '01050003000052',\n", + " 'Measure': 99.25203402993488,\n", + " 'ReachSMDate': '2012-03-07T00:00:00.000Z',\n", + " 'AddressDate': '2022-03-01T01:26:35.000Z',\n", + " 'Catchment': 0.0,\n", + " 'HU': '',\n", + " 'OnNetwork': 1,\n", + " 'HydroAddressID': '6b11bd3b-c57e-4393-bbba-3218cee860e6',\n", + " 'GNIS_NAME': 'Saint George River',\n", + " 'GNIS_ID': None,\n", + " 'SnapTolerance': 250.0,\n", + " 'SnapDistance': 13.5091,\n", + " 'InSnapTolerance': 1,\n", + " 'QCTolerance': 250.0,\n", + " 'InQCTolerance': 1,\n", + " 'QCApproved': 1,\n", + " 'NHDPv2ReachCode': '01050003006238',\n", + " 'NHDPv2Measure': 0.0,\n", + " 'Latitude': 44.376371,\n", + " 'Longitude': -69.267759,\n", + " 'uri': 'https://geoconnex.us/iow/demo/ME00249',\n", + " 'state': 'https://geoconnex.us/ref/states/23',\n", + " 'huc8': 'https://geoconnex.us/ref/hu08/01050003',\n", + " 'reachcode_nhdpv2': 'https://geoconnex.us/nhdplusv2/reachcode/01050003006238'},\n", + " 'id': 'ME00249'},\n", + " {'type': 'Feature',\n", + " 'geometry': {'type': 'Point',\n", + " 'coordinates': [-67.26357407980925, 44.77133358918686]},\n", + " 'properties': {'fid': 49,\n", + " 'SourceAgency': None,\n", + " 'SourceDataset': None,\n", + " 'SourceFeatureURL': None,\n", + " 'FeatureType': None,\n", + " 'ReachCode': '01050004001346',\n", + " 'Measure': 6.532543726786067,\n", + " 'ReachSMDate': '2014-05-20T13:56:22.000Z',\n", + " 'AddressDate': '2022-03-01T01:26:34.000Z',\n", + " 'Catchment': 0.0,\n", + " 'HU': '',\n", + " 'OnNetwork': 1,\n", + " 'HydroAddressID': '0b383a42-77e1-4853-b04b-e4b83ac5f61e',\n", + " 'GNIS_NAME': None,\n", + " 'GNIS_ID': None,\n", + " 'SnapTolerance': 250.0,\n", + " 'SnapDistance': 0.879451,\n", + " 'InSnapTolerance': 1,\n", + " 'QCTolerance': 250.0,\n", + " 'InQCTolerance': 1,\n", + " 'QCApproved': 1,\n", + " 'NHDPv2ReachCode': '01050004002577',\n", + " 'NHDPv2Measure': 0.0,\n", + " 'Latitude': 44.771339,\n", + " 'Longitude': -67.263572,\n", + " 'uri': 'https://geoconnex.us/iow/demo/ME00399',\n", + " 'state': 'https://geoconnex.us/ref/states/23',\n", + " 'huc8': 'https://geoconnex.us/ref/hu08/01050004',\n", + " 'reachcode_nhdpv2': 'https://geoconnex.us/nhdplusv2/reachcode/01050004002577'},\n", + " 'id': 'ME00399'},\n", + " {'type': 'Feature',\n", + " 'geometry': {'type': 'Point',\n", + " 'coordinates': [-67.38021600035226, 44.93800699985018]},\n", + " 'properties': {'fid': 50,\n", + " 'SourceAgency': None,\n", + " 'SourceDataset': None,\n", + " 'SourceFeatureURL': None,\n", + " 'FeatureType': None,\n", + " 'ReachCode': '1050004002726',\n", + " 'Measure': 0.0,\n", + " 'ReachSMDate': None,\n", + " 'AddressDate': None,\n", + " 'Catchment': None,\n", + " 'HU': None,\n", + " 'OnNetwork': 0,\n", + " 'HydroAddressID': None,\n", + " 'GNIS_NAME': 'Cathance Stream',\n", + " 'GNIS_ID': None,\n", + " 'SnapTolerance': 0.0,\n", + " 'SnapDistance': 0.0,\n", + " 'InSnapTolerance': 0,\n", + " 'QCTolerance': 0.0,\n", + " 'InQCTolerance': 0,\n", + " 'QCApproved': 0,\n", + " 'NHDPv2ReachCode': '01050004002726',\n", + " 'NHDPv2Measure': 0.0,\n", + " 'Latitude': 44.938007,\n", + " 'Longitude': -67.380216,\n", + " 'uri': 'https://geoconnex.us/iow/demo/ME00716',\n", + " 'state': 'https://geoconnex.us/ref/states/23',\n", + " 'huc8': 'https://geoconnex.us/ref/hu08/01050004',\n", + " 'reachcode_nhdpv2': 'https://geoconnex.us/nhdplusv2/reachcode/01050004002726'},\n", + " 'id': 'ME00716'},\n", + " {'type': 'Feature',\n", + " 'geometry': {'type': 'Point',\n", + " 'coordinates': [-70.31081059142736, 43.65641715658399]},\n", + " 'properties': {'fid': 51,\n", + " 'SourceAgency': None,\n", + " 'SourceDataset': None,\n", + " 'SourceFeatureURL': None,\n", + " 'FeatureType': None,\n", + " 'ReachCode': '01060001000379',\n", + " 'Measure': 28.616558510400623,\n", + " 'ReachSMDate': '2018-07-10T11:34:06.000Z',\n", + " 'AddressDate': '2022-03-01T01:26:27.000Z',\n", + " 'Catchment': 0.0,\n", + " 'HU': '',\n", + " 'OnNetwork': 1,\n", + " 'HydroAddressID': '16105769-8ac7-4691-9d06-353ecc6058a8',\n", + " 'GNIS_NAME': 'Stroudwater River',\n", + " 'GNIS_ID': None,\n", + " 'SnapTolerance': 250.0,\n", + " 'SnapDistance': 17.206,\n", + " 'InSnapTolerance': 1,\n", + " 'QCTolerance': 250.0,\n", + " 'InQCTolerance': 1,\n", + " 'QCApproved': 1,\n", + " 'NHDPv2ReachCode': '01060001000379',\n", + " 'NHDPv2Measure': 0.0,\n", + " 'Latitude': 43.656488,\n", + " 'Longitude': -70.310691,\n", + " 'uri': 'https://geoconnex.us/iow/demo/ME00311',\n", + " 'state': 'https://geoconnex.us/ref/states/23',\n", + " 'huc8': 'https://geoconnex.us/ref/hu08/01060001',\n", + " 'reachcode_nhdpv2': 'https://geoconnex.us/nhdplusv2/reachcode/01060001000379'},\n", + " 'id': 'ME00311'},\n", + " {'type': 'Feature',\n", + " 'geometry': {'type': 'Point',\n", + " 'coordinates': [-70.45499080448462, 43.830368103749]},\n", + " 'properties': {'fid': 52,\n", + " 'SourceAgency': None,\n", + " 'SourceDataset': None,\n", + " 'SourceFeatureURL': None,\n", + " 'FeatureType': None,\n", + " 'ReachCode': '01060001006990',\n", + " 'Measure': 20.47016514079697,\n", + " 'ReachSMDate': '2012-03-03T00:00:00.000Z',\n", + " 'AddressDate': '2022-03-01T01:26:27.000Z',\n", + " 'Catchment': 0.0,\n", + " 'HU': '',\n", + " 'OnNetwork': 1,\n", + " 'HydroAddressID': 'ad8b4c65-6a18-42f3-8b79-283c0183033f',\n", + " 'GNIS_NAME': 'Presumpscot River',\n", + " 'GNIS_ID': None,\n", + " 'SnapTolerance': 250.0,\n", + " 'SnapDistance': 25.9606,\n", + " 'InSnapTolerance': 1,\n", + " 'QCTolerance': 250.0,\n", + " 'InQCTolerance': 1,\n", + " 'QCApproved': 1,\n", + " 'NHDPv2ReachCode': '01060001001472',\n", + " 'NHDPv2Measure': 0.0,\n", + " 'Latitude': 43.8302,\n", + " 'Longitude': -70.455,\n", + " 'uri': 'https://geoconnex.us/iow/demo/ME00070',\n", + " 'state': 'https://geoconnex.us/ref/states/23',\n", + " 'huc8': 'https://geoconnex.us/ref/hu08/01060001',\n", + " 'reachcode_nhdpv2': 'https://geoconnex.us/nhdplusv2/reachcode/01060001001472'},\n", + " 'id': 'ME00070'},\n", + " {'type': 'Feature',\n", + " 'geometry': {'type': 'Point',\n", + " 'coordinates': [-71.19054390050135, 44.12636922970329]},\n", + " 'properties': {'fid': 53,\n", + " 'SourceAgency': None,\n", + " 'SourceDataset': None,\n", + " 'SourceFeatureURL': None,\n", + " 'FeatureType': None,\n", + " 'ReachCode': '01060002005526',\n", + " 'Measure': 75.83064949517887,\n", + " 'ReachSMDate': '2020-03-31T12:05:37.000Z',\n", + " 'AddressDate': '2022-03-01T01:26:27.000Z',\n", + " 'Catchment': 0.0,\n", + " 'HU': '',\n", + " 'OnNetwork': 1,\n", + " 'HydroAddressID': 'b6d9a0a7-1793-4db2-9b2f-0efdd0b94fa1',\n", + " 'GNIS_NAME': 'Ellis River',\n", + " 'GNIS_ID': None,\n", + " 'SnapTolerance': 250.0,\n", + " 'SnapDistance': 42.038,\n", + " 'InSnapTolerance': 1,\n", + " 'QCTolerance': 250.0,\n", + " 'InQCTolerance': 1,\n", + " 'QCApproved': 1,\n", + " 'NHDPv2ReachCode': '01060002000123',\n", + " 'NHDPv2Measure': 0.0,\n", + " 'Latitude': 44.1261,\n", + " 'Longitude': -71.1905,\n", + " 'uri': 'https://geoconnex.us/iow/demo/NH00580',\n", + " 'state': 'https://geoconnex.us/ref/states/33',\n", + " 'huc8': 'https://geoconnex.us/ref/hu08/01060002',\n", + " 'reachcode_nhdpv2': 'https://geoconnex.us/nhdplusv2/reachcode/01060002000123'},\n", + " 'id': 'NH00580'},\n", + " {'type': 'Feature',\n", + " 'geometry': {'type': 'Point',\n", + " 'coordinates': [-70.72304648177311, 43.66507301334689]},\n", + " 'properties': {'fid': 54,\n", + " 'SourceAgency': None,\n", + " 'SourceDataset': None,\n", + " 'SourceFeatureURL': None,\n", + " 'FeatureType': None,\n", + " 'ReachCode': '01060002008099',\n", + " 'Measure': 2.3143600177927,\n", + " 'ReachSMDate': '2013-05-30T11:12:05.000Z',\n", + " 'AddressDate': '2022-03-01T01:26:27.000Z',\n", + " 'Catchment': 0.0,\n", + " 'HU': '',\n", + " 'OnNetwork': 1,\n", + " 'HydroAddressID': '43c2fc48-c7f3-4446-bb9a-c4c2d41197b7',\n", + " 'GNIS_NAME': 'Little Ossipee River',\n", + " 'GNIS_ID': None,\n", + " 'SnapTolerance': 250.0,\n", + " 'SnapDistance': 27.2827,\n", + " 'InSnapTolerance': 1,\n", + " 'QCTolerance': 250.0,\n", + " 'InQCTolerance': 1,\n", + " 'QCApproved': 1,\n", + " 'NHDPv2ReachCode': '01060002002419',\n", + " 'NHDPv2Measure': 0.0,\n", + " 'Latitude': 43.6649,\n", + " 'Longitude': -70.7231,\n", + " 'uri': 'https://geoconnex.us/iow/demo/ME00039',\n", + " 'state': 'https://geoconnex.us/ref/states/23',\n", + " 'huc8': 'https://geoconnex.us/ref/hu08/01060002',\n", + " 'reachcode_nhdpv2': 'https://geoconnex.us/nhdplusv2/reachcode/01060002002419'},\n", + " 'id': 'ME00039'},\n", + " {'type': 'Feature',\n", + " 'geometry': {'type': 'Point',\n", + " 'coordinates': [-70.86320850271672, 43.26506462461505]},\n", + " 'properties': {'fid': 55,\n", + " 'SourceAgency': None,\n", + " 'SourceDataset': None,\n", + " 'SourceFeatureURL': None,\n", + " 'FeatureType': None,\n", + " 'ReachCode': '01060003004862',\n", + " 'Measure': 81.35157304664381,\n", + " 'ReachSMDate': '2012-03-15T00:00:00.000Z',\n", + " 'AddressDate': '2022-03-01T01:26:27.000Z',\n", + " 'Catchment': 0.0,\n", + " 'HU': '',\n", + " 'OnNetwork': 1,\n", + " 'HydroAddressID': '7cf070e2-90b2-42ab-aed9-d8ecd02b2dff',\n", + " 'GNIS_NAME': 'Salmon Falls River',\n", + " 'GNIS_ID': None,\n", + " 'SnapTolerance': 250.0,\n", + " 'SnapDistance': 68.0442,\n", + " 'InSnapTolerance': 1,\n", + " 'QCTolerance': 250.0,\n", + " 'InQCTolerance': 1,\n", + " 'QCApproved': 1,\n", + " 'NHDPv2ReachCode': '01060003000092',\n", + " 'NHDPv2Measure': 13.12135,\n", + " 'Latitude': 43.2648,\n", + " 'Longitude': -70.8637,\n", + " 'uri': 'https://geoconnex.us/iow/demo/NH00127',\n", + " 'state': 'https://geoconnex.us/ref/states/33',\n", + " 'huc8': 'https://geoconnex.us/ref/hu08/01060003',\n", + " 'reachcode_nhdpv2': 'https://geoconnex.us/nhdplusv2/reachcode/01060003000092'},\n", + " 'id': 'NH00127'},\n", + " {'type': 'Feature',\n", + " 'geometry': {'type': 'Point',\n", + " 'coordinates': [-70.98691138710714, 43.41365594645264]},\n", + " 'properties': {'fid': 56,\n", + " 'SourceAgency': None,\n", + " 'SourceDataset': None,\n", + " 'SourceFeatureURL': None,\n", + " 'FeatureType': None,\n", + " 'ReachCode': '01060003000112',\n", + " 'Measure': 98.5440182077836,\n", + " 'ReachSMDate': '2012-03-15T00:00:00.000Z',\n", + " 'AddressDate': '2022-03-01T01:26:28.000Z',\n", + " 'Catchment': 0.0,\n", + " 'HU': '',\n", + " 'OnNetwork': 1,\n", + " 'HydroAddressID': 'a2bf509b-717a-40e2-a2eb-afb96c2788d0',\n", + " 'GNIS_NAME': 'Salmon Falls River',\n", + " 'GNIS_ID': None,\n", + " 'SnapTolerance': 250.0,\n", + " 'SnapDistance': 33.2525,\n", + " 'InSnapTolerance': 1,\n", + " 'QCTolerance': 250.0,\n", + " 'InQCTolerance': 1,\n", + " 'QCApproved': 1,\n", + " 'NHDPv2ReachCode': '01060003002619',\n", + " 'NHDPv2Measure': 0.0,\n", + " 'Latitude': 43.4136,\n", + " 'Longitude': -70.9872,\n", + " 'uri': 'https://geoconnex.us/iow/demo/NH00320',\n", + " 'state': 'https://geoconnex.us/ref/states/23',\n", + " 'huc8': 'https://geoconnex.us/ref/hu08/01060003',\n", + " 'reachcode_nhdpv2': 'https://geoconnex.us/nhdplusv2/reachcode/01060003002619'},\n", + " 'id': 'NH00320'},\n", + " {'type': 'Feature',\n", + " 'geometry': {'type': 'Point',\n", + " 'coordinates': [-70.954654647749, 43.50959317990597]},\n", + " 'properties': {'fid': 57,\n", + " 'SourceAgency': None,\n", + " 'SourceDataset': None,\n", + " 'SourceFeatureURL': None,\n", + " 'FeatureType': None,\n", + " 'ReachCode': '01060003003681',\n", + " 'Measure': 24.051103733111237,\n", + " 'ReachSMDate': '2012-03-15T00:00:00.000Z',\n", + " 'AddressDate': '2022-03-01T01:26:28.000Z',\n", + " 'Catchment': 0.0,\n", + " 'HU': '',\n", + " 'OnNetwork': 1,\n", + " 'HydroAddressID': '6386c7cc-1a7c-4b1e-9a55-871f7c7b9167',\n", + " 'GNIS_NAME': 'Salmon Falls River',\n", + " 'GNIS_ID': None,\n", + " 'SnapTolerance': 250.0,\n", + " 'SnapDistance': 6.17285,\n", + " 'InSnapTolerance': 1,\n", + " 'QCTolerance': 250.0,\n", + " 'InQCTolerance': 1,\n", + " 'QCApproved': 1,\n", + " 'NHDPv2ReachCode': '01060003002633',\n", + " 'NHDPv2Measure': 0.0,\n", + " 'Latitude': 43.5096,\n", + " 'Longitude': -70.9546,\n", + " 'uri': 'https://geoconnex.us/iow/demo/NH00323',\n", + " 'state': 'https://geoconnex.us/ref/states/23',\n", + " 'huc8': 'https://geoconnex.us/ref/hu08/01060003',\n", + " 'reachcode_nhdpv2': 'https://geoconnex.us/nhdplusv2/reachcode/01060003002633'},\n", + " 'id': 'NH00323'},\n", + " {'type': 'Feature',\n", + " 'geometry': {'type': 'Point',\n", + " 'coordinates': [-71.6737721269033, 44.03697634510037]},\n", + " 'properties': {'fid': 58,\n", + " 'SourceAgency': None,\n", + " 'SourceDataset': None,\n", + " 'SourceFeatureURL': None,\n", + " 'FeatureType': None,\n", + " 'ReachCode': '01070001001652',\n", + " 'Measure': 83.35082075589911,\n", + " 'ReachSMDate': '2012-06-11T13:19:18.000Z',\n", + " 'AddressDate': '2022-03-01T01:26:36.000Z',\n", + " 'Catchment': 0.0,\n", + " 'HU': '',\n", + " 'OnNetwork': 1,\n", + " 'HydroAddressID': '9f06cd79-6013-437d-ab81-9996715b52a9',\n", + " 'GNIS_NAME': None,\n", + " 'GNIS_ID': None,\n", + " 'SnapTolerance': 250.0,\n", + " 'SnapDistance': 50.3149,\n", + " 'InSnapTolerance': 1,\n", + " 'QCTolerance': 250.0,\n", + " 'InQCTolerance': 1,\n", + " 'QCApproved': 1,\n", + " 'NHDPv2ReachCode': '01070001000016',\n", + " 'NHDPv2Measure': 0.0,\n", + " 'Latitude': 44.0372,\n", + " 'Longitude': -71.6741,\n", + " 'uri': 'https://geoconnex.us/iow/demo/NH00590',\n", + " 'state': 'https://geoconnex.us/ref/states/33',\n", + " 'huc8': 'https://geoconnex.us/ref/hu08/01070001',\n", + " 'reachcode_nhdpv2': 'https://geoconnex.us/nhdplusv2/reachcode/01070001000016'},\n", + " 'id': 'NH00590'},\n", + " {'type': 'Feature',\n", + " 'geometry': {'type': 'Point',\n", + " 'coordinates': [-71.64896759464823, 43.48661261757236]},\n", + " 'properties': {'fid': 59,\n", + " 'SourceAgency': None,\n", + " 'SourceDataset': None,\n", + " 'SourceFeatureURL': None,\n", + " 'FeatureType': None,\n", + " 'ReachCode': '01070001001302',\n", + " 'Measure': 16.14389542208155,\n", + " 'ReachSMDate': '2012-03-03T00:00:00.000Z',\n", + " 'AddressDate': '2022-03-01T01:26:28.000Z',\n", + " 'Catchment': 0.0,\n", + " 'HU': '',\n", + " 'OnNetwork': 1,\n", + " 'HydroAddressID': '61204aab-a1c3-40a9-af08-0da3eaac35ba',\n", + " 'GNIS_NAME': 'Salmon Brook',\n", + " 'GNIS_ID': None,\n", + " 'SnapTolerance': 250.0,\n", + " 'SnapDistance': 86.4516,\n", + " 'InSnapTolerance': 1,\n", + " 'QCTolerance': 250.0,\n", + " 'InQCTolerance': 1,\n", + " 'QCApproved': 1,\n", + " 'NHDPv2ReachCode': '01070001003613',\n", + " 'NHDPv2Measure': 0.0,\n", + " 'Latitude': 43.4868,\n", + " 'Longitude': -71.6497,\n", + " 'uri': 'https://geoconnex.us/iow/demo/NH00177',\n", + " 'state': 'https://geoconnex.us/ref/states/33',\n", + " 'huc8': 'https://geoconnex.us/ref/hu08/01070001',\n", + " 'reachcode_nhdpv2': 'https://geoconnex.us/nhdplusv2/reachcode/01070001003613'},\n", + " 'id': 'NH00177'},\n", + " {'type': 'Feature',\n", + " 'geometry': {'type': 'Point',\n", + " 'coordinates': [-71.65895399947345, 43.46826273263992]},\n", + " 'properties': {'fid': 60,\n", + " 'SourceAgency': None,\n", + " 'SourceDataset': None,\n", + " 'SourceFeatureURL': None,\n", + " 'FeatureType': None,\n", + " 'ReachCode': '01070001002639',\n", + " 'Measure': 75.49575,\n", + " 'ReachSMDate': '2012-03-03T00:00:00.000Z',\n", + " 'AddressDate': '2022-03-01T01:26:36.000Z',\n", + " 'Catchment': 0.0,\n", + " 'HU': '',\n", + " 'OnNetwork': 1,\n", + " 'HydroAddressID': 'c881609f-aa10-4e72-9bf2-b5a601483d13',\n", + " 'GNIS_NAME': None,\n", + " 'GNIS_ID': None,\n", + " 'SnapTolerance': 250.0,\n", + " 'SnapDistance': 112.175,\n", + " 'InSnapTolerance': 1,\n", + " 'QCTolerance': 250.0,\n", + " 'InQCTolerance': 1,\n", + " 'QCApproved': 1,\n", + " 'NHDPv2ReachCode': '01070001003614',\n", + " 'NHDPv2Measure': 0.0,\n", + " 'Latitude': 43.468947822,\n", + " 'Longitude': -71.659306638,\n", + " 'uri': 'https://geoconnex.us/iow/demo/NH00003',\n", + " 'state': 'https://geoconnex.us/ref/states/33',\n", + " 'huc8': 'https://geoconnex.us/ref/hu08/01070001',\n", + " 'reachcode_nhdpv2': 'https://geoconnex.us/nhdplusv2/reachcode/01070001003614'},\n", + " 'id': 'NH00003'},\n", + " {'type': 'Feature',\n", + " 'geometry': {'type': 'Point',\n", + " 'coordinates': [-71.9953839879069, 42.82154051656713]},\n", + " 'properties': {'fid': 61,\n", + " 'SourceAgency': None,\n", + " 'SourceDataset': None,\n", + " 'SourceFeatureURL': None,\n", + " 'FeatureType': None,\n", + " 'ReachCode': '01070003004765',\n", + " 'Measure': 100.0,\n", + " 'ReachSMDate': '2012-08-15T13:15:48.000Z',\n", + " 'AddressDate': '2022-03-01T01:26:37.000Z',\n", + " 'Catchment': 0.0,\n", + " 'HU': '',\n", + " 'OnNetwork': 1,\n", + " 'HydroAddressID': 'ca22b001-2450-4c82-8db6-8e559dbf4293',\n", + " 'GNIS_NAME': None,\n", + " 'GNIS_ID': None,\n", + " 'SnapTolerance': 250.0,\n", + " 'SnapDistance': 115.459,\n", + " 'InSnapTolerance': 1,\n", + " 'QCTolerance': 250.0,\n", + " 'InQCTolerance': 1,\n", + " 'QCApproved': 1,\n", + " 'NHDPv2ReachCode': '01070003000182',\n", + " 'NHDPv2Measure': 0.0,\n", + " 'Latitude': 42.8213,\n", + " 'Longitude': -71.9944,\n", + " 'uri': 'https://geoconnex.us/iow/demo/NH00735',\n", + " 'state': 'https://geoconnex.us/ref/states/33',\n", + " 'huc8': 'https://geoconnex.us/ref/hu08/01070003',\n", + " 'reachcode_nhdpv2': 'https://geoconnex.us/nhdplusv2/reachcode/01070003000182'},\n", + " 'id': 'NH00735'},\n", + " {'type': 'Feature',\n", + " 'geometry': {'type': 'Point',\n", + " 'coordinates': [-71.98619596438371, 42.89107450600423]},\n", + " 'properties': {'fid': 62,\n", + " 'SourceAgency': None,\n", + " 'SourceDataset': None,\n", + " 'SourceFeatureURL': None,\n", + " 'FeatureType': None,\n", + " 'ReachCode': '01070003000234',\n", + " 'Measure': 92.80577974620995,\n", + " 'ReachSMDate': '2012-03-07T00:00:00.000Z',\n", + " 'AddressDate': '2022-03-01T01:26:37.000Z',\n", + " 'Catchment': 0.0,\n", + " 'HU': '',\n", + " 'OnNetwork': 1,\n", + " 'HydroAddressID': '8e11f191-5a22-4aef-8ecc-f7bdae3a2b51',\n", + " 'GNIS_NAME': 'Nubanusit Brook',\n", + " 'GNIS_ID': None,\n", + " 'SnapTolerance': 250.0,\n", + " 'SnapDistance': 12.2118,\n", + " 'InSnapTolerance': 1,\n", + " 'QCTolerance': 250.0,\n", + " 'InQCTolerance': 1,\n", + " 'QCApproved': 1,\n", + " 'NHDPv2ReachCode': '01070003000234',\n", + " 'NHDPv2Measure': 0.0,\n", + " 'Latitude': 42.8911,\n", + " 'Longitude': -71.9863,\n", + " 'uri': 'https://geoconnex.us/iow/demo/NH00825',\n", + " 'state': 'https://geoconnex.us/ref/states/33',\n", + " 'huc8': 'https://geoconnex.us/ref/hu08/01070003',\n", + " 'reachcode_nhdpv2': 'https://geoconnex.us/nhdplusv2/reachcode/01070003000234'},\n", + " 'id': 'NH00825'},\n", + " {'type': 'Feature',\n", + " 'geometry': {'type': 'Point',\n", + " 'coordinates': [-71.96745573223627, 43.27003879967863]},\n", + " 'properties': {'fid': 63,\n", + " 'SourceAgency': None,\n", + " 'SourceDataset': None,\n", + " 'SourceFeatureURL': None,\n", + " 'FeatureType': None,\n", + " 'ReachCode': '01070003000866',\n", + " 'Measure': 90.629375,\n", + " 'ReachSMDate': '2012-03-07T00:00:00.000Z',\n", + " 'AddressDate': '2022-03-01T01:26:38.000Z',\n", + " 'Catchment': 0.0,\n", + " 'HU': '',\n", + " 'OnNetwork': 1,\n", + " 'HydroAddressID': '0feaea69-0da7-4466-8ce8-f361407fe325',\n", + " 'GNIS_NAME': None,\n", + " 'GNIS_ID': None,\n", + " 'SnapTolerance': 250.0,\n", + " 'SnapDistance': 27.8313,\n", + " 'InSnapTolerance': 1,\n", + " 'QCTolerance': 250.0,\n", + " 'InQCTolerance': 1,\n", + " 'QCApproved': 1,\n", + " 'NHDPv2ReachCode': '01070003000866',\n", + " 'NHDPv2Measure': 0.0,\n", + " 'Latitude': 43.27,\n", + " 'Longitude': -71.9677,\n", + " 'uri': 'https://geoconnex.us/iow/demo/NH00288',\n", + " 'state': 'https://geoconnex.us/ref/states/33',\n", + " 'huc8': 'https://geoconnex.us/ref/hu08/01070003',\n", + " 'reachcode_nhdpv2': 'https://geoconnex.us/nhdplusv2/reachcode/01070003000866'},\n", + " 'id': 'NH00288'},\n", + " {'type': 'Feature',\n", + " 'geometry': {'type': 'Point',\n", + " 'coordinates': [-71.92419923720844, 42.99269932513841]},\n", + " 'properties': {'fid': 64,\n", + " 'SourceAgency': None,\n", + " 'SourceDataset': None,\n", + " 'SourceFeatureURL': None,\n", + " 'FeatureType': None,\n", + " 'ReachCode': '01070003004520',\n", + " 'Measure': 0.513962165670269,\n", + " 'ReachSMDate': '2012-03-07T00:00:00.000Z',\n", + " 'AddressDate': '2022-03-01T01:26:37.000Z',\n", + " 'Catchment': 0.0,\n", + " 'HU': '',\n", + " 'OnNetwork': 1,\n", + " 'HydroAddressID': '85939673-f840-4d4a-a7e0-4a9b553d113d',\n", + " 'GNIS_NAME': 'Contoocook River',\n", + " 'GNIS_ID': None,\n", + " 'SnapTolerance': 250.0,\n", + " 'SnapDistance': 0.133232,\n", + " 'InSnapTolerance': 1,\n", + " 'QCTolerance': 250.0,\n", + " 'InQCTolerance': 1,\n", + " 'QCApproved': 1,\n", + " 'NHDPv2ReachCode': '01070003001589',\n", + " 'NHDPv2Measure': 0.0,\n", + " 'Latitude': 42.9927,\n", + " 'Longitude': -71.9242,\n", + " 'uri': 'https://geoconnex.us/iow/demo/NH00248',\n", + " 'state': 'https://geoconnex.us/ref/states/33',\n", + " 'huc8': 'https://geoconnex.us/ref/hu08/01070003',\n", + " 'reachcode_nhdpv2': 'https://geoconnex.us/nhdplusv2/reachcode/01070003001589'},\n", + " 'id': 'NH00248'},\n", + " {'type': 'Feature',\n", + " 'geometry': {'type': 'Point',\n", + " 'coordinates': [-71.46360648445128, 42.76371360784943]},\n", + " 'properties': {'fid': 65,\n", + " 'SourceAgency': None,\n", + " 'SourceDataset': None,\n", + " 'SourceFeatureURL': None,\n", + " 'FeatureType': None,\n", + " 'ReachCode': '01070004003821',\n", + " 'Measure': 25.4401129874952,\n", + " 'ReachSMDate': '2013-04-02T13:57:35.000Z',\n", + " 'AddressDate': '2022-03-01T01:26:39.000Z',\n", + " 'Catchment': 0.0,\n", + " 'HU': '',\n", + " 'OnNetwork': 1,\n", + " 'HydroAddressID': 'c0174a77-588a-4f2e-aa1b-4e5782112414',\n", + " 'GNIS_NAME': 'Nashua River',\n", + " 'GNIS_ID': None,\n", + " 'SnapTolerance': 250.0,\n", + " 'SnapDistance': 20.1274,\n", + " 'InSnapTolerance': 1,\n", + " 'QCTolerance': 250.0,\n", + " 'InQCTolerance': 1,\n", + " 'QCApproved': 1,\n", + " 'NHDPv2ReachCode': '01070004000001',\n", + " 'NHDPv2Measure': 1.31544,\n", + " 'Latitude': 42.7636,\n", + " 'Longitude': -71.4637,\n", + " 'uri': 'https://geoconnex.us/iow/demo/NH00121',\n", + " 'state': 'https://geoconnex.us/ref/states/33',\n", + " 'huc8': 'https://geoconnex.us/ref/hu08/01070004',\n", + " 'reachcode_nhdpv2': 'https://geoconnex.us/nhdplusv2/reachcode/01070004000001'},\n", + " 'id': 'NH00121'},\n", + " {'type': 'Feature',\n", + " 'geometry': {'type': 'Point',\n", + " 'coordinates': [-71.47339241854274, 42.75968829512957]},\n", + " 'properties': {'fid': 66,\n", + " 'SourceAgency': None,\n", + " 'SourceDataset': None,\n", + " 'SourceFeatureURL': None,\n", + " 'FeatureType': None,\n", + " 'ReachCode': '01070004003829',\n", + " 'Measure': 5.325625,\n", + " 'ReachSMDate': '2013-04-02T13:57:23.000Z',\n", + " 'AddressDate': '2022-03-01T01:26:39.000Z',\n", + " 'Catchment': 0.0,\n", + " 'HU': '',\n", + " 'OnNetwork': 1,\n", + " 'HydroAddressID': '15a60f5b-44ac-4978-a667-4f541f624f08',\n", + " 'GNIS_NAME': None,\n", + " 'GNIS_ID': None,\n", + " 'SnapTolerance': 250.0,\n", + " 'SnapDistance': 23.176,\n", + " 'InSnapTolerance': 1,\n", + " 'QCTolerance': 250.0,\n", + " 'InQCTolerance': 1,\n", + " 'QCApproved': 1,\n", + " 'NHDPv2ReachCode': '01070004000001',\n", + " 'NHDPv2Measure': 1.31544,\n", + " 'Latitude': 42.7597,\n", + " 'Longitude': -71.4736,\n", + " 'uri': 'https://geoconnex.us/iow/demo/NH00430',\n", + " 'state': 'https://geoconnex.us/ref/states/33',\n", + " 'huc8': 'https://geoconnex.us/ref/hu08/01070004',\n", + " 'reachcode_nhdpv2': 'https://geoconnex.us/nhdplusv2/reachcode/01070004000001'},\n", + " 'id': 'NH00430'},\n", + " {'type': 'Feature',\n", + " 'geometry': {'type': 'Point',\n", + " 'coordinates': [-71.83039245974669, 42.57818060835524]},\n", + " 'properties': {'fid': 67,\n", + " 'SourceAgency': None,\n", + " 'SourceDataset': None,\n", + " 'SourceFeatureURL': None,\n", + " 'FeatureType': None,\n", + " 'ReachCode': '01070004000088',\n", + " 'Measure': 70.07884851373518,\n", + " 'ReachSMDate': '2012-03-07T00:00:00.000Z',\n", + " 'AddressDate': '2022-03-01T01:26:40.000Z',\n", + " 'Catchment': 0.0,\n", + " 'HU': '',\n", + " 'OnNetwork': 1,\n", + " 'HydroAddressID': '6e1a6545-785c-4b1b-a140-80808629d392',\n", + " 'GNIS_NAME': 'North Nashua River',\n", + " 'GNIS_ID': None,\n", + " 'SnapTolerance': 250.0,\n", + " 'SnapDistance': 3.35383,\n", + " 'InSnapTolerance': 1,\n", + " 'QCTolerance': 250.0,\n", + " 'InQCTolerance': 1,\n", + " 'QCApproved': 1,\n", + " 'NHDPv2ReachCode': '01070004000088',\n", + " 'NHDPv2Measure': 0.0,\n", + " 'Latitude': 42.57817,\n", + " 'Longitude': -71.830366,\n", + " 'uri': 'https://geoconnex.us/iow/demo/MA00877',\n", + " 'state': 'https://geoconnex.us/ref/states/25',\n", + " 'huc8': 'https://geoconnex.us/ref/hu08/01070004',\n", + " 'reachcode_nhdpv2': 'https://geoconnex.us/nhdplusv2/reachcode/01070004000088'},\n", + " 'id': 'MA00877'},\n", + " {'type': 'Feature',\n", + " 'geometry': {'type': 'Point',\n", + " 'coordinates': [-71.81228895976083, 42.76700049777237]},\n", + " 'properties': {'fid': 68,\n", + " 'SourceAgency': None,\n", + " 'SourceDataset': None,\n", + " 'SourceFeatureURL': None,\n", + " 'FeatureType': None,\n", + " 'ReachCode': '01070006007287',\n", + " 'Measure': 95.81603154797585,\n", + " 'ReachSMDate': '2012-10-02T10:32:58.000Z',\n", + " 'AddressDate': '2022-03-01T01:26:40.000Z',\n", + " 'Catchment': 0.0,\n", + " 'HU': '',\n", + " 'OnNetwork': 1,\n", + " 'HydroAddressID': '692c8c1d-4e0a-46d3-b12e-0d68bab01c70',\n", + " 'GNIS_NAME': 'Souhegan River',\n", + " 'GNIS_ID': None,\n", + " 'SnapTolerance': 250.0,\n", + " 'SnapDistance': 18.1742,\n", + " 'InSnapTolerance': 1,\n", + " 'QCTolerance': 250.0,\n", + " 'InQCTolerance': 1,\n", + " 'QCApproved': 1,\n", + " 'NHDPv2ReachCode': '01070006000459',\n", + " 'NHDPv2Measure': 0.0,\n", + " 'Latitude': 42.7669,\n", + " 'Longitude': -71.8122,\n", + " 'uri': 'https://geoconnex.us/iow/demo/NH00041',\n", + " 'state': 'https://geoconnex.us/ref/states/33',\n", + " 'huc8': 'https://geoconnex.us/ref/hu08/01070006',\n", + " 'reachcode_nhdpv2': 'https://geoconnex.us/nhdplusv2/reachcode/01070006000459'},\n", + " 'id': 'NH00041'},\n", + " {'type': 'Feature',\n", + " 'geometry': {'type': 'Point',\n", + " 'coordinates': [-71.77413342141143, 43.10913319423274]},\n", + " 'properties': {'fid': 69,\n", + " 'SourceAgency': None,\n", + " 'SourceDataset': None,\n", + " 'SourceFeatureURL': None,\n", + " 'FeatureType': None,\n", + " 'ReachCode': '01070006014404',\n", + " 'Measure': 3.306091392004377,\n", + " 'ReachSMDate': '2012-03-07T00:00:00.000Z',\n", + " 'AddressDate': '2022-03-01T01:26:40.000Z',\n", + " 'Catchment': 0.0,\n", + " 'HU': '',\n", + " 'OnNetwork': 1,\n", + " 'HydroAddressID': '68408897-1e03-4e24-aa3d-44e0e08a3dbf',\n", + " 'GNIS_NAME': 'Piscataquog River',\n", + " 'GNIS_ID': None,\n", + " 'SnapTolerance': 250.0,\n", + " 'SnapDistance': 50.9419,\n", + " 'InSnapTolerance': 1,\n", + " 'QCTolerance': 250.0,\n", + " 'InQCTolerance': 1,\n", + " 'QCApproved': 1,\n", + " 'NHDPv2ReachCode': '01070006002448',\n", + " 'NHDPv2Measure': 0.0,\n", + " 'Latitude': 43.1088,\n", + " 'Longitude': -71.7741,\n", + " 'uri': 'https://geoconnex.us/iow/demo/NH00114',\n", + " 'state': 'https://geoconnex.us/ref/states/33',\n", + " 'huc8': 'https://geoconnex.us/ref/hu08/01070006',\n", + " 'reachcode_nhdpv2': 'https://geoconnex.us/nhdplusv2/reachcode/01070006002448'},\n", + " 'id': 'NH00114'},\n", + " {'type': 'Feature',\n", + " 'geometry': {'type': 'Point',\n", + " 'coordinates': [-71.49839999969643, 44.90120000027062]},\n", + " 'properties': {'fid': 70,\n", + " 'SourceAgency': None,\n", + " 'SourceDataset': None,\n", + " 'SourceFeatureURL': None,\n", + " 'FeatureType': None,\n", + " 'ReachCode': '1080101000409',\n", + " 'Measure': 0.0,\n", + " 'ReachSMDate': None,\n", + " 'AddressDate': None,\n", + " 'Catchment': None,\n", + " 'HU': None,\n", + " 'OnNetwork': 0,\n", + " 'HydroAddressID': None,\n", + " 'GNIS_NAME': 'NA',\n", + " 'GNIS_ID': None,\n", + " 'SnapTolerance': 0.0,\n", + " 'SnapDistance': 0.0,\n", + " 'InSnapTolerance': 0,\n", + " 'QCTolerance': 0.0,\n", + " 'InQCTolerance': 0,\n", + " 'QCApproved': 0,\n", + " 'NHDPv2ReachCode': '01080101000409',\n", + " 'NHDPv2Measure': 0.0,\n", + " 'Latitude': 44.9012,\n", + " 'Longitude': -71.4984,\n", + " 'uri': 'https://geoconnex.us/iow/demo/NH00942',\n", + " 'state': 'https://geoconnex.us/ref/states/33',\n", + " 'huc8': 'https://geoconnex.us/ref/hu08/01080101',\n", + " 'reachcode_nhdpv2': 'https://geoconnex.us/nhdplusv2/reachcode/01080101000409'},\n", + " 'id': 'NH00942'},\n", + " {'type': 'Feature',\n", + " 'geometry': {'type': 'Point',\n", + " 'coordinates': [-72.0541250596941, 44.15196091980023]},\n", + " 'properties': {'fid': 71,\n", + " 'SourceAgency': None,\n", + " 'SourceDataset': None,\n", + " 'SourceFeatureURL': None,\n", + " 'FeatureType': None,\n", + " 'ReachCode': '01080103000255',\n", + " 'Measure': 38.40106664225348,\n", + " 'ReachSMDate': '2014-12-09T07:57:29.000Z',\n", + " 'AddressDate': '2022-03-01T01:26:41.000Z',\n", + " 'Catchment': 0.0,\n", + " 'HU': '',\n", + " 'OnNetwork': 1,\n", + " 'HydroAddressID': '9d666bf6-16fb-44a8-bdda-ed4d4eb90bc9',\n", + " 'GNIS_NAME': 'Wells River',\n", + " 'GNIS_ID': None,\n", + " 'SnapTolerance': 250.0,\n", + " 'SnapDistance': 10.313,\n", + " 'InSnapTolerance': 1,\n", + " 'QCTolerance': 250.0,\n", + " 'InQCTolerance': 1,\n", + " 'QCApproved': 1,\n", + " 'NHDPv2ReachCode': '01080103000255',\n", + " 'NHDPv2Measure': 1.56435,\n", + " 'Latitude': 44.152,\n", + " 'Longitude': -72.0542,\n", + " 'uri': 'https://geoconnex.us/iow/demo/VT00325',\n", + " 'state': 'https://geoconnex.us/ref/states/50',\n", + " 'huc8': 'https://geoconnex.us/ref/hu08/01080103',\n", + " 'reachcode_nhdpv2': 'https://geoconnex.us/nhdplusv2/reachcode/01080103000255'},\n", + " 'id': 'VT00325'},\n", + " {'type': 'Feature',\n", + " 'geometry': {'type': 'Point',\n", + " 'coordinates': [-71.62380000018625, 44.37360000010279]},\n", + " 'properties': {'fid': 72,\n", + " 'SourceAgency': None,\n", + " 'SourceDataset': None,\n", + " 'SourceFeatureURL': None,\n", + " 'FeatureType': None,\n", + " 'ReachCode': '1080103000484',\n", + " 'Measure': 0.0,\n", + " 'ReachSMDate': None,\n", + " 'AddressDate': None,\n", + " 'Catchment': None,\n", + " 'HU': None,\n", + " 'OnNetwork': 0,\n", + " 'HydroAddressID': None,\n", + " 'GNIS_NAME': 'NA',\n", + " 'GNIS_ID': None,\n", + " 'SnapTolerance': 0.0,\n", + " 'SnapDistance': 0.0,\n", + " 'InSnapTolerance': 0,\n", + " 'QCTolerance': 0.0,\n", + " 'InQCTolerance': 0,\n", + " 'QCApproved': 0,\n", + " 'NHDPv2ReachCode': '01080103000484',\n", + " 'NHDPv2Measure': 0.0,\n", + " 'Latitude': 44.3736,\n", + " 'Longitude': -71.6238,\n", + " 'uri': 'https://geoconnex.us/iow/demo/NH00904',\n", + " 'state': 'https://geoconnex.us/ref/states/33',\n", + " 'huc8': 'https://geoconnex.us/ref/hu08/01080103',\n", + " 'reachcode_nhdpv2': 'https://geoconnex.us/nhdplusv2/reachcode/01080103000484'},\n", + " 'id': 'NH00904'},\n", + " {'type': 'Feature',\n", + " 'geometry': {'type': 'Point',\n", + " 'coordinates': [-72.0365614876182, 44.15450437601838]},\n", + " 'properties': {'fid': 73,\n", + " 'SourceAgency': None,\n", + " 'SourceDataset': None,\n", + " 'SourceFeatureURL': None,\n", + " 'FeatureType': None,\n", + " 'ReachCode': '01080103000599',\n", + " 'Measure': 18.978196276132437,\n", + " 'ReachSMDate': '2014-12-09T08:02:32.000Z',\n", + " 'AddressDate': '2022-03-01T01:26:20.000Z',\n", + " 'Catchment': 0.0,\n", + " 'HU': '',\n", + " 'OnNetwork': 1,\n", + " 'HydroAddressID': '30868d6b-a47b-4c58-82f4-fba520476cf0',\n", + " 'GNIS_NAME': 'Ammonoosuc River',\n", + " 'GNIS_ID': None,\n", + " 'SnapTolerance': 250.0,\n", + " 'SnapDistance': 10.6051,\n", + " 'InSnapTolerance': 1,\n", + " 'QCTolerance': 250.0,\n", + " 'InQCTolerance': 1,\n", + " 'QCApproved': 1,\n", + " 'NHDPv2ReachCode': '01080103000599',\n", + " 'NHDPv2Measure': 0.0,\n", + " 'Latitude': 44.154554,\n", + " 'Longitude': -72.036627,\n", + " 'uri': 'https://geoconnex.us/iow/demo/NH00069',\n", + " 'state': 'https://geoconnex.us/ref/states/33',\n", + " 'huc8': 'https://geoconnex.us/ref/hu08/01080103',\n", + " 'reachcode_nhdpv2': 'https://geoconnex.us/nhdplusv2/reachcode/01080103000599'},\n", + " 'id': 'NH00069'},\n", + " {'type': 'Feature',\n", + " 'geometry': {'type': 'Point',\n", + " 'coordinates': [-72.00137315292417, 44.32496954524931]},\n", + " 'properties': {'fid': 74,\n", + " 'SourceAgency': None,\n", + " 'SourceDataset': None,\n", + " 'SourceFeatureURL': None,\n", + " 'FeatureType': None,\n", + " 'ReachCode': '01080103001840',\n", + " 'Measure': 95.26561679556393,\n", + " 'ReachSMDate': '2021-06-09T09:09:51.000Z',\n", + " 'AddressDate': '2022-03-01T01:26:22.000Z',\n", + " 'Catchment': 0.0,\n", + " 'HU': '',\n", + " 'OnNetwork': 1,\n", + " 'HydroAddressID': '967bc69e-7b7a-460b-9083-7b7f9b15a79a',\n", + " 'GNIS_NAME': 'Connecticut River',\n", + " 'GNIS_ID': None,\n", + " 'SnapTolerance': 250.0,\n", + " 'SnapDistance': 13.5433,\n", + " 'InSnapTolerance': 1,\n", + " 'QCTolerance': 250.0,\n", + " 'InQCTolerance': 1,\n", + " 'QCApproved': 1,\n", + " 'NHDPv2ReachCode': '01080103000628',\n", + " 'NHDPv2Measure': 0.0,\n", + " 'Latitude': 44.3249,\n", + " 'Longitude': -72.0013,\n", + " 'uri': 'https://geoconnex.us/iow/demo/NH00165',\n", + " 'state': 'https://geoconnex.us/ref/states/33',\n", + " 'huc8': 'https://geoconnex.us/ref/hu08/01080103',\n", + " 'reachcode_nhdpv2': 'https://geoconnex.us/nhdplusv2/reachcode/01080103000628'},\n", + " 'id': 'NH00165'},\n", + " {'type': 'Feature',\n", + " 'geometry': {'type': 'Point',\n", + " 'coordinates': [-72.30419834427008, 43.66682338595399]},\n", + " 'properties': {'fid': 75,\n", + " 'SourceAgency': None,\n", + " 'SourceDataset': None,\n", + " 'SourceFeatureURL': None,\n", + " 'FeatureType': None,\n", + " 'ReachCode': '01080104005811',\n", + " 'Measure': 97.09211360084007,\n", + " 'ReachSMDate': '2021-06-09T08:09:23.000Z',\n", + " 'AddressDate': '2022-03-01T01:26:22.000Z',\n", + " 'Catchment': 0.0,\n", + " 'HU': '',\n", + " 'OnNetwork': 1,\n", + " 'HydroAddressID': '4e604a1a-3117-467f-a259-c9570ccef570',\n", + " 'GNIS_NAME': 'Connecticut River',\n", + " 'GNIS_ID': None,\n", + " 'SnapTolerance': 250.0,\n", + " 'SnapDistance': 11.524,\n", + " 'InSnapTolerance': 1,\n", + " 'QCTolerance': 250.0,\n", + " 'InQCTolerance': 1,\n", + " 'QCApproved': 1,\n", + " 'NHDPv2ReachCode': '01080104001971',\n", + " 'NHDPv2Measure': 0.0,\n", + " 'Latitude': 43.6668,\n", + " 'Longitude': -72.3041,\n", + " 'uri': 'https://geoconnex.us/iow/demo/NH00259',\n", + " 'state': 'https://geoconnex.us/ref/states/33',\n", + " 'huc8': 'https://geoconnex.us/ref/hu08/01080104',\n", + " 'reachcode_nhdpv2': 'https://geoconnex.us/nhdplusv2/reachcode/01080104001971'},\n", + " 'id': 'NH00259'},\n", + " {'type': 'Feature',\n", + " 'geometry': {'type': 'Point',\n", + " 'coordinates': [-72.24604780698436, 43.88336608671333]},\n", + " 'properties': {'fid': 76,\n", + " 'SourceAgency': None,\n", + " 'SourceDataset': None,\n", + " 'SourceFeatureURL': None,\n", + " 'FeatureType': None,\n", + " 'ReachCode': '01080104005722',\n", + " 'Measure': 0.10288551082172147,\n", + " 'ReachSMDate': '2014-11-28T09:09:15.000Z',\n", + " 'AddressDate': '2022-03-01T01:26:23.000Z',\n", + " 'Catchment': 0.0,\n", + " 'HU': '',\n", + " 'OnNetwork': 1,\n", + " 'HydroAddressID': 'c096beaa-a34b-4cb3-9067-4b7914e823f3',\n", + " 'GNIS_NAME': None,\n", + " 'GNIS_ID': None,\n", + " 'SnapTolerance': 250.0,\n", + " 'SnapDistance': 0.0727703,\n", + " 'InSnapTolerance': 1,\n", + " 'QCTolerance': 250.0,\n", + " 'InQCTolerance': 1,\n", + " 'QCApproved': 1,\n", + " 'NHDPv2ReachCode': '01080104002566',\n", + " 'NHDPv2Measure': 0.0,\n", + " 'Latitude': 43.88336563,\n", + " 'Longitude': -72.24604797,\n", + " 'uri': 'https://geoconnex.us/iow/demo/VT00067',\n", + " 'state': 'https://geoconnex.us/ref/states/50',\n", + " 'huc8': 'https://geoconnex.us/ref/hu08/01080104',\n", + " 'reachcode_nhdpv2': 'https://geoconnex.us/nhdplusv2/reachcode/01080104002566'},\n", + " 'id': 'VT00067'},\n", + " {'type': 'Feature',\n", + " 'geometry': {'type': 'Point',\n", + " 'coordinates': [-72.59836999531376, 43.38110162346414]},\n", + " 'properties': {'fid': 77,\n", + " 'SourceAgency': None,\n", + " 'SourceDataset': None,\n", + " 'SourceFeatureURL': None,\n", + " 'FeatureType': None,\n", + " 'ReachCode': '01080106000055',\n", + " 'Measure': 1.742440779511821,\n", + " 'ReachSMDate': '2014-11-28T15:28:09.000Z',\n", + " 'AddressDate': '2022-03-01T01:26:22.000Z',\n", + " 'Catchment': 0.0,\n", + " 'HU': '',\n", + " 'OnNetwork': 1,\n", + " 'HydroAddressID': '78c302d5-8ac1-4a57-a543-056e93045a13',\n", + " 'GNIS_NAME': 'Black River',\n", + " 'GNIS_ID': None,\n", + " 'SnapTolerance': 250.0,\n", + " 'SnapDistance': 21.7087,\n", + " 'InSnapTolerance': 1,\n", + " 'QCTolerance': 250.0,\n", + " 'InQCTolerance': 1,\n", + " 'QCApproved': 1,\n", + " 'NHDPv2ReachCode': '01080106000054',\n", + " 'NHDPv2Measure': 0.0,\n", + " 'Latitude': 43.38098145,\n", + " 'Longitude': -72.5982666,\n", + " 'uri': 'https://geoconnex.us/iow/demo/VT00037',\n", + " 'state': 'https://geoconnex.us/ref/states/50',\n", + " 'huc8': 'https://geoconnex.us/ref/hu08/01080106',\n", + " 'reachcode_nhdpv2': 'https://geoconnex.us/nhdplusv2/reachcode/01080106000054'},\n", + " 'id': 'VT00037'},\n", + " {'type': 'Feature',\n", + " 'geometry': {'type': 'Point',\n", + " 'coordinates': [-72.5186901788073, 43.63339034920588]},\n", + " 'properties': {'fid': 78,\n", + " 'SourceAgency': None,\n", + " 'SourceDataset': None,\n", + " 'SourceFeatureURL': None,\n", + " 'FeatureType': None,\n", + " 'ReachCode': '01080106000101',\n", + " 'Measure': 46.64536133986158,\n", + " 'ReachSMDate': '2014-11-28T15:28:52.000Z',\n", + " 'AddressDate': '2022-03-01T01:26:22.000Z',\n", + " 'Catchment': 0.0,\n", + " 'HU': '',\n", + " 'OnNetwork': 1,\n", + " 'HydroAddressID': '4d509dcb-3d0a-476d-86f8-9b6d73d218e6',\n", + " 'GNIS_NAME': 'Barnard Brook',\n", + " 'GNIS_ID': None,\n", + " 'SnapTolerance': 250.0,\n", + " 'SnapDistance': 0.348055,\n", + " 'InSnapTolerance': 1,\n", + " 'QCTolerance': 250.0,\n", + " 'InQCTolerance': 1,\n", + " 'QCApproved': 1,\n", + " 'NHDPv2ReachCode': '01080106000101',\n", + " 'NHDPv2Measure': 0.0,\n", + " 'Latitude': 43.63338852,\n", + " 'Longitude': -72.51869202,\n", + " 'uri': 'https://geoconnex.us/iow/demo/VT00353',\n", + " 'state': 'https://geoconnex.us/ref/states/50',\n", + " 'huc8': 'https://geoconnex.us/ref/hu08/01080106',\n", + " 'reachcode_nhdpv2': 'https://geoconnex.us/nhdplusv2/reachcode/01080106000101'},\n", + " 'id': 'VT00353'},\n", + " {'type': 'Feature',\n", + " 'geometry': {'type': 'Point',\n", + " 'coordinates': [-72.34843027405086, 43.15341487979181]},\n", + " 'properties': {'fid': 79,\n", + " 'SourceAgency': None,\n", + " 'SourceDataset': None,\n", + " 'SourceFeatureURL': None,\n", + " 'FeatureType': None,\n", + " 'ReachCode': '01080107000615',\n", + " 'Measure': 7.063084540975776,\n", + " 'ReachSMDate': '2014-12-01T15:46:40.000Z',\n", + " 'AddressDate': '2022-03-01T01:26:23.000Z',\n", + " 'Catchment': 0.0,\n", + " 'HU': '',\n", + " 'OnNetwork': 1,\n", + " 'HydroAddressID': '4735d16d-5fb3-4f62-a94d-7409bd2682e8',\n", + " 'GNIS_NAME': 'Cold River',\n", + " 'GNIS_ID': None,\n", + " 'SnapTolerance': 250.0,\n", + " 'SnapDistance': 49.919,\n", + " 'InSnapTolerance': 1,\n", + " 'QCTolerance': 250.0,\n", + " 'InQCTolerance': 1,\n", + " 'QCApproved': 1,\n", + " 'NHDPv2ReachCode': '01080107000615',\n", + " 'NHDPv2Measure': 0.0,\n", + " 'Latitude': 43.1536,\n", + " 'Longitude': -72.3488,\n", + " 'uri': 'https://geoconnex.us/iow/demo/NH00009',\n", + " 'state': 'https://geoconnex.us/ref/states/33',\n", + " 'huc8': 'https://geoconnex.us/ref/hu08/01080107',\n", + " 'reachcode_nhdpv2': 'https://geoconnex.us/nhdplusv2/reachcode/01080107000615'},\n", + " 'id': 'NH00009'},\n", + " {'type': 'Feature',\n", + " 'geometry': {'type': 'Point',\n", + " 'coordinates': [-72.44689707821865, 43.1379413922429]},\n", + " 'properties': {'fid': 80,\n", + " 'SourceAgency': None,\n", + " 'SourceDataset': None,\n", + " 'SourceFeatureURL': None,\n", + " 'FeatureType': None,\n", + " 'ReachCode': '01080107007735',\n", + " 'Measure': 99.74445336192214,\n", + " 'ReachSMDate': '2021-05-27T09:06:24.000Z',\n", + " 'AddressDate': '2022-03-01T01:26:23.000Z',\n", + " 'Catchment': 0.0,\n", + " 'HU': '',\n", + " 'OnNetwork': 1,\n", + " 'HydroAddressID': '30cfc31d-41a2-46c8-90fc-0d5f76b93ec0',\n", + " 'GNIS_NAME': 'Connecticut River',\n", + " 'GNIS_ID': None,\n", + " 'SnapTolerance': 250.0,\n", + " 'SnapDistance': 17.6365,\n", + " 'InSnapTolerance': 1,\n", + " 'QCTolerance': 250.0,\n", + " 'InQCTolerance': 1,\n", + " 'QCApproved': 1,\n", + " 'NHDPv2ReachCode': '01080107000652',\n", + " 'NHDPv2Measure': 41.41838,\n", + " 'Latitude': 43.137837,\n", + " 'Longitude': -72.446829,\n", + " 'uri': 'https://geoconnex.us/iow/demo/NH00112',\n", + " 'state': 'https://geoconnex.us/ref/states/33',\n", + " 'huc8': 'https://geoconnex.us/ref/hu08/01080107',\n", + " 'reachcode_nhdpv2': 'https://geoconnex.us/nhdplusv2/reachcode/01080107000652'},\n", + " 'id': 'NH00112'},\n", + " {'type': 'Feature',\n", + " 'geometry': {'type': 'Point',\n", + " 'coordinates': [-72.51261387541084, 42.77188459157125]},\n", + " 'properties': {'fid': 81,\n", + " 'SourceAgency': None,\n", + " 'SourceDataset': None,\n", + " 'SourceFeatureURL': None,\n", + " 'FeatureType': None,\n", + " 'ReachCode': '01080107001010',\n", + " 'Measure': 2.65100917603486,\n", + " 'ReachSMDate': '2021-03-03T14:18:39.000Z',\n", + " 'AddressDate': '2022-03-01T01:26:21.000Z',\n", + " 'Catchment': 0.0,\n", + " 'HU': '',\n", + " 'OnNetwork': 1,\n", + " 'HydroAddressID': 'b00eef59-fcd2-4955-a1b8-a366c003ff3c',\n", + " 'GNIS_NAME': 'Connecticut River',\n", + " 'GNIS_ID': None,\n", + " 'SnapTolerance': 250.0,\n", + " 'SnapDistance': 73.8476,\n", + " 'InSnapTolerance': 1,\n", + " 'QCTolerance': 250.0,\n", + " 'InQCTolerance': 1,\n", + " 'QCApproved': 1,\n", + " 'NHDPv2ReachCode': '01080107001010',\n", + " 'NHDPv2Measure': 13.34603,\n", + " 'Latitude': 42.7717,\n", + " 'Longitude': -72.512,\n", + " 'uri': 'https://geoconnex.us/iow/demo/NH00097',\n", + " 'state': 'https://geoconnex.us/ref/states/33',\n", + " 'huc8': 'https://geoconnex.us/ref/hu08/01080107',\n", + " 'reachcode_nhdpv2': 'https://geoconnex.us/nhdplusv2/reachcode/01080107001010'},\n", + " 'id': 'NH00097'},\n", + " {'type': 'Feature',\n", + " 'geometry': {'type': 'Point',\n", + " 'coordinates': [-72.1257827284739, 42.63186991261041]},\n", + " 'properties': {'fid': 82,\n", + " 'SourceAgency': None,\n", + " 'SourceDataset': None,\n", + " 'SourceFeatureURL': None,\n", + " 'FeatureType': None,\n", + " 'ReachCode': '01080202000057',\n", + " 'Measure': 5.776724179194742,\n", + " 'ReachSMDate': '2012-03-07T00:00:00.000Z',\n", + " 'AddressDate': '2022-03-01T01:26:34.000Z',\n", + " 'Catchment': 0.0,\n", + " 'HU': '',\n", + " 'OnNetwork': 1,\n", + " 'HydroAddressID': '7c97ae93-8dc5-4401-9b91-a2a226f18b32',\n", + " 'GNIS_NAME': 'Millers River',\n", + " 'GNIS_ID': None,\n", + " 'SnapTolerance': 250.0,\n", + " 'SnapDistance': 54.7587,\n", + " 'InSnapTolerance': 1,\n", + " 'QCTolerance': 250.0,\n", + " 'InQCTolerance': 1,\n", + " 'QCApproved': 1,\n", + " 'NHDPv2ReachCode': '01080202000057',\n", + " 'NHDPv2Measure': 0.0,\n", + " 'Latitude': 42.631626115,\n", + " 'Longitude': -72.125419185,\n", + " 'uri': 'https://geoconnex.us/iow/demo/MA00963',\n", + " 'state': 'https://geoconnex.us/ref/states/25',\n", + " 'huc8': 'https://geoconnex.us/ref/hu08/01080202',\n", + " 'reachcode_nhdpv2': 'https://geoconnex.us/nhdplusv2/reachcode/01080202000057'},\n", + " 'id': 'MA00963'},\n", + " {'type': 'Feature',\n", + " 'geometry': {'type': 'Point',\n", + " 'coordinates': [-72.93025935212557, 42.73076247739125]},\n", + " 'properties': {'fid': 83,\n", + " 'SourceAgency': None,\n", + " 'SourceDataset': None,\n", + " 'SourceFeatureURL': None,\n", + " 'FeatureType': None,\n", + " 'ReachCode': '01080203004532',\n", + " 'Measure': 38.57637857328948,\n", + " 'ReachSMDate': '2018-04-16T10:27:36.000Z',\n", + " 'AddressDate': '2022-03-01T01:26:09.000Z',\n", + " 'Catchment': 0.0,\n", + " 'HU': '',\n", + " 'OnNetwork': 1,\n", + " 'HydroAddressID': '0098e57a-5c09-467c-8da4-6b4efc160a0c',\n", + " 'GNIS_NAME': 'Deerfield River',\n", + " 'GNIS_ID': None,\n", + " 'SnapTolerance': 250.0,\n", + " 'SnapDistance': 140.352,\n", + " 'InSnapTolerance': 1,\n", + " 'QCTolerance': 250.0,\n", + " 'InQCTolerance': 1,\n", + " 'QCApproved': 1,\n", + " 'NHDPv2ReachCode': '01080203004539',\n", + " 'NHDPv2Measure': 0.0,\n", + " 'Latitude': 42.7299,\n", + " 'Longitude': -72.9298,\n", + " 'uri': 'https://geoconnex.us/iow/demo/MA00043',\n", + " 'state': 'https://geoconnex.us/ref/states/25',\n", + " 'huc8': 'https://geoconnex.us/ref/hu08/01080203',\n", + " 'reachcode_nhdpv2': 'https://geoconnex.us/nhdplusv2/reachcode/01080203004539'},\n", + " 'id': 'MA00043'},\n", + " {'type': 'Feature',\n", + " 'geometry': {'type': 'Point',\n", + " 'coordinates': [-72.2388775163703, 42.39294762138585]},\n", + " 'properties': {'fid': 84,\n", + " 'SourceAgency': None,\n", + " 'SourceDataset': None,\n", + " 'SourceFeatureURL': None,\n", + " 'FeatureType': None,\n", + " 'ReachCode': '01080204000175',\n", + " 'Measure': 44.52657820687072,\n", + " 'ReachSMDate': '2021-03-18T10:14:16.000Z',\n", + " 'AddressDate': '2022-03-01T01:26:36.000Z',\n", + " 'Catchment': 0.0,\n", + " 'HU': '',\n", + " 'OnNetwork': 1,\n", + " 'HydroAddressID': '55012311-e5c4-4268-846d-f8b9a0bfe071',\n", + " 'GNIS_NAME': 'East Branch Swift River',\n", + " 'GNIS_ID': None,\n", + " 'SnapTolerance': 250.0,\n", + " 'SnapDistance': 3.64957,\n", + " 'InSnapTolerance': 1,\n", + " 'QCTolerance': 250.0,\n", + " 'InQCTolerance': 1,\n", + " 'QCApproved': 1,\n", + " 'NHDPv2ReachCode': '01080204001529',\n", + " 'NHDPv2Measure': 0.0,\n", + " 'Latitude': 42.39293,\n", + " 'Longitude': -72.2389,\n", + " 'uri': 'https://geoconnex.us/iow/demo/MA03287',\n", + " 'state': 'https://geoconnex.us/ref/states/25',\n", + " 'huc8': 'https://geoconnex.us/ref/hu08/01080204',\n", + " 'reachcode_nhdpv2': 'https://geoconnex.us/nhdplusv2/reachcode/01080204001529'},\n", + " 'id': 'MA03287'},\n", + " {'type': 'Feature',\n", + " 'geometry': {'type': 'Point',\n", + " 'coordinates': [-71.22298001006556, 42.369059678576]},\n", + " 'properties': {'fid': 85,\n", + " 'SourceAgency': None,\n", + " 'SourceDataset': None,\n", + " 'SourceFeatureURL': None,\n", + " 'FeatureType': None,\n", + " 'ReachCode': '01090001000111',\n", + " 'Measure': 97.36720032230501,\n", + " 'ReachSMDate': '2012-03-07T00:00:00.000Z',\n", + " 'AddressDate': '2022-03-01T01:26:35.000Z',\n", + " 'Catchment': 0.0,\n", + " 'HU': '',\n", + " 'OnNetwork': 1,\n", + " 'HydroAddressID': '75c96173-7a3b-40ea-9b79-02bae75e0d76',\n", + " 'GNIS_NAME': 'Charles River',\n", + " 'GNIS_ID': None,\n", + " 'SnapTolerance': 250.0,\n", + " 'SnapDistance': 4.3276,\n", + " 'InSnapTolerance': 1,\n", + " 'QCTolerance': 250.0,\n", + " 'InQCTolerance': 1,\n", + " 'QCApproved': 1,\n", + " 'NHDPv2ReachCode': '01090001000111',\n", + " 'NHDPv2Measure': 75.03544,\n", + " 'Latitude': 42.36908759,\n", + " 'Longitude': -71.22297084,\n", + " 'uri': 'https://geoconnex.us/iow/demo/MA01110',\n", + " 'state': 'https://geoconnex.us/ref/states/25',\n", + " 'huc8': 'https://geoconnex.us/ref/hu08/01090001',\n", + " 'reachcode_nhdpv2': 'https://geoconnex.us/nhdplusv2/reachcode/01090001000111'},\n", + " 'id': 'MA01110'},\n", + " {'type': 'Feature',\n", + " 'geometry': {'type': 'Point',\n", + " 'coordinates': [-71.18924603254517, 42.36535179929165]},\n", + " 'properties': {'fid': 86,\n", + " 'SourceAgency': None,\n", + " 'SourceDataset': None,\n", + " 'SourceFeatureURL': None,\n", + " 'FeatureType': None,\n", + " 'ReachCode': '01090001000111',\n", + " 'Measure': 79.32054950571131,\n", + " 'ReachSMDate': '2012-03-07T00:00:00.000Z',\n", + " 'AddressDate': '2022-03-01T01:26:35.000Z',\n", + " 'Catchment': 0.0,\n", + " 'HU': '',\n", + " 'OnNetwork': 1,\n", + " 'HydroAddressID': '8100ba3a-eca9-4128-80ac-16925208d5c6',\n", + " 'GNIS_NAME': 'Charles River',\n", + " 'GNIS_ID': None,\n", + " 'SnapTolerance': 250.0,\n", + " 'SnapDistance': 4.55726,\n", + " 'InSnapTolerance': 1,\n", + " 'QCTolerance': 250.0,\n", + " 'InQCTolerance': 1,\n", + " 'QCApproved': 1,\n", + " 'NHDPv2ReachCode': '01090001000111',\n", + " 'NHDPv2Measure': 75.03544,\n", + " 'Latitude': 42.36538131,\n", + " 'Longitude': -71.18923705,\n", + " 'uri': 'https://geoconnex.us/iow/demo/MA00456',\n", + " 'state': 'https://geoconnex.us/ref/states/25',\n", + " 'huc8': 'https://geoconnex.us/ref/hu08/01090001',\n", + " 'reachcode_nhdpv2': 'https://geoconnex.us/nhdplusv2/reachcode/01090001000111'},\n", + " 'id': 'MA00456'},\n", + " {'type': 'Feature',\n", + " 'geometry': {'type': 'Point',\n", + " 'coordinates': [-71.15433645227034, 42.1587875829303]},\n", + " 'properties': {'fid': 87,\n", + " 'SourceAgency': None,\n", + " 'SourceDataset': None,\n", + " 'SourceFeatureURL': None,\n", + " 'FeatureType': None,\n", + " 'ReachCode': '01090001000232',\n", + " 'Measure': 71.11798037753269,\n", + " 'ReachSMDate': '2015-09-02T07:50:08.000Z',\n", + " 'AddressDate': '2022-03-01T01:26:35.000Z',\n", + " 'Catchment': 0.0,\n", + " 'HU': '',\n", + " 'OnNetwork': 1,\n", + " 'HydroAddressID': '6b3472c6-ce74-4979-bd76-a1ea10063910',\n", + " 'GNIS_NAME': 'East Branch Neponset River',\n", + " 'GNIS_ID': None,\n", + " 'SnapTolerance': 250.0,\n", + " 'SnapDistance': 5.44785,\n", + " 'InSnapTolerance': 1,\n", + " 'QCTolerance': 250.0,\n", + " 'InQCTolerance': 1,\n", + " 'QCApproved': 1,\n", + " 'NHDPv2ReachCode': '01090001000232',\n", + " 'NHDPv2Measure': 0.0,\n", + " 'Latitude': 42.15875398,\n", + " 'Longitude': -71.15431801,\n", + " 'uri': 'https://geoconnex.us/iow/demo/MA03106',\n", + " 'state': 'https://geoconnex.us/ref/states/25',\n", + " 'huc8': 'https://geoconnex.us/ref/hu08/01090001',\n", + " 'reachcode_nhdpv2': 'https://geoconnex.us/nhdplusv2/reachcode/01090001000232'},\n", + " 'id': 'MA03106'},\n", + " {'type': 'Feature',\n", + " 'geometry': {'type': 'Point',\n", + " 'coordinates': [-70.92917874249835, 42.75018331329638]},\n", + " 'properties': {'fid': 88,\n", + " 'SourceAgency': None,\n", + " 'SourceDataset': None,\n", + " 'SourceFeatureURL': None,\n", + " 'FeatureType': None,\n", + " 'ReachCode': '01090001001170',\n", + " 'Measure': 6.66071520001225,\n", + " 'ReachSMDate': '2012-03-07T00:00:00.000Z',\n", + " 'AddressDate': '2022-03-01T01:26:36.000Z',\n", + " 'Catchment': 0.0,\n", + " 'HU': '',\n", + " 'OnNetwork': 1,\n", + " 'HydroAddressID': '42b00e9a-2642-4224-a227-97fbebc88555',\n", + " 'GNIS_NAME': 'Parker River',\n", + " 'GNIS_ID': None,\n", + " 'SnapTolerance': 250.0,\n", + " 'SnapDistance': 19.8022,\n", + " 'InSnapTolerance': 1,\n", + " 'QCTolerance': 250.0,\n", + " 'InQCTolerance': 1,\n", + " 'QCApproved': 1,\n", + " 'NHDPv2ReachCode': '01090001001170',\n", + " 'NHDPv2Measure': 0.0,\n", + " 'Latitude': 42.75007695,\n", + " 'Longitude': -70.92907548,\n", + " 'uri': 'https://geoconnex.us/iow/demo/MA00241',\n", + " 'state': 'https://geoconnex.us/ref/states/25',\n", + " 'huc8': 'https://geoconnex.us/ref/hu08/01090001',\n", + " 'reachcode_nhdpv2': 'https://geoconnex.us/nhdplusv2/reachcode/01090001001170'},\n", + " 'id': 'MA00241'},\n", + " {'type': 'Feature',\n", + " 'geometry': {'type': 'Point',\n", + " 'coordinates': [-71.31578623498069, 42.27157257522328]},\n", + " 'properties': {'fid': 89,\n", + " 'SourceAgency': None,\n", + " 'SourceDataset': None,\n", + " 'SourceFeatureURL': None,\n", + " 'FeatureType': None,\n", + " 'ReachCode': '01090001023030',\n", + " 'Measure': 74.58100940853373,\n", + " 'ReachSMDate': '2012-03-07T00:00:00.000Z',\n", + " 'AddressDate': '2022-03-01T01:26:42.000Z',\n", + " 'Catchment': 0.0,\n", + " 'HU': '',\n", + " 'OnNetwork': 1,\n", + " 'HydroAddressID': '5e434180-a42a-4c5e-944a-76b7c74ecc4d',\n", + " 'GNIS_NAME': 'Charles River',\n", + " 'GNIS_ID': None,\n", + " 'SnapTolerance': 250.0,\n", + " 'SnapDistance': 5.07536,\n", + " 'InSnapTolerance': 1,\n", + " 'QCTolerance': 250.0,\n", + " 'InQCTolerance': 1,\n", + " 'QCApproved': 1,\n", + " 'NHDPv2ReachCode': '01090001002200',\n", + " 'NHDPv2Measure': 0.0,\n", + " 'Latitude': 42.271548,\n", + " 'Longitude': -71.315755,\n", + " 'uri': 'https://geoconnex.us/iow/demo/MA00341',\n", + " 'state': 'https://geoconnex.us/ref/states/25',\n", + " 'huc8': 'https://geoconnex.us/ref/hu08/01090001',\n", + " 'reachcode_nhdpv2': 'https://geoconnex.us/nhdplusv2/reachcode/01090001002200'},\n", + " 'id': 'MA00341'},\n", + " {'type': 'Feature',\n", + " 'geometry': {'type': 'Point',\n", + " 'coordinates': [-70.98884191156847, 41.93752730190306]},\n", + " 'properties': {'fid': 90,\n", + " 'SourceAgency': None,\n", + " 'SourceDataset': None,\n", + " 'SourceFeatureURL': None,\n", + " 'FeatureType': None,\n", + " 'ReachCode': '01090004023518',\n", + " 'Measure': 31.040157488767957,\n", + " 'ReachSMDate': '2019-02-08T07:54:17.000Z',\n", + " 'AddressDate': '2022-03-01T01:26:40.000Z',\n", + " 'Catchment': 0.0,\n", + " 'HU': '',\n", + " 'OnNetwork': 1,\n", + " 'HydroAddressID': '62a9f568-fa5b-4ba1-bd73-b2229b936f36',\n", + " 'GNIS_NAME': 'Snows Brook',\n", + " 'GNIS_ID': None,\n", + " 'SnapTolerance': 250.0,\n", + " 'SnapDistance': 1.30878,\n", + " 'InSnapTolerance': 1,\n", + " 'QCTolerance': 250.0,\n", + " 'InQCTolerance': 1,\n", + " 'QCApproved': 1,\n", + " 'NHDPv2ReachCode': '01090004000039',\n", + " 'NHDPv2Measure': 44.77944,\n", + " 'Latitude': 41.93753443,\n", + " 'Longitude': -70.9888351,\n", + " 'uri': 'https://geoconnex.us/iow/demo/MA03147',\n", + " 'state': 'https://geoconnex.us/ref/states/25',\n", + " 'huc8': 'https://geoconnex.us/ref/hu08/01090004',\n", + " 'reachcode_nhdpv2': 'https://geoconnex.us/nhdplusv2/reachcode/01090004000039'},\n", + " 'id': 'MA03147'},\n", + " {'type': 'Feature',\n", + " 'geometry': {'type': 'Point',\n", + " 'coordinates': [-70.90483540351352, 41.89023949872088]},\n", + " 'properties': {'fid': 91,\n", + " 'SourceAgency': None,\n", + " 'SourceDataset': None,\n", + " 'SourceFeatureURL': None,\n", + " 'FeatureType': None,\n", + " 'ReachCode': '01090004000040',\n", + " 'Measure': 79.0512075491028,\n", + " 'ReachSMDate': '2014-06-24T13:06:56.000Z',\n", + " 'AddressDate': '2022-03-01T01:26:41.000Z',\n", + " 'Catchment': 0.0,\n", + " 'HU': '',\n", + " 'OnNetwork': 1,\n", + " 'HydroAddressID': '81134d2b-da48-4218-bbef-54a976afbc47',\n", + " 'GNIS_NAME': 'Nemasket River',\n", + " 'GNIS_ID': None,\n", + " 'SnapTolerance': 250.0,\n", + " 'SnapDistance': 44.4309,\n", + " 'InSnapTolerance': 1,\n", + " 'QCTolerance': 250.0,\n", + " 'InQCTolerance': 1,\n", + " 'QCApproved': 1,\n", + " 'NHDPv2ReachCode': '01090004000040',\n", + " 'NHDPv2Measure': 0.0,\n", + " 'Latitude': 41.89028,\n", + " 'Longitude': -70.90444,\n", + " 'uri': 'https://geoconnex.us/iow/demo/MA00015',\n", + " 'state': 'https://geoconnex.us/ref/states/25',\n", + " 'huc8': 'https://geoconnex.us/ref/hu08/01090004',\n", + " 'reachcode_nhdpv2': 'https://geoconnex.us/nhdplusv2/reachcode/01090004000040'},\n", + " 'id': 'MA00015'},\n", + " {'type': 'Feature',\n", + " 'geometry': {'type': 'Point',\n", + " 'coordinates': [-71.38025419156996, 41.88774299970783]},\n", + " 'properties': {'fid': 92,\n", + " 'SourceAgency': None,\n", + " 'SourceDataset': None,\n", + " 'SourceFeatureURL': None,\n", + " 'FeatureType': None,\n", + " 'ReachCode': '01090003008847',\n", + " 'Measure': 43.51598524241717,\n", + " 'ReachSMDate': '2021-08-23T09:36:29.000Z',\n", + " 'AddressDate': '2022-03-01T01:26:41.000Z',\n", + " 'Catchment': 0.0,\n", + " 'HU': '',\n", + " 'OnNetwork': 1,\n", + " 'HydroAddressID': 'ede5d3f9-d215-4d59-a55d-a35697f6f990',\n", + " 'GNIS_NAME': 'Seekonk River',\n", + " 'GNIS_ID': None,\n", + " 'SnapTolerance': 250.0,\n", + " 'SnapDistance': 6.57144,\n", + " 'InSnapTolerance': 1,\n", + " 'QCTolerance': 250.0,\n", + " 'InQCTolerance': 1,\n", + " 'QCApproved': 1,\n", + " 'NHDPv2ReachCode': '01090004000102',\n", + " 'NHDPv2Measure': 55.62375,\n", + " 'Latitude': 41.88773729,\n", + " 'Longitude': -71.38019566,\n", + " 'uri': 'https://geoconnex.us/iow/demo/RI00402',\n", + " 'state': 'https://geoconnex.us/ref/states/44',\n", + " 'huc8': 'https://geoconnex.us/ref/hu08/01090003',\n", + " 'reachcode_nhdpv2': 'https://geoconnex.us/nhdplusv2/reachcode/01090004000102'},\n", + " 'id': 'RI00402'},\n", + " {'type': 'Feature',\n", + " 'geometry': {'type': 'Point',\n", + " 'coordinates': [-71.38218999183697, 41.87711230190213]},\n", + " 'properties': {'fid': 93,\n", + " 'SourceAgency': None,\n", + " 'SourceDataset': None,\n", + " 'SourceFeatureURL': None,\n", + " 'FeatureType': None,\n", + " 'ReachCode': '01090003008847',\n", + " 'Measure': 0.13203854584802485,\n", + " 'ReachSMDate': '2021-08-23T09:36:29.000Z',\n", + " 'AddressDate': '2022-03-01T01:26:42.000Z',\n", + " 'Catchment': 0.0,\n", + " 'HU': '',\n", + " 'OnNetwork': 1,\n", + " 'HydroAddressID': '00d98d9b-170f-4ce9-8a3a-ff31a32de057',\n", + " 'GNIS_NAME': 'Seekonk River',\n", + " 'GNIS_ID': None,\n", + " 'SnapTolerance': 250.0,\n", + " 'SnapDistance': 5.20786,\n", + " 'InSnapTolerance': 1,\n", + " 'QCTolerance': 250.0,\n", + " 'InQCTolerance': 1,\n", + " 'QCApproved': 1,\n", + " 'NHDPv2ReachCode': '01090004000102',\n", + " 'NHDPv2Measure': 55.62375,\n", + " 'Latitude': 41.87714388,\n", + " 'Longitude': -71.38220974,\n", + " 'uri': 'https://geoconnex.us/iow/demo/RI04270',\n", + " 'state': 'https://geoconnex.us/ref/states/44',\n", + " 'huc8': 'https://geoconnex.us/ref/hu08/01090004',\n", + " 'reachcode_nhdpv2': 'https://geoconnex.us/nhdplusv2/reachcode/01090004000102'},\n", + " 'id': 'RI04270'},\n", + " {'type': 'Feature',\n", + " 'geometry': {'type': 'Point',\n", + " 'coordinates': [-71.51640384058467, 41.71274688204095]},\n", + " 'properties': {'fid': 94,\n", + " 'SourceAgency': None,\n", + " 'SourceDataset': None,\n", + " 'SourceFeatureURL': None,\n", + " 'FeatureType': None,\n", + " 'ReachCode': '01090004000874',\n", + " 'Measure': 46.91960621892537,\n", + " 'ReachSMDate': '2014-06-09T16:07:27.000Z',\n", + " 'AddressDate': '2022-03-01T01:26:42.000Z',\n", + " 'Catchment': 0.0,\n", + " 'HU': '',\n", + " 'OnNetwork': 1,\n", + " 'HydroAddressID': '7bc2d126-02bf-486e-ab59-e4ae79f3bca2',\n", + " 'GNIS_NAME': 'South Branch Pawtuxet River',\n", + " 'GNIS_ID': None,\n", + " 'SnapTolerance': 250.0,\n", + " 'SnapDistance': 8.5505,\n", + " 'InSnapTolerance': 1,\n", + " 'QCTolerance': 250.0,\n", + " 'InQCTolerance': 1,\n", + " 'QCApproved': 1,\n", + " 'NHDPv2ReachCode': '01090004000874',\n", + " 'NHDPv2Measure': 0.0,\n", + " 'Latitude': 41.712786,\n", + " 'Longitude': -71.51646,\n", + " 'uri': 'https://geoconnex.us/iow/demo/RI04367',\n", + " 'state': 'https://geoconnex.us/ref/states/44',\n", + " 'huc8': 'https://geoconnex.us/ref/hu08/01090004',\n", + " 'reachcode_nhdpv2': 'https://geoconnex.us/nhdplusv2/reachcode/01090004000874'},\n", + " 'id': 'RI04367'},\n", + " {'type': 'Feature',\n", + " 'geometry': {'type': 'Point',\n", + " 'coordinates': [-71.58486175972976, 41.75326918996265]},\n", + " 'properties': {'fid': 95,\n", + " 'SourceAgency': None,\n", + " 'SourceDataset': None,\n", + " 'SourceFeatureURL': None,\n", + " 'FeatureType': None,\n", + " 'ReachCode': '1090004003001',\n", + " 'Measure': 0.0,\n", + " 'ReachSMDate': None,\n", + " 'AddressDate': None,\n", + " 'Catchment': None,\n", + " 'HU': None,\n", + " 'OnNetwork': 0,\n", + " 'HydroAddressID': None,\n", + " 'GNIS_NAME': 'PAWTUXET RIVER-NORTH BRANCH',\n", + " 'GNIS_ID': None,\n", + " 'SnapTolerance': 0.0,\n", + " 'SnapDistance': 0.0,\n", + " 'InSnapTolerance': 0,\n", + " 'QCTolerance': 0.0,\n", + " 'InQCTolerance': 0,\n", + " 'QCApproved': 0,\n", + " 'NHDPv2ReachCode': '01090004003001',\n", + " 'NHDPv2Measure': 0.0,\n", + " 'Latitude': 41.75326919,\n", + " 'Longitude': -71.58486176,\n", + " 'uri': 'https://geoconnex.us/iow/demo/RI03001',\n", + " 'state': 'https://geoconnex.us/ref/states/44',\n", + " 'huc8': 'https://geoconnex.us/ref/hu08/01090004',\n", + " 'reachcode_nhdpv2': 'https://geoconnex.us/nhdplusv2/reachcode/01090004003001'},\n", + " 'id': 'RI03001'},\n", + " {'type': 'Feature',\n", + " 'geometry': {'type': 'Point',\n", + " 'coordinates': [-71.67396318508949, 41.79203789622739]},\n", + " 'properties': {'fid': 96,\n", + " 'SourceAgency': None,\n", + " 'SourceDataset': None,\n", + " 'SourceFeatureURL': None,\n", + " 'FeatureType': None,\n", + " 'ReachCode': '01090004031843',\n", + " 'Measure': 1.5823789865459847,\n", + " 'ReachSMDate': '2012-03-08T00:00:00.000Z',\n", + " 'AddressDate': '2022-03-01T01:26:43.000Z',\n", + " 'Catchment': 0.0,\n", + " 'HU': '',\n", + " 'OnNetwork': 1,\n", + " 'HydroAddressID': '5d1123b4-cc01-4a84-b1ac-6f4b13d57c38',\n", + " 'GNIS_NAME': 'Ponaganset River',\n", + " 'GNIS_ID': None,\n", + " 'SnapTolerance': 250.0,\n", + " 'SnapDistance': 25.0272,\n", + " 'InSnapTolerance': 1,\n", + " 'QCTolerance': 250.0,\n", + " 'InQCTolerance': 1,\n", + " 'QCApproved': 1,\n", + " 'NHDPv2ReachCode': '01090004003009',\n", + " 'NHDPv2Measure': 0.0,\n", + " 'Latitude': 41.79198073,\n", + " 'Longitude': -71.67375184,\n", + " 'uri': 'https://geoconnex.us/iow/demo/RI03003',\n", + " 'state': 'https://geoconnex.us/ref/states/44',\n", + " 'huc8': 'https://geoconnex.us/ref/hu08/01090004',\n", + " 'reachcode_nhdpv2': 'https://geoconnex.us/nhdplusv2/reachcode/01090004003009'},\n", + " 'id': 'RI03003'},\n", + " {'type': 'Feature',\n", + " 'geometry': {'type': 'Point',\n", + " 'coordinates': [-71.5934255412671, 41.83302226485818]},\n", + " 'properties': {'fid': 97,\n", + " 'SourceAgency': None,\n", + " 'SourceDataset': None,\n", + " 'SourceFeatureURL': None,\n", + " 'FeatureType': None,\n", + " 'ReachCode': '01090004031882',\n", + " 'Measure': 13.162970680221086,\n", + " 'ReachSMDate': '2012-03-08T00:00:00.000Z',\n", + " 'AddressDate': '2022-03-01T01:26:42.000Z',\n", + " 'Catchment': 0.0,\n", + " 'HU': '',\n", + " 'OnNetwork': 1,\n", + " 'HydroAddressID': '0d4a51a7-63d8-4b5f-9c90-d70b21d56fee',\n", + " 'GNIS_NAME': None,\n", + " 'GNIS_ID': None,\n", + " 'SnapTolerance': 250.0,\n", + " 'SnapDistance': 11.5003,\n", + " 'InSnapTolerance': 1,\n", + " 'QCTolerance': 250.0,\n", + " 'InQCTolerance': 1,\n", + " 'QCApproved': 1,\n", + " 'NHDPv2ReachCode': '01090004003031',\n", + " 'NHDPv2Measure': 0.0,\n", + " 'Latitude': 41.83301924,\n", + " 'Longitude': -71.59352877,\n", + " 'uri': 'https://geoconnex.us/iow/demo/RI03004',\n", + " 'state': 'https://geoconnex.us/ref/states/44',\n", + " 'huc8': 'https://geoconnex.us/ref/hu08/01090004',\n", + " 'reachcode_nhdpv2': 'https://geoconnex.us/nhdplusv2/reachcode/01090004003031'},\n", + " 'id': 'RI03004'},\n", + " {'type': 'Feature',\n", + " 'geometry': {'type': 'Point',\n", + " 'coordinates': [-72.03888644794775, 42.0838662883585]},\n", + " 'properties': {'fid': 98,\n", + " 'SourceAgency': None,\n", + " 'SourceDataset': None,\n", + " 'SourceFeatureURL': None,\n", + " 'FeatureType': None,\n", + " 'ReachCode': '01100001000054',\n", + " 'Measure': 86.61729427196738,\n", + " 'ReachSMDate': '2012-03-08T00:00:00.000Z',\n", + " 'AddressDate': '2022-03-01T01:26:08.000Z',\n", + " 'Catchment': 0.0,\n", + " 'HU': '',\n", + " 'OnNetwork': 1,\n", + " 'HydroAddressID': '3cfe8b7c-a198-4026-ab6f-b98c5f926c7b',\n", + " 'GNIS_NAME': 'Quinebaug River',\n", + " 'GNIS_ID': None,\n", + " 'SnapTolerance': 250.0,\n", + " 'SnapDistance': 2.381,\n", + " 'InSnapTolerance': 1,\n", + " 'QCTolerance': 250.0,\n", + " 'InQCTolerance': 1,\n", + " 'QCApproved': 1,\n", + " 'NHDPv2ReachCode': '01100001000054',\n", + " 'NHDPv2Measure': 0.0,\n", + " 'Latitude': 42.08388208,\n", + " 'Longitude': -72.03888427,\n", + " 'uri': 'https://geoconnex.us/iow/demo/MA00689',\n", + " 'state': 'https://geoconnex.us/ref/states/25',\n", + " 'huc8': 'https://geoconnex.us/ref/hu08/01100001',\n", + " 'reachcode_nhdpv2': 'https://geoconnex.us/nhdplusv2/reachcode/01100001000054'},\n", + " 'id': 'MA00689'},\n", + " {'type': 'Feature',\n", + " 'geometry': {'type': 'Point',\n", + " 'coordinates': [-72.1146029225735, 42.11533181071561]},\n", + " 'properties': {'fid': 99,\n", + " 'SourceAgency': None,\n", + " 'SourceDataset': None,\n", + " 'SourceFeatureURL': None,\n", + " 'FeatureType': None,\n", + " 'ReachCode': '01100001000966',\n", + " 'Measure': 36.647170593216536,\n", + " 'ReachSMDate': '2012-03-08T00:00:00.000Z',\n", + " 'AddressDate': '2022-03-01T01:26:43.000Z',\n", + " 'Catchment': 0.0,\n", + " 'HU': '',\n", + " 'OnNetwork': 1,\n", + " 'HydroAddressID': '82cda14b-35fb-4e97-a10b-2805a8ee466a',\n", + " 'GNIS_NAME': 'Quinebaug River',\n", + " 'GNIS_ID': None,\n", + " 'SnapTolerance': 250.0,\n", + " 'SnapDistance': 10.0158,\n", + " 'InSnapTolerance': 1,\n", + " 'QCTolerance': 250.0,\n", + " 'InQCTolerance': 1,\n", + " 'QCApproved': 1,\n", + " 'NHDPv2ReachCode': '01100001000966',\n", + " 'NHDPv2Measure': 0.0,\n", + " 'Latitude': 42.11526667,\n", + " 'Longitude': -72.11458333,\n", + " 'uri': 'https://geoconnex.us/iow/demo/MA02017',\n", + " 'state': 'https://geoconnex.us/ref/states/25',\n", + " 'huc8': 'https://geoconnex.us/ref/hu08/01100001',\n", + " 'reachcode_nhdpv2': 'https://geoconnex.us/nhdplusv2/reachcode/01100001000966'},\n", + " 'id': 'MA02017'},\n", + " {'type': 'Feature',\n", + " 'geometry': {'type': 'Point',\n", + " 'coordinates': [-72.09160189120196, 41.53436774247858]},\n", + " 'properties': {'fid': 100,\n", + " 'SourceAgency': None,\n", + " 'SourceDataset': None,\n", + " 'SourceFeatureURL': None,\n", + " 'FeatureType': None,\n", + " 'ReachCode': '01100003003644',\n", + " 'Measure': 53.74897707010943,\n", + " 'ReachSMDate': '2015-07-28T11:06:08.000Z',\n", + " 'AddressDate': '2022-03-01T01:26:09.000Z',\n", + " 'Catchment': 0.0,\n", + " 'HU': '',\n", + " 'OnNetwork': 1,\n", + " 'HydroAddressID': 'fda142d8-73e7-4415-9de6-c5dafe89b747',\n", + " 'GNIS_NAME': 'Yantic River',\n", + " 'GNIS_ID': None,\n", + " 'SnapTolerance': 250.0,\n", + " 'SnapDistance': 4.38039,\n", + " 'InSnapTolerance': 1,\n", + " 'QCTolerance': 250.0,\n", + " 'InQCTolerance': 1,\n", + " 'QCApproved': 1,\n", + " 'NHDPv2ReachCode': '01100003000049',\n", + " 'NHDPv2Measure': 0.0,\n", + " 'Latitude': 41.534396,\n", + " 'Longitude': -72.091613,\n", + " 'uri': 'https://geoconnex.us/iow/demo/CT00575',\n", + " 'state': 'https://geoconnex.us/ref/states/09',\n", + " 'huc8': 'https://geoconnex.us/ref/hu08/01100003',\n", + " 'reachcode_nhdpv2': 'https://geoconnex.us/nhdplusv2/reachcode/01100003000049'},\n", + " 'id': 'CT00575'}],\n", + " 'links': [{'type': 'application/geo+json',\n", + " 'rel': 'self',\n", + " 'title': 'This document as GeoJSON',\n", + " 'href': 'https://geoconnex-demo-pages.internetofwater.dev/collections/demo-gpkg/items?f=json&limit=100'},\n", + " {'rel': 'alternate',\n", + " 'type': 'application/ld+json',\n", + " 'title': 'This document as RDF (JSON-LD)',\n", + " 'href': 'https://geoconnex-demo-pages.internetofwater.dev/collections/demo-gpkg/items?f=jsonld&limit=100'},\n", + " {'type': 'text/html',\n", + " 'rel': 'alternate',\n", + " 'title': 'This document as HTML',\n", + " 'href': 'https://geoconnex-demo-pages.internetofwater.dev/collections/demo-gpkg/items?f=html&limit=100'},\n", + " {'type': 'application/geo+json',\n", + " 'rel': 'next',\n", + " 'title': 'items (next)',\n", + " 'href': 'https://geoconnex-demo-pages.internetofwater.dev/collections/demo-gpkg/items?offset=100&limit=100'},\n", + " {'type': 'application/json',\n", + " 'title': 'geoconnex landing page demo (local file)',\n", + " 'rel': 'collection',\n", + " 'href': 'https://geoconnex-demo-pages.internetofwater.dev/collections/demo-gpkg/items'}],\n", + " 'timeStamp': '2022-12-23T19:34:05.528719Z'}" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "with httpx.Client() as client:\n", + " r = client.get('https://geoconnex-demo-pages.internetofwater.dev/collections/demo-gpkg/items?f=json&limit=100')\n", + "#r.json()" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [], + "source": [ + "\n", + "with open(\"tmpfile.geojson\", \"wb\") as download_file:\n", + " url = \"https://geoconnex-demo-pages.internetofwater.dev/collections/demo-gpkg/items?f=json&limit=100\"\n", + " with httpx.stream(\"GET\", url) as response:\n", + " for chunk in response.iter_bytes():\n", + " download_file.write(chunk)\n", + " \n" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": {}, + "outputs": [], + "source": [ + "r = httpx.get( url)" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "'utf-8'" + ] + }, + "execution_count": 17, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "r.encoding" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "metadata": {}, + "outputs": [], + "source": [ + "import tempfile" + ] + }, + { + "cell_type": "code", + "execution_count": 33, + "metadata": {}, + "outputs": [], + "source": [ + "f = tempfile.NamedTemporaryFile(suffix='.geojson', prefix=\"CrawlerData_01_\", dir=\".\", delete=False)" + ] + }, + { + "cell_type": "code", + "execution_count": 34, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "'/home/trantham/nldi-crawler-py/notebooks/CrawlerData_01_2g2l478y.geojson'" + ] + }, + "execution_count": 34, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "f.name" + ] + }, + { + "cell_type": "code", + "execution_count": 32, + "metadata": {}, + "outputs": [], + "source": [ + "f.close()" + ] + }, + { + "cell_type": "code", + "execution_count": 36, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "tempfile._TemporaryFileWrapper" + ] + }, + "execution_count": 36, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "type(f)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "nldi-crawler-AikWVh81-py3.9", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.16 (main, Dec 14 2022, 13:52:45) \n[GCC 11.3.0]" + }, + "orig_nbformat": 4, + "vscode": { + "interpreter": { + "hash": "f23894094ed0d11a7fc7109fb6d8f7d7139f748cdac66a6988117f0bc49a024e" + } + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/notebooks/get_db_schema.ipynb b/notebooks/get_db_schema.ipynb index 3c2164b..bf29a7e 100644 --- a/notebooks/get_db_schema.ipynb +++ b/notebooks/get_db_schema.ipynb @@ -299,6 +299,103 @@ " print(x.strip(\"'\\\"\"))" ] }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [], + "source": [ + "import re \n", + "DB_URL=\"postgresql://nldi_schema_owner:changeMe@10.88.0.1:5432/nldi\"\n" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "postgresql://nldi_schema_owner:****@10.88.0.1:5432/nldi\n" + ] + } + ], + "source": [ + "print(re.sub(r\"//([^:]+):.*@\", r\"//\\g<1>:****@\", DB_URL))" + ] + }, + { + "cell_type": "code", + "execution_count": 28, + "metadata": {}, + "outputs": [], + "source": [ + "SOURCE_URL = r\"https://www.waterqualitydata.us/data/Station/search?mimeType=geojson&minactivities=1&counts=no\"\n", + "SOURCE_URL = r\"https://www.sciencebase.gov/catalogMaps/mapping/ows/57336b02e4b0dae0d5dd619a?service=WFS&version=1.0.0&request=GetFeature&srsName=EPSG:4326&typeName=sb:fpp&outputFormat=json\"" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": {}, + "outputs": [], + "source": [ + "import httpx\n" + ] + }, + { + "cell_type": "code", + "execution_count": 29, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Read some data\n" + ] + } + ], + "source": [ + "try:\n", + " with httpx.stream(\"GET\", SOURCE_URL, timeout=15.0) as response:\n", + " if response.iter_bytes():\n", + " print(\"Read some data\")\n", + "except httpx.ReadTimeout:\n", + " print(\"READ TIMEOUT\")" + ] + }, + { + "cell_type": "code", + "execution_count": 32, + "metadata": {}, + "outputs": [], + "source": [ + "r = httpx.get(SOURCE_URL)" + ] + }, + { + "cell_type": "code", + "execution_count": 34, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "'text/xml;charset=UTF-8'" + ] + }, + "execution_count": 34, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "r.headers['content-type']" + ] + }, { "cell_type": "code", "execution_count": null, diff --git a/notebooks/parse_json.ipynb b/notebooks/parse_json.ipynb new file mode 100644 index 0000000..469cc48 --- /dev/null +++ b/notebooks/parse_json.ipynb @@ -0,0 +1,133 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "import ijson" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "............................................................................... \n", + "................................................................................ \n", + "................................................................................ \n", + "................................................................................ \n", + "................................................................................ \n", + "................................................................................ \n", + "................................................................................ \n", + "................................................................................ \n", + "................................................................................ \n", + "................................................................................ \n", + "................................................................................ \n", + "................................................................................ \n", + "................................................................................ \n", + "................................................................................ \n", + "................................................................................ \n", + "................................................................................ \n", + "................................................................................ \n", + "................................................................................ \n", + "................................................................................ \n", + "................................................................................ \n", + "................................................................................ \n", + "................................................................................ \n", + "................................................................................ \n", + "................................................................................ \n", + "................................................................................ \n", + "................................................................................ \n", + "................................................................................ \n", + "................................................................................ \n", + "................................................................................ \n", + "................................................................................ \n", + "................................................................................ \n", + "................................................................................ \n", + "................................................................................ \n", + "................................................................................ \n", + "................................................................................ \n", + "................................................................................ \n", + "................................................................................ \n", + "................................................................................ \n", + "................................................................................ \n", + "...............................................Done.\n" + ] + } + ], + "source": [ + "try:\n", + " with open(\"/home/trantham/nldi-crawler-py/CrawlerData_5_h3af70xa.geojson\", \"r\") as fh:\n", + " i=1\n", + " for itm in ijson.items(fh, 'features.item'):\n", + " print(\".\", end=\"\")\n", + " i+=1\n", + " if i%80 == 0:\n", + " print(\" \")\n", + " #print(i['properties']['ReachCode'], i['geometry'])\n", + "except ijson.JSONError:\n", + " print(\"Done.\")" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "3205" + ] + }, + "execution_count": 10, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "i" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "nldi-crawler-AikWVh81-py3.9", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.16 (main, Dec 14 2022, 13:52:45) \n[GCC 11.3.0]" + }, + "orig_nbformat": 4, + "vscode": { + "interpreter": { + "hash": "f23894094ed0d11a7fc7109fb6d8f7d7139f748cdac66a6988117f0bc49a024e" + } + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/notebooks/sources_info.txt b/notebooks/sources_info.txt new file mode 100644 index 0000000..0fc1d51 --- /dev/null +++ b/notebooks/sources_info.txt @@ -0,0 +1,110 @@ + 1 :: Water Quality Portal + Source Suffix: WQP + Source URI: https://www.waterqualitydata.us/data/Station/search?mimeType=geojson&minactivities=1&counts=no + Feature ID: MonitoringLocationIdentifier + Feature Name: MonitoringLocationName + Feature URI: siteUrl + Feature Reach: None + Feature Measure:None + Ingest Type: point + Feature Type varies + 2 :: HUC12 Pour Points + Source Suffix: huc12pp + Source URI: https://www.sciencebase.gov/catalogMaps/mapping/ows/57336b02e4b0dae0d5dd619a?service=WFS&version=1.0.0&request=GetFeature&srsName=EPSG:4326&typeName=sb:fpp&outputFormat=json + Feature ID: HUC_12 + Feature Name: HUC_12 + Feature URI: HUC_12 + Feature Reach: None + Feature Measure:None + Ingest Type: point + Feature Type hydrolocation + 5 :: NWIS Surface Water Sites + Source Suffix: nwissite + Source URI: https://www.sciencebase.gov/catalog/file/get/60c7b895d34e86b9389b2a6c?name=usgs_nldi_gages.geojson + Feature ID: provider_id + Feature Name: name + Feature URI: subjectOf + Feature Reach: nhdpv2_REACHCODE + Feature Measure:nhdpv2_REACH_measure + Ingest Type: reach + Feature Type hydrolocation + 6 :: Water Data Exchange 2.0 Sites + Source Suffix: wade + Source URI: https://www.hydroshare.org/resource/5f665b7b82d74476930712f7e423a0d2/data/contents/wade.geojson + Feature ID: feature_id + Feature Name: feature_name + Feature URI: feature_uri + Feature Reach: None + Feature Measure:None + Ingest Type: point + Feature Type varies + 7 :: geoconnex.us reference gages + Source Suffix: ref_gage + Source URI: https://www.hydroshare.org/resource/3295a17b4cc24d34bd6a5c5aaf753c50/data/contents/nldi_gages.geojson + Feature ID: id + Feature Name: name + Feature URI: subjectOf + Feature Reach: nhdpv2_REACHCODE + Feature Measure:nhdpv2_REACH_measure + Ingest Type: reach + Feature Type hydrolocation + 8 :: Streamgage catalog for CA SB19 + Source Suffix: ca_gages + Source URI: https://sb19.linked-data.internetofwater.dev/collections/ca_gages/items?f=json&limit=10000 + Feature ID: site_id + Feature Name: sitename + Feature URI: uri + Feature Reach: rchcd_medres + Feature Measure:reach_measure + Ingest Type: reach + Feature Type hydrolocation + 9 :: USGS Geospatial Fabric V1.1 Poin + Source Suffix: gfv11_pois + Source URI: https://www.sciencebase.gov/catalogMaps/mapping/ows/609c8a63d34ea221ce3acfd3?service=WFS&version=1.0.0&request=GetFeature&srsName=EPSG:4326&typeName=sb::gfv11&outputFormat=json + Feature ID: prvdr_d + Feature Name: name + Feature URI: uri + Feature Reach: n2_REACHC + Feature Measure:n2_REACH_ + Ingest Type: reach + Feature Type hydrolocation +10 :: Vigil Network Data + Source Suffix: vigil + Source URI: https://www.sciencebase.gov/catalog/file/get/60c7b895d34e86b9389b2a6c?name=vigil.geojson + Feature ID: SBID + Feature Name: Site Name + Feature URI: SBURL + Feature Reach: nhdpv2_REACHCODE + Feature Measure:nhdpv2_REACH_measure + Ingest Type: reach + Feature Type hydrolocation +11 :: NWIS Groundwater Sites + Source Suffix: nwisgw + Source URI: https://www.sciencebase.gov/catalog/file/get/60c7b895d34e86b9389b2a6c?name=nwis_wells.geojson + Feature ID: provider_id + Feature Name: name + Feature URI: subjectOf + Feature Reach: None + Feature Measure:None + Ingest Type: point + Feature Type point +12 :: New Mexico Water Data Initative + Source Suffix: nmwdi-st + Source URI: https://locations.newmexicowaterdata.org/collections/Things/items?f=json&limit=100000 + Feature ID: id + Feature Name: name + Feature URI: geoconnex + Feature Reach: None + Feature Measure:None + Ingest Type: point + Feature Type point +13 :: geoconnex contribution demo site + Source Suffix: geoconnex-demo + Source URI: https://geoconnex-demo-pages.internetofwater.dev/collections/demo-gpkg/items?f=json&limit=10000 + Feature ID: id + Feature Name: GNIS_NAME + Feature URI: uri + Feature Reach: NHDPv2ReachCode + Feature Measure:NHDPv2Measure + Ingest Type: reach + Feature Type hydrolocation \ No newline at end of file diff --git a/pyproject.toml b/pyproject.toml index 034f06f..e0fa3c3 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -13,6 +13,8 @@ click = "^8.1.3" sqlalchemy = {version = "2.0.0b1", allow-prereleases = true} psycopg2-binary = "^2.9.5" pandas = "^1.5.2" +httpx = "^0.23.1" +ijson = "^3.1.4" [tool.poetry.scripts] nldi-cli = "nldi_crawler.cli:main" diff --git a/src/nldi_crawler/cli.py b/src/nldi_crawler/cli.py index e37c863..a8fe8a8 100644 --- a/src/nldi_crawler/cli.py +++ b/src/nldi_crawler/cli.py @@ -10,11 +10,12 @@ import os import logging import configparser +import re import click - from . import __version__ from . import sources +from . import ingestor DEFAULT_DB_INFO = { "NLDI_DB_HOST": "localhost", @@ -28,8 +29,9 @@ @click.option("-v", "verbose_", count=True, help="Verbose mode.") @click.option("--config", "conf_", type=click.Path(exists=True), help="location of config file.") @click.option("--list", "list_", is_flag=True, help="Show list of crawler sources and exit.") +@click.option("--source", "source_id", help="The crawler_source_id to download and process.") @click.version_option(version=__version__) -def main(list_, conf_, verbose_): +def main(list_, conf_, verbose_, source_id): """ CLI to launch NLDI crawler. @@ -40,7 +42,7 @@ def main(list_, conf_, verbose_): logging.basicConfig(level=logging.INFO) if verbose_ >= 2: logging.basicConfig(level=logging.DEBUG) - logging.info("verbosity set to %s", verbose_) + logging.info("Verbosity set to %s", verbose_) cfg = DEFAULT_DB_INFO cfg.update(cfg_from_env()) @@ -48,16 +50,33 @@ def main(list_, conf_, verbose_): cfg.update(cfg_from_toml(conf_)) if list_: - print("\nID : Source Name : URI ") - print("== ", "="*48, " ", "="*48) - for source in sources.fetch_source_table(db_url(cfg)): + uri = db_url(cfg) + print("\nID : Source Name : Type : URI ") + print("== ", "=" * 46, " ===== ", "=" * 48) + for source in sources.fetch_source_table(uri): print( f"{source.crawler_source_id:2} :", - f"{source.source_name[0:48]:48} :", + f"{source.source_name[0:48]:46} :", + f"{source.ingest_type.upper():5} :", f"{source.source_uri[0:48]:48}...", ) sys.exit(0) + if source_id: + click.echo(f"Looking for source ID {source_id}") + uri = db_url(cfg) + logging.info("Setting up to crawl source %s", source_id) + for source in sources.fetch_source_table(uri, selector=source_id): + logging.debug("Found a source...%s : %s", source.crawler_source_id, source.source_name) + fname = sources.download_geojson(source) + if fname: + click.echo(f"Success !! --> {fname} ") + else: + click.echo("ABORTED") + sys.exit(-2) + ingestor.ingest(source, fname) + sys.exit(0) + def db_url(conf: dict) -> str: """ @@ -65,14 +84,23 @@ def db_url(conf: dict) -> str: :param conf: config information retrieved from env variables or from toml file. :type conf: dict - :return: connection string + :return: connection string in URI format :rtype: str """ + # NOTE: NLDI_DB_PASS may or may not be set, depending on whether the connection needs a password + # or not. The other configurables are assumed to be set based on the defaults defined in the + # global dict DEFAULT_DB_INFO. If that assumption is proven invalid, we need to do more error + # trapping here. if "NLDI_DB_PASS" in conf: - _url = f"postgresql://{conf['NLDI_DB_USER']}:{conf['NLDI_DB_PASS']}@{conf['NLDI_DB_HOST']}:{conf['NLDI_DB_PORT']}/{conf['NLDI_DB_NAME']}" + _url = f"postgresql://{conf['NLDI_DB_USER']}:{conf['NLDI_DB_PASS']}" + \ + f"@{conf['NLDI_DB_HOST']}:{conf['NLDI_DB_PORT']}/{conf['NLDI_DB_NAME']}" + logging.info( + "Using DB connection URI: %s", re.sub(r"//([^:]+):.*@", r"//\g<1>:****@", _url) + ) else: - _url = f"postgresql://{conf['NLDI_DB_USER']}@{conf['NLDI_DB_HOST']}:{conf['NLDI_DB_PORT']}/{conf['NLDI_DB_NAME']}" - logging.info("Using DB Connect String %s", _url) + _url = f"postgresql://{conf['NLDI_DB_USER']}@{conf['NLDI_DB_HOST']}:" + \ + f"{conf['NLDI_DB_PORT']}/{conf['NLDI_DB_NAME']}" + logging.info("Using DB connection URI: %s", _url) return _url @@ -90,7 +118,7 @@ def cfg_from_toml(filepath: str) -> dict: ## We already know that filepath is valid and points to an existing file, thanks ## to click.Path() in the cmdline option spec. _section_ = "nldi-db" - logging.info("Parsing TOML config file %s", filepath) + logging.info("Parsing TOML config file %s for DB connection info...", filepath) retval = {} dbconfig = configparser.ConfigParser() _ = dbconfig.read(filepath) @@ -101,11 +129,11 @@ def cfg_from_toml(filepath: str) -> dict: retval["NLDI_DB_PORT"] = dbconfig[_section_].get("port").strip("'\"") retval["NLDI_DB_USER"] = dbconfig[_section_].get("username").strip("'\"") if dbconfig[_section_].get("password") is None: - logging.debug("No password in TOML file; good.") + logging.debug("No password in TOML file; This is good.") else: retval["NLDI_DB_PASS"] = dbconfig[_section_].get("password").strip("'\"") logging.warning( - "Pasword stored as plain text in %s. Consider passing as environment variable instead.", + "Password stored as plain text in %s. Consider passing as env variable instead.", os.path.basename(filepath), ) retval["NLDI_DB_NAME"] = dbconfig[_section_].get("db_name").strip("'\"") @@ -119,7 +147,7 @@ def cfg_from_env() -> dict: :return: dictionary, populated with values. :rtype: dict """ - logging.info("Fetching config from environment variables...") + logging.info("Consulting environment variables for DB connection info...") env_cfg = {} for (_k, _v) in DEFAULT_DB_INFO.items(): env_cfg[_k] = os.environ.get(_k, _v) diff --git a/src/nldi_crawler/ingestor.py b/src/nldi_crawler/ingestor.py new file mode 100644 index 0000000..cc39fdd --- /dev/null +++ b/src/nldi_crawler/ingestor.py @@ -0,0 +1,24 @@ +#!/usr/bin/env python +# coding: utf-8 +# pylint: disable=fixme +# +# +""" +routines to manage the ingestion of crawler sources +""" +import logging +import ijson + +def ingest(src, fname:str): + logging.info("Ingesting from %s source: %s / %s", src.ingest_type.upper(), src.crawler_source_id, src.source_name) + try: + with open(fname, "r", encoding="UTF-8") as read_fh: + i=1 + for itm in ijson.items(read_fh, 'features.item'): + #print(".", end="") + i+=1 + # if i%80 == 0: + # print(" ") + logging.info("Processed %s features", i-1) + except ijson.JSONError: + logging.warning("Parsing error; stopping after %s features read", i-1) diff --git a/src/nldi_crawler/sources.py b/src/nldi_crawler/sources.py index 6690b26..c7c5a67 100644 --- a/src/nldi_crawler/sources.py +++ b/src/nldi_crawler/sources.py @@ -6,7 +6,12 @@ """ routines to manage the table of crawler_sources """ +import os +import sys import dataclasses +import tempfile +import logging +import httpx from sqlalchemy import create_engine, Table, select from sqlalchemy.orm import DeclarativeBase, Session @@ -16,10 +21,8 @@ class NldiBase(DeclarativeBase): """Base class used to create reflected ORM objects.""" - pass - -def fetch_source_table(connect_string: str) -> list: +def fetch_source_table(connect_string: str, selector="") -> list: """ Fetches a list of crawler sources from the master NLDI-DB database. The returned list holds one or mor CrawlerSource() objects, which are reflected from the database using @@ -32,6 +35,7 @@ def fetch_source_table(connect_string: str) -> list: """ _tbl_name_ = "crawler_source" _schema_ = "nldi_data" + eng = create_engine(connect_string, client_encoding="UTF-8", echo=False, future=True) retval = [] @@ -45,13 +49,57 @@ class CrawlerSource(NldiBase): _tbl_name_, ## <--- name of the table NldiBase.metadata, autoload_with=eng, ## <--- this is where the magic happens - schema=_schema_, ## <--- only need this if the table is not in - ## the default schema. + schema=_schema_, ## <--- only need this if the table is not in the default schema. + ) + + if selector == "": + stmt = select(CrawlerSource).order_by(# pylint: disable=E1101 + CrawlerSource.crawler_source_id # pylint: disable=E1101 + ) + else: + stmt = ( + select(CrawlerSource) + .where(CrawlerSource.crawler_source_id == selector)# pylint: disable=E1101 + .order_by(CrawlerSource.crawler_source_id) # pylint: disable=E1101 ) - stmt = select(CrawlerSource).order_by(CrawlerSource.crawler_source_id) # pylint: disable=E1101 with Session(eng) as session: for source in session.scalars(stmt): retval.append(source) eng = None return retval + + + +def download_geojson(source) -> str: + """ + Downloads data from the specified source, saving it to a temporary file on local disk. + + :param source: The descriptor for the source. + :type source: CrawlerSource() + :return: path name to temporary file + :rtype: str + """ + logging.info("Downloading from %s ...", source.source_uri) + fname="_tmp" + try: + with tempfile.NamedTemporaryFile( + suffix=".geojson", + prefix=f"CrawlerData_{source.crawler_source_id}_", + dir=".", + delete=False, + ) as tmp_fh: + fname = tmp_fh.name + logging.info("Writing to tmp file %s", tmp_fh.name) + # timeout = 15sec TODO: make this a tunable + with httpx.stream("GET", source.source_uri, timeout=15.0, follow_redirects=True) as response: + for chunk in response.iter_bytes(): + tmp_fh.write(chunk) + except IOError: + logging.exception("I/O Error while downloading from %s to %s", source.source_uri, fname) + raise + except httpx.ReadTimeout: + logging.critical("Read TimeOut attempting to download from %s", source.source_uri) + os.remove(fname) + return None + return fname diff --git a/tests/test_core.py b/tests/test_core.py index 0313c74..af54881 100644 --- a/tests/test_core.py +++ b/tests/test_core.py @@ -69,3 +69,32 @@ def test_list_sources(): _url = cli.db_url(cfg) srcs = sources.fetch_source_table(_url) assert len(srcs) >= 1 + + +def test_find_source(): + """get table of sources from db""" + _test_dir = os.path.dirname(os.path.realpath(__file__)) + cfg = cli.cfg_from_toml(os.path.join(_test_dir, "..", r"nldi-crawler.toml")) + _url = cli.db_url(cfg) + srcs = sources.fetch_source_table(_url, selector="13") + assert len(srcs) == 1 + + +def test_no_such_source(): + """get table of sources from db""" + _test_dir = os.path.dirname(os.path.realpath(__file__)) + cfg = cli.cfg_from_toml(os.path.join(_test_dir, "..", r"nldi-crawler.toml")) + _url = cli.db_url(cfg) + srcs = sources.fetch_source_table(_url, selector="00") + assert len(srcs) == 0 + + +def test_download_source(): + """get table of sources from db""" + _test_dir = os.path.dirname(os.path.realpath(__file__)) + cfg = cli.cfg_from_toml(os.path.join(_test_dir, "..", r"nldi-crawler.toml")) + _url = cli.db_url(cfg) + srcs = sources.fetch_source_table(_url, selector="13") + fname = sources.download_geojson(srcs[-1]) + assert os.path.exists(fname) + os.remove(fname)