diff --git a/pr-preview/pr-51/search.json b/pr-preview/pr-51/search.json
index 26f99c82..61d1dafe 100644
--- a/pr-preview/pr-51/search.json
+++ b/pr-preview/pr-51/search.json
@@ -25,14 +25,14 @@
"href": "user_data_notebooks/emit-ch4plume-v1_User_Notebook.html#querying-the-stac-api",
"title": "EMIT Methane Point Source Plume Complexes",
"section": "Querying the STAC API",
- "text": "Querying the STAC API\n\nimport requests\nfrom folium import Map, TileLayer\nfrom pystac_client import Client\n\n\n# Provide STAC and RASTER API endpoints\nSTAC_API_URL = \"http://ghg.center/api/stac\"\nRASTER_API_URL = \"https://ghg.center/api/raster\"\n\n#Please use the collection name similar to the one used in STAC collection.\n\n# Name of the collection for methane emission plumes. \ncollection_name = \"emit-ch4plume-v1\"\n\n\n# Fetching the collection from STAC collections using appropriate endpoint.\ncollection = requests.get(f\"{STAC_API_URL}/collections/{collection_name}\").json()\ncollection\n\n{'id': 'emit-ch4plume-v1',\n 'type': 'Collection',\n 'links': [{'rel': 'items',\n 'type': 'application/geo+json',\n 'href': 'https://e6v7j4ejp6.execute-api.us-west-2.amazonaws.com/api/stac/collections/emit-ch4plume-v1/items'},\n {'rel': 'parent',\n 'type': 'application/json',\n 'href': 'https://e6v7j4ejp6.execute-api.us-west-2.amazonaws.com/api/stac/'},\n {'rel': 'root',\n 'type': 'application/json',\n 'href': 'https://e6v7j4ejp6.execute-api.us-west-2.amazonaws.com/api/stac/'},\n {'rel': 'self',\n 'type': 'application/json',\n 'href': 'https://e6v7j4ejp6.execute-api.us-west-2.amazonaws.com/api/stac/collections/emit-ch4plume-v1'}],\n 'title': 'Methane Point Source Plume Complexes',\n 'assets': None,\n 'extent': {'spatial': {'bbox': [[-118.65756225585938,\n -38.788387298583984,\n 151.0906524658203,\n 50.24619674682617]]},\n 'temporal': {'interval': [['2022-08-10T06:49:57+00:00',\n '2023-07-29T10:06:30+00:00']]}},\n 'license': 'CC0-1.0',\n 'keywords': None,\n 'providers': None,\n 'summaries': {'datetime': ['2022-08-10T06:49:57Z',\n '2022-08-10T06:50:21Z',\n '2022-08-10T06:51:32Z',\n '2022-08-11T04:26:30Z',\n '2022-08-14T05:14:12Z',\n '2022-08-15T04:28:26Z',\n '2022-08-15T04:28:38Z',\n '2022-08-15T07:46:45Z',\n '2022-08-15T14:08:23Z',\n '2022-08-16T03:44:09Z',\n '2022-08-16T10:10:35Z',\n '2022-08-16T10:10:58Z',\n '2022-08-16T11:45:05Z',\n '2022-08-17T04:32:35Z',\n '2022-08-17T09:20:38Z',\n '2022-08-18T03:42:31Z',\n '2022-08-18T07:01:05Z',\n '2022-08-18T08:35:06Z',\n '2022-08-18T11:44:40Z',\n '2022-08-19T09:22:31Z',\n '2022-08-19T12:30:47Z',\n '2022-08-20T05:28:04Z',\n '2022-08-20T08:33:24Z',\n '2022-08-22T06:57:13Z',\n '2022-08-22T10:06:53Z',\n '2022-08-23T07:45:04Z',\n '2022-08-26T06:54:35Z',\n '2022-08-26T08:29:15Z',\n '2022-08-26T17:46:42Z',\n '2022-08-27T06:07:30Z',\n '2022-08-27T06:07:53Z',\n '2022-08-27T07:40:30Z',\n '2022-08-27T10:49:27Z',\n '2022-08-28T05:18:53Z',\n '2022-08-28T05:19:05Z',\n '2022-08-28T05:19:17Z',\n '2022-08-28T05:19:29Z',\n '2022-08-28T05:19:41Z',\n '2022-08-28T06:53:00Z',\n '2022-08-28T06:53:24Z',\n '2022-08-28T06:55:50Z',\n '2022-08-28T08:28:47Z',\n '2022-08-29T06:06:27Z',\n '2022-08-29T06:09:13Z',\n '2022-08-29T16:55:53Z',\n '2022-08-30T06:52:44Z',\n '2022-08-31T06:07:02Z',\n '2022-09-01T03:43:18Z',\n '2022-09-01T05:17:09Z',\n '2022-09-01T05:17:20Z',\n '2022-09-01T05:19:20Z',\n '2022-09-01T08:25:25Z',\n '2022-09-03T05:19:24Z',\n '2022-09-03T06:52:42Z',\n '2022-09-03T08:25:37Z',\n '2022-09-09T07:02:54Z',\n '2022-09-09T07:03:06Z',\n '2023-01-07T14:38:18Z',\n '2023-01-11T13:01:07Z',\n '2023-01-11T13:02:18Z',\n '2023-01-19T04:02:23Z',\n '2023-01-21T16:18:34Z',\n '2023-01-22T15:31:51Z',\n '2023-01-23T08:53:11Z',\n '2023-01-25T00:47:44Z',\n '2023-01-26T06:27:16Z',\n '2023-01-26T12:43:35Z',\n '2023-01-27T16:21:04Z',\n '2023-01-28T12:41:18Z',\n '2023-01-28T12:41:30Z',\n '2023-01-29T08:46:11Z',\n '2023-01-29T13:03:21Z',\n '2023-01-29T13:03:33Z',\n '2023-01-30T09:35:55Z',\n '2023-01-30T18:49:23Z',\n '2023-01-31T05:39:24Z',\n '2023-01-31T05:39:36Z',\n '2023-01-31T05:43:17Z',\n '2023-01-31T05:43:40Z',\n '2023-01-31T08:49:13Z',\n '2023-02-01T07:53:26Z',\n '2023-02-02T07:08:03Z',\n '2023-02-02T19:38:21Z',\n '2023-02-03T06:22:56Z',\n '2023-02-03T06:26:29Z',\n '2023-02-03T17:14:34Z',\n '2023-02-04T04:06:49Z',\n '2023-02-04T04:10:09Z',\n '2023-02-04T07:07:01Z',\n '2023-02-04T07:11:17Z',\n '2023-02-04T07:11:44Z',\n '2023-02-04T08:41:39Z',\n '2023-02-04T08:42:03Z',\n '2023-02-05T17:12:44Z',\n '2023-02-05T17:12:55Z',\n '2023-02-06T16:25:14Z',\n '2023-02-14T07:24:57Z',\n '2023-02-14T08:57:15Z',\n '2023-02-14T10:34:22Z',\n '2023-02-14T10:34:57Z',\n '2023-02-15T06:36:26Z',\n '2023-02-15T11:19:33Z',\n '2023-02-15T20:33:54Z',\n '2023-02-16T13:36:26Z',\n '2023-02-16T13:37:01Z',\n '2023-02-17T06:32:21Z',\n '2023-02-17T11:16:03Z',\n '2023-02-17T20:31:34Z',\n '2023-02-17T20:34:32Z',\n '2023-02-18T08:56:51Z',\n '2023-02-18T08:57:03Z',\n '2023-02-18T08:57:39Z',\n '2023-02-18T10:27:23Z',\n '2023-02-18T12:02:10Z',\n '2023-02-18T18:10:54Z',\n '2023-02-19T06:31:55Z',\n '2023-02-19T08:05:03Z',\n '2023-02-19T08:05:27Z',\n '2023-02-19T08:05:39Z',\n '2023-02-19T09:39:08Z',\n '2023-02-19T09:39:43Z',\n '2023-02-19T09:41:18Z',\n '2023-02-19T09:41:30Z',\n '2023-02-19T19:05:39Z',\n '2023-02-20T05:45:40Z',\n '2023-02-20T07:15:30Z',\n '2023-02-20T10:32:20Z',\n '2023-02-20T19:43:24Z',\n '2023-02-20T19:45:46Z',\n '2023-02-20T19:47:23Z',\n '2023-02-21T04:56:04Z',\n '2023-02-21T06:30:01Z',\n '2023-02-21T09:39:54Z',\n '2023-02-22T08:51:06Z',\n '2023-02-23T04:56:45Z',\n '2023-02-23T04:57:20Z',\n '2023-02-23T06:30:22Z',\n '2023-02-23T06:30:33Z',\n '2023-02-23T06:30:57Z',\n '2023-02-23T06:31:09Z',\n '2023-02-23T08:04:47Z',\n '2023-02-23T08:04:59Z',\n '2023-02-24T04:11:58Z',\n '2023-02-24T08:58:31Z',\n '2023-02-24T10:22:19Z',\n '2023-02-24T18:10:00Z',\n '2023-02-24T18:14:29Z',\n '2023-02-24T18:14:41Z',\n '2023-02-25T05:06:19Z',\n '2023-02-25T08:05:31Z',\n '2023-02-25T08:05:43Z',\n '2023-02-26T04:10:22Z',\n '2023-02-26T05:47:14Z',\n '2023-02-27T15:57:14Z',\n '2023-03-11T12:59:54Z',\n '2023-03-18T04:52:50Z',\n '2023-03-24T09:49:19Z',\n '2023-03-24T09:49:43Z',\n '2023-03-25T12:11:18Z',\n '2023-03-25T13:41:23Z',\n '2023-03-25T13:41:35Z',\n '2023-03-25T13:41:47Z',\n '2023-03-25T15:17:28Z',\n '2023-03-26T08:19:55Z',\n '2023-03-26T11:25:21Z',\n '2023-03-26T14:30:19Z',\n '2023-03-27T07:33:31Z',\n '2023-03-30T09:49:34Z',\n '2023-03-30T09:50:33Z',\n '2023-03-30T09:50:45Z',\n '2023-03-30T12:52:50Z',\n '2023-03-30T12:53:02Z',\n '2023-03-31T07:23:49Z',\n '2023-03-31T19:49:37Z',\n '2023-04-03T08:10:31Z',\n '2023-04-03T08:12:19Z',\n '2023-04-03T08:14:57Z',\n '2023-04-03T09:45:39Z',\n '2023-04-03T11:18:37Z',\n '2023-04-03T11:18:49Z',\n '2023-04-04T08:58:44Z',\n '2023-04-04T08:59:08Z',\n '2023-04-04T09:00:19Z',\n '2023-04-04T09:00:31Z',\n '2023-04-04T09:00:42Z',\n '2023-04-05T06:35:43Z',\n '2023-04-05T08:12:46Z',\n '2023-04-13T09:57:29Z',\n '2023-04-16T12:22:03Z',\n '2023-04-16T21:37:35Z',\n '2023-04-17T09:58:36Z',\n '2023-04-17T09:58:48Z',\n '2023-04-18T06:06:02Z',\n '2023-04-18T06:06:25Z',\n '2023-04-18T09:11:52Z',\n '2023-04-18T09:12:16Z',\n '2023-04-18T20:01:18Z',\n '2023-04-19T08:23:52Z',\n '2023-04-19T13:06:50Z',\n '2023-04-20T06:01:48Z',\n '2023-04-20T10:45:34Z',\n '2023-04-21T08:23:29Z',\n '2023-04-21T08:26:38Z',\n '2023-04-21T10:00:17Z',\n '2023-04-21T19:14:23Z',\n '2023-04-22T07:34:37Z',\n '2023-04-22T09:10:58Z',\n '2023-04-22T09:11:10Z',\n '2023-04-23T05:15:16Z',\n '2023-04-23T06:44:21Z',\n '2023-04-23T08:22:23Z',\n '2023-04-23T10:01:36Z',\n '2023-04-23T11:26:19Z',\n '2023-04-23T11:29:08Z',\n '2023-04-23T19:12:32Z',\n '2023-04-24T04:24:44Z',\n '2023-04-24T06:08:59Z',\n '2023-04-24T09:08:18Z',\n '2023-04-24T16:49:49Z',\n '2023-04-25T03:40:28Z',\n '2023-04-25T03:40:40Z',\n '2023-04-25T05:12:16Z',\n '2023-04-25T08:19:23Z',\n '2023-04-26T02:53:02Z',\n '2023-04-26T05:57:03Z',\n '2023-04-26T07:31:30Z',\n '2023-04-26T18:22:39Z',\n '2023-04-27T06:44:04Z',\n '2023-04-27T06:44:16Z',\n '2023-04-27T17:36:30Z',\n '2023-04-28T02:49:00Z',\n '2023-04-28T05:55:24Z',\n '2023-04-28T05:55:36Z',\n '2023-04-28T09:03:09Z',\n '2023-04-29T05:08:11Z',\n '2023-04-29T05:08:23Z',\n '2023-04-30T05:55:56Z',\n '2023-04-30T05:56:08Z',\n '2023-04-30T07:28:53Z',\n '2023-04-30T16:44:07Z',\n '2023-05-02T04:22:34Z',\n '2023-05-02T04:22:58Z',\n '2023-05-02T07:27:54Z',\n '2023-05-04T13:54:42Z',\n '2023-05-04T13:54:54Z',\n '2023-05-26T14:21:26Z',\n '2023-05-27T13:32:35Z',\n '2023-05-29T11:57:40Z',\n '2023-05-30T09:37:28Z',\n '2023-06-03T07:59:26Z',\n '2023-06-03T08:03:27Z',\n '2023-06-04T07:06:41Z',\n '2023-06-04T18:02:05Z',\n '2023-06-04T18:02:17Z',\n '2023-06-04T18:02:29Z',\n '2023-06-05T08:00:26Z',\n '2023-06-06T05:35:23Z',\n '2023-06-06T10:14:59Z',\n '2023-06-07T09:26:29Z',\n '2023-06-07T09:26:41Z',\n '2023-06-09T04:51:06Z',\n '2023-06-09T07:50:16Z',\n '2023-06-09T17:10:10Z',\n '2023-06-09T17:11:33Z',\n '2023-06-10T03:57:59Z',\n '2023-06-10T05:30:19Z',\n '2023-06-10T16:21:55Z',\n '2023-06-11T04:44:27Z',\n '2023-06-11T04:45:26Z',\n '2023-06-11T06:16:38Z',\n '2023-06-13T04:43:14Z',\n '2023-06-13T11:13:48Z',\n '2023-06-14T10:24:03Z',\n '2023-06-14T10:24:15Z',\n '2023-06-14T10:24:39Z',\n '2023-06-14T10:24:51Z',\n '2023-06-14T19:37:06Z',\n '2023-06-20T08:44:14Z',\n '2023-06-20T08:44:26Z',\n '2023-06-22T11:50:37Z',\n '2023-06-24T05:29:00Z',\n '2023-06-24T05:30:36Z',\n '2023-06-25T06:16:49Z',\n '2023-06-25T06:18:46Z',\n '2023-06-26T08:40:04Z',\n '2023-06-26T10:12:32Z',\n '2023-06-27T03:08:22Z',\n '2023-06-27T04:42:31Z',\n '2023-06-27T07:52:01Z',\n '2023-06-28T05:29:39Z',\n '2023-06-28T05:32:36Z',\n '2023-06-28T05:33:24Z',\n '2023-06-28T16:19:24Z',\n '2023-06-29T01:34:53Z',\n '2023-06-29T04:40:14Z',\n '2023-06-29T06:14:16Z',\n '2023-06-29T06:15:03Z',\n '2023-06-29T06:16:26Z',\n '2023-06-29T06:16:38Z',\n '2023-06-29T06:16:50Z',\n '2023-06-29T15:40:42Z',\n '2023-06-30T07:06:49Z',\n '2023-07-29T10:06:30Z']},\n 'description': 'Methane plume complexes from point source emitters',\n 'item_assets': {'ch4-plume-emissions': {'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'Methane Plume Complex',\n 'description': 'Methane plume complexes from point source emitters.'}},\n 'stac_version': '1.0.0',\n 'stac_extensions': None,\n 'dashboard:is_periodic': False,\n 'dashboard:time_density': 'day'}\n\n\nExamining the contents of our collection under the temporal variable, we note that data is available from August 2022 to May 2023. By looking at the dashboard: time density, we can see that observations are conducted daily and non-periodically (i.e., there are plumes emissions for multiple places on the same dates).\n\ndef get_item_count(collection_id):\n count = 0\n items_url = f\"{STAC_API_URL}/collections/{collection_id}/items\"\n\n while True:\n response = requests.get(items_url)\n\n if not response.ok:\n print(\"error getting items\")\n exit()\n\n stac = response.json()\n count += int(stac[\"context\"].get(\"returned\", 0))\n next = [link for link in stac[\"links\"] if link[\"rel\"] == \"next\"]\n\n if not next:\n break\n items_url = next[0][\"href\"]\n\n return count\n\n\n# Check total number of items available\nnumber_of_items = get_item_count(collection_name)\nitems = requests.get(f\"{STAC_API_URL}/collections/{collection_name}/items?limit={number_of_items}\").json()[\"features\"]\nprint(f\"Found {len(items)} items\")\n\nFound 505 items\n\n\n\n# Examining the first item in the collection\nitems[0]\n\n{'id': 'EMIT_L2B_CH4PLM_001_20230729T100630_000234',\n 'bbox': [61.67975744168143,\n 39.96112852373608,\n 61.690059859566304,\n 39.97739549934377],\n 'type': 'Feature',\n 'links': [{'rel': 'collection',\n 'type': 'application/json',\n 'href': 'https://e6v7j4ejp6.execute-api.us-west-2.amazonaws.com/api/stac/collections/emit-ch4plume-v1'},\n {'rel': 'parent',\n 'type': 'application/json',\n 'href': 'https://e6v7j4ejp6.execute-api.us-west-2.amazonaws.com/api/stac/collections/emit-ch4plume-v1'},\n {'rel': 'root',\n 'type': 'application/json',\n 'href': 'https://e6v7j4ejp6.execute-api.us-west-2.amazonaws.com/api/stac/'},\n {'rel': 'self',\n 'type': 'application/geo+json',\n 'href': 'https://e6v7j4ejp6.execute-api.us-west-2.amazonaws.com/api/stac/collections/emit-ch4plume-v1/items/EMIT_L2B_CH4PLM_001_20230729T100630_000234'}],\n 'assets': {'ch4-plume-emissions': {'href': 's3://lp-prod-protected/EMITL2BCH4PLM.001/EMIT_L2B_CH4PLM_001_20230729T100630_000234/EMIT_L2B_CH4PLM_001_20230729T100630_000234.tif',\n 'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'Methane Plume Complex',\n 'proj:bbox': [61.67975744168143,\n 39.96112852373608,\n 61.690059859566304,\n 39.97739549934377],\n 'proj:epsg': 4326.0,\n 'proj:shape': [30.0, 19.0],\n 'description': 'Methane plume complexes from point source emitters.',\n 'raster:bands': [{'scale': 1.0,\n 'nodata': -9999.0,\n 'offset': 0.0,\n 'sampling': 'area',\n 'data_type': 'float32',\n 'histogram': {'max': 1693.932861328125,\n 'min': -394.7409973144531,\n 'count': 11.0,\n 'buckets': [27.0, 61.0, 97.0, 86.0, 48.0, 38.0, 15.0, 1.0, 3.0, 2.0]},\n 'statistics': {'mean': 280.35348462301585,\n 'stddev': 345.7089519227557,\n 'maximum': 1693.932861328125,\n 'minimum': -394.7409973144531,\n 'valid_percent': 66.3157894736842}}],\n 'proj:geometry': {'type': 'Polygon',\n 'coordinates': [[[61.67975744168143, 39.96112852373608],\n [61.690059859566304, 39.96112852373608],\n [61.690059859566304, 39.97739549934377],\n [61.67975744168143, 39.97739549934377],\n [61.67975744168143, 39.96112852373608]]]},\n 'proj:projjson': {'id': {'code': 4326.0, 'authority': 'EPSG'},\n 'name': 'WGS 84',\n 'type': 'GeographicCRS',\n 'datum': {'name': 'World Geodetic System 1984',\n 'type': 'GeodeticReferenceFrame',\n 'ellipsoid': {'name': 'WGS 84',\n 'semi_major_axis': 6378137.0,\n 'inverse_flattening': 298.257223563}},\n '$schema': 'https://proj.org/schemas/v0.4/projjson.schema.json',\n 'coordinate_system': {'axis': [{'name': 'Geodetic latitude',\n 'unit': 'degree',\n 'direction': 'north',\n 'abbreviation': 'Lat'},\n {'name': 'Geodetic longitude',\n 'unit': 'degree',\n 'direction': 'east',\n 'abbreviation': 'Lon'}],\n 'subtype': 'ellipsoidal'}},\n 'proj:transform': [0.000542232520256367,\n 0.0,\n 61.67975744168143,\n 0.0,\n -0.000542232520256367,\n 39.97739549934377,\n 0.0,\n 0.0,\n 1.0]}},\n 'geometry': {'type': 'Polygon',\n 'coordinates': [[[61.67975744168143, 39.96112852373608],\n [61.690059859566304, 39.96112852373608],\n [61.690059859566304, 39.97739549934377],\n [61.67975744168143, 39.97739549934377],\n [61.67975744168143, 39.96112852373608]]]},\n 'collection': 'emit-ch4plume-v1',\n 'properties': {'datetime': '2023-07-29T10:06:30+00:00'},\n 'stac_version': '1.0.0',\n 'stac_extensions': []}\n\n\nBelow, we are entering the minimum and maximum values to provide our upper and lower bounds in rescale_values."
+ "text": "Querying the STAC API\n\nimport requests\nfrom folium import Map, TileLayer\nfrom pystac_client import Client\n\n\n# Provide STAC and RASTER API endpoints\nSTAC_API_URL = \"http://ghg.center/api/stac\"\nRASTER_API_URL = \"https://ghg.center/api/raster\"\n\n#Please use the collection name similar to the one used in STAC collection.\n\n# Name of the collection for methane emission plumes. \ncollection_name = \"emit-ch4plume-v1\"\n\n\n# Fetching the collection from STAC collections using appropriate endpoint.\ncollection = requests.get(f\"{STAC_API_URL}/collections/{collection_name}\").json()\ncollection\n\n{'id': 'emit-ch4plume-v1',\n 'type': 'Collection',\n 'links': [{'rel': 'items',\n 'type': 'application/geo+json',\n 'href': 'https://ghg.center/api/stac/collections/emit-ch4plume-v1/items'},\n {'rel': 'parent',\n 'type': 'application/json',\n 'href': 'https://ghg.center/api/stac/'},\n {'rel': 'root',\n 'type': 'application/json',\n 'href': 'https://ghg.center/api/stac/'},\n {'rel': 'self',\n 'type': 'application/json',\n 'href': 'https://ghg.center/api/stac/collections/emit-ch4plume-v1'}],\n 'title': 'Methane Point Source Plume Complexes',\n 'assets': None,\n 'extent': {'spatial': {'bbox': [[-121.90662384033203,\n -39.21891784667969,\n 151.0906524658203,\n 50.372535705566406]]},\n 'temporal': {'interval': [['2022-08-10T06:49:57+00:00',\n '2023-10-08T16:11:15+00:00']]}},\n 'license': 'CC0-1.0',\n 'keywords': None,\n 'providers': None,\n 'summaries': {'datetime': ['2022-08-10T06:49:57Z',\n '2022-08-10T06:50:21Z',\n '2022-08-10T06:51:32Z',\n '2022-08-11T04:26:30Z',\n '2022-08-14T05:14:12Z',\n '2022-08-15T04:28:26Z',\n '2022-08-15T04:28:38Z',\n '2022-08-15T07:46:45Z',\n '2022-08-15T14:08:23Z',\n '2022-08-16T03:44:09Z',\n '2022-08-16T10:10:35Z',\n '2022-08-16T10:10:58Z',\n '2022-08-16T11:45:05Z',\n '2022-08-17T04:32:35Z',\n '2022-08-17T09:20:38Z',\n '2022-08-18T03:42:31Z',\n '2022-08-18T07:01:05Z',\n '2022-08-18T08:35:06Z',\n '2022-08-18T11:44:40Z',\n '2022-08-19T09:22:31Z',\n '2022-08-19T12:30:47Z',\n '2022-08-20T05:28:04Z',\n '2022-08-20T08:33:24Z',\n '2022-08-22T06:57:13Z',\n '2022-08-22T10:06:53Z',\n '2022-08-23T07:45:04Z',\n '2022-08-26T06:54:35Z',\n '2022-08-26T08:29:15Z',\n '2022-08-26T17:46:42Z',\n '2022-08-27T06:07:30Z',\n '2022-08-27T06:07:53Z',\n '2022-08-27T07:40:30Z',\n '2022-08-27T10:49:27Z',\n '2022-08-28T05:18:53Z',\n '2022-08-28T05:19:05Z',\n '2022-08-28T05:19:17Z',\n '2022-08-28T05:19:29Z',\n '2022-08-28T05:19:41Z',\n '2022-08-28T06:53:00Z',\n '2022-08-28T06:53:24Z',\n '2022-08-28T06:55:50Z',\n '2022-08-28T08:28:47Z',\n '2022-08-29T06:06:27Z',\n '2022-08-29T06:09:13Z',\n '2022-08-29T16:55:53Z',\n '2022-08-30T06:52:44Z',\n '2022-08-31T06:07:02Z',\n '2022-09-01T03:43:18Z',\n '2022-09-01T05:17:09Z',\n '2022-09-01T05:17:20Z',\n '2022-09-01T05:19:20Z',\n '2022-09-01T08:25:25Z',\n '2022-09-03T05:19:24Z',\n '2022-09-03T06:52:42Z',\n '2022-09-03T08:25:37Z',\n '2022-09-09T07:02:54Z',\n '2022-09-09T07:03:06Z',\n '2023-01-07T14:38:18Z',\n '2023-01-11T13:01:07Z',\n '2023-01-11T13:02:18Z',\n '2023-01-19T04:02:23Z',\n '2023-01-21T16:18:34Z',\n '2023-01-22T15:31:51Z',\n '2023-01-23T08:53:11Z',\n '2023-01-25T00:47:44Z',\n '2023-01-26T06:27:16Z',\n '2023-01-26T12:43:35Z',\n '2023-01-27T16:21:04Z',\n '2023-01-28T12:41:18Z',\n '2023-01-28T12:41:30Z',\n '2023-01-29T08:46:11Z',\n '2023-01-29T13:03:21Z',\n '2023-01-29T13:03:33Z',\n '2023-01-30T09:35:55Z',\n '2023-01-30T18:49:23Z',\n '2023-01-31T05:39:24Z',\n '2023-01-31T05:39:36Z',\n '2023-01-31T05:43:17Z',\n '2023-01-31T05:43:40Z',\n '2023-01-31T08:49:13Z',\n '2023-02-01T07:53:26Z',\n '2023-02-02T07:08:03Z',\n '2023-02-02T19:38:21Z',\n '2023-02-03T06:22:56Z',\n '2023-02-03T06:26:29Z',\n '2023-02-03T17:14:34Z',\n '2023-02-04T04:06:49Z',\n '2023-02-04T04:10:09Z',\n '2023-02-04T07:07:01Z',\n '2023-02-04T07:11:17Z',\n '2023-02-04T07:11:44Z',\n '2023-02-04T08:41:39Z',\n '2023-02-04T08:42:03Z',\n '2023-02-05T17:12:44Z',\n '2023-02-05T17:12:55Z',\n '2023-02-06T16:25:14Z',\n '2023-02-14T07:24:57Z',\n '2023-02-14T08:57:15Z',\n '2023-02-14T10:34:22Z',\n '2023-02-14T10:34:57Z',\n '2023-02-15T06:36:26Z',\n '2023-02-15T11:19:33Z',\n '2023-02-15T20:33:54Z',\n '2023-02-16T13:36:26Z',\n '2023-02-16T13:37:01Z',\n '2023-02-17T06:32:21Z',\n '2023-02-17T11:16:03Z',\n '2023-02-17T20:31:34Z',\n '2023-02-17T20:34:32Z',\n '2023-02-18T08:56:51Z',\n '2023-02-18T08:57:03Z',\n '2023-02-18T08:57:39Z',\n '2023-02-18T10:27:23Z',\n '2023-02-18T12:02:10Z',\n '2023-02-18T18:10:54Z',\n '2023-02-19T06:31:55Z',\n '2023-02-19T08:05:03Z',\n '2023-02-19T08:05:27Z',\n '2023-02-19T08:05:39Z',\n '2023-02-19T09:39:08Z',\n '2023-02-19T09:39:43Z',\n '2023-02-19T09:41:18Z',\n '2023-02-19T09:41:30Z',\n '2023-02-19T19:05:39Z',\n '2023-02-20T05:45:40Z',\n '2023-02-20T07:15:30Z',\n '2023-02-20T10:32:20Z',\n '2023-02-20T19:43:24Z',\n '2023-02-20T19:45:46Z',\n '2023-02-20T19:47:23Z',\n '2023-02-21T04:56:04Z',\n '2023-02-21T06:30:01Z',\n '2023-02-21T09:39:54Z',\n '2023-02-22T08:51:06Z',\n '2023-02-23T04:56:45Z',\n '2023-02-23T04:57:20Z',\n '2023-02-23T06:30:22Z',\n '2023-02-23T06:30:33Z',\n '2023-02-23T06:30:57Z',\n '2023-02-23T06:31:09Z',\n '2023-02-23T08:04:47Z',\n '2023-02-23T08:04:59Z',\n '2023-02-24T04:11:58Z',\n '2023-02-24T08:58:31Z',\n '2023-02-24T10:22:19Z',\n '2023-02-24T18:10:00Z',\n '2023-02-24T18:14:29Z',\n '2023-02-24T18:14:41Z',\n '2023-02-25T05:06:19Z',\n '2023-02-25T08:05:31Z',\n '2023-02-25T08:05:43Z',\n '2023-02-26T04:10:22Z',\n '2023-02-26T05:47:14Z',\n '2023-02-27T15:57:14Z',\n '2023-03-11T12:59:54Z',\n '2023-03-18T04:52:50Z',\n '2023-03-24T09:49:19Z',\n '2023-03-24T09:49:43Z',\n '2023-03-25T12:11:18Z',\n '2023-03-25T13:41:23Z',\n '2023-03-25T13:41:35Z',\n '2023-03-25T13:41:47Z',\n '2023-03-25T15:17:28Z',\n '2023-03-26T08:19:55Z',\n '2023-03-26T11:25:21Z',\n '2023-03-26T14:30:19Z',\n '2023-03-27T07:33:31Z',\n '2023-03-30T09:49:34Z',\n '2023-03-30T09:50:33Z',\n '2023-03-30T09:50:45Z',\n '2023-03-30T12:52:50Z',\n '2023-03-30T12:53:02Z',\n '2023-03-31T07:23:49Z',\n '2023-03-31T19:49:37Z',\n '2023-04-03T08:10:31Z',\n '2023-04-03T08:12:19Z',\n '2023-04-03T08:14:57Z',\n '2023-04-03T09:45:39Z',\n '2023-04-03T11:18:37Z',\n '2023-04-03T11:18:49Z',\n '2023-04-04T08:58:44Z',\n '2023-04-04T08:59:08Z',\n '2023-04-04T09:00:19Z',\n '2023-04-04T09:00:31Z',\n '2023-04-04T09:00:42Z',\n '2023-04-05T06:35:43Z',\n '2023-04-05T08:12:46Z',\n '2023-04-13T09:57:29Z',\n '2023-04-16T12:22:03Z',\n '2023-04-16T21:37:35Z',\n '2023-04-17T09:58:36Z',\n '2023-04-17T09:58:48Z',\n '2023-04-18T06:06:02Z',\n '2023-04-18T06:06:25Z',\n '2023-04-18T09:11:52Z',\n '2023-04-18T09:12:16Z',\n '2023-04-18T20:01:18Z',\n '2023-04-19T08:23:52Z',\n '2023-04-19T13:06:50Z',\n '2023-04-20T06:01:48Z',\n '2023-04-20T10:45:34Z',\n '2023-04-21T08:23:29Z',\n '2023-04-21T08:26:38Z',\n '2023-04-21T10:00:17Z',\n '2023-04-21T19:14:23Z',\n '2023-04-22T07:34:37Z',\n '2023-04-22T09:10:58Z',\n '2023-04-22T09:11:10Z',\n '2023-04-23T05:15:16Z',\n '2023-04-23T06:44:21Z',\n '2023-04-23T08:22:23Z',\n '2023-04-23T10:01:36Z',\n '2023-04-23T11:26:19Z',\n '2023-04-23T11:29:08Z',\n '2023-04-23T19:12:32Z',\n '2023-04-24T04:24:44Z',\n '2023-04-24T06:08:59Z',\n '2023-04-24T09:08:18Z',\n '2023-04-24T16:49:49Z',\n '2023-04-25T03:40:28Z',\n '2023-04-25T03:40:40Z',\n '2023-04-25T05:12:16Z',\n '2023-04-25T08:19:23Z',\n '2023-04-26T02:53:02Z',\n '2023-04-26T05:57:03Z',\n '2023-04-26T07:31:30Z',\n '2023-04-26T18:22:39Z',\n '2023-04-27T06:44:04Z',\n '2023-04-27T06:44:16Z',\n '2023-04-27T17:36:30Z',\n '2023-04-28T02:49:00Z',\n '2023-04-28T05:55:24Z',\n '2023-04-28T05:55:36Z',\n '2023-04-28T09:03:09Z',\n '2023-04-29T05:08:11Z',\n '2023-04-29T05:08:23Z',\n '2023-04-30T05:55:56Z',\n '2023-04-30T05:56:08Z',\n '2023-04-30T07:28:53Z',\n '2023-04-30T16:44:07Z',\n '2023-05-02T04:22:34Z',\n '2023-05-02T04:22:58Z',\n '2023-05-02T07:27:54Z',\n '2023-05-04T13:54:42Z',\n '2023-05-04T13:54:54Z',\n '2023-05-26T14:21:26Z',\n '2023-05-27T13:32:35Z',\n '2023-05-29T11:57:40Z',\n '2023-05-30T09:37:28Z',\n '2023-05-30T18:57:54Z',\n '2023-05-31T10:23:16Z',\n '2023-05-31T10:24:39Z',\n '2023-06-01T09:36:23Z',\n '2023-06-02T07:19:17Z',\n '2023-06-03T07:59:14Z',\n '2023-06-03T07:59:26Z',\n '2023-06-03T08:03:27Z',\n '2023-06-03T09:32:09Z',\n '2023-06-04T07:06:41Z',\n '2023-06-04T18:02:05Z',\n '2023-06-04T18:02:17Z',\n '2023-06-04T18:02:29Z',\n '2023-06-05T08:00:26Z',\n '2023-06-06T05:35:23Z',\n '2023-06-06T10:14:59Z',\n '2023-06-07T09:26:29Z',\n '2023-06-07T09:26:41Z',\n '2023-06-08T05:31:35Z',\n '2023-06-08T16:23:22Z',\n '2023-06-08T16:23:34Z',\n '2023-06-08T16:23:46Z',\n '2023-06-09T04:51:06Z',\n '2023-06-09T07:50:16Z',\n '2023-06-09T17:10:10Z',\n '2023-06-09T17:11:33Z',\n '2023-06-10T03:57:59Z',\n '2023-06-10T05:30:19Z',\n '2023-06-10T16:21:55Z',\n '2023-06-11T04:44:27Z',\n '2023-06-11T04:45:26Z',\n '2023-06-11T06:16:38Z',\n '2023-06-12T02:24:18Z',\n '2023-06-12T05:32:53Z',\n '2023-06-12T16:21:03Z',\n '2023-06-13T04:43:14Z',\n '2023-06-13T11:13:48Z',\n '2023-06-14T10:24:03Z',\n '2023-06-14T10:24:15Z',\n '2023-06-14T10:24:39Z',\n '2023-06-14T10:24:51Z',\n '2023-06-14T19:37:06Z',\n '2023-06-16T11:59:49Z',\n '2023-06-16T21:14:19Z',\n '2023-06-16T21:14:31Z',\n '2023-06-17T11:00:03Z',\n '2023-06-19T08:03:47Z',\n '2023-06-19T11:07:48Z',\n '2023-06-20T08:44:14Z',\n '2023-06-20T08:44:26Z',\n '2023-06-22T11:50:37Z',\n '2023-06-22T19:32:01Z',\n '2023-06-22T19:32:13Z',\n '2023-06-24T05:29:00Z',\n '2023-06-24T05:30:36Z',\n '2023-06-25T03:13:55Z',\n '2023-06-25T06:16:49Z',\n '2023-06-25T06:18:46Z',\n '2023-06-25T07:52:48Z',\n '2023-06-26T08:40:04Z',\n '2023-06-26T10:12:32Z',\n '2023-06-26T10:13:43Z',\n '2023-06-27T03:08:22Z',\n '2023-06-27T04:42:31Z',\n '2023-06-27T07:52:01Z',\n '2023-06-28T05:29:39Z',\n '2023-06-28T05:32:36Z',\n '2023-06-28T05:33:24Z',\n '2023-06-28T16:19:24Z',\n '2023-06-29T01:34:53Z',\n '2023-06-29T01:35:16Z',\n '2023-06-29T04:40:14Z',\n '2023-06-29T04:40:50Z',\n '2023-06-29T04:41:01Z',\n '2023-06-29T06:14:16Z',\n '2023-06-29T06:15:03Z',\n '2023-06-29T06:16:26Z',\n '2023-06-29T06:16:38Z',\n '2023-06-29T06:16:50Z',\n '2023-06-29T06:17:27Z',\n '2023-06-29T06:18:50Z',\n '2023-06-29T15:40:42Z',\n '2023-06-30T07:06:49Z',\n '2023-06-30T10:23:58Z',\n '2023-06-30T16:17:28Z',\n '2023-07-25T10:05:32Z',\n '2023-07-25T11:39:04Z',\n '2023-07-25T11:39:27Z',\n '2023-07-29T10:02:52Z',\n '2023-07-29T10:06:30Z',\n '2023-07-29T13:08:54Z',\n '2023-07-29T13:10:41Z',\n '2023-07-29T20:53:42Z',\n '2023-07-30T09:14:51Z',\n '2023-07-30T10:48:00Z',\n '2023-07-30T12:20:47Z',\n '2023-07-31T06:58:04Z',\n '2023-07-31T13:07:06Z',\n '2023-07-31T19:18:10Z',\n '2023-07-31T19:18:22Z',\n '2023-07-31T19:18:34Z',\n '2023-07-31T19:18:46Z',\n '2023-08-01T09:16:36Z',\n '2023-08-01T09:16:48Z',\n '2023-08-02T08:25:47Z',\n '2023-08-02T08:26:10Z',\n '2023-08-02T08:29:53Z',\n '2023-08-02T11:34:11Z',\n '2023-08-03T09:21:03Z',\n '2023-08-04T05:22:23Z',\n '2023-08-04T08:25:59Z',\n '2023-08-04T08:29:48Z',\n '2023-08-04T11:31:11Z',\n '2023-08-04T17:41:29Z',\n '2023-08-04T17:41:41Z',\n '2023-08-05T06:08:27Z',\n '2023-08-05T07:38:38Z',\n '2023-08-05T07:40:37Z',\n '2023-08-05T09:08:52Z',\n '2023-08-05T09:09:04Z',\n '2023-08-05T09:09:15Z',\n '2023-08-06T03:46:59Z',\n '2023-08-06T03:48:03Z',\n '2023-08-06T06:52:31Z',\n '2023-08-07T07:35:11Z',\n '2023-08-07T07:36:22Z',\n '2023-08-07T09:06:55Z',\n '2023-08-09T04:30:25Z',\n '2023-08-09T06:01:51Z',\n '2023-08-09T06:03:49Z',\n '2023-08-09T07:32:00Z',\n '2023-08-09T07:32:12Z',\n '2023-08-09T16:50:40Z',\n '2023-08-10T05:15:16Z',\n '2023-08-10T05:15:28Z',\n '2023-08-10T05:15:52Z',\n '2023-08-10T06:51:40Z',\n '2023-08-14T10:08:19Z',\n '2023-08-14T14:51:26Z',\n '2023-08-14T14:52:25Z',\n '2023-08-15T09:20:26Z',\n '2023-08-16T10:10:38Z',\n '2023-08-16T10:10:50Z',\n '2023-08-16T11:48:56Z',\n '2023-08-17T09:24:16Z',\n '2023-08-17T10:58:03Z',\n '2023-08-17T20:15:10Z',\n '2023-08-18T21:00:19Z',\n '2023-08-23T09:17:47Z',\n '2023-08-23T09:23:49Z',\n '2023-08-23T10:56:29Z',\n '2023-08-23T17:06:09Z',\n '2023-08-24T07:00:37Z',\n '2023-08-24T07:00:49Z',\n '2023-08-24T07:01:01Z',\n '2023-08-24T08:39:07Z',\n '2023-08-24T08:39:31Z',\n '2023-08-24T17:53:37Z',\n '2023-08-24T17:54:01Z',\n '2023-08-25T06:13:13Z',\n '2023-08-25T07:47:43Z',\n '2023-08-25T07:50:05Z',\n '2023-08-25T17:05:57Z',\n '2023-08-25T17:06:09Z',\n '2023-08-26T08:35:22Z',\n '2023-08-26T08:35:46Z',\n '2023-08-26T10:06:04Z',\n '2023-08-26T10:07:35Z',\n '2023-08-26T10:08:34Z',\n '2023-08-28T07:02:35Z',\n '2023-08-28T07:03:10Z',\n '2023-08-28T08:34:21Z',\n '2023-09-08T14:10:43Z',\n '2023-09-24T11:42:53Z',\n '2023-09-24T11:44:13Z',\n '2023-09-25T14:01:34Z',\n '2023-10-03T07:42:03Z',\n '2023-10-03T07:46:41Z',\n '2023-10-03T07:47:04Z',\n '2023-10-03T07:47:16Z',\n '2023-10-04T17:47:32Z',\n '2023-10-04T17:47:44Z',\n '2023-10-06T06:55:57Z',\n '2023-10-06T08:27:35Z',\n '2023-10-06T10:02:06Z',\n '2023-10-08T16:11:15Z']},\n 'description': 'Methane plume complexes from point source emitters',\n 'item_assets': {'ch4-plume-emissions': {'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'Methane Plume Complex',\n 'description': 'Methane plume complexes from point source emitters.'}},\n 'stac_version': '1.0.0',\n 'stac_extensions': None,\n 'dashboard:is_periodic': False,\n 'dashboard:time_density': 'day'}\n\n\nExamining the contents of our collection under the temporal variable, we note that data is available from August 2022 to May 2023. By looking at the dashboard: time density, we can see that observations are conducted daily and non-periodically (i.e., there are plumes emissions for multiple places on the same dates).\n\ndef get_item_count(collection_id):\n count = 0\n items_url = f\"{STAC_API_URL}/collections/{collection_id}/items\"\n\n while True:\n response = requests.get(items_url)\n\n if not response.ok:\n print(\"error getting items\")\n exit()\n\n stac = response.json()\n count += int(stac[\"context\"].get(\"returned\", 0))\n next = [link for link in stac[\"links\"] if link[\"rel\"] == \"next\"]\n\n if not next:\n break\n items_url = next[0][\"href\"]\n\n return count\n\n\n# Check total number of items available\nnumber_of_items = get_item_count(collection_name)\nitems = requests.get(f\"{STAC_API_URL}/collections/{collection_name}/items?limit={number_of_items}\").json()[\"features\"]\nprint(f\"Found {len(items)} items\")\n\nFound 752 items\n\n\n\n# Examining the first item in the collection\nitems[0]\n\n{'id': 'EMIT_L2B_CH4PLM_001_20231008T161115_001520',\n 'bbox': [-103.94950373078798,\n 31.803782488999254,\n -103.9419124755044,\n 31.811373744282843],\n 'type': 'Feature',\n 'links': [{'rel': 'collection',\n 'type': 'application/json',\n 'href': 'https://ghg.center/api/stac/collections/emit-ch4plume-v1'},\n {'rel': 'parent',\n 'type': 'application/json',\n 'href': 'https://ghg.center/api/stac/collections/emit-ch4plume-v1'},\n {'rel': 'root',\n 'type': 'application/json',\n 'href': 'https://ghg.center/api/stac/'},\n {'rel': 'self',\n 'type': 'application/geo+json',\n 'href': 'https://ghg.center/api/stac/collections/emit-ch4plume-v1/items/EMIT_L2B_CH4PLM_001_20231008T161115_001520'}],\n 'assets': {'ch4-plume-emissions': {'href': 's3://lp-prod-protected/EMITL2BCH4PLM.001/EMIT_L2B_CH4PLM_001_20231008T161115_001520/EMIT_L2B_CH4PLM_001_20231008T161115_001520.tif',\n 'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'Methane Plume Complex',\n 'proj:bbox': [-103.94950373078798,\n 31.803782488999254,\n -103.9419124755044,\n 31.811373744282843],\n 'proj:epsg': 4326.0,\n 'proj:shape': [14.0, 14.0],\n 'description': 'Methane plume complexes from point source emitters.',\n 'raster:bands': [{'scale': 1.0,\n 'nodata': -9999.0,\n 'offset': 0.0,\n 'sampling': 'area',\n 'data_type': 'float32',\n 'histogram': {'max': 2034.2767333984375,\n 'min': -638.1588745117188,\n 'count': 11.0,\n 'buckets': [4.0, 17.0, 15.0, 18.0, 14.0, 13.0, 3.0, 8.0, 5.0, 3.0]},\n 'statistics': {'mean': 469.7673828125,\n 'stddev': 634.4945451235177,\n 'maximum': 2034.2767333984375,\n 'minimum': -638.1588745117188,\n 'valid_percent': 51.02040816326531}}],\n 'proj:geometry': {'type': 'Polygon',\n 'coordinates': [[[-103.94950373078798, 31.803782488999254],\n [-103.9419124755044, 31.803782488999254],\n [-103.9419124755044, 31.811373744282843],\n [-103.94950373078798, 31.811373744282843],\n [-103.94950373078798, 31.803782488999254]]]},\n 'proj:projjson': {'id': {'code': 4326.0, 'authority': 'EPSG'},\n 'name': 'WGS 84',\n 'type': 'GeographicCRS',\n 'datum': {'name': 'World Geodetic System 1984',\n 'type': 'GeodeticReferenceFrame',\n 'ellipsoid': {'name': 'WGS 84',\n 'semi_major_axis': 6378137.0,\n 'inverse_flattening': 298.257223563}},\n '$schema': 'https://proj.org/schemas/v0.7/projjson.schema.json',\n 'coordinate_system': {'axis': [{'name': 'Geodetic latitude',\n 'unit': 'degree',\n 'direction': 'north',\n 'abbreviation': 'Lat'},\n {'name': 'Geodetic longitude',\n 'unit': 'degree',\n 'direction': 'east',\n 'abbreviation': 'Lon'}],\n 'subtype': 'ellipsoidal'}},\n 'proj:transform': [0.000542232520256367,\n 0.0,\n -103.94950373078798,\n 0.0,\n -0.000542232520256367,\n 31.811373744282843,\n 0.0,\n 0.0,\n 1.0]}},\n 'geometry': {'type': 'Polygon',\n 'coordinates': [[[-103.94950373078798, 31.803782488999254],\n [-103.9419124755044, 31.803782488999254],\n [-103.9419124755044, 31.811373744282843],\n [-103.94950373078798, 31.811373744282843],\n [-103.94950373078798, 31.803782488999254]]]},\n 'collection': 'emit-ch4plume-v1',\n 'properties': {'datetime': '2023-10-08T16:11:15+00:00'},\n 'stac_version': '1.0.0',\n 'stac_extensions': []}\n\n\nBelow, we are entering the minimum and maximum values to provide our upper and lower bounds in rescale_values."
},
{
"objectID": "user_data_notebooks/emit-ch4plume-v1_User_Notebook.html#exploring-methane-emission-plumes-ch₄-using-the-raster-api",
"href": "user_data_notebooks/emit-ch4plume-v1_User_Notebook.html#exploring-methane-emission-plumes-ch₄-using-the-raster-api",
"title": "EMIT Methane Point Source Plume Complexes",
"section": "Exploring Methane Emission Plumes (CH₄) using the Raster API",
- "text": "Exploring Methane Emission Plumes (CH₄) using the Raster API\nIn this notebook, we will explore global methane emission plumes from point sources. We will visualize the outputs on a map using folium.\n\n# To access the year value from each item more easily, this will let us query more explicity by year and month (e.g., 2020-02)\nitems = {item[\"id\"][20:]: item for item in items} \nasset_name = \"ch4-plume-emissions\"\n\n\n# Fetching the min and max values for a specific item\nrescale_values = {\"max\":items[list(items.keys())[0]][\"assets\"][asset_name][\"raster:bands\"][0][\"histogram\"][\"max\"], \"min\":items[list(items.keys())[0]][\"assets\"][asset_name][\"raster:bands\"][0][\"histogram\"][\"min\"]}\n\nNow we will pass the item id, collection name, and rescaling_factor to the Raster API endpoint. We will do this for only one item so that we can visualize the event.\n\n# Select the item ID which you want to visualize. Item ID is in the format yyyymmdd followed by the timestamp. This ID can be extracted from the COG name as well.\nitem_id = \"20230418T200118_000829\"\ncolor_map = \"magma\"\nmethane_plume_tile = requests.get(\n f\"{RASTER_API_URL}/stac/tilejson.json?collection={items[item_id]['collection']}&item={items[item_id]['id']}\"\n f\"&assets={asset_name}\"\n f\"&color_formula=gamma+r+1.05&colormap_name={color_map}\"\n f\"&rescale={rescale_values['min']},{rescale_values['max']}\", \n).json()\nmethane_plume_tile\n\n{'tilejson': '2.2.0',\n 'version': '1.0.0',\n 'scheme': 'xyz',\n 'tiles': ['https://1w7hfngnp7.execute-api.us-west-2.amazonaws.com/api/raster/stac/tiles/WebMercatorQuad/{z}/{x}/{y}@1x?collection=emit-ch4plume-v1&item=EMIT_L2B_CH4PLM_001_20230418T200118_000829&assets=ch4-plume-emissions&color_formula=gamma+r+1.05&colormap_name=magma&rescale=-394.7409973144531%2C1693.932861328125'],\n 'minzoom': 0,\n 'maxzoom': 24,\n 'bounds': [-104.76285251117253,\n 39.85322425220504,\n -104.74658553556483,\n 39.86515336765068],\n 'center': [-104.75471902336868, 39.85918880992786, 0]}"
+ "text": "Exploring Methane Emission Plumes (CH₄) using the Raster API\nIn this notebook, we will explore global methane emission plumes from point sources. We will visualize the outputs on a map using folium.\n\n# To access the year value from each item more easily, this will let us query more explicity by year and month (e.g., 2020-02)\nitems = {item[\"id\"][20:]: item for item in items} \nasset_name = \"ch4-plume-emissions\"\n\n\n# Fetching the min and max values for a specific item\nrescale_values = {\"max\":items[list(items.keys())[0]][\"assets\"][asset_name][\"raster:bands\"][0][\"histogram\"][\"max\"], \"min\":items[list(items.keys())[0]][\"assets\"][asset_name][\"raster:bands\"][0][\"histogram\"][\"min\"]}\n\nNow we will pass the item id, collection name, and rescaling_factor to the Raster API endpoint. We will do this for only one item so that we can visualize the event.\n\n# Select the item ID which you want to visualize. Item ID is in the format yyyymmdd followed by the timestamp. This ID can be extracted from the COG name as well.\nitem_id = \"20230418T200118_000829\"\ncolor_map = \"magma\"\nmethane_plume_tile = requests.get(\n f\"{RASTER_API_URL}/stac/tilejson.json?collection={items[item_id]['collection']}&item={items[item_id]['id']}\"\n f\"&assets={asset_name}\"\n f\"&color_formula=gamma+r+1.05&colormap_name={color_map}\"\n f\"&rescale={rescale_values['min']},{rescale_values['max']}\", \n).json()\nmethane_plume_tile\n\n{'tilejson': '2.2.0',\n 'version': '1.0.0',\n 'scheme': 'xyz',\n 'tiles': ['https://ghg.center/api/raster/stac/tiles/WebMercatorQuad/{z}/{x}/{y}@1x?collection=emit-ch4plume-v1&item=EMIT_L2B_CH4PLM_001_20230418T200118_000829&assets=ch4-plume-emissions&color_formula=gamma+r+1.05&colormap_name=magma&rescale=-638.1588745117188%2C2034.2767333984375'],\n 'minzoom': 0,\n 'maxzoom': 24,\n 'bounds': [-104.76285251117253,\n 39.85322425220504,\n -104.74658553556483,\n 39.86515336765068],\n 'center': [-104.75471902336868, 39.85918880992786, 0]}"
},
{
"objectID": "user_data_notebooks/emit-ch4plume-v1_User_Notebook.html#visualizing-ch₄-emission-plume",
@@ -81,14 +81,14 @@
"href": "user_data_notebooks/tm54dvar-ch4flux-monthgrid-v1_User_Notebook.html#querying-the-stac-api",
"title": "TM5-4DVar Isotopic CH₄ Inverse Fluxes",
"section": "Querying the STAC API",
- "text": "Querying the STAC API\n\nimport requests\nfrom folium import Map, TileLayer\nfrom pystac_client import Client\n\n\n# Provide STAC and RASTER API endpoints\nSTAC_API_URL = \"http://ghg.center/api/stac\"\nRASTER_API_URL = \"https://ghg.center/api/raster\"\n\n# Please use the collection name similar to the one used in STAC collection.\n# Name of the collection for TM5 CH₄ inverse flux dataset. \ncollection_name = \"tm54dvar-ch4flux-monthgrid-v1\"\n\n\n# Fetching the collection from STAC collections using appropriate endpoint.\ncollection = requests.get(f\"{STAC_API_URL}/collections/{collection_name}\").json()\ncollection\n\n{'id': 'tm54dvar-ch4flux-monthgrid-v1',\n 'type': 'Collection',\n 'links': [{'rel': 'items',\n 'type': 'application/geo+json',\n 'href': 'https://e6v7j4ejp6.execute-api.us-west-2.amazonaws.com/api/stac/collections/tm54dvar-ch4flux-monthgrid-v1/items'},\n {'rel': 'parent',\n 'type': 'application/json',\n 'href': 'https://e6v7j4ejp6.execute-api.us-west-2.amazonaws.com/api/stac/'},\n {'rel': 'root',\n 'type': 'application/json',\n 'href': 'https://e6v7j4ejp6.execute-api.us-west-2.amazonaws.com/api/stac/'},\n {'rel': 'self',\n 'type': 'application/json',\n 'href': 'https://e6v7j4ejp6.execute-api.us-west-2.amazonaws.com/api/stac/collections/tm54dvar-ch4flux-monthgrid-v1'}],\n 'title': 'TM5-4DVar Isotopic CH4 Inverse Fluxes',\n 'assets': None,\n 'extent': {'spatial': {'bbox': [[-180, -90, 180, 90]]},\n 'temporal': {'interval': [['1999-01-01T00:00:00+00:00',\n '2016-12-31T00:00:00+00:00']]}},\n 'license': 'CC-BY-4.0',\n 'keywords': None,\n 'providers': None,\n 'summaries': {'datetime': ['1999-01-01T00:00:00Z', '2016-12-31T00:00:00Z']},\n 'description': 'Global, monthly 1 degree resolution methane emission estimates from microbial, fossil and pyrogenic sources derived using inverse modeling, version 1.',\n 'item_assets': {'total': {'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'Total CH4 Emission',\n 'description': 'Total methane emission from microbial, fossil and pyrogenic sources'},\n 'fossil': {'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'Fossil CH4 Emission',\n 'description': 'Emission of methane from all fossil sources, such as oil and gas activities and coal mining.'},\n 'microbial': {'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'Microbial CH4 Emission',\n 'description': 'Emission of methane from all microbial sources, such as wetlands, agriculture and termites.'},\n 'pyrogenic': {'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'Pyrogenic CH4 Emission',\n 'description': 'Emission of methane from all sources of biomass burning, such as wildfires and crop burning.'}},\n 'stac_version': '1.0.0',\n 'stac_extensions': None,\n 'dashboard:is_periodic': True,\n 'dashboard:time_density': 'month'}\n\n\nExamining the contents of our collection under the temporal variable, we see that the data is available from January 1999 to December 2016. By looking at the dashboard:time density, we observe that the data is periodic with monthly time density.\n\ndef get_item_count(collection_id):\n count = 0\n items_url = f\"{STAC_API_URL}/collections/{collection_id}/items\"\n\n while True:\n response = requests.get(items_url)\n\n if not response.ok:\n print(\"error getting items\")\n exit()\n\n stac = response.json()\n count += int(stac[\"context\"].get(\"returned\", 0))\n next = [link for link in stac[\"links\"] if link[\"rel\"] == \"next\"]\n\n if not next:\n break\n items_url = next[0][\"href\"]\n\n return count\n\n\n# Check total number of items available\nnumber_of_items = get_item_count(collection_name)\nitems = requests.get(f\"{STAC_API_URL}/collections/{collection_name}/items?limit={number_of_items}\").json()[\"features\"]\nprint(f\"Found {len(items)} items\")\n\nFound 216 items\n\n\n\n# Examining the first item in the collection\nitems[0]\n\n{'id': 'tm54dvar-ch4flux-monthgrid-v1-201612',\n 'bbox': [-180.0, -90.0, 180.0, 90.0],\n 'type': 'Feature',\n 'links': [{'rel': 'collection',\n 'type': 'application/json',\n 'href': 'https://e6v7j4ejp6.execute-api.us-west-2.amazonaws.com/api/stac/collections/tm54dvar-ch4flux-monthgrid-v1'},\n {'rel': 'parent',\n 'type': 'application/json',\n 'href': 'https://e6v7j4ejp6.execute-api.us-west-2.amazonaws.com/api/stac/collections/tm54dvar-ch4flux-monthgrid-v1'},\n {'rel': 'root',\n 'type': 'application/json',\n 'href': 'https://e6v7j4ejp6.execute-api.us-west-2.amazonaws.com/api/stac/'},\n {'rel': 'self',\n 'type': 'application/geo+json',\n 'href': 'https://e6v7j4ejp6.execute-api.us-west-2.amazonaws.com/api/stac/collections/tm54dvar-ch4flux-monthgrid-v1/items/tm54dvar-ch4flux-monthgrid-v1-201612'}],\n 'assets': {'total': {'href': 's3://ghgc-data-store/tm54dvar-ch4flux-monthgrid-v1/methane_emis_total_201612.tif',\n 'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'Total CH4 Emission',\n 'proj:bbox': [-180.0, -90.0, 180.0, 90.0],\n 'proj:epsg': 4326.0,\n 'proj:shape': [180.0, 360.0],\n 'description': 'Total methane emission from microbial, fossil and pyrogenic sources',\n 'raster:bands': [{'scale': 1.0,\n 'offset': 0.0,\n 'sampling': 'area',\n 'data_type': 'float64',\n 'histogram': {'max': 207.09559432166358,\n 'min': 0.0,\n 'count': 11.0,\n 'buckets': [64446.0, 253.0, 61.0, 16.0, 14.0, 4.0, 3.0, 0.0, 2.0, 1.0]},\n 'statistics': {'mean': 0.7699816366032659,\n 'stddev': 3.8996905358416045,\n 'maximum': 207.09559432166358,\n 'minimum': 0.0,\n 'valid_percent': 0.00154320987654321}}],\n 'proj:geometry': {'type': 'Polygon',\n 'coordinates': [[[-180.0, -90.0],\n [180.0, -90.0],\n [180.0, 90.0],\n [-180.0, 90.0],\n [-180.0, -90.0]]]},\n 'proj:projjson': {'id': {'code': 4326.0, 'authority': 'EPSG'},\n 'name': 'WGS 84',\n 'type': 'GeographicCRS',\n 'datum': {'name': 'World Geodetic System 1984',\n 'type': 'GeodeticReferenceFrame',\n 'ellipsoid': {'name': 'WGS 84',\n 'semi_major_axis': 6378137.0,\n 'inverse_flattening': 298.257223563}},\n '$schema': 'https://proj.org/schemas/v0.4/projjson.schema.json',\n 'coordinate_system': {'axis': [{'name': 'Geodetic latitude',\n 'unit': 'degree',\n 'direction': 'north',\n 'abbreviation': 'Lat'},\n {'name': 'Geodetic longitude',\n 'unit': 'degree',\n 'direction': 'east',\n 'abbreviation': 'Lon'}],\n 'subtype': 'ellipsoidal'}},\n 'proj:transform': [1.0, 0.0, -180.0, 0.0, -1.0, 90.0, 0.0, 0.0, 1.0]},\n 'fossil': {'href': 's3://ghgc-data-store/tm54dvar-ch4flux-monthgrid-v1/methane_emis_fossil_201612.tif',\n 'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'Fossil CH4 Emission',\n 'proj:bbox': [-180.0, -90.0, 180.0, 90.0],\n 'proj:epsg': 4326.0,\n 'proj:shape': [180.0, 360.0],\n 'description': 'Emission of methane from all fossil sources, such as oil and gas activities and coal mining.',\n 'raster:bands': [{'scale': 1.0,\n 'offset': 0.0,\n 'sampling': 'area',\n 'data_type': 'float64',\n 'histogram': {'max': 202.8189294183266,\n 'min': 0.0,\n 'count': 11.0,\n 'buckets': [64633.0, 107.0, 35.0, 11.0, 8.0, 3.0, 1.0, 1.0, 0.0, 1.0]},\n 'statistics': {'mean': 0.27127687553584495,\n 'stddev': 2.731411670166909,\n 'maximum': 202.8189294183266,\n 'minimum': 0.0,\n 'valid_percent': 0.00154320987654321}}],\n 'proj:geometry': {'type': 'Polygon',\n 'coordinates': [[[-180.0, -90.0],\n [180.0, -90.0],\n [180.0, 90.0],\n [-180.0, 90.0],\n [-180.0, -90.0]]]},\n 'proj:projjson': {'id': {'code': 4326.0, 'authority': 'EPSG'},\n 'name': 'WGS 84',\n 'type': 'GeographicCRS',\n 'datum': {'name': 'World Geodetic System 1984',\n 'type': 'GeodeticReferenceFrame',\n 'ellipsoid': {'name': 'WGS 84',\n 'semi_major_axis': 6378137.0,\n 'inverse_flattening': 298.257223563}},\n '$schema': 'https://proj.org/schemas/v0.4/projjson.schema.json',\n 'coordinate_system': {'axis': [{'name': 'Geodetic latitude',\n 'unit': 'degree',\n 'direction': 'north',\n 'abbreviation': 'Lat'},\n {'name': 'Geodetic longitude',\n 'unit': 'degree',\n 'direction': 'east',\n 'abbreviation': 'Lon'}],\n 'subtype': 'ellipsoidal'}},\n 'proj:transform': [1.0, 0.0, -180.0, 0.0, -1.0, 90.0, 0.0, 0.0, 1.0]},\n 'microbial': {'href': 's3://ghgc-data-store/tm54dvar-ch4flux-monthgrid-v1/methane_emis_microbial_201612.tif',\n 'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'Microbial CH4 Emission',\n 'proj:bbox': [-180.0, -90.0, 180.0, 90.0],\n 'proj:epsg': 4326.0,\n 'proj:shape': [180.0, 360.0],\n 'description': 'Emission of methane from all microbial sources, such as wetlands, agriculture and termites.',\n 'raster:bands': [{'scale': 1.0,\n 'offset': 0.0,\n 'sampling': 'area',\n 'data_type': 'float64',\n 'histogram': {'max': 161.4604621003495,\n 'min': 0.0,\n 'count': 11.0,\n 'buckets': [64610.0, 155.0, 22.0, 5.0, 2.0, 2.0, 2.0, 1.0, 0.0, 1.0]},\n 'statistics': {'mean': 0.46611433673211145,\n 'stddev': 2.2910210071489456,\n 'maximum': 161.4604621003495,\n 'minimum': 0.0,\n 'valid_percent': 0.00154320987654321}}],\n 'proj:geometry': {'type': 'Polygon',\n 'coordinates': [[[-180.0, -90.0],\n [180.0, -90.0],\n [180.0, 90.0],\n [-180.0, 90.0],\n [-180.0, -90.0]]]},\n 'proj:projjson': {'id': {'code': 4326.0, 'authority': 'EPSG'},\n 'name': 'WGS 84',\n 'type': 'GeographicCRS',\n 'datum': {'name': 'World Geodetic System 1984',\n 'type': 'GeodeticReferenceFrame',\n 'ellipsoid': {'name': 'WGS 84',\n 'semi_major_axis': 6378137.0,\n 'inverse_flattening': 298.257223563}},\n '$schema': 'https://proj.org/schemas/v0.4/projjson.schema.json',\n 'coordinate_system': {'axis': [{'name': 'Geodetic latitude',\n 'unit': 'degree',\n 'direction': 'north',\n 'abbreviation': 'Lat'},\n {'name': 'Geodetic longitude',\n 'unit': 'degree',\n 'direction': 'east',\n 'abbreviation': 'Lon'}],\n 'subtype': 'ellipsoidal'}},\n 'proj:transform': [1.0, 0.0, -180.0, 0.0, -1.0, 90.0, 0.0, 0.0, 1.0]},\n 'pyrogenic': {'href': 's3://ghgc-data-store/tm54dvar-ch4flux-monthgrid-v1/methane_emis_pyrogenic_201612.tif',\n 'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'Pyrogenic CH4 Emission',\n 'proj:bbox': [-180.0, -90.0, 180.0, 90.0],\n 'proj:epsg': 4326.0,\n 'proj:shape': [180.0, 360.0],\n 'description': 'Emission of methane from all sources of biomass burning, such as wildfires and crop burning.',\n 'raster:bands': [{'scale': 1.0,\n 'offset': 0.0,\n 'sampling': 'area',\n 'data_type': 'float64',\n 'histogram': {'max': 13.432528617097262,\n 'min': 0.0,\n 'count': 11.0,\n 'buckets': [64440.0, 221.0, 78.0, 24.0, 18.0, 8.0, 3.0, 1.0, 1.0, 6.0]},\n 'statistics': {'mean': 0.032590424335309266,\n 'stddev': 0.28279054181617735,\n 'maximum': 13.432528617097262,\n 'minimum': 0.0,\n 'valid_percent': 0.00154320987654321}}],\n 'proj:geometry': {'type': 'Polygon',\n 'coordinates': [[[-180.0, -90.0],\n [180.0, -90.0],\n [180.0, 90.0],\n [-180.0, 90.0],\n [-180.0, -90.0]]]},\n 'proj:projjson': {'id': {'code': 4326.0, 'authority': 'EPSG'},\n 'name': 'WGS 84',\n 'type': 'GeographicCRS',\n 'datum': {'name': 'World Geodetic System 1984',\n 'type': 'GeodeticReferenceFrame',\n 'ellipsoid': {'name': 'WGS 84',\n 'semi_major_axis': 6378137.0,\n 'inverse_flattening': 298.257223563}},\n '$schema': 'https://proj.org/schemas/v0.4/projjson.schema.json',\n 'coordinate_system': {'axis': [{'name': 'Geodetic latitude',\n 'unit': 'degree',\n 'direction': 'north',\n 'abbreviation': 'Lat'},\n {'name': 'Geodetic longitude',\n 'unit': 'degree',\n 'direction': 'east',\n 'abbreviation': 'Lon'}],\n 'subtype': 'ellipsoidal'}},\n 'proj:transform': [1.0, 0.0, -180.0, 0.0, -1.0, 90.0, 0.0, 0.0, 1.0]}},\n 'geometry': {'type': 'Polygon',\n 'coordinates': [[[-180, -90],\n [180, -90],\n [180, 90],\n [-180, 90],\n [-180, -90]]]},\n 'collection': 'tm54dvar-ch4flux-monthgrid-v1',\n 'properties': {'end_datetime': '2016-12-31T00:00:00+00:00',\n 'start_datetime': '2016-12-01T00:00:00+00:00'},\n 'stac_version': '1.0.0',\n 'stac_extensions': []}\n\n\nBelow, we are entering the minimum and maximum values to provide our upper and lower bounds in rescale_values."
+ "text": "Querying the STAC API\n\nimport requests\nfrom folium import Map, TileLayer\nfrom pystac_client import Client\n\n\n# Provide STAC and RASTER API endpoints\nSTAC_API_URL = \"http://ghg.center/api/stac\"\nRASTER_API_URL = \"https://ghg.center/api/raster\"\n\n# Please use the collection name similar to the one used in STAC collection.\n# Name of the collection for TM5 CH₄ inverse flux dataset. \ncollection_name = \"tm54dvar-ch4flux-monthgrid-v1\"\n\n\n# Fetching the collection from STAC collections using appropriate endpoint.\ncollection = requests.get(f\"{STAC_API_URL}/collections/{collection_name}\").json()\ncollection\n\n{'id': 'tm54dvar-ch4flux-monthgrid-v1',\n 'type': 'Collection',\n 'links': [{'rel': 'items',\n 'type': 'application/geo+json',\n 'href': 'https://ghg.center/api/stac/collections/tm54dvar-ch4flux-monthgrid-v1/items'},\n {'rel': 'parent',\n 'type': 'application/json',\n 'href': 'https://ghg.center/api/stac/'},\n {'rel': 'root',\n 'type': 'application/json',\n 'href': 'https://ghg.center/api/stac/'},\n {'rel': 'self',\n 'type': 'application/json',\n 'href': 'https://ghg.center/api/stac/collections/tm54dvar-ch4flux-monthgrid-v1'}],\n 'title': 'TM5-4DVar Isotopic CH4 Inverse Fluxes',\n 'assets': None,\n 'extent': {'spatial': {'bbox': [[-180, -90, 180, 90]]},\n 'temporal': {'interval': [['1999-01-01T00:00:00+00:00',\n '2016-12-31T00:00:00+00:00']]}},\n 'license': 'CC-BY-4.0',\n 'keywords': None,\n 'providers': None,\n 'summaries': {'datetime': ['1999-01-01T00:00:00Z', '2016-12-31T00:00:00Z']},\n 'description': 'Global, monthly 1 degree resolution methane emission estimates from microbial, fossil and pyrogenic sources derived using inverse modeling, version 1.',\n 'item_assets': {'total': {'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'Total CH4 Emission',\n 'description': 'Total methane emission from microbial, fossil and pyrogenic sources'},\n 'fossil': {'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'Fossil CH4 Emission',\n 'description': 'Emission of methane from all fossil sources, such as oil and gas activities and coal mining.'},\n 'microbial': {'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'Microbial CH4 Emission',\n 'description': 'Emission of methane from all microbial sources, such as wetlands, agriculture and termites.'},\n 'pyrogenic': {'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'Pyrogenic CH4 Emission',\n 'description': 'Emission of methane from all sources of biomass burning, such as wildfires and crop burning.'}},\n 'stac_version': '1.0.0',\n 'stac_extensions': None,\n 'dashboard:is_periodic': True,\n 'dashboard:time_density': 'month'}\n\n\nExamining the contents of our collection under the temporal variable, we see that the data is available from January 1999 to December 2016. By looking at the dashboard:time density, we observe that the data is periodic with monthly time density.\n\ndef get_item_count(collection_id):\n count = 0\n items_url = f\"{STAC_API_URL}/collections/{collection_id}/items\"\n\n while True:\n response = requests.get(items_url)\n\n if not response.ok:\n print(\"error getting items\")\n exit()\n\n stac = response.json()\n count += int(stac[\"context\"].get(\"returned\", 0))\n next = [link for link in stac[\"links\"] if link[\"rel\"] == \"next\"]\n\n if not next:\n break\n items_url = next[0][\"href\"]\n\n return count\n\n\n# Check total number of items available\nnumber_of_items = get_item_count(collection_name)\nitems = requests.get(f\"{STAC_API_URL}/collections/{collection_name}/items?limit={number_of_items}\").json()[\"features\"]\nprint(f\"Found {len(items)} items\")\n\nFound 216 items\n\n\n\n# Examining the first item in the collection\nitems[0]\n\n{'id': 'tm54dvar-ch4flux-monthgrid-v1-201612',\n 'bbox': [-180.0, -90.0, 180.0, 90.0],\n 'type': 'Feature',\n 'links': [{'rel': 'collection',\n 'type': 'application/json',\n 'href': 'https://ghg.center/api/stac/collections/tm54dvar-ch4flux-monthgrid-v1'},\n {'rel': 'parent',\n 'type': 'application/json',\n 'href': 'https://ghg.center/api/stac/collections/tm54dvar-ch4flux-monthgrid-v1'},\n {'rel': 'root',\n 'type': 'application/json',\n 'href': 'https://ghg.center/api/stac/'},\n {'rel': 'self',\n 'type': 'application/geo+json',\n 'href': 'https://ghg.center/api/stac/collections/tm54dvar-ch4flux-monthgrid-v1/items/tm54dvar-ch4flux-monthgrid-v1-201612'}],\n 'assets': {'total': {'href': 's3://ghgc-data-store/tm54dvar-ch4flux-monthgrid-v1/methane_emis_total_201612.tif',\n 'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'Total CH4 Emission',\n 'proj:bbox': [-180.0, -90.0, 180.0, 90.0],\n 'proj:epsg': 4326.0,\n 'proj:shape': [180.0, 360.0],\n 'description': 'Total methane emission from microbial, fossil and pyrogenic sources',\n 'raster:bands': [{'scale': 1.0,\n 'offset': 0.0,\n 'sampling': 'area',\n 'data_type': 'float64',\n 'histogram': {'max': 207.09559432166358,\n 'min': 0.0,\n 'count': 11.0,\n 'buckets': [64446.0, 253.0, 61.0, 16.0, 14.0, 4.0, 3.0, 0.0, 2.0, 1.0]},\n 'statistics': {'mean': 0.7699816366032659,\n 'stddev': 3.8996905358416045,\n 'maximum': 207.09559432166358,\n 'minimum': 0.0,\n 'valid_percent': 0.00154320987654321}}],\n 'proj:geometry': {'type': 'Polygon',\n 'coordinates': [[[-180.0, -90.0],\n [180.0, -90.0],\n [180.0, 90.0],\n [-180.0, 90.0],\n [-180.0, -90.0]]]},\n 'proj:projjson': {'id': {'code': 4326.0, 'authority': 'EPSG'},\n 'name': 'WGS 84',\n 'type': 'GeographicCRS',\n 'datum': {'name': 'World Geodetic System 1984',\n 'type': 'GeodeticReferenceFrame',\n 'ellipsoid': {'name': 'WGS 84',\n 'semi_major_axis': 6378137.0,\n 'inverse_flattening': 298.257223563}},\n '$schema': 'https://proj.org/schemas/v0.4/projjson.schema.json',\n 'coordinate_system': {'axis': [{'name': 'Geodetic latitude',\n 'unit': 'degree',\n 'direction': 'north',\n 'abbreviation': 'Lat'},\n {'name': 'Geodetic longitude',\n 'unit': 'degree',\n 'direction': 'east',\n 'abbreviation': 'Lon'}],\n 'subtype': 'ellipsoidal'}},\n 'proj:transform': [1.0, 0.0, -180.0, 0.0, -1.0, 90.0, 0.0, 0.0, 1.0]},\n 'fossil': {'href': 's3://ghgc-data-store/tm54dvar-ch4flux-monthgrid-v1/methane_emis_fossil_201612.tif',\n 'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'Fossil CH4 Emission',\n 'proj:bbox': [-180.0, -90.0, 180.0, 90.0],\n 'proj:epsg': 4326.0,\n 'proj:shape': [180.0, 360.0],\n 'description': 'Emission of methane from all fossil sources, such as oil and gas activities and coal mining.',\n 'raster:bands': [{'scale': 1.0,\n 'offset': 0.0,\n 'sampling': 'area',\n 'data_type': 'float64',\n 'histogram': {'max': 202.8189294183266,\n 'min': 0.0,\n 'count': 11.0,\n 'buckets': [64633.0, 107.0, 35.0, 11.0, 8.0, 3.0, 1.0, 1.0, 0.0, 1.0]},\n 'statistics': {'mean': 0.27127687553584495,\n 'stddev': 2.731411670166909,\n 'maximum': 202.8189294183266,\n 'minimum': 0.0,\n 'valid_percent': 0.00154320987654321}}],\n 'proj:geometry': {'type': 'Polygon',\n 'coordinates': [[[-180.0, -90.0],\n [180.0, -90.0],\n [180.0, 90.0],\n [-180.0, 90.0],\n [-180.0, -90.0]]]},\n 'proj:projjson': {'id': {'code': 4326.0, 'authority': 'EPSG'},\n 'name': 'WGS 84',\n 'type': 'GeographicCRS',\n 'datum': {'name': 'World Geodetic System 1984',\n 'type': 'GeodeticReferenceFrame',\n 'ellipsoid': {'name': 'WGS 84',\n 'semi_major_axis': 6378137.0,\n 'inverse_flattening': 298.257223563}},\n '$schema': 'https://proj.org/schemas/v0.4/projjson.schema.json',\n 'coordinate_system': {'axis': [{'name': 'Geodetic latitude',\n 'unit': 'degree',\n 'direction': 'north',\n 'abbreviation': 'Lat'},\n {'name': 'Geodetic longitude',\n 'unit': 'degree',\n 'direction': 'east',\n 'abbreviation': 'Lon'}],\n 'subtype': 'ellipsoidal'}},\n 'proj:transform': [1.0, 0.0, -180.0, 0.0, -1.0, 90.0, 0.0, 0.0, 1.0]},\n 'microbial': {'href': 's3://ghgc-data-store/tm54dvar-ch4flux-monthgrid-v1/methane_emis_microbial_201612.tif',\n 'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'Microbial CH4 Emission',\n 'proj:bbox': [-180.0, -90.0, 180.0, 90.0],\n 'proj:epsg': 4326.0,\n 'proj:shape': [180.0, 360.0],\n 'description': 'Emission of methane from all microbial sources, such as wetlands, agriculture and termites.',\n 'raster:bands': [{'scale': 1.0,\n 'offset': 0.0,\n 'sampling': 'area',\n 'data_type': 'float64',\n 'histogram': {'max': 161.4604621003495,\n 'min': 0.0,\n 'count': 11.0,\n 'buckets': [64610.0, 155.0, 22.0, 5.0, 2.0, 2.0, 2.0, 1.0, 0.0, 1.0]},\n 'statistics': {'mean': 0.46611433673211145,\n 'stddev': 2.2910210071489456,\n 'maximum': 161.4604621003495,\n 'minimum': 0.0,\n 'valid_percent': 0.00154320987654321}}],\n 'proj:geometry': {'type': 'Polygon',\n 'coordinates': [[[-180.0, -90.0],\n [180.0, -90.0],\n [180.0, 90.0],\n [-180.0, 90.0],\n [-180.0, -90.0]]]},\n 'proj:projjson': {'id': {'code': 4326.0, 'authority': 'EPSG'},\n 'name': 'WGS 84',\n 'type': 'GeographicCRS',\n 'datum': {'name': 'World Geodetic System 1984',\n 'type': 'GeodeticReferenceFrame',\n 'ellipsoid': {'name': 'WGS 84',\n 'semi_major_axis': 6378137.0,\n 'inverse_flattening': 298.257223563}},\n '$schema': 'https://proj.org/schemas/v0.4/projjson.schema.json',\n 'coordinate_system': {'axis': [{'name': 'Geodetic latitude',\n 'unit': 'degree',\n 'direction': 'north',\n 'abbreviation': 'Lat'},\n {'name': 'Geodetic longitude',\n 'unit': 'degree',\n 'direction': 'east',\n 'abbreviation': 'Lon'}],\n 'subtype': 'ellipsoidal'}},\n 'proj:transform': [1.0, 0.0, -180.0, 0.0, -1.0, 90.0, 0.0, 0.0, 1.0]},\n 'pyrogenic': {'href': 's3://ghgc-data-store/tm54dvar-ch4flux-monthgrid-v1/methane_emis_pyrogenic_201612.tif',\n 'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'Pyrogenic CH4 Emission',\n 'proj:bbox': [-180.0, -90.0, 180.0, 90.0],\n 'proj:epsg': 4326.0,\n 'proj:shape': [180.0, 360.0],\n 'description': 'Emission of methane from all sources of biomass burning, such as wildfires and crop burning.',\n 'raster:bands': [{'scale': 1.0,\n 'offset': 0.0,\n 'sampling': 'area',\n 'data_type': 'float64',\n 'histogram': {'max': 13.432528617097262,\n 'min': 0.0,\n 'count': 11.0,\n 'buckets': [64440.0, 221.0, 78.0, 24.0, 18.0, 8.0, 3.0, 1.0, 1.0, 6.0]},\n 'statistics': {'mean': 0.032590424335309266,\n 'stddev': 0.28279054181617735,\n 'maximum': 13.432528617097262,\n 'minimum': 0.0,\n 'valid_percent': 0.00154320987654321}}],\n 'proj:geometry': {'type': 'Polygon',\n 'coordinates': [[[-180.0, -90.0],\n [180.0, -90.0],\n [180.0, 90.0],\n [-180.0, 90.0],\n [-180.0, -90.0]]]},\n 'proj:projjson': {'id': {'code': 4326.0, 'authority': 'EPSG'},\n 'name': 'WGS 84',\n 'type': 'GeographicCRS',\n 'datum': {'name': 'World Geodetic System 1984',\n 'type': 'GeodeticReferenceFrame',\n 'ellipsoid': {'name': 'WGS 84',\n 'semi_major_axis': 6378137.0,\n 'inverse_flattening': 298.257223563}},\n '$schema': 'https://proj.org/schemas/v0.4/projjson.schema.json',\n 'coordinate_system': {'axis': [{'name': 'Geodetic latitude',\n 'unit': 'degree',\n 'direction': 'north',\n 'abbreviation': 'Lat'},\n {'name': 'Geodetic longitude',\n 'unit': 'degree',\n 'direction': 'east',\n 'abbreviation': 'Lon'}],\n 'subtype': 'ellipsoidal'}},\n 'proj:transform': [1.0, 0.0, -180.0, 0.0, -1.0, 90.0, 0.0, 0.0, 1.0]}},\n 'geometry': {'type': 'Polygon',\n 'coordinates': [[[-180, -90],\n [180, -90],\n [180, 90],\n [-180, 90],\n [-180, -90]]]},\n 'collection': 'tm54dvar-ch4flux-monthgrid-v1',\n 'properties': {'end_datetime': '2016-12-31T00:00:00+00:00',\n 'start_datetime': '2016-12-01T00:00:00+00:00'},\n 'stac_version': '1.0.0',\n 'stac_extensions': []}\n\n\nBelow, we are entering the minimum and maximum values to provide our upper and lower bounds in rescale_values."
},
{
"objectID": "user_data_notebooks/tm54dvar-ch4flux-monthgrid-v1_User_Notebook.html#exploring-changes-in-ch₄-flux-levels-using-the-raster-api",
"href": "user_data_notebooks/tm54dvar-ch4flux-monthgrid-v1_User_Notebook.html#exploring-changes-in-ch₄-flux-levels-using-the-raster-api",
"title": "TM5-4DVar Isotopic CH₄ Inverse Fluxes",
"section": "Exploring Changes in CH₄ flux Levels Using the Raster API",
- "text": "Exploring Changes in CH₄ flux Levels Using the Raster API\nIn this notebook, we will explore the global changes of CH₄ flux over time in urban regions. We will visualize the outputs on a map using folium.\n\n# to access the year value from each item more easily, this will let us query more explicity by year and month (e.g., 2020-02)\nitems = {item[\"properties\"][\"start_datetime\"][:10]: item for item in items} \nasset_name = \"fossil\" #fossil fuel\n\n\n# Fetching the min and max values for a specific item\nrescale_values = {\"max\":items[list(items.keys())[0]][\"assets\"][asset_name][\"raster:bands\"][0][\"histogram\"][\"max\"], \"min\":items[list(items.keys())[0]][\"assets\"][asset_name][\"raster:bands\"][0][\"histogram\"][\"min\"]}\n\nNow, we will pass the item id, collection name, and rescaling_factor to the Raster API endpoint. We will do this twice, once for 2020 and again for 2019, so that we can visualize each event independently.\n\ncolor_map = \"purd\"\nco2_flux_1 = requests.get(\n f\"{RASTER_API_URL}/stac/tilejson.json?collection={items['2016-12-01']['collection']}&item={items['2016-12-01']['id']}\"\n f\"&assets={asset_name}\"\n f\"&color_formula=gamma+r+1.05&colormap_name={color_map}\"\n f\"&rescale={rescale_values['min']},{rescale_values['max']}\", \n).json()\nco2_flux_1\n\n{'tilejson': '2.2.0',\n 'version': '1.0.0',\n 'scheme': 'xyz',\n 'tiles': ['https://1w7hfngnp7.execute-api.us-west-2.amazonaws.com/api/raster/stac/tiles/WebMercatorQuad/{z}/{x}/{y}@1x?collection=tm54dvar-ch4flux-monthgrid-v1&item=tm54dvar-ch4flux-monthgrid-v1-201612&assets=fossil&color_formula=gamma+r+1.05&colormap_name=purd&rescale=0.0%2C202.8189294183266'],\n 'minzoom': 0,\n 'maxzoom': 24,\n 'bounds': [-180.0, -90.0, 180.0, 90.0],\n 'center': [0.0, 0.0, 0]}\n\n\n\nco2_flux_2 = requests.get(\n f\"{RASTER_API_URL}/stac/tilejson.json?collection={items['1999-12-01']['collection']}&item={items['1999-12-01']['id']}\"\n f\"&assets={asset_name}\"\n f\"&color_formula=gamma+r+1.05&colormap_name={color_map}\"\n f\"&rescale={rescale_values['min']},{rescale_values['max']}\", \n).json()\nco2_flux_2\n\n{'tilejson': '2.2.0',\n 'version': '1.0.0',\n 'scheme': 'xyz',\n 'tiles': ['https://1w7hfngnp7.execute-api.us-west-2.amazonaws.com/api/raster/stac/tiles/WebMercatorQuad/{z}/{x}/{y}@1x?collection=tm54dvar-ch4flux-monthgrid-v1&item=tm54dvar-ch4flux-monthgrid-v1-199912&assets=fossil&color_formula=gamma+r+1.05&colormap_name=purd&rescale=0.0%2C202.8189294183266'],\n 'minzoom': 0,\n 'maxzoom': 24,\n 'bounds': [-180.0, -90.0, 180.0, 90.0],\n 'center': [0.0, 0.0, 0]}"
+ "text": "Exploring Changes in CH₄ flux Levels Using the Raster API\nIn this notebook, we will explore the global changes of CH₄ flux over time in urban regions. We will visualize the outputs on a map using folium.\n\n# to access the year value from each item more easily, this will let us query more explicity by year and month (e.g., 2020-02)\nitems = {item[\"properties\"][\"start_datetime\"][:10]: item for item in items} \nasset_name = \"fossil\" #fossil fuel\n\n\n# Fetching the min and max values for a specific item\nrescale_values = {\"max\":items[list(items.keys())[0]][\"assets\"][asset_name][\"raster:bands\"][0][\"histogram\"][\"max\"], \"min\":items[list(items.keys())[0]][\"assets\"][asset_name][\"raster:bands\"][0][\"histogram\"][\"min\"]}\n\nNow, we will pass the item id, collection name, and rescaling_factor to the Raster API endpoint. We will do this twice, once for 2020 and again for 2019, so that we can visualize each event independently.\n\ncolor_map = \"purd\"\nco2_flux_1 = requests.get(\n f\"{RASTER_API_URL}/stac/tilejson.json?collection={items['2016-12-01']['collection']}&item={items['2016-12-01']['id']}\"\n f\"&assets={asset_name}\"\n f\"&color_formula=gamma+r+1.05&colormap_name={color_map}\"\n f\"&rescale={rescale_values['min']},{rescale_values['max']}\", \n).json()\nco2_flux_1\n\n{'tilejson': '2.2.0',\n 'version': '1.0.0',\n 'scheme': 'xyz',\n 'tiles': ['https://ghg.center/api/raster/stac/tiles/WebMercatorQuad/{z}/{x}/{y}@1x?collection=tm54dvar-ch4flux-monthgrid-v1&item=tm54dvar-ch4flux-monthgrid-v1-201612&assets=fossil&color_formula=gamma+r+1.05&colormap_name=purd&rescale=0.0%2C202.8189294183266'],\n 'minzoom': 0,\n 'maxzoom': 24,\n 'bounds': [-180.0, -90.0, 180.0, 90.0],\n 'center': [0.0, 0.0, 0]}\n\n\n\nco2_flux_2 = requests.get(\n f\"{RASTER_API_URL}/stac/tilejson.json?collection={items['1999-12-01']['collection']}&item={items['1999-12-01']['id']}\"\n f\"&assets={asset_name}\"\n f\"&color_formula=gamma+r+1.05&colormap_name={color_map}\"\n f\"&rescale={rescale_values['min']},{rescale_values['max']}\", \n).json()\nco2_flux_2\n\n{'tilejson': '2.2.0',\n 'version': '1.0.0',\n 'scheme': 'xyz',\n 'tiles': ['https://ghg.center/api/raster/stac/tiles/WebMercatorQuad/{z}/{x}/{y}@1x?collection=tm54dvar-ch4flux-monthgrid-v1&item=tm54dvar-ch4flux-monthgrid-v1-199912&assets=fossil&color_formula=gamma+r+1.05&colormap_name=purd&rescale=0.0%2C202.8189294183266'],\n 'minzoom': 0,\n 'maxzoom': 24,\n 'bounds': [-180.0, -90.0, 180.0, 90.0],\n 'center': [0.0, 0.0, 0]}"
},
{
"objectID": "user_data_notebooks/tm54dvar-ch4flux-monthgrid-v1_User_Notebook.html#visualizing-ch₄-flux-emissions-from-fossil-fuel",
@@ -102,7 +102,7 @@
"href": "user_data_notebooks/tm54dvar-ch4flux-monthgrid-v1_User_Notebook.html#visualizing-the-data-as-a-time-series",
"title": "TM5-4DVar Isotopic CH₄ Inverse Fluxes",
"section": "Visualizing the Data as a Time Series",
- "text": "Visualizing the Data as a Time Series\nWe can now explore the fossil fuel emission time series (January 1999 -December 2016) available for the Dallas, Texas area of the U.S. We can plot the data set using the code below:\n\nimport matplotlib.pyplot as plt\n\nfig = plt.figure(figsize=(20, 10))\n\n\nplt.plot(\n df[\"datetime\"],\n df[\"max\"],\n color=\"red\",\n linestyle=\"-\",\n linewidth=0.5,\n label=\"CH4 emissions\",\n)\n\nplt.legend()\nplt.xlabel(\"Years\")\nplt.ylabel(\"g CH₄/m²/year\")\nplt.xticks(rotation = 90)\nplt.title(\"CH4 emission Values for Texas, Dallas (2015-2020)\")\n\nText(0.5, 1.0, 'CH4 emission Values for Texas, Dallas (2015-2020)')\n\n\n\n\n\n\nprint(items[2][\"properties\"][\"start_datetime\"])\n\n2016-10-01T00:00:00+00:00\n\n\n\nco2_flux_3 = requests.get(\n f\"{RASTER_API_URL}/stac/tilejson.json?collection={items[2]['collection']}&item={items[2]['id']}\"\n f\"&assets={asset_name}\"\n f\"&color_formula=gamma+r+1.05&colormap_name={color_map}\"\n f\"&rescale={rescale_values['min']},{rescale_values['max']}\",\n).json()\nco2_flux_3\n\n{'tilejson': '2.2.0',\n 'version': '1.0.0',\n 'scheme': 'xyz',\n 'tiles': ['https://1w7hfngnp7.execute-api.us-west-2.amazonaws.com/api/raster/stac/tiles/WebMercatorQuad/{z}/{x}/{y}@1x?collection=tm54dvar-ch4flux-monthgrid-v1&item=tm54dvar-ch4flux-monthgrid-v1-201610&assets=fossil&color_formula=gamma+r+1.05&colormap_name=purd&rescale=0.0%2C202.8189294183266'],\n 'minzoom': 0,\n 'maxzoom': 24,\n 'bounds': [-180.0, -90.0, 180.0, 90.0],\n 'center': [0.0, 0.0, 0]}\n\n\n\n# Use bbox initial zoom and map\n# Set up a map located w/in event bounds\nimport folium\n\naoi_map_bbox = Map(\n tiles=\"OpenStreetMap\",\n location=[\n 30,-100\n ],\n zoom_start=6.8,\n)\n\nmap_layer = TileLayer(\n tiles=co2_flux_3[\"tiles\"][0],\n attr=\"GHG\", opacity = 0.7\n)\n\nmap_layer.add_to(aoi_map_bbox)\n\naoi_map_bbox\n\nMake this Notebook Trusted to load map: File -> Trust Notebook"
+ "text": "Visualizing the Data as a Time Series\nWe can now explore the fossil fuel emission time series (January 1999 -December 2016) available for the Dallas, Texas area of the U.S. We can plot the data set using the code below:\n\nimport matplotlib.pyplot as plt\n\nfig = plt.figure(figsize=(20, 10))\n\n\nplt.plot(\n df[\"datetime\"],\n df[\"max\"],\n color=\"red\",\n linestyle=\"-\",\n linewidth=0.5,\n label=\"CH4 emissions\",\n)\n\nplt.legend()\nplt.xlabel(\"Years\")\nplt.ylabel(\"g CH₄/m²/year\")\nplt.xticks(rotation = 90)\nplt.title(\"CH4 emission Values for Texas, Dallas (2015-2020)\")\n\nText(0.5, 1.0, 'CH4 emission Values for Texas, Dallas (2015-2020)')\n\n\n\n\n\n\nprint(items[2][\"properties\"][\"start_datetime\"])\n\n2016-10-01T00:00:00+00:00\n\n\n\nco2_flux_3 = requests.get(\n f\"{RASTER_API_URL}/stac/tilejson.json?collection={items[2]['collection']}&item={items[2]['id']}\"\n f\"&assets={asset_name}\"\n f\"&color_formula=gamma+r+1.05&colormap_name={color_map}\"\n f\"&rescale={rescale_values['min']},{rescale_values['max']}\",\n).json()\nco2_flux_3\n\n{'tilejson': '2.2.0',\n 'version': '1.0.0',\n 'scheme': 'xyz',\n 'tiles': ['https://ghg.center/api/raster/stac/tiles/WebMercatorQuad/{z}/{x}/{y}@1x?collection=tm54dvar-ch4flux-monthgrid-v1&item=tm54dvar-ch4flux-monthgrid-v1-201610&assets=fossil&color_formula=gamma+r+1.05&colormap_name=purd&rescale=0.0%2C202.8189294183266'],\n 'minzoom': 0,\n 'maxzoom': 24,\n 'bounds': [-180.0, -90.0, 180.0, 90.0],\n 'center': [0.0, 0.0, 0]}\n\n\n\n# Use bbox initial zoom and map\n# Set up a map located w/in event bounds\nimport folium\n\naoi_map_bbox = Map(\n tiles=\"OpenStreetMap\",\n location=[\n 30,-100\n ],\n zoom_start=6.8,\n)\n\nmap_layer = TileLayer(\n tiles=co2_flux_3[\"tiles\"][0],\n attr=\"GHG\", opacity = 0.7\n)\n\nmap_layer.add_to(aoi_map_bbox)\n\naoi_map_bbox\n\nMake this Notebook Trusted to load map: File -> Trust Notebook"
},
{
"objectID": "user_data_notebooks/tm54dvar-ch4flux-monthgrid-v1_User_Notebook.html#summary",
@@ -137,28 +137,28 @@
"href": "user_data_notebooks/oco2geos-co2-daygrid-v10r_User_Notebook.html#querying-the-stac-api",
"title": "OCO-2 GEOS Column CO₂ Concentrations",
"section": "Querying the STAC API",
- "text": "Querying the STAC API\n\n# Provide STAC and RASTER API endpoints\nSTAC_API_URL = \"http://ghg.center/api/stac\"\nRASTER_API_URL = \"https://ghg.center/api/raster\"\n\n# Please use the collection name similar to the one used in STAC collection.\n# Name of the collection for OCO-2 GEOS Column CO₂ Concentrations. \ncollection_name = \"oco2geos-co2-daygrid-v10r\"\n\n\n# Fetching the collection from STAC collections using appropriate endpoint.\ncollection = requests.get(f\"{STAC_API_URL}/collections/{collection_name}\").json()\ncollection\n\nExamining the contents of our collection under the temporal variable, we see that the data is available from January 2015 to February 2022. By looking at the dashboard:time density, we can see that these observations are collected daily.\n\ndef get_item_count(collection_id):\n count = 0\n items_url = f\"{STAC_API_URL}/collections/{collection_id}/items\"\n\n while True:\n response = requests.get(items_url)\n\n if not response.ok:\n print(\"error getting items\")\n exit()\n\n stac = response.json()\n count += int(stac[\"context\"].get(\"returned\", 0))\n next = [link for link in stac[\"links\"] if link[\"rel\"] == \"next\"]\n\n if not next:\n break\n items_url = next[0][\"href\"]\n\n return count\n\n\n# Check total number of items available\nnumber_of_items = get_item_count(collection_name)\nitems = requests.get(f\"{STAC_API_URL}/collections/{collection_name}/items?limit={number_of_items}\").json()[\"features\"]\nprint(f\"Found {len(items)} items\")\n\n\n# Examining the first item in the collection\nitems[0]\n\nBelow, we enter minimum and maximum values to provide our upper and lower bounds in rescale_values."
+ "text": "Querying the STAC API\n\n# Provide STAC and RASTER API endpoints\nSTAC_API_URL = \"http://ghg.center/api/stac\"\nRASTER_API_URL = \"https://ghg.center/api/raster\"\n\n# Please use the collection name similar to the one used in STAC collection.\n# Name of the collection for OCO-2 GEOS Column CO₂ Concentrations. \ncollection_name = \"oco2geos-co2-daygrid-v10r\"\n\n\n# Fetching the collection from STAC collections using appropriate endpoint.\ncollection = requests.get(f\"{STAC_API_URL}/collections/{collection_name}\").json()\ncollection\n\n{'id': 'oco2geos-co2-daygrid-v10r',\n 'type': 'Collection',\n 'links': [{'rel': 'items',\n 'type': 'application/geo+json',\n 'href': 'https://ghg.center/api/stac/collections/oco2geos-co2-daygrid-v10r/items'},\n {'rel': 'parent',\n 'type': 'application/json',\n 'href': 'https://ghg.center/api/stac/'},\n {'rel': 'root',\n 'type': 'application/json',\n 'href': 'https://ghg.center/api/stac/'},\n {'rel': 'self',\n 'type': 'application/json',\n 'href': 'https://ghg.center/api/stac/collections/oco2geos-co2-daygrid-v10r'}],\n 'title': 'OCO-2 GEOS Assimilated CO2 Concentrations',\n 'assets': None,\n 'extent': {'spatial': {'bbox': [[-180.3125, -90.25, 179.6875, 90.25]]},\n 'temporal': {'interval': [['2015-01-01T00:00:00+00:00',\n '2022-02-28T00:00:00+00:00']]}},\n 'license': 'CC-BY-4.0',\n 'keywords': None,\n 'providers': None,\n 'summaries': {'datetime': ['2015-01-01T00:00:00Z', '2022-02-28T00:00:00Z']},\n 'description': 'Daily, global 0.5 x 0.625 degree assimilated CO2 concentrations derived from OCO-2 satellite data, version 10r',\n 'item_assets': {'xco2': {'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'Average Dry-Air Column CO2',\n 'description': 'Daily dry air column-averaged mole fractions of carbon dioxide created from data assimilations of OCO-2 satellite retrievals.'},\n 'xco2prec': {'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'Average Dry-Air Column CO2 Precision (XCO2PREC)',\n 'description': 'Random errors for daily dry air column-averaged mole fractions of carbon dioxide calculated using a posteriori diagnostics'}},\n 'stac_version': '1.0.0',\n 'stac_extensions': None,\n 'dashboard:is_periodic': True,\n 'dashboard:time_density': 'day'}\n\n\nExamining the contents of our collection under the temporal variable, we see that the data is available from January 2015 to February 2022. By looking at the dashboard:time density, we can see that these observations are collected daily.\n\ndef get_item_count(collection_id):\n count = 0\n items_url = f\"{STAC_API_URL}/collections/{collection_id}/items\"\n\n while True:\n response = requests.get(items_url)\n\n if not response.ok:\n print(\"error getting items\")\n exit()\n\n stac = response.json()\n count += int(stac[\"context\"].get(\"returned\", 0))\n next = [link for link in stac[\"links\"] if link[\"rel\"] == \"next\"]\n\n if not next:\n break\n items_url = next[0][\"href\"]\n\n return count\n\n\n# Check total number of items available\nnumber_of_items = get_item_count(collection_name)\nitems = requests.get(f\"{STAC_API_URL}/collections/{collection_name}/items?limit={number_of_items}\").json()[\"features\"]\nprint(f\"Found {len(items)} items\")\n\nFound 2615 items\n\n\n\n# Examining the first item in the collection\nitems[0]\n\n{'id': 'oco2geos-co2-daygrid-v10r-20220228',\n 'bbox': [-180.3125, -90.25, 179.6875, 90.25],\n 'type': 'Feature',\n 'links': [{'rel': 'collection',\n 'type': 'application/json',\n 'href': 'https://ghg.center/api/stac/collections/oco2geos-co2-daygrid-v10r'},\n {'rel': 'parent',\n 'type': 'application/json',\n 'href': 'https://ghg.center/api/stac/collections/oco2geos-co2-daygrid-v10r'},\n {'rel': 'root',\n 'type': 'application/json',\n 'href': 'https://ghg.center/api/stac/'},\n {'rel': 'self',\n 'type': 'application/geo+json',\n 'href': 'https://ghg.center/api/stac/collections/oco2geos-co2-daygrid-v10r/items/oco2geos-co2-daygrid-v10r-20220228'}],\n 'assets': {'xco2': {'href': 's3://ghgc-data-store/oco2geos-co2-daygrid-v10r/oco2_GEOS_XCO2_L3CO2_day_B10206Ar_20220228.tif',\n 'type': 'image/tiff; application=geotiff',\n 'roles': ['data', 'layer'],\n 'title': 'Average Dry-Air Column CO2',\n 'proj:bbox': [-180.3125, -90.25, 179.6875, 90.25],\n 'proj:epsg': 4326.0,\n 'proj:shape': [361.0, 576.0],\n 'description': 'Daily dry air column-averaged mole fractions of carbon dioxide created from data assimilations of OCO-2 satellite retrievals.',\n 'raster:bands': [{'scale': 1.0,\n 'offset': 0.0,\n 'sampling': 'area',\n 'data_type': 'float64',\n 'histogram': {'max': 423.60419320175424,\n 'min': 411.7429234611336,\n 'count': 11.0,\n 'buckets': [37851.0,\n 30550.0,\n 19173.0,\n 11220.0,\n 15304.0,\n 31151.0,\n 45205.0,\n 15819.0,\n 1524.0,\n 139.0]},\n 'statistics': {'mean': 416.40504944204235,\n 'stddev': 2.967704894550985,\n 'maximum': 423.60419320175424,\n 'minimum': 411.7429234611336,\n 'valid_percent': 0.00048091720529393656}}],\n 'proj:geometry': {'type': 'Polygon',\n 'coordinates': [[[-180.3125, -90.25],\n [179.6875, -90.25],\n [179.6875, 90.25],\n [-180.3125, 90.25],\n [-180.3125, -90.25]]]},\n 'proj:projjson': {'id': {'code': 4326.0, 'authority': 'EPSG'},\n 'name': 'WGS 84',\n 'type': 'GeographicCRS',\n 'datum': {'name': 'World Geodetic System 1984',\n 'type': 'GeodeticReferenceFrame',\n 'ellipsoid': {'name': 'WGS 84',\n 'semi_major_axis': 6378137.0,\n 'inverse_flattening': 298.257223563}},\n '$schema': 'https://proj.org/schemas/v0.4/projjson.schema.json',\n 'coordinate_system': {'axis': [{'name': 'Geodetic latitude',\n 'unit': 'degree',\n 'direction': 'north',\n 'abbreviation': 'Lat'},\n {'name': 'Geodetic longitude',\n 'unit': 'degree',\n 'direction': 'east',\n 'abbreviation': 'Lon'}],\n 'subtype': 'ellipsoidal'}},\n 'proj:transform': [0.625, 0.0, -180.3125, 0.0, -0.5, 90.25, 0.0, 0.0, 1.0]},\n 'xco2prec': {'href': 's3://ghgc-data-store/oco2geos-co2-daygrid-v10r/oco2_GEOS_XCO2PREC_L3CO2_day_B10206Ar_20220228.tif',\n 'type': 'image/tiff; application=geotiff',\n 'roles': ['data', 'layer'],\n 'title': 'Average Dry-Air Column CO2 Precision (XCO2PREC)',\n 'proj:bbox': [-180.3125, -90.25, 179.6875, 90.25],\n 'proj:epsg': 4326.0,\n 'proj:shape': [361.0, 576.0],\n 'description': 'Random errors for daily dry air column-averaged mole fractions of carbon dioxide calculated using a posteriori diagnostics.',\n 'raster:bands': [{'scale': 1.0,\n 'offset': 0.0,\n 'sampling': 'area',\n 'data_type': 'float64',\n 'histogram': {'max': 1.0,\n 'min': 0.09999999999999999,\n 'count': 11.0,\n 'buckets': [73789.0,\n 19836.0,\n 7943.0,\n 4684.0,\n 3634.0,\n 3060.0,\n 3094.0,\n 3093.0,\n 3814.0,\n 84989.0]},\n 'statistics': {'mean': 0.5499856972588942,\n 'stddev': 0.4024318718400779,\n 'maximum': 1.0,\n 'minimum': 0.09999999999999999,\n 'valid_percent': 0.00048091720529393656}}],\n 'proj:geometry': {'type': 'Polygon',\n 'coordinates': [[[-180.3125, -90.25],\n [179.6875, -90.25],\n [179.6875, 90.25],\n [-180.3125, 90.25],\n [-180.3125, -90.25]]]},\n 'proj:projjson': {'id': {'code': 4326.0, 'authority': 'EPSG'},\n 'name': 'WGS 84',\n 'type': 'GeographicCRS',\n 'datum': {'name': 'World Geodetic System 1984',\n 'type': 'GeodeticReferenceFrame',\n 'ellipsoid': {'name': 'WGS 84',\n 'semi_major_axis': 6378137.0,\n 'inverse_flattening': 298.257223563}},\n '$schema': 'https://proj.org/schemas/v0.4/projjson.schema.json',\n 'coordinate_system': {'axis': [{'name': 'Geodetic latitude',\n 'unit': 'degree',\n 'direction': 'north',\n 'abbreviation': 'Lat'},\n {'name': 'Geodetic longitude',\n 'unit': 'degree',\n 'direction': 'east',\n 'abbreviation': 'Lon'}],\n 'subtype': 'ellipsoidal'}},\n 'proj:transform': [0.625,\n 0.0,\n -180.3125,\n 0.0,\n -0.5,\n 90.25,\n 0.0,\n 0.0,\n 1.0]}},\n 'geometry': {'type': 'Polygon',\n 'coordinates': [[[-180.3125, -90.25],\n [179.6875, -90.25],\n [179.6875, 90.25],\n [-180.3125, 90.25],\n [-180.3125, -90.25]]]},\n 'collection': 'oco2geos-co2-daygrid-v10r',\n 'properties': {'datetime': '2022-02-28T00:00:00+00:00'},\n 'stac_version': '1.0.0',\n 'stac_extensions': ['https://stac-extensions.github.io/raster/v1.1.0/schema.json',\n 'https://stac-extensions.github.io/projection/v1.1.0/schema.json']}\n\n\nBelow, we enter minimum and maximum values to provide our upper and lower bounds in rescale_values."
},
{
"objectID": "user_data_notebooks/oco2geos-co2-daygrid-v10r_User_Notebook.html#exploring-changes-in-column-averaged-xco₂-concentrations-levels-using-the-raster-api",
"href": "user_data_notebooks/oco2geos-co2-daygrid-v10r_User_Notebook.html#exploring-changes-in-column-averaged-xco₂-concentrations-levels-using-the-raster-api",
"title": "OCO-2 GEOS Column CO₂ Concentrations",
"section": "Exploring Changes in Column-Averaged XCO₂ Concentrations Levels Using the Raster API",
- "text": "Exploring Changes in Column-Averaged XCO₂ Concentrations Levels Using the Raster API\nIn this notebook, we will explore the temporal impacts of CO₂ emissions. We will visualize the outputs on a map using folium.\n\n# To access the year value from each item more easily, this will let us query more explicitly by year and month (e.g., 2020-02)\nitems = {item[\"properties\"][\"datetime\"]: item for item in items} \nasset_name = \"xco2\" #fossil fuel\n\n\n# Fetching the min and max values for a specific item\nrescale_values = {\"max\":items[list(items.keys())[0]][\"assets\"][asset_name][\"raster:bands\"][0][\"histogram\"][\"max\"], \"min\":items[list(items.keys())[0]][\"assets\"][asset_name][\"raster:bands\"][0][\"histogram\"][\"min\"]}\n\nNow, we will pass the item id, collection name, and rescaling_factor to the Raster API endpoint. We will do this twice, once for 2022-02-08 and again for 2022-01-27, so that we can visualize each event independently.\n\ncolor_map = \"magma\"\noco2_1 = requests.get(\n f\"{RASTER_API_URL}/stac/tilejson.json?collection={items[list(items.keys())[0]]['collection']}&item={items[list(items.keys())[0]]['id']}\"\n f\"&assets={asset_name}\"\n f\"&color_formula=gamma+r+1.05&colormap_name={color_map}\"\n f\"&rescale={rescale_values['min']},{rescale_values['max']}\", \n).json()\noco2_1\n\n\noco2_2 = requests.get(\n f\"{RASTER_API_URL}/stac/tilejson.json?collection={items[list(items.keys())[1]]['collection']}&item={items[list(items.keys())[1]]['id']}\"\n f\"&assets={asset_name}\"\n f\"&color_formula=gamma+r+1.05&colormap_name={color_map}\"\n f\"&rescale={rescale_values['min']},{rescale_values['max']}\", \n).json()\noco2_2"
+ "text": "Exploring Changes in Column-Averaged XCO₂ Concentrations Levels Using the Raster API\nIn this notebook, we will explore the temporal impacts of CO₂ emissions. We will visualize the outputs on a map using folium.\n\n# To access the year value from each item more easily, this will let us query more explicitly by year and month (e.g., 2020-02)\nitems = {item[\"properties\"][\"datetime\"]: item for item in items} \nasset_name = \"xco2\" #fossil fuel\n\n\n# Fetching the min and max values for a specific item\nrescale_values = {\"max\":items[list(items.keys())[0]][\"assets\"][asset_name][\"raster:bands\"][0][\"histogram\"][\"max\"], \"min\":items[list(items.keys())[0]][\"assets\"][asset_name][\"raster:bands\"][0][\"histogram\"][\"min\"]}\n\nNow, we will pass the item id, collection name, and rescaling_factor to the Raster API endpoint. We will do this twice, once for 2022-02-08 and again for 2022-01-27, so that we can visualize each event independently.\n\ncolor_map = \"magma\"\noco2_1 = requests.get(\n f\"{RASTER_API_URL}/stac/tilejson.json?collection={items[list(items.keys())[0]]['collection']}&item={items[list(items.keys())[0]]['id']}\"\n f\"&assets={asset_name}\"\n f\"&color_formula=gamma+r+1.05&colormap_name={color_map}\"\n f\"&rescale={rescale_values['min']},{rescale_values['max']}\", \n).json()\noco2_1\n\n{'tilejson': '2.2.0',\n 'version': '1.0.0',\n 'scheme': 'xyz',\n 'tiles': ['https://ghg.center/api/raster/stac/tiles/WebMercatorQuad/{z}/{x}/{y}@1x?collection=oco2geos-co2-daygrid-v10r&item=oco2geos-co2-daygrid-v10r-20220228&assets=xco2&color_formula=gamma+r+1.05&colormap_name=magma&rescale=411.7429234611336%2C423.60419320175424'],\n 'minzoom': 0,\n 'maxzoom': 24,\n 'bounds': [-180.3125, -90.25, 179.6875, 90.25],\n 'center': [-0.3125, 0.0, 0]}\n\n\n\noco2_2 = requests.get(\n f\"{RASTER_API_URL}/stac/tilejson.json?collection={items[list(items.keys())[1]]['collection']}&item={items[list(items.keys())[1]]['id']}\"\n f\"&assets={asset_name}\"\n f\"&color_formula=gamma+r+1.05&colormap_name={color_map}\"\n f\"&rescale={rescale_values['min']},{rescale_values['max']}\", \n).json()\noco2_2\n\n{'tilejson': '2.2.0',\n 'version': '1.0.0',\n 'scheme': 'xyz',\n 'tiles': ['https://ghg.center/api/raster/stac/tiles/WebMercatorQuad/{z}/{x}/{y}@1x?collection=oco2geos-co2-daygrid-v10r&item=oco2geos-co2-daygrid-v10r-20220227&assets=xco2&color_formula=gamma+r+1.05&colormap_name=magma&rescale=411.7429234611336%2C423.60419320175424'],\n 'minzoom': 0,\n 'maxzoom': 24,\n 'bounds': [-180.3125, -90.25, 179.6875, 90.25],\n 'center': [-0.3125, 0.0, 0]}"
},
{
"objectID": "user_data_notebooks/oco2geos-co2-daygrid-v10r_User_Notebook.html#visualizing-daily-column-averaged-xco₂-concentrations",
"href": "user_data_notebooks/oco2geos-co2-daygrid-v10r_User_Notebook.html#visualizing-daily-column-averaged-xco₂-concentrations",
"title": "OCO-2 GEOS Column CO₂ Concentrations",
"section": "Visualizing Daily Column-Averaged XCO₂ Concentrations",
- "text": "Visualizing Daily Column-Averaged XCO₂ Concentrations\n\n# We will import folium to map and folium.plugins to allow mapping side-by-side\nimport folium\nimport folium.plugins\n\n# Set initial zoom and center of map for XCO₂ Layer\n# Centre of map [latitude,longitude]\nmap_ = folium.plugins.DualMap(location=(34, -118), zoom_start=6)\n\n\nmap_layer_2020 = TileLayer(\n tiles=oco2_1[\"tiles\"][0],\n attr=\"GHG\",\n opacity=0.5,\n)\nmap_layer_2020.add_to(map_.m1)\n\nmap_layer_2019 = TileLayer(\n tiles=oco2_2[\"tiles\"][0],\n attr=\"GHG\",\n opacity=0.5,\n)\nmap_layer_2019.add_to(map_.m2)\n\n# visualising the map\nmap_"
+ "text": "Visualizing Daily Column-Averaged XCO₂ Concentrations\n\n# We will import folium to map and folium.plugins to allow mapping side-by-side\nimport folium\nimport folium.plugins\n\n# Set initial zoom and center of map for XCO₂ Layer\n# Centre of map [latitude,longitude]\nmap_ = folium.plugins.DualMap(location=(34, -118), zoom_start=6)\n\n\nmap_layer_2020 = TileLayer(\n tiles=oco2_1[\"tiles\"][0],\n attr=\"GHG\",\n opacity=0.5,\n)\nmap_layer_2020.add_to(map_.m1)\n\nmap_layer_2019 = TileLayer(\n tiles=oco2_2[\"tiles\"][0],\n attr=\"GHG\",\n opacity=0.5,\n)\nmap_layer_2019.add_to(map_.m2)\n\n# visualising the map\nmap_\n\n\nMake this Notebook Trusted to load map: File -> Trust Notebook"
},
{
"objectID": "user_data_notebooks/oco2geos-co2-daygrid-v10r_User_Notebook.html#visualizing-the-data-as-a-time-series",
"href": "user_data_notebooks/oco2geos-co2-daygrid-v10r_User_Notebook.html#visualizing-the-data-as-a-time-series",
"title": "OCO-2 GEOS Column CO₂ Concentrations",
"section": "Visualizing the Data as a Time Series",
- "text": "Visualizing the Data as a Time Series\nWe can now explore the XCO₂ concentrations time series (January 1, 2015 - February 28, 2022) available for the Dallas, Texas area of the U.S. We can plot the data set using the code below:\n\nimport matplotlib.pyplot as plt\n\nfig = plt.figure(figsize=(20, 10))\n\n\nplt.plot(\n df[\"datetime\"],\n df[\"max\"],\n color=\"red\",\n linestyle=\"-\",\n linewidth=0.5,\n label=\"CO₂ concentrations\",\n)\n\nplt.legend()\nplt.xlabel(\"Years\")\nplt.ylabel(\"CO2 concentrations ppm\")\nplt.title(\"CO₂ concentrations Values for Texas, Dallas (Jan 2015- Feb 2022)\")\n\n\nprint(items[2][\"properties\"][\"datetime\"])\n\n\noco2_3 = requests.get(\n f\"{RASTER_API_URL}/stac/tilejson.json?collection={items[2]['collection']}&item={items[2]['id']}\"\n f\"&assets={asset_name}\"\n f\"&color_formula=gamma+r+1.05&colormap_name={color_map}\"\n f\"&rescale={rescale_values['min']},{rescale_values['max']}\",\n).json()\noco2_3\n\n\n# Use bbox initial zoom and map\n# Set up a map located w/in event bounds\nimport folium\n\naoi_map_bbox = Map(\n tiles=\"OpenStreetMap\",\n location=[\n 30,-100\n ],\n zoom_start=6.8,\n)\n\nmap_layer = TileLayer(\n tiles=oco2_3[\"tiles\"][0],\n attr=\"GHG\", opacity = 0.7\n)\n\nmap_layer.add_to(aoi_map_bbox)\n\naoi_map_bbox"
+ "text": "Visualizing the Data as a Time Series\nWe can now explore the XCO₂ concentrations time series (January 1, 2015 - February 28, 2022) available for the Dallas, Texas area of the U.S. We can plot the data set using the code below:\n\nimport matplotlib.pyplot as plt\n\nfig = plt.figure(figsize=(20, 10))\n\n\nplt.plot(\n df[\"datetime\"],\n df[\"max\"],\n color=\"red\",\n linestyle=\"-\",\n linewidth=0.5,\n label=\"CO₂ concentrations\",\n)\n\nplt.legend()\nplt.xlabel(\"Years\")\nplt.ylabel(\"CO2 concentrations ppm\")\nplt.title(\"CO₂ concentrations Values for Texas, Dallas (Jan 2015- Feb 2022)\")\n\nText(0.5, 1.0, 'CO₂ concentrations Values for Texas, Dallas (Jan 2015- Feb 2022)')\n\n\n\n\n\n\nprint(items[2][\"properties\"][\"datetime\"])\n\n2022-02-26T00:00:00+00:00\n\n\n\noco2_3 = requests.get(\n f\"{RASTER_API_URL}/stac/tilejson.json?collection={items[2]['collection']}&item={items[2]['id']}\"\n f\"&assets={asset_name}\"\n f\"&color_formula=gamma+r+1.05&colormap_name={color_map}\"\n f\"&rescale={rescale_values['min']},{rescale_values['max']}\",\n).json()\noco2_3\n\n{'tilejson': '2.2.0',\n 'version': '1.0.0',\n 'scheme': 'xyz',\n 'tiles': ['https://ghg.center/api/raster/stac/tiles/WebMercatorQuad/{z}/{x}/{y}@1x?collection=oco2geos-co2-daygrid-v10r&item=oco2geos-co2-daygrid-v10r-20220226&assets=xco2&color_formula=gamma+r+1.05&colormap_name=magma&rescale=411.7429234611336%2C423.60419320175424'],\n 'minzoom': 0,\n 'maxzoom': 24,\n 'bounds': [-180.3125, -90.25, 179.6875, 90.25],\n 'center': [-0.3125, 0.0, 0]}\n\n\n\n# Use bbox initial zoom and map\n# Set up a map located w/in event bounds\nimport folium\n\naoi_map_bbox = Map(\n tiles=\"OpenStreetMap\",\n location=[\n 30,-100\n ],\n zoom_start=6.8,\n)\n\nmap_layer = TileLayer(\n tiles=oco2_3[\"tiles\"][0],\n attr=\"GHG\", opacity = 0.7\n)\n\nmap_layer.add_to(aoi_map_bbox)\n\naoi_map_bbox\n\nMake this Notebook Trusted to load map: File -> Trust Notebook"
},
{
"objectID": "user_data_notebooks/oco2geos-co2-daygrid-v10r_User_Notebook.html#summary",
@@ -193,28 +193,28 @@
"href": "user_data_notebooks/casagfed-carbonflux-monthgrid-v3_User_Notebook.html#querying-the-stac-api",
"title": "CASA-GFED3 Land Carbon Flux",
"section": "Querying the STAC API",
- "text": "Querying the STAC API\n\nimport requests\nfrom folium import Map, TileLayer\nfrom pystac_client import Client\n\n\n# Provide STAC and RASTER API endpoints\nSTAC_API_URL = \"http://ghg.center/api/stac\"\nRASTER_API_URL = \"https://ghg.center/api/raster\"\n\n# Please use the collection name similar to the one used in STAC collection.\n# Name of the collection for CASA GFED Land-Atmosphere Carbon Flux monthly emissions. \ncollection_name = \"casagfed-carbonflux-monthgrid-v3\"\n\n\n# Fetching the collection from STAC collections using appropriate endpoint.\ncollection = requests.get(f\"{STAC_API_URL}/collections/{collection_name}\").json()\ncollection\n\nExamining the contents of our collection under the temporal variable, we see that the data is available from January 2003 to December 2017. By looking at the dashboard:time density, we observe that the periodic frequency of these observations is monthly.\n\ndef get_item_count(collection_id):\n count = 0\n items_url = f\"{STAC_API_URL}/collections/{collection_id}/items\"\n\n while True:\n response = requests.get(items_url)\n\n if not response.ok:\n print(\"error getting items\")\n exit()\n\n stac = response.json()\n count += int(stac[\"context\"].get(\"returned\", 0))\n next = [link for link in stac[\"links\"] if link[\"rel\"] == \"next\"]\n\n if not next:\n break\n items_url = next[0][\"href\"]\n\n return count\n\n\n# Check the total number of items available\nnumber_of_items = get_item_count(collection_name)\nitems = requests.get(f\"{STAC_API_URL}/collections/{collection_name}/items?limit={number_of_items}\").json()[\"features\"]\nprint(f\"Found {len(items)} items\")\n\n\n# Examining the first item in the collection\nitems[0]\n\nBelow, we are entering the minimum and maximum values to provide our upper and lower bounds in rescale_values."
+ "text": "Querying the STAC API\n\nimport requests\nfrom folium import Map, TileLayer\nfrom pystac_client import Client\n\n\n# Provide STAC and RASTER API endpoints\nSTAC_API_URL = \"http://ghg.center/api/stac\"\nRASTER_API_URL = \"https://ghg.center/api/raster\"\n\n# Please use the collection name similar to the one used in STAC collection.\n# Name of the collection for CASA GFED Land-Atmosphere Carbon Flux monthly emissions. \ncollection_name = \"casagfed-carbonflux-monthgrid-v3\"\n\n\n# Fetching the collection from STAC collections using appropriate endpoint.\ncollection = requests.get(f\"{STAC_API_URL}/collections/{collection_name}\").json()\ncollection\n\n{'id': 'casagfed-carbonflux-monthgrid-v3',\n 'type': 'Collection',\n 'links': [{'rel': 'items',\n 'type': 'application/geo+json',\n 'href': 'https://ghg.center/api/stac/collections/casagfed-carbonflux-monthgrid-v3/items'},\n {'rel': 'parent',\n 'type': 'application/json',\n 'href': 'https://ghg.center/api/stac/'},\n {'rel': 'root',\n 'type': 'application/json',\n 'href': 'https://ghg.center/api/stac/'},\n {'rel': 'self',\n 'type': 'application/json',\n 'href': 'https://ghg.center/api/stac/collections/casagfed-carbonflux-monthgrid-v3'}],\n 'title': 'CASA GFED3 Land Carbon Flux',\n 'assets': None,\n 'extent': {'spatial': {'bbox': [[-180, -90, 180, 90]]},\n 'temporal': {'interval': [['2003-01-01T00:00:00+00:00',\n '2017-12-31T00:00:00+00:00']]}},\n 'license': 'CC-BY-4.0',\n 'keywords': None,\n 'providers': None,\n 'summaries': {'datetime': ['2003-01-01T00:00:00Z', '2017-12-31T00:00:00Z']},\n 'description': 'This product provides Monthly average Net Primary Production (NPP), heterotrophic respiration (Rh), wildfire emissions (FIRE), and fuel wood burning emissions (FUEL) derived from the Carnegie-Ames-Stanford-Approach – Global Fire Emissions Database version 3 (CASA-GFED3) model.',\n 'item_assets': {'rh': {'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'rh',\n 'description': 'Heterotrophic respiration'},\n 'nee': {'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'nee',\n 'description': 'Net ecosystem exchange'},\n 'npp': {'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'NPP',\n 'description': 'Net Primary Production'},\n 'fire': {'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'fire',\n 'description': 'fire emissions'},\n 'fuel': {'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'fuel',\n 'description': 'fuel emissions'}},\n 'stac_version': '1.0.0',\n 'stac_extensions': None,\n 'dashboard:is_periodic': True,\n 'dashboard:time_density': 'month'}\n\n\nExamining the contents of our collection under the temporal variable, we see that the data is available from January 2003 to December 2017. By looking at the dashboard:time density, we observe that the periodic frequency of these observations is monthly.\n\ndef get_item_count(collection_id):\n count = 0\n items_url = f\"{STAC_API_URL}/collections/{collection_id}/items\"\n\n while True:\n response = requests.get(items_url)\n\n if not response.ok:\n print(\"error getting items\")\n exit()\n\n stac = response.json()\n count += int(stac[\"context\"].get(\"returned\", 0))\n next = [link for link in stac[\"links\"] if link[\"rel\"] == \"next\"]\n\n if not next:\n break\n items_url = next[0][\"href\"]\n\n return count\n\n\n# Check the total number of items available\nnumber_of_items = get_item_count(collection_name)\nitems = requests.get(f\"{STAC_API_URL}/collections/{collection_name}/items?limit={number_of_items}\").json()[\"features\"]\nprint(f\"Found {len(items)} items\")\n\nFound 180 items\n\n\n\n# Examining the first item in the collection\nitems[0]\n\n{'id': 'casagfed-carbonflux-monthgrid-v3-201712',\n 'bbox': [-180.0, -90.0, 180.0, 90.0],\n 'type': 'Feature',\n 'links': [{'rel': 'collection',\n 'type': 'application/json',\n 'href': 'https://ghg.center/api/stac/collections/casagfed-carbonflux-monthgrid-v3'},\n {'rel': 'parent',\n 'type': 'application/json',\n 'href': 'https://ghg.center/api/stac/collections/casagfed-carbonflux-monthgrid-v3'},\n {'rel': 'root',\n 'type': 'application/json',\n 'href': 'https://ghg.center/api/stac/'},\n {'rel': 'self',\n 'type': 'application/geo+json',\n 'href': 'https://ghg.center/api/stac/collections/casagfed-carbonflux-monthgrid-v3/items/casagfed-carbonflux-monthgrid-v3-201712'}],\n 'assets': {'rh': {'href': 's3://ghgc-data-store/casagfed-carbonflux-monthgrid-v3/GEOSCarb_CASAGFED3v3_Rh_Flux_Monthly_x720_y360_201712.tif',\n 'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'rh',\n 'proj:bbox': [-180.0, -90.0, 180.0, 90.0],\n 'proj:epsg': 4326.0,\n 'proj:shape': [360.0, 720.0],\n 'description': 'Heterotrophic respiration',\n 'raster:bands': [{'scale': 1.0,\n 'offset': 0.0,\n 'sampling': 'area',\n 'data_type': 'float32',\n 'histogram': {'max': 0.6039900183677673,\n 'min': 0.0,\n 'count': 11.0,\n 'buckets': [249101.0,\n 7375.0,\n 2429.0,\n 252.0,\n 32.0,\n 5.0,\n 2.0,\n 2.0,\n 0.0,\n 2.0]},\n 'statistics': {'mean': 0.006758838426321745,\n 'stddev': 0.022668374702334404,\n 'maximum': 0.6039900183677673,\n 'minimum': 0.0,\n 'valid_percent': 0.0003858024691358025}}],\n 'proj:geometry': {'type': 'Polygon',\n 'coordinates': [[[-180.0, -90.0],\n [180.0, -90.0],\n [180.0, 90.0],\n [-180.0, 90.0],\n [-180.0, -90.0]]]},\n 'proj:projjson': {'id': {'code': 4326.0, 'authority': 'EPSG'},\n 'name': 'WGS 84',\n 'type': 'GeographicCRS',\n 'datum': {'name': 'World Geodetic System 1984',\n 'type': 'GeodeticReferenceFrame',\n 'ellipsoid': {'name': 'WGS 84',\n 'semi_major_axis': 6378137.0,\n 'inverse_flattening': 298.257223563}},\n '$schema': 'https://proj.org/schemas/v0.4/projjson.schema.json',\n 'coordinate_system': {'axis': [{'name': 'Geodetic latitude',\n 'unit': 'degree',\n 'direction': 'north',\n 'abbreviation': 'Lat'},\n {'name': 'Geodetic longitude',\n 'unit': 'degree',\n 'direction': 'east',\n 'abbreviation': 'Lon'}],\n 'subtype': 'ellipsoidal'}},\n 'proj:transform': [0.5, 0.0, -180.0, 0.0, -0.5, 90.0, 0.0, 0.0, 1.0]},\n 'nee': {'href': 's3://ghgc-data-store/casagfed-carbonflux-monthgrid-v3/GEOSCarb_CASAGFED3v3_NEE_Flux_Monthly_x720_y360_201712.tif',\n 'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'nee',\n 'proj:bbox': [-180.0, -90.0, 180.0, 90.0],\n 'proj:epsg': 4326.0,\n 'proj:shape': [360.0, 720.0],\n 'description': 'Net ecosystem exchange',\n 'raster:bands': [{'scale': 1.0,\n 'offset': 0.0,\n 'sampling': 'area',\n 'data_type': 'float32',\n 'histogram': {'max': 0.48997998237609863,\n 'min': -0.11027999967336655,\n 'count': 11.0,\n 'buckets': [663.0,\n 234393.0,\n 23809.0,\n 282.0,\n 37.0,\n 10.0,\n 4.0,\n 0.0,\n 0.0,\n 2.0]},\n 'statistics': {'mean': 0.0015448036137968302,\n 'stddev': 0.00977976992726326,\n 'maximum': 0.48997998237609863,\n 'minimum': -0.11027999967336655,\n 'valid_percent': 0.0003858024691358025}}],\n 'proj:geometry': {'type': 'Polygon',\n 'coordinates': [[[-180.0, -90.0],\n [180.0, -90.0],\n [180.0, 90.0],\n [-180.0, 90.0],\n [-180.0, -90.0]]]},\n 'proj:projjson': {'id': {'code': 4326.0, 'authority': 'EPSG'},\n 'name': 'WGS 84',\n 'type': 'GeographicCRS',\n 'datum': {'name': 'World Geodetic System 1984',\n 'type': 'GeodeticReferenceFrame',\n 'ellipsoid': {'name': 'WGS 84',\n 'semi_major_axis': 6378137.0,\n 'inverse_flattening': 298.257223563}},\n '$schema': 'https://proj.org/schemas/v0.4/projjson.schema.json',\n 'coordinate_system': {'axis': [{'name': 'Geodetic latitude',\n 'unit': 'degree',\n 'direction': 'north',\n 'abbreviation': 'Lat'},\n {'name': 'Geodetic longitude',\n 'unit': 'degree',\n 'direction': 'east',\n 'abbreviation': 'Lon'}],\n 'subtype': 'ellipsoidal'}},\n 'proj:transform': [0.5, 0.0, -180.0, 0.0, -0.5, 90.0, 0.0, 0.0, 1.0]},\n 'npp': {'href': 's3://ghgc-data-store/casagfed-carbonflux-monthgrid-v3/GEOSCarb_CASAGFED3v3_NPP_Flux_Monthly_x720_y360_201712.tif',\n 'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'NPP',\n 'proj:bbox': [-180.0, -90.0, 180.0, 90.0],\n 'proj:epsg': 4326.0,\n 'proj:shape': [360.0, 720.0],\n 'description': 'Net Primary Production',\n 'raster:bands': [{'scale': 1.0,\n 'offset': 0.0,\n 'sampling': 'area',\n 'data_type': 'float32',\n 'histogram': {'max': 0.23635999858379364,\n 'min': 0.0,\n 'count': 11.0,\n 'buckets': [244636.0,\n 3051.0,\n 1928.0,\n 2634.0,\n 4088.0,\n 2211.0,\n 428.0,\n 156.0,\n 59.0,\n 9.0]},\n 'statistics': {'mean': 0.005214035045355558,\n 'stddev': 0.021809572353959084,\n 'maximum': 0.23635999858379364,\n 'minimum': 0.0,\n 'valid_percent': 0.0003858024691358025}}],\n 'proj:geometry': {'type': 'Polygon',\n 'coordinates': [[[-180.0, -90.0],\n [180.0, -90.0],\n [180.0, 90.0],\n [-180.0, 90.0],\n [-180.0, -90.0]]]},\n 'proj:projjson': {'id': {'code': 4326.0, 'authority': 'EPSG'},\n 'name': 'WGS 84',\n 'type': 'GeographicCRS',\n 'datum': {'name': 'World Geodetic System 1984',\n 'type': 'GeodeticReferenceFrame',\n 'ellipsoid': {'name': 'WGS 84',\n 'semi_major_axis': 6378137.0,\n 'inverse_flattening': 298.257223563}},\n '$schema': 'https://proj.org/schemas/v0.4/projjson.schema.json',\n 'coordinate_system': {'axis': [{'name': 'Geodetic latitude',\n 'unit': 'degree',\n 'direction': 'north',\n 'abbreviation': 'Lat'},\n {'name': 'Geodetic longitude',\n 'unit': 'degree',\n 'direction': 'east',\n 'abbreviation': 'Lon'}],\n 'subtype': 'ellipsoidal'}},\n 'proj:transform': [0.5, 0.0, -180.0, 0.0, -0.5, 90.0, 0.0, 0.0, 1.0]},\n 'fire': {'href': 's3://ghgc-data-store/casagfed-carbonflux-monthgrid-v3/GEOSCarb_CASAGFED3v3_FIRE_Flux_Monthly_x720_y360_201712.tif',\n 'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'fire',\n 'proj:bbox': [-180.0, -90.0, 180.0, 90.0],\n 'proj:epsg': 4326.0,\n 'proj:shape': [360.0, 720.0],\n 'description': 'fire emissions',\n 'raster:bands': [{'scale': 1.0,\n 'offset': 0.0,\n 'sampling': 'area',\n 'data_type': 'float32',\n 'histogram': {'max': 0.7556899785995483,\n 'min': 0.0,\n 'count': 11.0,\n 'buckets': [258952.0, 161.0, 53.0, 22.0, 11.0, 0.0, 0.0, 0.0, 0.0, 1.0]},\n 'statistics': {'mean': 0.00025634843041189015,\n 'stddev': 0.005492232274264097,\n 'maximum': 0.7556899785995483,\n 'minimum': 0.0,\n 'valid_percent': 0.0003858024691358025}}],\n 'proj:geometry': {'type': 'Polygon',\n 'coordinates': [[[-180.0, -90.0],\n [180.0, -90.0],\n [180.0, 90.0],\n [-180.0, 90.0],\n [-180.0, -90.0]]]},\n 'proj:projjson': {'id': {'code': 4326.0, 'authority': 'EPSG'},\n 'name': 'WGS 84',\n 'type': 'GeographicCRS',\n 'datum': {'name': 'World Geodetic System 1984',\n 'type': 'GeodeticReferenceFrame',\n 'ellipsoid': {'name': 'WGS 84',\n 'semi_major_axis': 6378137.0,\n 'inverse_flattening': 298.257223563}},\n '$schema': 'https://proj.org/schemas/v0.4/projjson.schema.json',\n 'coordinate_system': {'axis': [{'name': 'Geodetic latitude',\n 'unit': 'degree',\n 'direction': 'north',\n 'abbreviation': 'Lat'},\n {'name': 'Geodetic longitude',\n 'unit': 'degree',\n 'direction': 'east',\n 'abbreviation': 'Lon'}],\n 'subtype': 'ellipsoidal'}},\n 'proj:transform': [0.5, 0.0, -180.0, 0.0, -0.5, 90.0, 0.0, 0.0, 1.0]},\n 'fuel': {'href': 's3://ghgc-data-store/casagfed-carbonflux-monthgrid-v3/GEOSCarb_CASAGFED3v3_FUEL_Flux_Monthly_x720_y360_201712.tif',\n 'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'fuel',\n 'proj:bbox': [-180.0, -90.0, 180.0, 90.0],\n 'proj:epsg': 4326.0,\n 'proj:shape': [360.0, 720.0],\n 'description': 'fuel emissions',\n 'raster:bands': [{'scale': 1.0,\n 'offset': 0.0,\n 'sampling': 'area',\n 'data_type': 'float32',\n 'histogram': {'max': 0.020759999752044678,\n 'min': 0.0,\n 'count': 11.0,\n 'buckets': [257568.0,\n 1150.0,\n 284.0,\n 115.0,\n 47.0,\n 21.0,\n 5.0,\n 6.0,\n 3.0,\n 1.0]},\n 'statistics': {'mean': 5.057307134848088e-05,\n 'stddev': 0.0003876804548781365,\n 'maximum': 0.020759999752044678,\n 'minimum': 0.0,\n 'valid_percent': 0.0003858024691358025}}],\n 'proj:geometry': {'type': 'Polygon',\n 'coordinates': [[[-180.0, -90.0],\n [180.0, -90.0],\n [180.0, 90.0],\n [-180.0, 90.0],\n [-180.0, -90.0]]]},\n 'proj:projjson': {'id': {'code': 4326.0, 'authority': 'EPSG'},\n 'name': 'WGS 84',\n 'type': 'GeographicCRS',\n 'datum': {'name': 'World Geodetic System 1984',\n 'type': 'GeodeticReferenceFrame',\n 'ellipsoid': {'name': 'WGS 84',\n 'semi_major_axis': 6378137.0,\n 'inverse_flattening': 298.257223563}},\n '$schema': 'https://proj.org/schemas/v0.4/projjson.schema.json',\n 'coordinate_system': {'axis': [{'name': 'Geodetic latitude',\n 'unit': 'degree',\n 'direction': 'north',\n 'abbreviation': 'Lat'},\n {'name': 'Geodetic longitude',\n 'unit': 'degree',\n 'direction': 'east',\n 'abbreviation': 'Lon'}],\n 'subtype': 'ellipsoidal'}},\n 'proj:transform': [0.5, 0.0, -180.0, 0.0, -0.5, 90.0, 0.0, 0.0, 1.0]}},\n 'geometry': {'type': 'Polygon',\n 'coordinates': [[[-180, -90],\n [180, -90],\n [180, 90],\n [-180, 90],\n [-180, -90]]]},\n 'collection': 'casagfed-carbonflux-monthgrid-v3',\n 'properties': {'end_datetime': '2017-12-31T00:00:00+00:00',\n 'start_datetime': '2017-12-01T00:00:00+00:00'},\n 'stac_version': '1.0.0',\n 'stac_extensions': []}\n\n\nBelow, we are entering the minimum and maximum values to provide our upper and lower bounds in rescale_values."
},
{
"objectID": "user_data_notebooks/casagfed-carbonflux-monthgrid-v3_User_Notebook.html#exploring-changes-in-carbon-flux-levels-using-the-raster-api",
"href": "user_data_notebooks/casagfed-carbonflux-monthgrid-v3_User_Notebook.html#exploring-changes-in-carbon-flux-levels-using-the-raster-api",
"title": "CASA-GFED3 Land Carbon Flux",
"section": "Exploring Changes in Carbon Flux Levels Using the Raster API",
- "text": "Exploring Changes in Carbon Flux Levels Using the Raster API\nWe will explore changes in land atmosphere Carbon flux Heterotrophic Respiration. In this notebook, we’ll explore the impacts of these emissions and explore these changes over time. We’ll then visualize the outputs on a map using folium.\n\n# To access the year value from each item more easily, this will let us query more explicity by year and month (e.g., 2020-02)\nitems = {item[\"properties\"][\"start_datetime\"][:7]: item for item in items} \n# rh = Heterotrophic Respiration\nasset_name = \"rh\"\n\n\nrescale_values = {\"max\":items[list(items.keys())[0]][\"assets\"][asset_name][\"raster:bands\"][0][\"histogram\"][\"max\"], \"min\":items[list(items.keys())[0]][\"assets\"][asset_name][\"raster:bands\"][0][\"histogram\"][\"min\"]}\n\nNow, we will pass the item id, collection name, and rescaling_factor to the Raster API endpoint. We will do this twice, once for December 2003 and again for December 2017, so that we can visualize each event independently.\n\ncolor_map = \"purd\" # please select the color ramp from matplotlib library.\ndecember_2003_tile = requests.get(\n f\"{RASTER_API_URL}/stac/tilejson.json?collection={items['2003-12']['collection']}&item={items['2003-12']['id']}\"\n f\"&assets={asset_name}\"\n f\"&color_formula=gamma+r+1.05&colormap_name={color_map}\"\n f\"&rescale={rescale_values['min']},{rescale_values['max']}\", \n).json()\ndecember_2003_tile\n\n\ndecember_2017_tile = requests.get(\n f\"{RASTER_API_URL}/stac/tilejson.json?collection={items['2017-12']['collection']}&item={items['2017-12']['id']}\"\n f\"&assets={asset_name}\"\n f\"&color_formula=gamma+r+1.05&colormap_name={color_map}\"\n f\"&rescale={rescale_values['min']},{rescale_values['max']}\", \n).json()\ndecember_2017_tile"
+ "text": "Exploring Changes in Carbon Flux Levels Using the Raster API\nWe will explore changes in land atmosphere Carbon flux Heterotrophic Respiration. In this notebook, we’ll explore the impacts of these emissions and explore these changes over time. We’ll then visualize the outputs on a map using folium.\n\n# To access the year value from each item more easily, this will let us query more explicity by year and month (e.g., 2020-02)\nitems = {item[\"properties\"][\"start_datetime\"][:7]: item for item in items} \n# rh = Heterotrophic Respiration\nasset_name = \"rh\"\n\n\nrescale_values = {\"max\":items[list(items.keys())[0]][\"assets\"][asset_name][\"raster:bands\"][0][\"histogram\"][\"max\"], \"min\":items[list(items.keys())[0]][\"assets\"][asset_name][\"raster:bands\"][0][\"histogram\"][\"min\"]}\n\nNow, we will pass the item id, collection name, and rescaling_factor to the Raster API endpoint. We will do this twice, once for December 2003 and again for December 2017, so that we can visualize each event independently.\n\ncolor_map = \"purd\" # please select the color ramp from matplotlib library.\ndecember_2003_tile = requests.get(\n f\"{RASTER_API_URL}/stac/tilejson.json?collection={items['2003-12']['collection']}&item={items['2003-12']['id']}\"\n f\"&assets={asset_name}\"\n f\"&color_formula=gamma+r+1.05&colormap_name={color_map}\"\n f\"&rescale={rescale_values['min']},{rescale_values['max']}\", \n).json()\ndecember_2003_tile\n\n{'tilejson': '2.2.0',\n 'version': '1.0.0',\n 'scheme': 'xyz',\n 'tiles': ['https://ghg.center/api/raster/stac/tiles/WebMercatorQuad/{z}/{x}/{y}@1x?collection=casagfed-carbonflux-monthgrid-v3&item=casagfed-carbonflux-monthgrid-v3-200312&assets=rh&color_formula=gamma+r+1.05&colormap_name=purd&rescale=0.0%2C0.6039900183677673'],\n 'minzoom': 0,\n 'maxzoom': 24,\n 'bounds': [-180.0, -90.0, 180.0, 90.0],\n 'center': [0.0, 0.0, 0]}\n\n\n\ndecember_2017_tile = requests.get(\n f\"{RASTER_API_URL}/stac/tilejson.json?collection={items['2017-12']['collection']}&item={items['2017-12']['id']}\"\n f\"&assets={asset_name}\"\n f\"&color_formula=gamma+r+1.05&colormap_name={color_map}\"\n f\"&rescale={rescale_values['min']},{rescale_values['max']}\", \n).json()\ndecember_2017_tile\n\n{'tilejson': '2.2.0',\n 'version': '1.0.0',\n 'scheme': 'xyz',\n 'tiles': ['https://ghg.center/api/raster/stac/tiles/WebMercatorQuad/{z}/{x}/{y}@1x?collection=casagfed-carbonflux-monthgrid-v3&item=casagfed-carbonflux-monthgrid-v3-201712&assets=rh&color_formula=gamma+r+1.05&colormap_name=purd&rescale=0.0%2C0.6039900183677673'],\n 'minzoom': 0,\n 'maxzoom': 24,\n 'bounds': [-180.0, -90.0, 180.0, 90.0],\n 'center': [0.0, 0.0, 0]}"
},
{
"objectID": "user_data_notebooks/casagfed-carbonflux-monthgrid-v3_User_Notebook.html#visualizing-land-atmosphere-carbon-flux-heterotrophic-respiration",
"href": "user_data_notebooks/casagfed-carbonflux-monthgrid-v3_User_Notebook.html#visualizing-land-atmosphere-carbon-flux-heterotrophic-respiration",
"title": "CASA-GFED3 Land Carbon Flux",
"section": "Visualizing Land-Atmosphere Carbon Flux (Heterotrophic Respiration)",
- "text": "Visualizing Land-Atmosphere Carbon Flux (Heterotrophic Respiration)\n\n# We will import folium to map and folium.plugins to allow mapping side-by-side\nimport folium\nimport folium.plugins\n\n# Set initial zoom and center of map for CO₂ Layer\nmap_ = folium.plugins.DualMap(location=(34, -118), zoom_start=6)\n\n# December 2003\nmap_layer_2003 = TileLayer(\n tiles=december_2003_tile[\"tiles\"][0],\n attr=\"GHG\",\n opacity=0.8,\n)\nmap_layer_2003.add_to(map_.m1)\n\n# December 2017\nmap_layer_2017 = TileLayer(\n tiles=december_2017_tile[\"tiles\"][0],\n attr=\"GHG\",\n opacity=0.8,\n)\nmap_layer_2017.add_to(map_.m2)\n\n# visualising the map\nmap_"
+ "text": "Visualizing Land-Atmosphere Carbon Flux (Heterotrophic Respiration)\n\n# We will import folium to map and folium.plugins to allow mapping side-by-side\nimport folium\nimport folium.plugins\n\n# Set initial zoom and center of map for CO₂ Layer\nmap_ = folium.plugins.DualMap(location=(34, -118), zoom_start=6)\n\n# December 2003\nmap_layer_2003 = TileLayer(\n tiles=december_2003_tile[\"tiles\"][0],\n attr=\"GHG\",\n opacity=0.8,\n)\nmap_layer_2003.add_to(map_.m1)\n\n# December 2017\nmap_layer_2017 = TileLayer(\n tiles=december_2017_tile[\"tiles\"][0],\n attr=\"GHG\",\n opacity=0.8,\n)\nmap_layer_2017.add_to(map_.m2)\n\n# visualising the map\nmap_\n\n\nMake this Notebook Trusted to load map: File -> Trust Notebook"
},
{
"objectID": "user_data_notebooks/casagfed-carbonflux-monthgrid-v3_User_Notebook.html#visualizing-the-data-as-a-time-series",
"href": "user_data_notebooks/casagfed-carbonflux-monthgrid-v3_User_Notebook.html#visualizing-the-data-as-a-time-series",
"title": "CASA-GFED3 Land Carbon Flux",
"section": "Visualizing the Data as a Time Series",
- "text": "Visualizing the Data as a Time Series\nWe can now explore the Heterotrophic Respiration time series (January 2017 -December 2017) available for the Dallas, Texas area of the U.S. We can plot the data set using the code below:\n\nimport matplotlib.pyplot as plt\n\nfig = plt.figure(figsize=(20, 10))\n\n\nplt.plot(\n df[\"date\"],\n df[\"max\"],\n color=\"red\",\n linestyle=\"-\",\n linewidth=0.5,\n label=\"Max monthly Carbon emissions\",\n)\n\nplt.legend()\nplt.xlabel(\"Years\")\nplt.ylabel(\"kg Carbon/m2/month\")\nplt.title(\"Heterotrophic Respiration Values for Texas, Dallas (2003-2017)\")\n\n\nprint(items[2][\"properties\"][\"start_datetime\"])\n\n\noctober_tile = requests.get(\n f\"{RASTER_API_URL}/stac/tilejson.json?collection={items[2]['collection']}&item={items[2]['id']}\"\n f\"&assets={asset_name}\"\n f\"&color_formula=gamma+r+1.05&colormap_name={color_map}\"\n f\"&rescale={rescale_values['min']},{rescale_values['max']}\",\n).json()\noctober_tile\n\n\n# Use bbox initial zoom and map\n# Set up a map located w/in event bounds\nimport folium\n\naoi_map_bbox = Map(\n tiles=\"OpenStreetMap\",\n location=[\n -22.421460,\n 14.268801,\n ],\n zoom_start=8,\n)\n\nmap_layer = TileLayer(\n tiles=october_tile[\"tiles\"][0],\n attr=\"GHG\", opacity = 0.8\n)\n\nmap_layer.add_to(aoi_map_bbox)\n\naoi_map_bbox"
+ "text": "Visualizing the Data as a Time Series\nWe can now explore the Heterotrophic Respiration time series (January 2017 -December 2017) available for the Dallas, Texas area of the U.S. We can plot the data set using the code below:\n\nimport matplotlib.pyplot as plt\n\nfig = plt.figure(figsize=(20, 10))\n\n\nplt.plot(\n df[\"date\"],\n df[\"max\"],\n color=\"red\",\n linestyle=\"-\",\n linewidth=0.5,\n label=\"Max monthly Carbon emissions\",\n)\n\nplt.legend()\nplt.xlabel(\"Years\")\nplt.ylabel(\"kg Carbon/m2/month\")\nplt.title(\"Heterotrophic Respiration Values for Texas, Dallas (2003-2017)\")\n\nText(0.5, 1.0, 'Heterotrophic Respiration Values for Texas, Dallas (2003-2017)')\n\n\n\n\n\n\nprint(items[2][\"properties\"][\"start_datetime\"])\n\n2017-10-01T00:00:00+00:00\n\n\n\noctober_tile = requests.get(\n f\"{RASTER_API_URL}/stac/tilejson.json?collection={items[2]['collection']}&item={items[2]['id']}\"\n f\"&assets={asset_name}\"\n f\"&color_formula=gamma+r+1.05&colormap_name={color_map}\"\n f\"&rescale={rescale_values['min']},{rescale_values['max']}\",\n).json()\noctober_tile\n\n{'tilejson': '2.2.0',\n 'version': '1.0.0',\n 'scheme': 'xyz',\n 'tiles': ['https://ghg.center/api/raster/stac/tiles/WebMercatorQuad/{z}/{x}/{y}@1x?collection=casagfed-carbonflux-monthgrid-v3&item=casagfed-carbonflux-monthgrid-v3-201710&assets=rh&color_formula=gamma+r+1.05&colormap_name=purd&rescale=0.0%2C0.6039900183677673'],\n 'minzoom': 0,\n 'maxzoom': 24,\n 'bounds': [-180.0, -90.0, 180.0, 90.0],\n 'center': [0.0, 0.0, 0]}\n\n\n\n# Use bbox initial zoom and map\n# Set up a map located w/in event bounds\nimport folium\n\naoi_map_bbox = Map(\n tiles=\"OpenStreetMap\",\n location=[\n -22.421460,\n 14.268801,\n ],\n zoom_start=8,\n)\n\nmap_layer = TileLayer(\n tiles=october_tile[\"tiles\"][0],\n attr=\"GHG\", opacity = 0.8\n)\n\nmap_layer.add_to(aoi_map_bbox)\n\naoi_map_bbox\n\nMake this Notebook Trusted to load map: File -> Trust Notebook"
},
{
"objectID": "user_data_notebooks/casagfed-carbonflux-monthgrid-v3_User_Notebook.html#summary",
@@ -249,14 +249,14 @@
"href": "user_data_notebooks/odiac-ffco2-monthgrid-v2022_User_Notebook.html#querying-the-stac-api",
"title": "ODIAC Fossil Fuel CO₂ Emissions",
"section": "Querying the STAC API",
- "text": "Querying the STAC API\n\nimport requests\nfrom folium import Map, TileLayer\nfrom pystac_client import Client\n\n\n# Provide STAC and RASTER API endpoints\nSTAC_API_URL = \"http://ghg.center/api/stac\"\nRASTER_API_URL = \"https://ghg.center/api/raster\"\n\n#Please use the collection name similar to the one used in STAC collection.\n# Name of the collection for ODIAC dataset. \ncollection_name = \"odiac-ffco2-monthgrid-v2022\"\n\n\n# Fetching the collection from STAC collections using appropriate endpoint.\ncollection = requests.get(f\"{STAC_API_URL}/collections/{collection_name}\").json()\ncollection\n\n{'id': 'odiac-ffco2-monthgrid-v2022',\n 'type': 'Collection',\n 'links': [{'rel': 'items',\n 'type': 'application/geo+json',\n 'href': 'https://e6v7j4ejp6.execute-api.us-west-2.amazonaws.com/api/stac/collections/odiac-ffco2-monthgrid-v2022/items'},\n {'rel': 'parent',\n 'type': 'application/json',\n 'href': 'https://e6v7j4ejp6.execute-api.us-west-2.amazonaws.com/api/stac/'},\n {'rel': 'root',\n 'type': 'application/json',\n 'href': 'https://e6v7j4ejp6.execute-api.us-west-2.amazonaws.com/api/stac/'},\n {'rel': 'self',\n 'type': 'application/json',\n 'href': 'https://e6v7j4ejp6.execute-api.us-west-2.amazonaws.com/api/stac/collections/odiac-ffco2-monthgrid-v2022'}],\n 'title': 'ODIAC Fossil Fuel CO₂ Emissions',\n 'assets': None,\n 'extent': {'spatial': {'bbox': [[-180, -90, 180, 90]]},\n 'temporal': {'interval': [['2000-01-01T00:00:00+00:00',\n '2021-12-31T00:00:00+00:00']]}},\n 'license': 'CC-BY-4.0',\n 'keywords': None,\n 'providers': [{'url': 'https://www.nies.go.jp',\n 'name': 'National Institute for Environmental Studies',\n 'roles': ['producer', 'licensor'],\n 'description': None}],\n 'summaries': {'datetime': ['2000-01-01T00:00:00Z', '2021-12-31T00:00:00Z']},\n 'description': 'The Open-Data Inventory for Anthropogenic Carbon dioxide (ODIAC) is a high-spatial resolution global emission data product of CO₂ emissions from fossil fuel combustion (Oda and Maksyutov, 2011). ODIAC pioneered the combined use of space-based nighttime light data and individual power plant emission/location profiles to estimate the global spatial extent of fossil fuel CO₂ emissions. With the innovative emission modeling approach, ODIAC achieved the fine picture of global fossil fuel CO₂ emissions at a 1x1km.',\n 'item_assets': {'co2-emissions': {'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'Fossil Fuel CO₂ Emissions',\n 'description': 'CO₂ emissions from fossil fuel combustion, cement production and gas flaring.'}},\n 'stac_version': '1.0.0',\n 'stac_extensions': None,\n 'dashboard:is_periodic': True,\n 'dashboard:time_density': 'month'}\n\n\nExamining the contents of our collection under summaries we see that the data is available from January 2000 to December 2021. By looking at the dashboard:time density we observe that the periodic frequency of these observations is monthly.\n\ndef get_item_count(collection_id):\n count = 0\n items_url = f\"{STAC_API_URL}/collections/{collection_id}/items\"\n\n while True:\n response = requests.get(items_url)\n\n if not response.ok:\n print(\"error getting items\")\n exit()\n\n stac = response.json()\n count += int(stac[\"context\"].get(\"returned\", 0))\n next = [link for link in stac[\"links\"] if link[\"rel\"] == \"next\"]\n\n if not next:\n break\n items_url = next[0][\"href\"]\n\n return count\n\n\n# Check total number of items available\nnumber_of_items = get_item_count(collection_name)\nitems = requests.get(f\"{STAC_API_URL}/collections/{collection_name}/items?limit={number_of_items}\").json()[\"features\"]\nprint(f\"Found {len(items)} items\")\n\nFound 264 items\n\n\n\nitems[0]\n\n{'id': 'odiac-ffco2-monthgrid-v2022-202112',\n 'bbox': [-180.0, -90.0, 180.0, 90.0],\n 'type': 'Feature',\n 'links': [{'rel': 'collection',\n 'type': 'application/json',\n 'href': 'https://e6v7j4ejp6.execute-api.us-west-2.amazonaws.com/api/stac/collections/odiac-ffco2-monthgrid-v2022'},\n {'rel': 'parent',\n 'type': 'application/json',\n 'href': 'https://e6v7j4ejp6.execute-api.us-west-2.amazonaws.com/api/stac/collections/odiac-ffco2-monthgrid-v2022'},\n {'rel': 'root',\n 'type': 'application/json',\n 'href': 'https://e6v7j4ejp6.execute-api.us-west-2.amazonaws.com/api/stac/'},\n {'rel': 'self',\n 'type': 'application/geo+json',\n 'href': 'https://e6v7j4ejp6.execute-api.us-west-2.amazonaws.com/api/stac/collections/odiac-ffco2-monthgrid-v2022/items/odiac-ffco2-monthgrid-v2022-202112'}],\n 'assets': {'co2-emissions': {'href': 's3://ghgc-data-store/odiac-ffco2-monthgrid-v2022/odiac2022_1km_excl_intl_202112.tif',\n 'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'Fossil Fuel CO₂ Emissions',\n 'proj:bbox': [-180.0, -90.0, 180.0, 90.0],\n 'proj:epsg': 4326.0,\n 'proj:shape': [21600.0, 43200.0],\n 'description': 'CO₂ emissions from fossil fuel combustion, cement production and gas flaring.',\n 'raster:bands': [{'scale': 1.0,\n 'nodata': -9999.0,\n 'offset': 0.0,\n 'sampling': 'area',\n 'data_type': 'float32',\n 'histogram': {'max': 2497.01904296875,\n 'min': -138.71914672851562,\n 'count': 11.0,\n 'buckets': [523457.0, 691.0, 95.0, 28.0, 11.0, 2.0, 2.0, 1.0, 0.0, 1.0]},\n 'statistics': {'mean': 0.9804128408432007,\n 'stddev': 14.766693454324674,\n 'maximum': 2497.01904296875,\n 'minimum': -138.71914672851562,\n 'valid_percent': 100.0}}],\n 'proj:geometry': {'type': 'Polygon',\n 'coordinates': [[[-180.0, -90.0],\n [180.0, -90.0],\n [180.0, 90.0],\n [-180.0, 90.0],\n [-180.0, -90.0]]]},\n 'proj:projjson': {'id': {'code': 4326.0, 'authority': 'EPSG'},\n 'name': 'WGS 84',\n 'type': 'GeographicCRS',\n 'datum': {'name': 'World Geodetic System 1984',\n 'type': 'GeodeticReferenceFrame',\n 'ellipsoid': {'name': 'WGS 84',\n 'semi_major_axis': 6378137.0,\n 'inverse_flattening': 298.257223563}},\n '$schema': 'https://proj.org/schemas/v0.4/projjson.schema.json',\n 'coordinate_system': {'axis': [{'name': 'Geodetic latitude',\n 'unit': 'degree',\n 'direction': 'north',\n 'abbreviation': 'Lat'},\n {'name': 'Geodetic longitude',\n 'unit': 'degree',\n 'direction': 'east',\n 'abbreviation': 'Lon'}],\n 'subtype': 'ellipsoidal'}},\n 'proj:transform': [0.008333333333333333,\n 0.0,\n -180.0,\n 0.0,\n -0.008333333333333333,\n 90.0,\n 0.0,\n 0.0,\n 1.0]}},\n 'geometry': {'type': 'Polygon',\n 'coordinates': [[[-180, -90],\n [180, -90],\n [180, 90],\n [-180, 90],\n [-180, -90]]]},\n 'collection': 'odiac-ffco2-monthgrid-v2022',\n 'properties': {'end_datetime': '2021-12-31T00:00:00+00:00',\n 'start_datetime': '2021-12-01T00:00:00+00:00'},\n 'stac_version': '1.0.0',\n 'stac_extensions': []}\n\n\nThis makes sense as there are 22 years between 2000 - 2021, with 12 months per year, meaning 264 records in total.\nBelow, we are entering the minimum and maximum values to provide our upper and lower bounds in rescale_values."
+ "text": "Querying the STAC API\n\nimport requests\nfrom folium import Map, TileLayer\nfrom pystac_client import Client\n\n\n# Provide STAC and RASTER API endpoints\nSTAC_API_URL = \"http://ghg.center/api/stac\"\nRASTER_API_URL = \"https://ghg.center/api/raster\"\n\n#Please use the collection name similar to the one used in STAC collection.\n# Name of the collection for ODIAC dataset. \ncollection_name = \"odiac-ffco2-monthgrid-v2022\"\n\n\n# Fetching the collection from STAC collections using appropriate endpoint.\ncollection = requests.get(f\"{STAC_API_URL}/collections/{collection_name}\").json()\ncollection\n\n{'id': 'odiac-ffco2-monthgrid-v2022',\n 'type': 'Collection',\n 'links': [{'rel': 'items',\n 'type': 'application/geo+json',\n 'href': 'https://ghg.center/api/stac/collections/odiac-ffco2-monthgrid-v2022/items'},\n {'rel': 'parent',\n 'type': 'application/json',\n 'href': 'https://ghg.center/api/stac/'},\n {'rel': 'root',\n 'type': 'application/json',\n 'href': 'https://ghg.center/api/stac/'},\n {'rel': 'self',\n 'type': 'application/json',\n 'href': 'https://ghg.center/api/stac/collections/odiac-ffco2-monthgrid-v2022'}],\n 'title': 'ODIAC Fossil Fuel CO₂ Emissions',\n 'assets': None,\n 'extent': {'spatial': {'bbox': [[-180, -90, 180, 90]]},\n 'temporal': {'interval': [['2000-01-01T00:00:00+00:00',\n '2021-12-31T00:00:00+00:00']]}},\n 'license': 'CC-BY-4.0',\n 'keywords': None,\n 'providers': [{'url': 'https://www.nies.go.jp',\n 'name': 'National Institute for Environmental Studies',\n 'roles': ['producer', 'licensor'],\n 'description': None}],\n 'summaries': {'datetime': ['2000-01-01T00:00:00Z', '2021-12-31T00:00:00Z']},\n 'description': 'The Open-Data Inventory for Anthropogenic Carbon dioxide (ODIAC) is a high-spatial resolution global emission data product of CO₂ emissions from fossil fuel combustion (Oda and Maksyutov, 2011). ODIAC pioneered the combined use of space-based nighttime light data and individual power plant emission/location profiles to estimate the global spatial extent of fossil fuel CO₂ emissions. With the innovative emission modeling approach, ODIAC achieved the fine picture of global fossil fuel CO₂ emissions at a 1x1km.',\n 'item_assets': {'co2-emissions': {'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'Fossil Fuel CO₂ Emissions',\n 'description': 'CO₂ emissions from fossil fuel combustion, cement production and gas flaring.'}},\n 'stac_version': '1.0.0',\n 'stac_extensions': None,\n 'dashboard:is_periodic': True,\n 'dashboard:time_density': 'month'}\n\n\nExamining the contents of our collection under summaries we see that the data is available from January 2000 to December 2021. By looking at the dashboard:time density we observe that the periodic frequency of these observations is monthly.\n\ndef get_item_count(collection_id):\n count = 0\n items_url = f\"{STAC_API_URL}/collections/{collection_id}/items\"\n\n while True:\n response = requests.get(items_url)\n\n if not response.ok:\n print(\"error getting items\")\n exit()\n\n stac = response.json()\n count += int(stac[\"context\"].get(\"returned\", 0))\n next = [link for link in stac[\"links\"] if link[\"rel\"] == \"next\"]\n\n if not next:\n break\n items_url = next[0][\"href\"]\n\n return count\n\n\n# Check total number of items available\nnumber_of_items = get_item_count(collection_name)\nitems = requests.get(f\"{STAC_API_URL}/collections/{collection_name}/items?limit={number_of_items}\").json()[\"features\"]\nprint(f\"Found {len(items)} items\")\n\nFound 264 items\n\n\n\nitems[0]\n\n{'id': 'odiac-ffco2-monthgrid-v2022-202112',\n 'bbox': [-180.0, -90.0, 180.0, 90.0],\n 'type': 'Feature',\n 'links': [{'rel': 'collection',\n 'type': 'application/json',\n 'href': 'https://ghg.center/api/stac/collections/odiac-ffco2-monthgrid-v2022'},\n {'rel': 'parent',\n 'type': 'application/json',\n 'href': 'https://ghg.center/api/stac/collections/odiac-ffco2-monthgrid-v2022'},\n {'rel': 'root',\n 'type': 'application/json',\n 'href': 'https://ghg.center/api/stac/'},\n {'rel': 'self',\n 'type': 'application/geo+json',\n 'href': 'https://ghg.center/api/stac/collections/odiac-ffco2-monthgrid-v2022/items/odiac-ffco2-monthgrid-v2022-202112'}],\n 'assets': {'co2-emissions': {'href': 's3://ghgc-data-store/odiac-ffco2-monthgrid-v2022/odiac2022_1km_excl_intl_202112.tif',\n 'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'Fossil Fuel CO₂ Emissions',\n 'proj:bbox': [-180.0, -90.0, 180.0, 90.0],\n 'proj:epsg': 4326.0,\n 'proj:shape': [21600.0, 43200.0],\n 'description': 'CO₂ emissions from fossil fuel combustion, cement production and gas flaring.',\n 'raster:bands': [{'scale': 1.0,\n 'nodata': -9999.0,\n 'offset': 0.0,\n 'sampling': 'area',\n 'data_type': 'float32',\n 'histogram': {'max': 2497.01904296875,\n 'min': -138.71914672851562,\n 'count': 11.0,\n 'buckets': [523457.0, 691.0, 95.0, 28.0, 11.0, 2.0, 2.0, 1.0, 0.0, 1.0]},\n 'statistics': {'mean': 0.9804128408432007,\n 'stddev': 14.766693454324674,\n 'maximum': 2497.01904296875,\n 'minimum': -138.71914672851562,\n 'valid_percent': 100.0}}],\n 'proj:geometry': {'type': 'Polygon',\n 'coordinates': [[[-180.0, -90.0],\n [180.0, -90.0],\n [180.0, 90.0],\n [-180.0, 90.0],\n [-180.0, -90.0]]]},\n 'proj:projjson': {'id': {'code': 4326.0, 'authority': 'EPSG'},\n 'name': 'WGS 84',\n 'type': 'GeographicCRS',\n 'datum': {'name': 'World Geodetic System 1984',\n 'type': 'GeodeticReferenceFrame',\n 'ellipsoid': {'name': 'WGS 84',\n 'semi_major_axis': 6378137.0,\n 'inverse_flattening': 298.257223563}},\n '$schema': 'https://proj.org/schemas/v0.4/projjson.schema.json',\n 'coordinate_system': {'axis': [{'name': 'Geodetic latitude',\n 'unit': 'degree',\n 'direction': 'north',\n 'abbreviation': 'Lat'},\n {'name': 'Geodetic longitude',\n 'unit': 'degree',\n 'direction': 'east',\n 'abbreviation': 'Lon'}],\n 'subtype': 'ellipsoidal'}},\n 'proj:transform': [0.008333333333333333,\n 0.0,\n -180.0,\n 0.0,\n -0.008333333333333333,\n 90.0,\n 0.0,\n 0.0,\n 1.0]}},\n 'geometry': {'type': 'Polygon',\n 'coordinates': [[[-180, -90],\n [180, -90],\n [180, 90],\n [-180, 90],\n [-180, -90]]]},\n 'collection': 'odiac-ffco2-monthgrid-v2022',\n 'properties': {'end_datetime': '2021-12-31T00:00:00+00:00',\n 'start_datetime': '2021-12-01T00:00:00+00:00'},\n 'stac_version': '1.0.0',\n 'stac_extensions': []}\n\n\nThis makes sense as there are 22 years between 2000 - 2021, with 12 months per year, meaning 264 records in total.\nBelow, we are entering the minimum and maximum values to provide our upper and lower bounds in rescale_values."
},
{
"objectID": "user_data_notebooks/odiac-ffco2-monthgrid-v2022_User_Notebook.html#exploring-changes-in-carbon-dioxide-co₂-levels-using-the-raster-api",
"href": "user_data_notebooks/odiac-ffco2-monthgrid-v2022_User_Notebook.html#exploring-changes-in-carbon-dioxide-co₂-levels-using-the-raster-api",
"title": "ODIAC Fossil Fuel CO₂ Emissions",
"section": "Exploring Changes in Carbon Dioxide (CO₂) levels using the Raster API",
- "text": "Exploring Changes in Carbon Dioxide (CO₂) levels using the Raster API\nWe will explore changes in fossil fuel emissions in urban egions. In this notebook, we’ll explore the impacts of these emissions and explore these changes over time. We’ll then visualize the outputs on a map using folium.\n\n# to access the year value from each item more easily, this will let us query more explicity by year and month (e.g., 2020-02)\nitems = {item[\"properties\"][\"start_datetime\"][:7]: item for item in items} \nasset_name = \"co2-emissions\"\n\n\nrescale_values = {\"max\":items[list(items.keys())[0]][\"assets\"][asset_name][\"raster:bands\"][0][\"histogram\"][\"max\"], \"min\":items[list(items.keys())[0]][\"assets\"][asset_name][\"raster:bands\"][0][\"histogram\"][\"min\"]}\n\nNow we will pass the item id, collection name, and rescaling_factor to the Raster API endpoint. We will do this twice, once for January 2020 and again for January 2000, so that we can visualize each event independently.\n\ncolor_map = \"rainbow\" # please select the color ramp from matplotlib library.\njanuary_2020_tile = requests.get(\n f\"{RASTER_API_URL}/stac/tilejson.json?collection={items['2020-01']['collection']}&item={items['2020-01']['id']}\"\n f\"&assets={asset_name}\"\n f\"&color_formula=gamma+r+1.05&colormap_name={color_map}\"\n f\"&rescale={rescale_values['min']},{rescale_values['max']}\", \n).json()\njanuary_2020_tile\n\n{'tilejson': '2.2.0',\n 'version': '1.0.0',\n 'scheme': 'xyz',\n 'tiles': ['https://1w7hfngnp7.execute-api.us-west-2.amazonaws.com/api/raster/stac/tiles/WebMercatorQuad/{z}/{x}/{y}@1x?collection=odiac-ffco2-monthgrid-v2022&item=odiac-ffco2-monthgrid-v2022-202001&assets=co2-emissions&color_formula=gamma+r+1.05&colormap_name=rainbow&rescale=-138.71914672851562%2C2497.01904296875'],\n 'minzoom': 0,\n 'maxzoom': 24,\n 'bounds': [-180.0, -90.0, 180.0, 90.0],\n 'center': [0.0, 0.0, 0]}\n\n\n\njanuary_2000_tile = requests.get(\n f\"{RASTER_API_URL}/stac/tilejson.json?collection={items['2000-01']['collection']}&item={items['2000-01']['id']}\"\n f\"&assets={asset_name}\"\n f\"&color_formula=gamma+r+1.05&colormap_name={color_map}\"\n f\"&rescale={rescale_values['min']},{rescale_values['max']}\", \n).json()\njanuary_2000_tile\n\n{'tilejson': '2.2.0',\n 'version': '1.0.0',\n 'scheme': 'xyz',\n 'tiles': ['https://1w7hfngnp7.execute-api.us-west-2.amazonaws.com/api/raster/stac/tiles/WebMercatorQuad/{z}/{x}/{y}@1x?collection=odiac-ffco2-monthgrid-v2022&item=odiac-ffco2-monthgrid-v2022-200001&assets=co2-emissions&color_formula=gamma+r+1.05&colormap_name=rainbow&rescale=-138.71914672851562%2C2497.01904296875'],\n 'minzoom': 0,\n 'maxzoom': 24,\n 'bounds': [-180.0, -90.0, 180.0, 90.0],\n 'center': [0.0, 0.0, 0]}"
+ "text": "Exploring Changes in Carbon Dioxide (CO₂) levels using the Raster API\nWe will explore changes in fossil fuel emissions in urban egions. In this notebook, we’ll explore the impacts of these emissions and explore these changes over time. We’ll then visualize the outputs on a map using folium.\n\n# to access the year value from each item more easily, this will let us query more explicity by year and month (e.g., 2020-02)\nitems = {item[\"properties\"][\"start_datetime\"][:7]: item for item in items} \nasset_name = \"co2-emissions\"\n\n\nrescale_values = {\"max\":items[list(items.keys())[0]][\"assets\"][asset_name][\"raster:bands\"][0][\"histogram\"][\"max\"], \"min\":items[list(items.keys())[0]][\"assets\"][asset_name][\"raster:bands\"][0][\"histogram\"][\"min\"]}\n\nNow we will pass the item id, collection name, and rescaling_factor to the Raster API endpoint. We will do this twice, once for January 2020 and again for January 2000, so that we can visualize each event independently.\n\ncolor_map = \"rainbow\" # please select the color ramp from matplotlib library.\njanuary_2020_tile = requests.get(\n f\"{RASTER_API_URL}/stac/tilejson.json?collection={items['2020-01']['collection']}&item={items['2020-01']['id']}\"\n f\"&assets={asset_name}\"\n f\"&color_formula=gamma+r+1.05&colormap_name={color_map}\"\n f\"&rescale={rescale_values['min']},{rescale_values['max']}\", \n).json()\njanuary_2020_tile\n\n{'tilejson': '2.2.0',\n 'version': '1.0.0',\n 'scheme': 'xyz',\n 'tiles': ['https://ghg.center/api/raster/stac/tiles/WebMercatorQuad/{z}/{x}/{y}@1x?collection=odiac-ffco2-monthgrid-v2022&item=odiac-ffco2-monthgrid-v2022-202001&assets=co2-emissions&color_formula=gamma+r+1.05&colormap_name=rainbow&rescale=-138.71914672851562%2C2497.01904296875'],\n 'minzoom': 0,\n 'maxzoom': 24,\n 'bounds': [-180.0, -90.0, 180.0, 90.0],\n 'center': [0.0, 0.0, 0]}\n\n\n\njanuary_2000_tile = requests.get(\n f\"{RASTER_API_URL}/stac/tilejson.json?collection={items['2000-01']['collection']}&item={items['2000-01']['id']}\"\n f\"&assets={asset_name}\"\n f\"&color_formula=gamma+r+1.05&colormap_name={color_map}\"\n f\"&rescale={rescale_values['min']},{rescale_values['max']}\", \n).json()\njanuary_2000_tile\n\n{'tilejson': '2.2.0',\n 'version': '1.0.0',\n 'scheme': 'xyz',\n 'tiles': ['https://ghg.center/api/raster/stac/tiles/WebMercatorQuad/{z}/{x}/{y}@1x?collection=odiac-ffco2-monthgrid-v2022&item=odiac-ffco2-monthgrid-v2022-200001&assets=co2-emissions&color_formula=gamma+r+1.05&colormap_name=rainbow&rescale=-138.71914672851562%2C2497.01904296875'],\n 'minzoom': 0,\n 'maxzoom': 24,\n 'bounds': [-180.0, -90.0, 180.0, 90.0],\n 'center': [0.0, 0.0, 0]}"
},
{
"objectID": "user_data_notebooks/odiac-ffco2-monthgrid-v2022_User_Notebook.html#visualizing-co₂-emissions",
@@ -270,14 +270,14 @@
"href": "user_data_notebooks/odiac-ffco2-monthgrid-v2022_User_Notebook.html#section",
"title": "ODIAC Fossil Fuel CO₂ Emissions",
"section": "",
- "text": "# Texas, USA\ntexas_aoi = {\n \"type\": \"Feature\",\n \"properties\": {},\n \"geometry\": {\n \"coordinates\": [\n [\n # [13.686159004559698, -21.700046934333145],\n # [13.686159004559698, -23.241974326585833],\n # [14.753560168039911, -23.241974326585833],\n # [14.753560168039911, -21.700046934333145],\n # [13.686159004559698, -21.700046934333145],\n [-95, 29],\n [-95, 33],\n [-104, 33],\n [-104,29],\n [-95, 29]\n ]\n ],\n \"type\": \"Polygon\",\n },\n}\n\n\n# We'll plug in the coordinates for a location\n# central to the study area and a reasonable zoom level\n\nimport folium\n\naoi_map = Map(\n tiles=\"OpenStreetMap\",\n location=[\n 30,-100\n ],\n zoom_start=6,\n)\n\nfolium.GeoJson(texas_aoi, name=\"Texas, USA\").add_to(aoi_map)\naoi_map\n\nMake this Notebook Trusted to load map: File -> Trust Notebook\n\n\n\n# Check total number of items available\nitems = requests.get(\n f\"{STAC_API_URL}/collections/{collection_name}/items?limit=300\"\n).json()[\"features\"]\nprint(f\"Found {len(items)} items\")\n\nFound 264 items\n\n\n\n# Explore one item to see what it contains\nitems[0]\n\n{'id': 'odiac-ffco2-monthgrid-v2022-202112',\n 'bbox': [-180.0, -90.0, 180.0, 90.0],\n 'type': 'Feature',\n 'links': [{'rel': 'collection',\n 'type': 'application/json',\n 'href': 'https://e6v7j4ejp6.execute-api.us-west-2.amazonaws.com/api/stac/collections/odiac-ffco2-monthgrid-v2022'},\n {'rel': 'parent',\n 'type': 'application/json',\n 'href': 'https://e6v7j4ejp6.execute-api.us-west-2.amazonaws.com/api/stac/collections/odiac-ffco2-monthgrid-v2022'},\n {'rel': 'root',\n 'type': 'application/json',\n 'href': 'https://e6v7j4ejp6.execute-api.us-west-2.amazonaws.com/api/stac/'},\n {'rel': 'self',\n 'type': 'application/geo+json',\n 'href': 'https://e6v7j4ejp6.execute-api.us-west-2.amazonaws.com/api/stac/collections/odiac-ffco2-monthgrid-v2022/items/odiac-ffco2-monthgrid-v2022-202112'}],\n 'assets': {'co2-emissions': {'href': 's3://ghgc-data-store/odiac-ffco2-monthgrid-v2022/odiac2022_1km_excl_intl_202112.tif',\n 'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'Fossil Fuel CO₂ Emissions',\n 'proj:bbox': [-180.0, -90.0, 180.0, 90.0],\n 'proj:epsg': 4326.0,\n 'proj:shape': [21600.0, 43200.0],\n 'description': 'CO₂ emissions from fossil fuel combustion, cement production and gas flaring.',\n 'raster:bands': [{'scale': 1.0,\n 'nodata': -9999.0,\n 'offset': 0.0,\n 'sampling': 'area',\n 'data_type': 'float32',\n 'histogram': {'max': 2497.01904296875,\n 'min': -138.71914672851562,\n 'count': 11.0,\n 'buckets': [523457.0, 691.0, 95.0, 28.0, 11.0, 2.0, 2.0, 1.0, 0.0, 1.0]},\n 'statistics': {'mean': 0.9804128408432007,\n 'stddev': 14.766693454324674,\n 'maximum': 2497.01904296875,\n 'minimum': -138.71914672851562,\n 'valid_percent': 100.0}}],\n 'proj:geometry': {'type': 'Polygon',\n 'coordinates': [[[-180.0, -90.0],\n [180.0, -90.0],\n [180.0, 90.0],\n [-180.0, 90.0],\n [-180.0, -90.0]]]},\n 'proj:projjson': {'id': {'code': 4326.0, 'authority': 'EPSG'},\n 'name': 'WGS 84',\n 'type': 'GeographicCRS',\n 'datum': {'name': 'World Geodetic System 1984',\n 'type': 'GeodeticReferenceFrame',\n 'ellipsoid': {'name': 'WGS 84',\n 'semi_major_axis': 6378137.0,\n 'inverse_flattening': 298.257223563}},\n '$schema': 'https://proj.org/schemas/v0.4/projjson.schema.json',\n 'coordinate_system': {'axis': [{'name': 'Geodetic latitude',\n 'unit': 'degree',\n 'direction': 'north',\n 'abbreviation': 'Lat'},\n {'name': 'Geodetic longitude',\n 'unit': 'degree',\n 'direction': 'east',\n 'abbreviation': 'Lon'}],\n 'subtype': 'ellipsoidal'}},\n 'proj:transform': [0.008333333333333333,\n 0.0,\n -180.0,\n 0.0,\n -0.008333333333333333,\n 90.0,\n 0.0,\n 0.0,\n 1.0]}},\n 'geometry': {'type': 'Polygon',\n 'coordinates': [[[-180, -90],\n [180, -90],\n [180, 90],\n [-180, 90],\n [-180, -90]]]},\n 'collection': 'odiac-ffco2-monthgrid-v2022',\n 'properties': {'end_datetime': '2021-12-31T00:00:00+00:00',\n 'start_datetime': '2021-12-01T00:00:00+00:00'},\n 'stac_version': '1.0.0',\n 'stac_extensions': []}\n\n\n\n# the bounding box should be passed to the geojson param as a geojson Feature or FeatureCollection\ndef generate_stats(item, geojson):\n result = requests.post(\n f\"{RASTER_API_URL}/cog/statistics\",\n params={\"url\": item[\"assets\"][asset_name][\"href\"]},\n json=geojson,\n ).json()\n return {\n **result[\"properties\"],\n \"start_datetime\": item[\"properties\"][\"start_datetime\"][:7],\n }\n\nWith the function above we can generate the statistics for the AOI.\n\n%%time\nstats = [generate_stats(item, texas_aoi) for item in items]\n\nCPU times: user 7.1 s, sys: 879 ms, total: 7.98 s\nWall time: 5min 7s\n\n\n\nstats[0]\n\n{'statistics': {'b1': {'min': 0.0,\n 'max': 404594.21875,\n 'mean': 12.58496736225329,\n 'count': 466944.0,\n 'sum': 5876475.0,\n 'std': 1022.6532606034702,\n 'median': 0.0,\n 'majority': 0.0,\n 'minority': 0.8238743543624878,\n 'unique': 145410.0,\n 'histogram': [[466931.0, 7.0, 1.0, 0.0, 1.0, 1.0, 1.0, 0.0, 1.0, 1.0],\n [0.0,\n 40459.421875,\n 80918.84375,\n 121378.265625,\n 161837.6875,\n 202297.109375,\n 242756.53125,\n 283215.9375,\n 323675.375,\n 364134.8125,\n 404594.21875]],\n 'valid_percent': 100.0,\n 'masked_pixels': 0.0,\n 'valid_pixels': 466944.0,\n 'percentile_98': 120.89053268432629,\n 'percentile_2': 0.0}},\n 'start_datetime': '2021-12-01T00:00:00+00:00'}\n\n\n\nimport pandas as pd\n\n\ndef clean_stats(stats_json) -> pd.DataFrame:\n df = pd.json_normalize(stats_json)\n df.columns = [col.replace(\"statistics.b1.\", \"\") for col in df.columns]\n df[\"date\"] = pd.to_datetime(df[\"start_datetime\"])\n return df\n\n\ndf = clean_stats(stats)\ndf.head(5)\n\n\n\n\n\n\n\n\nstart_datetime\nmin\nmax\nmean\ncount\nsum\nstd\nmedian\nmajority\nminority\nunique\nhistogram\nvalid_percent\nmasked_pixels\nvalid_pixels\npercentile_98\npercentile_2\ndate\n\n\n\n\n0\n2021-12-01T00:00:00+00:00\n0.0\n404594.21875\n12.584967\n466944.0\n5876475.0\n1022.653261\n0.0\n0.0\n0.823874\n145410.0\n[[466931.0, 7.0, 1.0, 0.0, 1.0, 1.0, 1.0, 0.0,...\n100.0\n0.0\n466944.0\n120.890533\n0.0\n2021-12-01 00:00:00+00:00\n\n\n1\n2021-11-01T00:00:00+00:00\n0.0\n379500.71875\n11.807978\n466944.0\n5513664.5\n959.227452\n0.0\n0.0\n0.773158\n145397.0\n[[466931.0, 7.0, 1.0, 0.0, 1.0, 1.0, 1.0, 0.0,...\n100.0\n0.0\n466944.0\n113.458157\n0.0\n2021-11-01 00:00:00+00:00\n\n\n2\n2021-10-01T00:00:00+00:00\n0.0\n365564.12500\n11.382001\n466944.0\n5314757.0\n924.002397\n0.0\n0.0\n0.745633\n145400.0\n[[466931.0, 7.0, 1.0, 0.0, 1.0, 1.0, 1.0, 0.0,...\n100.0\n0.0\n466944.0\n109.419010\n0.0\n2021-10-01 00:00:00+00:00\n\n\n3\n2021-09-01T00:00:00+00:00\n0.0\n369532.53125\n11.499615\n466944.0\n5369676.0\n934.032133\n0.0\n0.0\n0.753175\n145405.0\n[[466931.0, 7.0, 1.0, 0.0, 1.0, 1.0, 1.0, 0.0,...\n100.0\n0.0\n466944.0\n110.491998\n0.0\n2021-09-01 00:00:00+00:00\n\n\n4\n2021-08-01T00:00:00+00:00\n0.0\n412252.34375\n12.818087\n466944.0\n5985329.0\n1042.009448\n0.0\n0.0\n0.839226\n145410.0\n[[466931.0, 7.0, 1.0, 0.0, 1.0, 1.0, 1.0, 0.0,...\n100.0\n0.0\n466944.0\n122.994610\n0.0\n2021-08-01 00:00:00+00:00"
+ "text": "# Texas, USA\ntexas_aoi = {\n \"type\": \"Feature\",\n \"properties\": {},\n \"geometry\": {\n \"coordinates\": [\n [\n # [13.686159004559698, -21.700046934333145],\n # [13.686159004559698, -23.241974326585833],\n # [14.753560168039911, -23.241974326585833],\n # [14.753560168039911, -21.700046934333145],\n # [13.686159004559698, -21.700046934333145],\n [-95, 29],\n [-95, 33],\n [-104, 33],\n [-104,29],\n [-95, 29]\n ]\n ],\n \"type\": \"Polygon\",\n },\n}\n\n\n# We'll plug in the coordinates for a location\n# central to the study area and a reasonable zoom level\n\nimport folium\n\naoi_map = Map(\n tiles=\"OpenStreetMap\",\n location=[\n 30,-100\n ],\n zoom_start=6,\n)\n\nfolium.GeoJson(texas_aoi, name=\"Texas, USA\").add_to(aoi_map)\naoi_map\n\nMake this Notebook Trusted to load map: File -> Trust Notebook\n\n\n\n# Check total number of items available\nitems = requests.get(\n f\"{STAC_API_URL}/collections/{collection_name}/items?limit=300\"\n).json()[\"features\"]\nprint(f\"Found {len(items)} items\")\n\nFound 264 items\n\n\n\n# Explore one item to see what it contains\nitems[0]\n\n{'id': 'odiac-ffco2-monthgrid-v2022-202112',\n 'bbox': [-180.0, -90.0, 180.0, 90.0],\n 'type': 'Feature',\n 'links': [{'rel': 'collection',\n 'type': 'application/json',\n 'href': 'https://ghg.center/api/stac/collections/odiac-ffco2-monthgrid-v2022'},\n {'rel': 'parent',\n 'type': 'application/json',\n 'href': 'https://ghg.center/api/stac/collections/odiac-ffco2-monthgrid-v2022'},\n {'rel': 'root',\n 'type': 'application/json',\n 'href': 'https://ghg.center/api/stac/'},\n {'rel': 'self',\n 'type': 'application/geo+json',\n 'href': 'https://ghg.center/api/stac/collections/odiac-ffco2-monthgrid-v2022/items/odiac-ffco2-monthgrid-v2022-202112'}],\n 'assets': {'co2-emissions': {'href': 's3://ghgc-data-store/odiac-ffco2-monthgrid-v2022/odiac2022_1km_excl_intl_202112.tif',\n 'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'Fossil Fuel CO₂ Emissions',\n 'proj:bbox': [-180.0, -90.0, 180.0, 90.0],\n 'proj:epsg': 4326.0,\n 'proj:shape': [21600.0, 43200.0],\n 'description': 'CO₂ emissions from fossil fuel combustion, cement production and gas flaring.',\n 'raster:bands': [{'scale': 1.0,\n 'nodata': -9999.0,\n 'offset': 0.0,\n 'sampling': 'area',\n 'data_type': 'float32',\n 'histogram': {'max': 2497.01904296875,\n 'min': -138.71914672851562,\n 'count': 11.0,\n 'buckets': [523457.0, 691.0, 95.0, 28.0, 11.0, 2.0, 2.0, 1.0, 0.0, 1.0]},\n 'statistics': {'mean': 0.9804128408432007,\n 'stddev': 14.766693454324674,\n 'maximum': 2497.01904296875,\n 'minimum': -138.71914672851562,\n 'valid_percent': 100.0}}],\n 'proj:geometry': {'type': 'Polygon',\n 'coordinates': [[[-180.0, -90.0],\n [180.0, -90.0],\n [180.0, 90.0],\n [-180.0, 90.0],\n [-180.0, -90.0]]]},\n 'proj:projjson': {'id': {'code': 4326.0, 'authority': 'EPSG'},\n 'name': 'WGS 84',\n 'type': 'GeographicCRS',\n 'datum': {'name': 'World Geodetic System 1984',\n 'type': 'GeodeticReferenceFrame',\n 'ellipsoid': {'name': 'WGS 84',\n 'semi_major_axis': 6378137.0,\n 'inverse_flattening': 298.257223563}},\n '$schema': 'https://proj.org/schemas/v0.4/projjson.schema.json',\n 'coordinate_system': {'axis': [{'name': 'Geodetic latitude',\n 'unit': 'degree',\n 'direction': 'north',\n 'abbreviation': 'Lat'},\n {'name': 'Geodetic longitude',\n 'unit': 'degree',\n 'direction': 'east',\n 'abbreviation': 'Lon'}],\n 'subtype': 'ellipsoidal'}},\n 'proj:transform': [0.008333333333333333,\n 0.0,\n -180.0,\n 0.0,\n -0.008333333333333333,\n 90.0,\n 0.0,\n 0.0,\n 1.0]}},\n 'geometry': {'type': 'Polygon',\n 'coordinates': [[[-180, -90],\n [180, -90],\n [180, 90],\n [-180, 90],\n [-180, -90]]]},\n 'collection': 'odiac-ffco2-monthgrid-v2022',\n 'properties': {'end_datetime': '2021-12-31T00:00:00+00:00',\n 'start_datetime': '2021-12-01T00:00:00+00:00'},\n 'stac_version': '1.0.0',\n 'stac_extensions': []}\n\n\n\n# the bounding box should be passed to the geojson param as a geojson Feature or FeatureCollection\ndef generate_stats(item, geojson):\n result = requests.post(\n f\"{RASTER_API_URL}/cog/statistics\",\n params={\"url\": item[\"assets\"][asset_name][\"href\"]},\n json=geojson,\n ).json()\n return {\n **result[\"properties\"],\n \"start_datetime\": item[\"properties\"][\"start_datetime\"][:7],\n }\n\nWith the function above we can generate the statistics for the AOI.\n\n%%time\nstats = [generate_stats(item, texas_aoi) for item in items]\n\nCPU times: user 6.98 s, sys: 866 ms, total: 7.85 s\nWall time: 5min 49s\n\n\n\nstats[0]\n\n{'statistics': {'b1': {'min': 0.0,\n 'max': 404594.21875,\n 'mean': 12.983534915123457,\n 'count': 518400.0,\n 'sum': 6730664.5,\n 'std': 1073.4786364468523,\n 'median': 0.0,\n 'majority': 0.0,\n 'minority': 0.7153176665306091,\n 'unique': 160223.0,\n 'histogram': [[518384.0, 9.0, 1.0, 0.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0],\n [0.0,\n 40459.421875,\n 80918.84375,\n 121378.265625,\n 161837.6875,\n 202297.109375,\n 242756.53125,\n 283215.9375,\n 323675.375,\n 364134.8125,\n 404594.21875]],\n 'valid_percent': 100.0,\n 'masked_pixels': 0.0,\n 'valid_pixels': 518400.0,\n 'percentile_2': 0.0,\n 'percentile_98': 120.91593933105469}},\n 'start_datetime': '2021-12'}\n\n\n\nimport pandas as pd\n\n\ndef clean_stats(stats_json) -> pd.DataFrame:\n df = pd.json_normalize(stats_json)\n df.columns = [col.replace(\"statistics.b1.\", \"\") for col in df.columns]\n df[\"date\"] = pd.to_datetime(df[\"start_datetime\"])\n return df\n\n\ndf = clean_stats(stats)\ndf.head(5)\n\n\n\n\n\n\n\n\nstart_datetime\nmin\nmax\nmean\ncount\nsum\nstd\nmedian\nmajority\nminority\nunique\nhistogram\nvalid_percent\nmasked_pixels\nvalid_pixels\npercentile_2\npercentile_98\ndate\n\n\n\n\n0\n2021-12\n0.0\n404594.21875\n12.983535\n518400.0\n6730664.5\n1073.478636\n0.0\n0.0\n0.715318\n160223.0\n[[518384.0, 9.0, 1.0, 0.0, 1.0, 1.0, 1.0, 1.0,...\n100.0\n0.0\n518400.0\n0.0\n120.915939\n2021-12-01\n\n\n1\n2021-11\n0.0\n379500.71875\n12.181822\n518400.0\n6315056.5\n1006.900541\n0.0\n0.0\n0.671284\n160209.0\n[[518384.0, 9.0, 1.0, 0.0, 1.0, 1.0, 1.0, 1.0,...\n100.0\n0.0\n518400.0\n0.0\n113.472582\n2021-11-01\n\n\n2\n2021-10\n0.0\n365564.12500\n11.742121\n518400.0\n6087115.5\n969.924733\n0.0\n0.0\n0.647386\n160210.0\n[[518384.0, 9.0, 1.0, 0.0, 1.0, 1.0, 1.0, 1.0,...\n100.0\n0.0\n518400.0\n0.0\n109.432922\n2021-10-01\n\n\n3\n2021-09\n0.0\n369532.53125\n11.863683\n518400.0\n6150133.5\n980.453000\n0.0\n0.0\n0.653934\n160213.0\n[[518384.0, 9.0, 1.0, 0.0, 1.0, 1.0, 1.0, 1.0,...\n100.0\n0.0\n518400.0\n0.0\n110.523390\n2021-09-01\n\n\n4\n2021-08\n0.0\n412252.34375\n13.224326\n518400.0\n6855490.5\n1093.796870\n0.0\n0.0\n0.728647\n160224.0\n[[518384.0, 9.0, 1.0, 0.0, 1.0, 1.0, 1.0, 1.0,...\n100.0\n0.0\n518400.0\n0.0\n123.059172\n2021-08-01"
},
{
"objectID": "user_data_notebooks/odiac-ffco2-monthgrid-v2022_User_Notebook.html#visualizing-the-data-as-a-time-series",
"href": "user_data_notebooks/odiac-ffco2-monthgrid-v2022_User_Notebook.html#visualizing-the-data-as-a-time-series",
"title": "ODIAC Fossil Fuel CO₂ Emissions",
"section": "Visualizing the Data as a Time Series",
- "text": "Visualizing the Data as a Time Series\nWe can now explore the ODIAC fossil fuel emission time series available (January 2000 -December 2021) for the Texas, Dallas area of USA. We can plot the data set using the code below:\n\nimport matplotlib.pyplot as plt\n\nfig = plt.figure(figsize=(20, 10))\n\n\nplt.plot(\n df[\"date\"],\n df[\"max\"],\n color=\"red\",\n linestyle=\"-\",\n linewidth=0.5,\n label=\"Max monthly CO₂ emissions\",\n)\n\nplt.legend()\nplt.xlabel(\"Years\")\nplt.ylabel(\"CO2 emissions gC/m2/d\")\nplt.title(\"CO2 emission Values for Texas, Dallas (2000-2021)\")\n\nText(0.5, 1.0, 'CO2 emission Values for Texas, Dallas (2000-2021)')\n\n\n\n\n\n\nprint(items[2][\"properties\"][\"start_datetime\"])\n\n2021-10-01T00:00:00+00:00\n\n\n\noctober_tile = requests.get(\n f\"{RASTER_API_URL}/stac/tilejson.json?collection={items[2]['collection']}&item={items[2]['id']}\"\n f\"&assets={asset_name}\"\n f\"&color_formula=gamma+r+1.05&colormap_name={color_map}\"\n f\"&rescale={rescale_values['min']},{rescale_values['max']}\",\n).json()\noctober_tile\n\n{'tilejson': '2.2.0',\n 'version': '1.0.0',\n 'scheme': 'xyz',\n 'tiles': ['https://1w7hfngnp7.execute-api.us-west-2.amazonaws.com/api/raster/stac/tiles/WebMercatorQuad/{z}/{x}/{y}@1x?collection=odiac-ffco2-monthgrid-v2022&item=odiac-ffco2-monthgrid-v2022-202110&assets=co2-emissions&color_formula=gamma+r+1.05&colormap_name=rainbow&rescale=-138.71914672851562%2C2497.01904296875'],\n 'minzoom': 0,\n 'maxzoom': 24,\n 'bounds': [-180.0, -90.0, 180.0, 90.0],\n 'center': [0.0, 0.0, 0]}\n\n\n\n# Use bbox initial zoom and map\n# Set up a map located w/in event bounds\nimport folium\n\naoi_map_bbox = Map(\n tiles=\"OpenStreetMap\",\n location=[\n 30,-100\n ],\n zoom_start=8,\n)\n\nmap_layer = TileLayer(\n tiles=october_tile[\"tiles\"][0],\n attr=\"GHG\", opacity = 0.5\n)\n\nmap_layer.add_to(aoi_map_bbox)\n\naoi_map_bbox\n\nMake this Notebook Trusted to load map: File -> Trust Notebook"
+ "text": "Visualizing the Data as a Time Series\nWe can now explore the ODIAC fossil fuel emission time series available (January 2000 -December 2021) for the Texas, Dallas area of USA. We can plot the data set using the code below:\n\nimport matplotlib.pyplot as plt\n\nfig = plt.figure(figsize=(20, 10))\n\n\nplt.plot(\n df[\"date\"],\n df[\"max\"],\n color=\"red\",\n linestyle=\"-\",\n linewidth=0.5,\n label=\"Max monthly CO₂ emissions\",\n)\n\nplt.legend()\nplt.xlabel(\"Years\")\nplt.ylabel(\"CO2 emissions gC/m2/d\")\nplt.title(\"CO2 emission Values for Texas, Dallas (2000-2021)\")\n\nText(0.5, 1.0, 'CO2 emission Values for Texas, Dallas (2000-2021)')\n\n\n\n\n\n\nprint(items[2][\"properties\"][\"start_datetime\"])\n\n2021-10-01T00:00:00+00:00\n\n\n\noctober_tile = requests.get(\n f\"{RASTER_API_URL}/stac/tilejson.json?collection={items[2]['collection']}&item={items[2]['id']}\"\n f\"&assets={asset_name}\"\n f\"&color_formula=gamma+r+1.05&colormap_name={color_map}\"\n f\"&rescale={rescale_values['min']},{rescale_values['max']}\",\n).json()\noctober_tile\n\n{'tilejson': '2.2.0',\n 'version': '1.0.0',\n 'scheme': 'xyz',\n 'tiles': ['https://ghg.center/api/raster/stac/tiles/WebMercatorQuad/{z}/{x}/{y}@1x?collection=odiac-ffco2-monthgrid-v2022&item=odiac-ffco2-monthgrid-v2022-202110&assets=co2-emissions&color_formula=gamma+r+1.05&colormap_name=rainbow&rescale=-138.71914672851562%2C2497.01904296875'],\n 'minzoom': 0,\n 'maxzoom': 24,\n 'bounds': [-180.0, -90.0, 180.0, 90.0],\n 'center': [0.0, 0.0, 0]}\n\n\n\n# Use bbox initial zoom and map\n# Set up a map located w/in event bounds\nimport folium\n\naoi_map_bbox = Map(\n tiles=\"OpenStreetMap\",\n location=[\n 30,-100\n ],\n zoom_start=8,\n)\n\nmap_layer = TileLayer(\n tiles=october_tile[\"tiles\"][0],\n attr=\"GHG\", opacity = 0.5\n)\n\nmap_layer.add_to(aoi_map_bbox)\n\naoi_map_bbox\n\nMake this Notebook Trusted to load map: File -> Trust Notebook"
},
{
"objectID": "user_data_notebooks/odiac-ffco2-monthgrid-v2022_User_Notebook.html#summary",
@@ -690,7 +690,7 @@
"href": "user_data_notebooks/noaa-insitu_User_Notebook.html#installing-the-required-libraries",
"title": "Atmospheric Carbon Dioxide Concentrations from NOAA Global Monitoring Laboratory",
"section": "Installing the required libraries",
- "text": "Installing the required libraries\nPlease run the cell below to install the libraries required to run this notebook.\n\n%pip install matplotlib\n%pip install pandas\n%pip install requests\n\nRequirement already satisfied: matplotlib in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (3.7.1)\nRequirement already satisfied: contourpy>=1.0.1 in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from matplotlib) (1.0.5)\nRequirement already satisfied: cycler>=0.10 in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from matplotlib) (0.11.0)\nRequirement already satisfied: packaging>=20.0 in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from matplotlib) (23.1)\nRequirement already satisfied: pillow>=6.2.0 in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from matplotlib) (9.5.0)\nRequirement already satisfied: pyparsing>=2.3.1 in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from matplotlib) (3.0.9)\nRequirement already satisfied: numpy>=1.20 in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from matplotlib) (1.24.3)\nRequirement already satisfied: fonttools>=4.22.0 in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from matplotlib) (4.25.0)\nRequirement already satisfied: python-dateutil>=2.7 in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from matplotlib) (2.8.2)\nRequirement already satisfied: importlib-resources>=3.2.0 in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from matplotlib) (5.12.0)\nRequirement already satisfied: kiwisolver>=1.0.1 in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from matplotlib) (1.4.4)\nRequirement already satisfied: zipp>=3.1.0 in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from importlib-resources>=3.2.0->matplotlib) (3.15.0)\nRequirement already satisfied: six>=1.5 in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from python-dateutil>=2.7->matplotlib) (1.16.0)\nNote: you may need to restart the kernel to use updated packages.\nRequirement already satisfied: pandas in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (2.0.3)\nRequirement already satisfied: numpy>=1.20.3 in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from pandas) (1.24.3)\nRequirement already satisfied: python-dateutil>=2.8.2 in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from pandas) (2.8.2)\nRequirement already satisfied: tzdata>=2022.1 in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from pandas) (2023.3)\nRequirement already satisfied: pytz>=2020.1 in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from pandas) (2023.3)\nRequirement already satisfied: six>=1.5 in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from python-dateutil>=2.8.2->pandas) (1.16.0)\nNote: you may need to restart the kernel to use updated packages.\nRequirement already satisfied: requests in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (2.31.0)\nRequirement already satisfied: certifi>=2017.4.17 in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from requests) (2023.7.22)\nRequirement already satisfied: urllib3<3,>=1.21.1 in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from requests) (1.26.16)\nRequirement already satisfied: idna<4,>=2.5 in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from requests) (3.4)\nRequirement already satisfied: charset-normalizer<4,>=2 in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from requests) (3.1.0)\nNote: you may need to restart the kernel to use updated packages.\n\n\n\nImporting required libraries\n\nimport numpy as np\nimport pandas as pd\nfrom glob import glob\nfrom io import StringIO\nimport matplotlib.pyplot as plt\nimport requests"
+ "text": "Installing the required libraries\nPlease run the cell below to install the libraries required to run this notebook.\n\n%pip install matplotlib\n%pip install pandas\n%pip install requests\n\nRequirement already satisfied: matplotlib in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (3.7.1)\nRequirement already satisfied: pyparsing>=2.3.1 in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from matplotlib) (3.0.9)\nRequirement already satisfied: importlib-resources>=3.2.0 in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from matplotlib) (5.12.0)\nRequirement already satisfied: kiwisolver>=1.0.1 in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from matplotlib) (1.4.4)\nRequirement already satisfied: contourpy>=1.0.1 in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from matplotlib) (1.0.5)\nRequirement already satisfied: numpy>=1.20 in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from matplotlib) (1.24.3)\nRequirement already satisfied: fonttools>=4.22.0 in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from matplotlib) (4.25.0)\nRequirement already satisfied: python-dateutil>=2.7 in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from matplotlib) (2.8.2)\nRequirement already satisfied: pillow>=6.2.0 in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from matplotlib) (9.5.0)\nRequirement already satisfied: packaging>=20.0 in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from matplotlib) (23.1)\nRequirement already satisfied: cycler>=0.10 in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from matplotlib) (0.11.0)\nRequirement already satisfied: zipp>=3.1.0 in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from importlib-resources>=3.2.0->matplotlib) (3.15.0)\nRequirement already satisfied: six>=1.5 in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from python-dateutil>=2.7->matplotlib) (1.16.0)\nNote: you may need to restart the kernel to use updated packages.\nRequirement already satisfied: pandas in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (2.0.3)\nRequirement already satisfied: numpy>=1.20.3 in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from pandas) (1.24.3)\nRequirement already satisfied: tzdata>=2022.1 in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from pandas) (2023.3)\nRequirement already satisfied: pytz>=2020.1 in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from pandas) (2023.3)\nRequirement already satisfied: python-dateutil>=2.8.2 in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from pandas) (2.8.2)\nRequirement already satisfied: six>=1.5 in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from python-dateutil>=2.8.2->pandas) (1.16.0)\nNote: you may need to restart the kernel to use updated packages.\nRequirement already satisfied: requests in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (2.31.0)\nRequirement already satisfied: urllib3<3,>=1.21.1 in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from requests) (1.26.16)\nRequirement already satisfied: idna<4,>=2.5 in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from requests) (3.4)\nRequirement already satisfied: certifi>=2017.4.17 in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from requests) (2023.7.22)\nRequirement already satisfied: charset-normalizer<4,>=2 in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from requests) (3.1.0)\nNote: you may need to restart the kernel to use updated packages.\n\n\n\nImporting required libraries\n\nimport numpy as np\nimport pandas as pd\nfrom glob import glob\nfrom io import StringIO\nimport matplotlib.pyplot as plt\nimport requests"
},
{
"objectID": "user_data_notebooks/noaa-insitu_User_Notebook.html#reading-the-noaa-data-from-github-repo",
@@ -718,7 +718,7 @@
"href": "user_data_notebooks/noaa-insitu_User_Notebook.html#visualizing-the-noaa-data-for-ch4-and-co2",
"title": "Atmospheric Carbon Dioxide Concentrations from NOAA Global Monitoring Laboratory",
"section": "Visualizing the NOAA data for CH4 and CO2",
- "text": "Visualizing the NOAA data for CH4 and CO2\n\nsite_to_filter = 'ABP'\nfiltered_df = combined_df_co2[combined_df_co2['site_code'] == site_to_filter]\n\nfiltered_df['datetime'] = pd.to_datetime(filtered_df['datetime'])\n\n# Set the \"Date\" column as the index\nfiltered_df.set_index('datetime', inplace=True)\n\n# Create a time series plot for 'Data' and 'Value'\nplt.figure(figsize=(12, 6))\nplt.plot(filtered_df.index, filtered_df['value'], label='Carbon Dioxide(CO2) Concentration (ppm)')\nplt.xlabel(\"Observed Date/Time\")\nplt.ylabel(\"Carbon Dioxide(CO2) Concentration (ppm)\")\nplt.title(f\"Observed Co2 Concentration {site_to_filter}\")\nplt.legend()\nplt.grid(True)\n# plt.show()\n\n/var/folders/7b/5rrvrjx51l54jchgs0tqps0c0000gn/T/ipykernel_66140/2606016741.py:4: SettingWithCopyWarning: \nA value is trying to be set on a copy of a slice from a DataFrame.\nTry using .loc[row_indexer,col_indexer] = value instead\n\nSee the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n filtered_df['datetime'] = pd.to_datetime(filtered_df['datetime'])\n\n\n\n\n\n\nsite_to_filter = 'ABP'\nfiltered_df = combined_df_ch4[combined_df_ch4['site_code'] == site_to_filter]\nfiltered_df['datetime'] = pd.to_datetime(filtered_df['datetime'])\n\n# Set the \"Date\" column as the index\nfiltered_df.set_index('datetime', inplace=True)\n\n# Create a time series plot for 'Data' and 'Value'\nplt.figure(figsize=(12, 6))\nplt.plot(filtered_df.index, filtered_df['value'], label='Methane Ch4 Concentration (ppb)')\nplt.xlabel(\"Observation Date/Time\")\nplt.ylabel(\"Methane Ch4 Concentration (ppb)\")\nplt.title(f\"Observed CH4 Concentration {site_to_filter}\")\nplt.legend()\nplt.grid(True)\nplt.show()\n\n/var/folders/7b/5rrvrjx51l54jchgs0tqps0c0000gn/T/ipykernel_66140/1635934907.py:3: SettingWithCopyWarning: \nA value is trying to be set on a copy of a slice from a DataFrame.\nTry using .loc[row_indexer,col_indexer] = value instead\n\nSee the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n filtered_df['datetime'] = pd.to_datetime(filtered_df['datetime'])"
+ "text": "Visualizing the NOAA data for CH4 and CO2\n\nsite_to_filter = 'ABP'\nfiltered_df = combined_df_co2[combined_df_co2['site_code'] == site_to_filter]\n\nfiltered_df['datetime'] = pd.to_datetime(filtered_df['datetime'])\n\n# Set the \"Date\" column as the index\nfiltered_df.set_index('datetime', inplace=True)\n\n# Create a time series plot for 'Data' and 'Value'\nplt.figure(figsize=(12, 6))\nplt.plot(filtered_df.index, filtered_df['value'], label='Carbon Dioxide(CO2) Concentration (ppm)')\nplt.xlabel(\"Observed Date/Time\")\nplt.ylabel(\"Carbon Dioxide(CO2) Concentration (ppm)\")\nplt.title(f\"Observed Co2 Concentration {site_to_filter}\")\nplt.legend()\nplt.grid(True)\n# plt.show()\n\n/var/folders/7b/5rrvrjx51l54jchgs0tqps0c0000gn/T/ipykernel_70808/2606016741.py:4: SettingWithCopyWarning: \nA value is trying to be set on a copy of a slice from a DataFrame.\nTry using .loc[row_indexer,col_indexer] = value instead\n\nSee the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n filtered_df['datetime'] = pd.to_datetime(filtered_df['datetime'])\n\n\n\n\n\n\nsite_to_filter = 'ABP'\nfiltered_df = combined_df_ch4[combined_df_ch4['site_code'] == site_to_filter]\nfiltered_df['datetime'] = pd.to_datetime(filtered_df['datetime'])\n\n# Set the \"Date\" column as the index\nfiltered_df.set_index('datetime', inplace=True)\n\n# Create a time series plot for 'Data' and 'Value'\nplt.figure(figsize=(12, 6))\nplt.plot(filtered_df.index, filtered_df['value'], label='Methane Ch4 Concentration (ppb)')\nplt.xlabel(\"Observation Date/Time\")\nplt.ylabel(\"Methane Ch4 Concentration (ppb)\")\nplt.title(f\"Observed CH4 Concentration {site_to_filter}\")\nplt.legend()\nplt.grid(True)\nplt.show()\n\n/var/folders/7b/5rrvrjx51l54jchgs0tqps0c0000gn/T/ipykernel_70808/1635934907.py:3: SettingWithCopyWarning: \nA value is trying to be set on a copy of a slice from a DataFrame.\nTry using .loc[row_indexer,col_indexer] = value instead\n\nSee the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n filtered_df['datetime'] = pd.to_datetime(filtered_df['datetime'])"
},
{
"objectID": "user_data_notebooks/noaa-insitu_User_Notebook.html#summary",
@@ -753,35 +753,35 @@
"href": "user_data_notebooks/oco2-mip-co2budget-yeargrid-v1_User_Notebook.html#installing-the-required-libraries",
"title": "OCO-2 MIP Top-Down CO₂ Budgets",
"section": "Installing the required libraries",
- "text": "Installing the required libraries\nPlease run the cell below to install the libraries required to run this notebook.\n\n%pip install requests\n%pip install folium\n%pip install rasterstats\n%pip install pystac_client"
+ "text": "Installing the required libraries\nPlease run the cell below to install the libraries required to run this notebook.\n\n%pip install requests\n%pip install folium\n%pip install rasterstats\n%pip install pystac_client\n\nRequirement already satisfied: requests in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (2.31.0)\nRequirement already satisfied: idna<4,>=2.5 in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from requests) (3.4)\nRequirement already satisfied: charset-normalizer<4,>=2 in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from requests) (3.1.0)\nRequirement already satisfied: urllib3<3,>=1.21.1 in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from requests) (1.26.16)\nRequirement already satisfied: certifi>=2017.4.17 in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from requests) (2023.7.22)\nNote: you may need to restart the kernel to use updated packages.\nRequirement already satisfied: folium in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (0.14.0)\nRequirement already satisfied: requests in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from folium) (2.31.0)\nRequirement already satisfied: numpy in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from folium) (1.24.3)\nRequirement already satisfied: branca>=0.6.0 in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from folium) (0.6.0)\nRequirement already satisfied: jinja2>=2.9 in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from folium) (3.1.2)\nRequirement already satisfied: MarkupSafe>=2.0 in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from jinja2>=2.9->folium) (2.1.3)\nRequirement already satisfied: charset-normalizer<4,>=2 in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from requests->folium) (3.1.0)\nRequirement already satisfied: idna<4,>=2.5 in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from requests->folium) (3.4)\nRequirement already satisfied: urllib3<3,>=1.21.1 in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from requests->folium) (1.26.16)\nRequirement already satisfied: certifi>=2017.4.17 in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from requests->folium) (2023.7.22)\nNote: you may need to restart the kernel to use updated packages.\nRequirement already satisfied: rasterstats in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (0.19.0)\nRequirement already satisfied: cligj>=0.4 in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from rasterstats) (0.7.2)\nRequirement already satisfied: numpy>=1.9 in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from rasterstats) (1.24.3)\nRequirement already satisfied: rasterio>=1.0 in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from rasterstats) (1.3.6)\nRequirement already satisfied: fiona in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from rasterstats) (1.9.4.post1)\nRequirement already satisfied: simplejson in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from rasterstats) (3.19.1)\nRequirement already satisfied: shapely in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from rasterstats) (2.0.1)\nRequirement already satisfied: affine in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from rasterstats) (2.4.0)\nRequirement already satisfied: click>7.1 in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from rasterstats) (8.1.3)\nRequirement already satisfied: click-plugins in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from rasterio>=1.0->rasterstats) (1.1.1)\nRequirement already satisfied: certifi in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from rasterio>=1.0->rasterstats) (2023.7.22)\nRequirement already satisfied: snuggs>=1.4.1 in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from rasterio>=1.0->rasterstats) (1.4.7)\nRequirement already satisfied: setuptools in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from rasterio>=1.0->rasterstats) (66.0.0)\nRequirement already satisfied: attrs in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from rasterio>=1.0->rasterstats) (22.2.0)\nRequirement already satisfied: six in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from fiona->rasterstats) (1.16.0)\nRequirement already satisfied: importlib-metadata in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from fiona->rasterstats) (6.0.0)\nRequirement already satisfied: pyparsing>=2.1.6 in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from snuggs>=1.4.1->rasterio>=1.0->rasterstats) (3.0.9)\nRequirement already satisfied: zipp>=0.5 in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from importlib-metadata->fiona->rasterstats) (3.15.0)\nNote: you may need to restart the kernel to use updated packages.\nRequirement already satisfied: pystac_client in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (0.7.2)\nRequirement already satisfied: python-dateutil>=2.8.2 in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from pystac_client) (2.8.2)\nRequirement already satisfied: pystac[validation]>=1.7.2 in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from pystac_client) (1.7.3)\nRequirement already satisfied: requests>=2.28.2 in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from pystac_client) (2.31.0)\nRequirement already satisfied: jsonschema>=4.0.1 in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from pystac[validation]>=1.7.2->pystac_client) (4.17.3)\nRequirement already satisfied: six>=1.5 in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from python-dateutil>=2.8.2->pystac_client) (1.16.0)\nRequirement already satisfied: idna<4,>=2.5 in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from requests>=2.28.2->pystac_client) (3.4)\nRequirement already satisfied: certifi>=2017.4.17 in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from requests>=2.28.2->pystac_client) (2023.7.22)\nRequirement already satisfied: charset-normalizer<4,>=2 in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from requests>=2.28.2->pystac_client) (3.1.0)\nRequirement already satisfied: urllib3<3,>=1.21.1 in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from requests>=2.28.2->pystac_client) (1.26.16)\nRequirement already satisfied: attrs>=17.4.0 in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from jsonschema>=4.0.1->pystac[validation]>=1.7.2->pystac_client) (22.2.0)\nRequirement already satisfied: pyrsistent!=0.17.0,!=0.17.1,!=0.17.2,>=0.14.0 in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from jsonschema>=4.0.1->pystac[validation]>=1.7.2->pystac_client) (0.19.3)\nNote: you may need to restart the kernel to use updated packages."
},
{
"objectID": "user_data_notebooks/oco2-mip-co2budget-yeargrid-v1_User_Notebook.html#querying-the-stac-api",
"href": "user_data_notebooks/oco2-mip-co2budget-yeargrid-v1_User_Notebook.html#querying-the-stac-api",
"title": "OCO-2 MIP Top-Down CO₂ Budgets",
"section": "Querying the STAC API",
- "text": "Querying the STAC API\n\nimport requests\nfrom folium import Map, TileLayer\nfrom pystac_client import Client\n\n\n# Provide STAC and RASTER API endpoints\nSTAC_API_URL = \"http://ghg.center/api/stac\"\nRASTER_API_URL = \"https://ghg.center/api/raster\"\n\n# Please use the collection name similar to the one used in STAC collection.\n# Name of the collection for CEOS National Top-Down CO₂ Budgets dataset. \ncollection_name = \"oco2-mip-co2budget-yeargrid-v1\"\n\n\n# Fetching the collection from STAC collections using appropriate endpoint.\ncollection = requests.get(f\"{STAC_API_URL}/collections/{collection_name}\").json()\ncollection\n\nExamining the contents of our collection under the temporal variable, we see that the data is available from January 2015 to December 2020. By looking at the dashboard:time density, we observe that the periodic frequency of these observations is yearly.\n\ndef get_item_count(collection_id):\n count = 0\n items_url = f\"{STAC_API_URL}/collections/{collection_id}/items\"\n\n while True:\n response = requests.get(items_url)\n\n if not response.ok:\n print(\"error getting items\")\n exit()\n\n stac = response.json()\n count += int(stac[\"context\"].get(\"returned\", 0))\n next = [link for link in stac[\"links\"] if link[\"rel\"] == \"next\"]\n\n if not next:\n break\n items_url = next[0][\"href\"]\n\n return count\n\n\n# Check total number of items available\nnumber_of_items = get_item_count(collection_name)\nitems = requests.get(f\"{STAC_API_URL}/collections/{collection_name}/items?limit={number_of_items}\").json()[\"features\"]\nprint(f\"Found {len(items)} items\")\n\n\n# Examining the first item in the collection\nitems[0]\n\nBelow, we are entering the minimum and maximum values to provide our upper and lower bounds in rescale_values."
+ "text": "Querying the STAC API\n\nimport requests\nfrom folium import Map, TileLayer\nfrom pystac_client import Client\n\n\n# Provide STAC and RASTER API endpoints\nSTAC_API_URL = \"http://ghg.center/api/stac\"\nRASTER_API_URL = \"https://ghg.center/api/raster\"\n\n# Please use the collection name similar to the one used in STAC collection.\n# Name of the collection for CEOS National Top-Down CO₂ Budgets dataset. \ncollection_name = \"oco2-mip-co2budget-yeargrid-v1\"\n\n\n# Fetching the collection from STAC collections using appropriate endpoint.\ncollection = requests.get(f\"{STAC_API_URL}/collections/{collection_name}\").json()\ncollection\n\n{'id': 'oco2-mip-co2budget-yeargrid-v1',\n 'type': 'Collection',\n 'links': [{'rel': 'items',\n 'type': 'application/geo+json',\n 'href': 'https://ghg.center/api/stac/collections/oco2-mip-co2budget-yeargrid-v1/items'},\n {'rel': 'parent',\n 'type': 'application/json',\n 'href': 'https://ghg.center/api/stac/'},\n {'rel': 'root',\n 'type': 'application/json',\n 'href': 'https://ghg.center/api/stac/'},\n {'rel': 'self',\n 'type': 'application/json',\n 'href': 'https://ghg.center/api/stac/collections/oco2-mip-co2budget-yeargrid-v1'}],\n 'title': 'Pilot top-down CO2 Budget constrained by the v10 OCO-2 MIP Version 1',\n 'assets': None,\n 'extent': {'spatial': {'bbox': [[-180, -90, 180, 90]]},\n 'temporal': {'interval': [['2015-01-01T00:00:00+00:00',\n '2020-12-31T00:00:00+00:00']]}},\n 'license': 'CC-BY-4.0',\n 'keywords': None,\n 'providers': None,\n 'summaries': {'datetime': ['2015-01-01T00:00:00Z', '2020-12-31T00:00:00Z']},\n 'description': 'National CO2 Budgets (2015-2020) inferred from atmospheric CO2 observations in support of the Global Stocktake',\n 'item_assets': {'ff': {'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'Fossil fuel and cement emissions',\n 'description': 'The burning of fossil fuels and release of carbon due to cement production, representing a flux of carbon from the land surface (geologic reservoir) to the atmosphere'},\n 'crop': {'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'Lateral crop flux',\n 'description': 'The lateral flux of carbon in (positive) or out (negative) of a region due to agriculture.'},\n 'wood': {'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'Lateral wood flux',\n 'description': 'The lateral flux of carbon in (positive) or out (negative) of a region due to wood product harvesting and usage.'},\n 'river': {'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'Lateral rivers flux',\n 'description': 'The lateral flux of carbon in (positive) or out (negative) of a region transported by the water cycle.'},\n 'ff-std': {'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'Fossil fuel and cement emissions std',\n 'description': 'The burning of fossil fuels and release of carbon due to cement production, representing a flux of carbon from the land surface (geologic reservoir) to the atmosphere'},\n 'is-nbe': {'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'In situ Net biosphere exchange',\n 'description': 'Net flux of carbon from the terrestrial biosphere to the atmosphere due to biomass burning (BB) and Reco minus gross primary production (GPP) (i.e., ). It includes both anthropogenic processes (e.g., deforestation, reforestation, farming) and natural processes (e.g., climate-variability-induced carbon fluxes, disturbances, recovery from disturbances).'},\n 'is-nce': {'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'In situ Terrestrial net carbon exchange',\n 'description': 'Net flux of carbon from the surface to the atmosphere. For land, NCE can be defined as sum of NBE and fossil fuel and cement emissions'},\n 'crop-std': {'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'lateral crop flux std ',\n 'description': 'The lateral flux of carbon in (positive) or out (negative) of a region due to agriculture.'},\n 'lnlg-nbe': {'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'Land Nadir and Land Glint Net biosphere exchange',\n 'description': 'Net flux of carbon from the terrestrial biosphere to the atmosphere due to biomass burning (BB) and Reco minus gross primary production (GPP) (i.e., ). It includes both anthropogenic processes (e.g., deforestation, reforestation, farming) and natural processes (e.g., climate-variability-induced carbon fluxes, disturbances, recovery from disturbances'},\n 'lnlg-nce': {'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'Land Nadir and Land glint In situ Terrestrial net carbon exchange',\n 'description': 'Net flux of carbon from the surface to the atmosphere. For land, NCE can be defined as sum of NBE and fossil fuel and cement emissions'},\n 'wood-std': {'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'Lateral wood flux std',\n 'description': 'The lateral flux of carbon in (positive) or out (negative) of a region due to wood product harvesting and usage.'},\n 'river-std': {'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'Lateral rivers flux std',\n 'description': 'The lateral flux of carbon in (positive) or out (negative) of a region transported by the water cycle.'},\n 'is-dc-loss': {'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'In situ Net terrestrial carbon stock loss',\n 'description': 'Positive values indicate a loss (decrease) of terrestrial carbon stocks (organic matter stored on land), including above- and below-ground biomass in ecosystems and biomass contained in anthropogenic products (lumber, cattle, etc.).'},\n 'is-nbe-std': {'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'In situ Net biosphere exchange std',\n 'description': 'Net flux of carbon from the terrestrial biosphere to the atmosphere due to biomass burning (BB) and Reco minus gross primary production (GPP) (i.e., ). It includes both anthropogenic processes (e.g., deforestation, reforestation, farming) and natural processes (e.g., climate-variability-induced carbon fluxes, disturbances, recovery from disturbances.'},\n 'is-nce-std': {'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'In situ Terrestrial net carbon exchange std',\n 'description': 'Net flux of carbon from the surface to the atmosphere. For land, NCE can be defined as sum of NBE and fossil fuel and cement emissions'},\n 'lnlgis-nbe': {'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'Land Nadir and Land Glint In situ Net biosphere exchange',\n 'description': 'Net flux of carbon from the terrestrial biosphere to the atmosphere due to biomass burning (BB) and Reco minus gross primary production (GPP) (i.e., ). It includes both anthropogenic processes (e.g., deforestation, reforestation, farming) and natural processes (e.g., climate-variability-induced carbon fluxes, disturbances, recovery from disturbances'},\n 'lnlgis-nce': {'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'Land Nadir and Land Glint In situ Terrestrial net carbon exchange',\n 'description': 'Net flux of carbon from the surface to the atmosphere. For land, NCE can be defined as sum of NBE and fossil fuel and cement emissions'},\n 'lnlg-dc-loss': {'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'Land Nadir and Land Glint Net terrestrial carbon stock loss',\n 'description': 'Positive values indicate a loss (decrease) of terrestrial carbon stocks (organic matter stored on land), including above- and below-ground biomass in ecosystems and biomass contained in anthropogenic products (lumber, cattle, etc.).'},\n 'lnlg-nbe-std': {'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'Land Nadir and Land Glint Net biosphere exchange std',\n 'description': 'Net flux of carbon from the terrestrial biosphere to the atmosphere due to biomass burning (BB) and Reco minus gross primary production (GPP) (i.e., ). It includes both anthropogenic processes (e.g., deforestation, reforestation, farming) and natural processes (e.g., climate-variability-induced carbon fluxes, disturbances, recovery from disturbances'},\n 'lnlg-nce-std': {'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'Land Nadir and Land Glint Terrestrial net carbon exchange std',\n 'description': 'Net flux of carbon from the surface to the atmosphere. For land, NCE can be defined as sum of NBE and fossil fuel and cement emissions'},\n 'lnlgogis-nbe': {'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'Land Nadir, Land Glint, Ocean Glint and In sittu Net biosphere exchange',\n 'description': 'Net flux of carbon from the terrestrial biosphere to the atmosphere due to biomass burning (BB) and Reco minus gross primary production (GPP) (i.e., ). It includes both anthropogenic processes (e.g., deforestation, reforestation, farming) and natural processes (e.g., climate-variability-induced carbon fluxes, disturbances, recovery from disturbances'},\n 'lnlgogis-nce': {'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'Land Nadir, Land Glint, Ocean Glint In situ Terrestrial net carbon exchange ',\n 'description': 'Net flux of carbon from the surface to the atmosphere. For land, NCE can be defined as sum of NBE and fossil fuel and cement emissions'},\n 'is-dc-loss-std': {'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'In situ Net terrestrial carbon stock loss std',\n 'description': 'Positive values indicate a loss (decrease) of terrestrial carbon stocks (organic matter stored on land), including above- and below-ground biomass in ecosystems and biomass contained in anthropogenic products (lumber, cattle, etc.).'},\n 'lnlgis-dc-loss': {'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'Land Nadir, Land Glint and In situ Net terrestrial carbon stock loss',\n 'description': 'Positive values indicate a loss (decrease) of terrestrial carbon stocks (organic matter stored on land), including above- and below-ground biomass in ecosystems and biomass contained in anthropogenic products (lumber, cattle, etc.).'},\n 'lnlgis-nbe-std': {'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'Land Nadir and Land Glint In situ Net biosphere exchange std',\n 'description': 'Net flux of carbon from the terrestrial biosphere to the atmosphere due to biomass burning (BB) and Reco minus gross primary production (GPP) (i.e., ). It includes both anthropogenic processes (e.g., deforestation, reforestation, farming) and natural processes (e.g., climate-variability-induced carbon fluxes, disturbances, recovery from disturbances'},\n 'lnlgis-nce-std': {'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'Land Nadir and Land Glint In situ Terrestrial net carbon exchange std',\n 'description': 'Net flux of carbon from the surface to the atmosphere. For land, NCE can be defined as sum of NBE and fossil fuel and cement emissions'},\n 'lnlg-dc-loss-std': {'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'Land Nadir and Land glint Net terrestrial carbon stock loss std',\n 'description': 'Positive values indicate a loss (decrease) of terrestrial carbon stocks (organic matter stored on land), including above- and below-ground biomass in ecosystems and biomass contained in anthropogenic products (lumber, cattle, etc.).'},\n 'lnlgogis-dc-loss': {'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'Land Nadir, Land Glint, Ocean Glint and In situ Net terrestrial carbon stock loss',\n 'description': 'Positive values indicate a loss (decrease) of terrestrial carbon stocks (organic matter stored on land), including above- and below-ground biomass in ecosystems and biomass contained in anthropogenic products (lumber, cattle, etc.).'},\n 'lnlgogis-nbe-std': {'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'Land Nadir, Land Glint, Ocean Glint and In sittu Net biosphere exchange',\n 'description': 'Net flux of carbon from the terrestrial biosphere to the atmosphere due to biomass burning (BB) and Reco minus gross primary production (GPP) (i.e., ). It includes both anthropogenic processes (e.g., deforestation, reforestation, farming) and natural processes (e.g., climate-variability-induced carbon fluxes, disturbances, recovery from disturbances'},\n 'lnlgogis-nce-std': {'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'Land Nadir, Land Glint, Ocean Glint In situ Terrestrial net carbon exchange std ',\n 'description': 'Net flux of carbon from the surface to the atmosphere. For land, NCE can be defined as sum of NBE and fossil fuel and cement emissions'},\n 'lnlgis-dc-loss-std': {'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'Land Nadir, Land Glint and In situ Net terrestrial carbon stock loss std',\n 'description': 'Positive values indicate a loss (decrease) of terrestrial carbon stocks (organic matter stored on land), including above- and below-ground biomass in ecosystems and biomass contained in anthropogenic products (lumber, cattle, etc.).'},\n 'lnlgogis-dc-loss-std': {'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'Land Nadir, Land Glint, Ocean Glint and In situ Net terrestrial carbon stock loss std',\n 'description': 'Positive values indicate a loss (decrease) of terrestrial carbon stocks (organic matter stored on land), including above- and below-ground biomass in ecosystems and biomass contained in anthropogenic products (lumber, cattle, etc.).'}},\n 'stac_version': '1.0.0',\n 'stac_extensions': None,\n 'dashboard:is_periodic': True,\n 'dashboard:time_density': 'year'}\n\n\nExamining the contents of our collection under the temporal variable, we see that the data is available from January 2015 to December 2020. By looking at the dashboard:time density, we observe that the periodic frequency of these observations is yearly.\n\ndef get_item_count(collection_id):\n count = 0\n items_url = f\"{STAC_API_URL}/collections/{collection_id}/items\"\n\n while True:\n response = requests.get(items_url)\n\n if not response.ok:\n print(\"error getting items\")\n exit()\n\n stac = response.json()\n count += int(stac[\"context\"].get(\"returned\", 0))\n next = [link for link in stac[\"links\"] if link[\"rel\"] == \"next\"]\n\n if not next:\n break\n items_url = next[0][\"href\"]\n\n return count\n\n\n# Check total number of items available\nnumber_of_items = get_item_count(collection_name)\nitems = requests.get(f\"{STAC_API_URL}/collections/{collection_name}/items?limit={number_of_items}\").json()[\"features\"]\nprint(f\"Found {len(items)} items\")\n\nFound 6 items\n\n\n\n# Examining the first item in the collection\nitems[0]\n\n{'id': 'oco2-mip-co2budget-yeargrid-v1-2020',\n 'bbox': [-180.0, -90.0, 180.0, 90.0],\n 'type': 'Feature',\n 'links': [{'rel': 'collection',\n 'type': 'application/json',\n 'href': 'https://ghg.center/api/stac/collections/oco2-mip-co2budget-yeargrid-v1'},\n {'rel': 'parent',\n 'type': 'application/json',\n 'href': 'https://ghg.center/api/stac/collections/oco2-mip-co2budget-yeargrid-v1'},\n {'rel': 'root',\n 'type': 'application/json',\n 'href': 'https://ghg.center/api/stac/'},\n {'rel': 'self',\n 'type': 'application/geo+json',\n 'href': 'https://ghg.center/api/stac/collections/oco2-mip-co2budget-yeargrid-v1/items/oco2-mip-co2budget-yeargrid-v1-2020'}],\n 'assets': {'ff': {'href': 's3://ghgc-data-store/oco2-mip-co2budget-yeargrid-v1/pilot_topdown_FF_CO2_Budget_grid_v1_2020.tif',\n 'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'Fossil fuel and cement emissions',\n 'proj:bbox': [-180.0, -90.0, 180.0, 90.0],\n 'proj:epsg': 4326.0,\n 'proj:shape': [180.0, 360.0],\n 'description': 'The burning of fossil fuels and release of carbon due to cement production, representing a flux of carbon from the land surface (geologic reservoir) to the atmosphere',\n 'raster:bands': [{'scale': 1.0,\n 'offset': 0.0,\n 'sampling': 'area',\n 'data_type': 'float64',\n 'histogram': {'max': 25762.3125,\n 'min': 0.0,\n 'count': 11.0,\n 'buckets': [64516.0, 199.0, 48.0, 17.0, 10.0, 4.0, 1.0, 0.0, 3.0, 2.0]},\n 'statistics': {'mean': 54.68926524648964,\n 'stddev': 442.23989014106485,\n 'maximum': 25762.3125,\n 'minimum': 0.0,\n 'valid_percent': 0.00154320987654321}}],\n 'proj:geometry': {'type': 'Polygon',\n 'coordinates': [[[-180.0, -90.0],\n [180.0, -90.0],\n [180.0, 90.0],\n [-180.0, 90.0],\n [-180.0, -90.0]]]},\n 'proj:projjson': {'id': {'code': 4326.0, 'authority': 'EPSG'},\n 'name': 'WGS 84',\n 'type': 'GeographicCRS',\n 'datum': {'name': 'World Geodetic System 1984',\n 'type': 'GeodeticReferenceFrame',\n 'ellipsoid': {'name': 'WGS 84',\n 'semi_major_axis': 6378137.0,\n 'inverse_flattening': 298.257223563}},\n '$schema': 'https://proj.org/schemas/v0.4/projjson.schema.json',\n 'coordinate_system': {'axis': [{'name': 'Geodetic latitude',\n 'unit': 'degree',\n 'direction': 'north',\n 'abbreviation': 'Lat'},\n {'name': 'Geodetic longitude',\n 'unit': 'degree',\n 'direction': 'east',\n 'abbreviation': 'Lon'}],\n 'subtype': 'ellipsoidal'}},\n 'proj:transform': [1.0, 0.0, -180.0, 0.0, -1.0, 90.0, 0.0, 0.0, 1.0]},\n 'crop': {'href': 's3://ghgc-data-store/oco2-mip-co2budget-yeargrid-v1/pilot_topdown_Crop_CO2_Budget_grid_v1_2020.tif',\n 'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'Lateral crop flux',\n 'proj:bbox': [-180.0, -90.0, 180.0, 90.0],\n 'proj:epsg': 4326.0,\n 'proj:shape': [180.0, 360.0],\n 'description': 'The lateral flux of carbon in (positive) or out (negative) of a region due to agriculture.',\n 'raster:bands': [{'scale': 1.0,\n 'offset': 0.0,\n 'sampling': 'area',\n 'data_type': 'float64',\n 'histogram': {'max': 1413.4342939282176,\n 'min': -821.2316120182234,\n 'count': 11.0,\n 'buckets': [1.0, 7.0, 71.0, 64473.0, 222.0, 17.0, 5.0, 2.0, 0.0, 2.0]},\n 'statistics': {'mean': -0.0848818515530641,\n 'stddev': 19.816472674277588,\n 'maximum': 1413.4342939282176,\n 'minimum': -821.2316120182234,\n 'valid_percent': 0.00154320987654321}}],\n 'proj:geometry': {'type': 'Polygon',\n 'coordinates': [[[-180.0, -90.0],\n [180.0, -90.0],\n [180.0, 90.0],\n [-180.0, 90.0],\n [-180.0, -90.0]]]},\n 'proj:projjson': {'id': {'code': 4326.0, 'authority': 'EPSG'},\n 'name': 'WGS 84',\n 'type': 'GeographicCRS',\n 'datum': {'name': 'World Geodetic System 1984',\n 'type': 'GeodeticReferenceFrame',\n 'ellipsoid': {'name': 'WGS 84',\n 'semi_major_axis': 6378137.0,\n 'inverse_flattening': 298.257223563}},\n '$schema': 'https://proj.org/schemas/v0.4/projjson.schema.json',\n 'coordinate_system': {'axis': [{'name': 'Geodetic latitude',\n 'unit': 'degree',\n 'direction': 'north',\n 'abbreviation': 'Lat'},\n {'name': 'Geodetic longitude',\n 'unit': 'degree',\n 'direction': 'east',\n 'abbreviation': 'Lon'}],\n 'subtype': 'ellipsoidal'}},\n 'proj:transform': [1.0, 0.0, -180.0, 0.0, -1.0, 90.0, 0.0, 0.0, 1.0]},\n 'wood': {'href': 's3://ghgc-data-store/oco2-mip-co2budget-yeargrid-v1/pilot_topdown_Wood_CO2_Budget_grid_v1_2020.tif',\n 'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'Lateral wood flux',\n 'proj:bbox': [-180.0, -90.0, 180.0, 90.0],\n 'proj:epsg': 4326.0,\n 'proj:shape': [180.0, 360.0],\n 'description': 'The lateral flux of carbon in (positive) or out (negative) of a region due to wood product harvesting and usage.',\n 'raster:bands': [{'scale': 1.0,\n 'offset': 0.0,\n 'sampling': 'area',\n 'data_type': 'float64',\n 'histogram': {'max': 886.8267457880838,\n 'min': -893.4090768667005,\n 'count': 11.0,\n 'buckets': [1.0, 0.0, 2.0, 54.0, 4763.0, 59968.0, 10.0, 1.0, 0.0, 1.0]},\n 'statistics': {'mean': -1.6227997301943906,\n 'stddev': 14.426756498712097,\n 'maximum': 886.8267457880838,\n 'minimum': -893.4090768667005,\n 'valid_percent': 0.00154320987654321}}],\n 'proj:geometry': {'type': 'Polygon',\n 'coordinates': [[[-180.0, -90.0],\n [180.0, -90.0],\n [180.0, 90.0],\n [-180.0, 90.0],\n [-180.0, -90.0]]]},\n 'proj:projjson': {'id': {'code': 4326.0, 'authority': 'EPSG'},\n 'name': 'WGS 84',\n 'type': 'GeographicCRS',\n 'datum': {'name': 'World Geodetic System 1984',\n 'type': 'GeodeticReferenceFrame',\n 'ellipsoid': {'name': 'WGS 84',\n 'semi_major_axis': 6378137.0,\n 'inverse_flattening': 298.257223563}},\n '$schema': 'https://proj.org/schemas/v0.4/projjson.schema.json',\n 'coordinate_system': {'axis': [{'name': 'Geodetic latitude',\n 'unit': 'degree',\n 'direction': 'north',\n 'abbreviation': 'Lat'},\n {'name': 'Geodetic longitude',\n 'unit': 'degree',\n 'direction': 'east',\n 'abbreviation': 'Lon'}],\n 'subtype': 'ellipsoidal'}},\n 'proj:transform': [1.0, 0.0, -180.0, 0.0, -1.0, 90.0, 0.0, 0.0, 1.0]},\n 'river': {'href': 's3://ghgc-data-store/oco2-mip-co2budget-yeargrid-v1/pilot_topdown_River_CO2_Budget_grid_v1_2020.tif',\n 'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'Lateral rivers flux',\n 'proj:bbox': [-180.0, -90.0, 180.0, 90.0],\n 'proj:epsg': 4326.0,\n 'proj:shape': [180.0, 360.0],\n 'description': 'The lateral flux of carbon in (positive) or out (negative) of a region transported by the water cycle.',\n 'raster:bands': [{'scale': 1.0,\n 'offset': 0.0,\n 'sampling': 'area',\n 'data_type': 'float64',\n 'histogram': {'max': 230.29083544674185,\n 'min': -128.99315231552467,\n 'count': 11.0,\n 'buckets': [4.0,\n 25.0,\n 547.0,\n 63696.0,\n 403.0,\n 66.0,\n 38.0,\n 9.0,\n 10.0,\n 2.0]},\n 'statistics': {'mean': -0.9365037131734213,\n 'stddev': 6.741980166906525,\n 'maximum': 230.29083544674185,\n 'minimum': -128.99315231552467,\n 'valid_percent': 0.00154320987654321}}],\n 'proj:geometry': {'type': 'Polygon',\n 'coordinates': [[[-180.0, -90.0],\n [180.0, -90.0],\n [180.0, 90.0],\n [-180.0, 90.0],\n [-180.0, -90.0]]]},\n 'proj:projjson': {'id': {'code': 4326.0, 'authority': 'EPSG'},\n 'name': 'WGS 84',\n 'type': 'GeographicCRS',\n 'datum': {'name': 'World Geodetic System 1984',\n 'type': 'GeodeticReferenceFrame',\n 'ellipsoid': {'name': 'WGS 84',\n 'semi_major_axis': 6378137.0,\n 'inverse_flattening': 298.257223563}},\n '$schema': 'https://proj.org/schemas/v0.4/projjson.schema.json',\n 'coordinate_system': {'axis': [{'name': 'Geodetic latitude',\n 'unit': 'degree',\n 'direction': 'north',\n 'abbreviation': 'Lat'},\n {'name': 'Geodetic longitude',\n 'unit': 'degree',\n 'direction': 'east',\n 'abbreviation': 'Lon'}],\n 'subtype': 'ellipsoidal'}},\n 'proj:transform': [1.0, 0.0, -180.0, 0.0, -1.0, 90.0, 0.0, 0.0, 1.0]},\n 'ff-std': {'href': 's3://ghgc-data-store/oco2-mip-co2budget-yeargrid-v1/pilot_topdown_FF_std_CO2_Budget_grid_v1_2020.tif',\n 'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'Fossil fuel and cement emissions std',\n 'proj:bbox': [-180.0, -90.0, 180.0, 90.0],\n 'proj:epsg': 4326.0,\n 'proj:shape': [180.0, 360.0],\n 'description': 'The burning of fossil fuels and release of carbon due to cement production, representing a flux of carbon from the land surface (geologic reservoir) to the atmosphere',\n 'raster:bands': [{'scale': 1.0,\n 'offset': 0.0,\n 'sampling': 'area',\n 'data_type': 'float64',\n 'histogram': {'max': 23231.900390625,\n 'min': 0.0,\n 'count': 11.0,\n 'buckets': [64705.0, 76.0, 11.0, 3.0, 1.0, 1.0, 2.0, 0.0, 0.0, 1.0]},\n 'statistics': {'mean': 26.378356791047626,\n 'stddev': 233.78396982573136,\n 'maximum': 23231.900390625,\n 'minimum': 0.0,\n 'valid_percent': 0.00154320987654321}}],\n 'proj:geometry': {'type': 'Polygon',\n 'coordinates': [[[-180.0, -90.0],\n [180.0, -90.0],\n [180.0, 90.0],\n [-180.0, 90.0],\n [-180.0, -90.0]]]},\n 'proj:projjson': {'id': {'code': 4326.0, 'authority': 'EPSG'},\n 'name': 'WGS 84',\n 'type': 'GeographicCRS',\n 'datum': {'name': 'World Geodetic System 1984',\n 'type': 'GeodeticReferenceFrame',\n 'ellipsoid': {'name': 'WGS 84',\n 'semi_major_axis': 6378137.0,\n 'inverse_flattening': 298.257223563}},\n '$schema': 'https://proj.org/schemas/v0.4/projjson.schema.json',\n 'coordinate_system': {'axis': [{'name': 'Geodetic latitude',\n 'unit': 'degree',\n 'direction': 'north',\n 'abbreviation': 'Lat'},\n {'name': 'Geodetic longitude',\n 'unit': 'degree',\n 'direction': 'east',\n 'abbreviation': 'Lon'}],\n 'subtype': 'ellipsoidal'}},\n 'proj:transform': [1.0, 0.0, -180.0, 0.0, -1.0, 90.0, 0.0, 0.0, 1.0]},\n 'is-nbe': {'href': 's3://ghgc-data-store/oco2-mip-co2budget-yeargrid-v1/pilot_topdown_IS_NBE_CO2_Budget_grid_v1_2020.tif',\n 'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'In situ Net biosphere exchange',\n 'proj:bbox': [-180.0, -90.0, 180.0, 90.0],\n 'proj:epsg': 4326.0,\n 'proj:shape': [180.0, 360.0],\n 'description': 'Net flux of carbon from the terrestrial biosphere to the atmosphere due to biomass burning (BB) and Reco minus gross primary production (GPP) (i.e., ). It includes both anthropogenic processes (e.g., deforestation, reforestation, farming) and natural processes (e.g., climate-variability-induced carbon fluxes, disturbances, recovery from disturbances).',\n 'raster:bands': [{'scale': 1.0,\n 'offset': 0.0,\n 'sampling': 'area',\n 'data_type': 'float64',\n 'histogram': {'max': 1149.6695556640625,\n 'min': -1408.24169921875,\n 'count': 11.0,\n 'buckets': [16.0,\n 35.0,\n 108.0,\n 616.0,\n 3339.0,\n 59909.0,\n 676.0,\n 88.0,\n 12.0,\n 1.0]},\n 'statistics': {'mean': -17.434049799347616,\n 'stddev': 89.42319485219821,\n 'maximum': 1149.6695556640625,\n 'minimum': -1408.24169921875,\n 'valid_percent': 0.00154320987654321}}],\n 'proj:geometry': {'type': 'Polygon',\n 'coordinates': [[[-180.0, -90.0],\n [180.0, -90.0],\n [180.0, 90.0],\n [-180.0, 90.0],\n [-180.0, -90.0]]]},\n 'proj:projjson': {'id': {'code': 4326.0, 'authority': 'EPSG'},\n 'name': 'WGS 84',\n 'type': 'GeographicCRS',\n 'datum': {'name': 'World Geodetic System 1984',\n 'type': 'GeodeticReferenceFrame',\n 'ellipsoid': {'name': 'WGS 84',\n 'semi_major_axis': 6378137.0,\n 'inverse_flattening': 298.257223563}},\n '$schema': 'https://proj.org/schemas/v0.4/projjson.schema.json',\n 'coordinate_system': {'axis': [{'name': 'Geodetic latitude',\n 'unit': 'degree',\n 'direction': 'north',\n 'abbreviation': 'Lat'},\n {'name': 'Geodetic longitude',\n 'unit': 'degree',\n 'direction': 'east',\n 'abbreviation': 'Lon'}],\n 'subtype': 'ellipsoidal'}},\n 'proj:transform': [1.0, 0.0, -180.0, 0.0, -1.0, 90.0, 0.0, 0.0, 1.0]},\n 'is-nce': {'href': 's3://ghgc-data-store/oco2-mip-co2budget-yeargrid-v1/pilot_topdown_IS_NCE_CO2_Budget_grid_v1_2020.tif',\n 'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'In situ Terrestrial net carbon exchange',\n 'proj:bbox': [-180.0, -90.0, 180.0, 90.0],\n 'proj:epsg': 4326.0,\n 'proj:shape': [180.0, 360.0],\n 'description': 'Net flux of carbon from the surface to the atmosphere. For land, NCE can be defined as sum of NBE and fossil fuel and cement emissions',\n 'raster:bands': [{'scale': 1.0,\n 'offset': 0.0,\n 'sampling': 'area',\n 'data_type': 'float64',\n 'histogram': {'max': 25703.37777709961,\n 'min': -1226.5958404541016,\n 'count': 11.0,\n 'buckets': [64278.0, 400.0, 72.0, 26.0, 13.0, 4.0, 2.0, 0.0, 3.0, 2.0]},\n 'statistics': {'mean': 37.255215447142035,\n 'stddev': 437.1998693275883,\n 'maximum': 25703.37777709961,\n 'minimum': -1226.5958404541016,\n 'valid_percent': 0.00154320987654321}}],\n 'proj:geometry': {'type': 'Polygon',\n 'coordinates': [[[-180.0, -90.0],\n [180.0, -90.0],\n [180.0, 90.0],\n [-180.0, 90.0],\n [-180.0, -90.0]]]},\n 'proj:projjson': {'id': {'code': 4326.0, 'authority': 'EPSG'},\n 'name': 'WGS 84',\n 'type': 'GeographicCRS',\n 'datum': {'name': 'World Geodetic System 1984',\n 'type': 'GeodeticReferenceFrame',\n 'ellipsoid': {'name': 'WGS 84',\n 'semi_major_axis': 6378137.0,\n 'inverse_flattening': 298.257223563}},\n '$schema': 'https://proj.org/schemas/v0.4/projjson.schema.json',\n 'coordinate_system': {'axis': [{'name': 'Geodetic latitude',\n 'unit': 'degree',\n 'direction': 'north',\n 'abbreviation': 'Lat'},\n {'name': 'Geodetic longitude',\n 'unit': 'degree',\n 'direction': 'east',\n 'abbreviation': 'Lon'}],\n 'subtype': 'ellipsoidal'}},\n 'proj:transform': [1.0, 0.0, -180.0, 0.0, -1.0, 90.0, 0.0, 0.0, 1.0]},\n 'crop-std': {'href': 's3://ghgc-data-store/oco2-mip-co2budget-yeargrid-v1/pilot_topdown_Crop_std_CO2_Budget_grid_v1_2020.tif',\n 'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'lateral crop flux std ',\n 'proj:bbox': [-180.0, -90.0, 180.0, 90.0],\n 'proj:epsg': 4326.0,\n 'proj:shape': [180.0, 360.0],\n 'description': 'The lateral flux of carbon in (positive) or out (negative) of a region due to agriculture.',\n 'raster:bands': [{'scale': 1.0,\n 'offset': 0.0,\n 'sampling': 'area',\n 'data_type': 'float64',\n 'histogram': {'max': 424.0302881784653,\n 'min': 0.0,\n 'count': 11.0,\n 'buckets': [64612.0, 144.0, 29.0, 7.0, 3.0, 3.0, 0.0, 0.0, 1.0, 1.0]},\n 'statistics': {'mean': 0.9286867985398175,\n 'stddev': 5.872011776754035,\n 'maximum': 424.0302881784653,\n 'minimum': 0.0,\n 'valid_percent': 0.00154320987654321}}],\n 'proj:geometry': {'type': 'Polygon',\n 'coordinates': [[[-180.0, -90.0],\n [180.0, -90.0],\n [180.0, 90.0],\n [-180.0, 90.0],\n [-180.0, -90.0]]]},\n 'proj:projjson': {'id': {'code': 4326.0, 'authority': 'EPSG'},\n 'name': 'WGS 84',\n 'type': 'GeographicCRS',\n 'datum': {'name': 'World Geodetic System 1984',\n 'type': 'GeodeticReferenceFrame',\n 'ellipsoid': {'name': 'WGS 84',\n 'semi_major_axis': 6378137.0,\n 'inverse_flattening': 298.257223563}},\n '$schema': 'https://proj.org/schemas/v0.4/projjson.schema.json',\n 'coordinate_system': {'axis': [{'name': 'Geodetic latitude',\n 'unit': 'degree',\n 'direction': 'north',\n 'abbreviation': 'Lat'},\n {'name': 'Geodetic longitude',\n 'unit': 'degree',\n 'direction': 'east',\n 'abbreviation': 'Lon'}],\n 'subtype': 'ellipsoidal'}},\n 'proj:transform': [1.0, 0.0, -180.0, 0.0, -1.0, 90.0, 0.0, 0.0, 1.0]},\n 'lnlg-nbe': {'href': 's3://ghgc-data-store/oco2-mip-co2budget-yeargrid-v1/pilot_topdown_LNLG_NBE_CO2_Budget_grid_v1_2020.tif',\n 'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'Land Nadir and Land Glint Net biosphere exchange',\n 'proj:bbox': [-180.0, -90.0, 180.0, 90.0],\n 'proj:epsg': 4326.0,\n 'proj:shape': [180.0, 360.0],\n 'description': 'Net flux of carbon from the terrestrial biosphere to the atmosphere due to biomass burning (BB) and Reco minus gross primary production (GPP) (i.e., ). It includes both anthropogenic processes (e.g., deforestation, reforestation, farming) and natural processes (e.g., climate-variability-induced carbon fluxes, disturbances, recovery from disturbances',\n 'raster:bands': [{'scale': 1.0,\n 'offset': 0.0,\n 'sampling': 'area',\n 'data_type': 'float64',\n 'histogram': {'max': 2599.83935546875,\n 'min': -1888.9810791015625,\n 'count': 11.0,\n 'buckets': [4.0,\n 36.0,\n 774.0,\n 4318.0,\n 58979.0,\n 624.0,\n 34.0,\n 14.0,\n 12.0,\n 5.0]},\n 'statistics': {'mean': -15.447162739865497,\n 'stddev': 132.6736652625944,\n 'maximum': 2599.83935546875,\n 'minimum': -1888.9810791015625,\n 'valid_percent': 0.00154320987654321}}],\n 'proj:geometry': {'type': 'Polygon',\n 'coordinates': [[[-180.0, -90.0],\n [180.0, -90.0],\n [180.0, 90.0],\n [-180.0, 90.0],\n [-180.0, -90.0]]]},\n 'proj:projjson': {'id': {'code': 4326.0, 'authority': 'EPSG'},\n 'name': 'WGS 84',\n 'type': 'GeographicCRS',\n 'datum': {'name': 'World Geodetic System 1984',\n 'type': 'GeodeticReferenceFrame',\n 'ellipsoid': {'name': 'WGS 84',\n 'semi_major_axis': 6378137.0,\n 'inverse_flattening': 298.257223563}},\n '$schema': 'https://proj.org/schemas/v0.4/projjson.schema.json',\n 'coordinate_system': {'axis': [{'name': 'Geodetic latitude',\n 'unit': 'degree',\n 'direction': 'north',\n 'abbreviation': 'Lat'},\n {'name': 'Geodetic longitude',\n 'unit': 'degree',\n 'direction': 'east',\n 'abbreviation': 'Lon'}],\n 'subtype': 'ellipsoidal'}},\n 'proj:transform': [1.0, 0.0, -180.0, 0.0, -1.0, 90.0, 0.0, 0.0, 1.0]},\n 'lnlg-nce': {'href': 's3://ghgc-data-store/oco2-mip-co2budget-yeargrid-v1/pilot_topdown_LNLG_NCE_CO2_Budget_grid_v1_2020.tif',\n 'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'Land Nadir and Land glint In situ Terrestrial net carbon exchange',\n 'proj:bbox': [-180.0, -90.0, 180.0, 90.0],\n 'proj:epsg': 4326.0,\n 'proj:shape': [180.0, 360.0],\n 'description': 'Net flux of carbon from the surface to the atmosphere. For land, NCE can be defined as sum of NBE and fossil fuel and cement emissions',\n 'raster:bands': [{'scale': 1.0,\n 'offset': 0.0,\n 'sampling': 'area',\n 'data_type': 'float64',\n 'histogram': {'max': 25567.622344970703,\n 'min': -1853.1165390014648,\n 'count': 11.0,\n 'buckets': [63941.0, 720.0, 81.0, 33.0, 14.0, 4.0, 2.0, 0.0, 3.0, 2.0]},\n 'statistics': {'mean': 39.24210250662415,\n 'stddev': 434.0339466646377,\n 'maximum': 25567.622344970703,\n 'minimum': -1853.1165390014648,\n 'valid_percent': 0.00154320987654321}}],\n 'proj:geometry': {'type': 'Polygon',\n 'coordinates': [[[-180.0, -90.0],\n [180.0, -90.0],\n [180.0, 90.0],\n [-180.0, 90.0],\n [-180.0, -90.0]]]},\n 'proj:projjson': {'id': {'code': 4326.0, 'authority': 'EPSG'},\n 'name': 'WGS 84',\n 'type': 'GeographicCRS',\n 'datum': {'name': 'World Geodetic System 1984',\n 'type': 'GeodeticReferenceFrame',\n 'ellipsoid': {'name': 'WGS 84',\n 'semi_major_axis': 6378137.0,\n 'inverse_flattening': 298.257223563}},\n '$schema': 'https://proj.org/schemas/v0.4/projjson.schema.json',\n 'coordinate_system': {'axis': [{'name': 'Geodetic latitude',\n 'unit': 'degree',\n 'direction': 'north',\n 'abbreviation': 'Lat'},\n {'name': 'Geodetic longitude',\n 'unit': 'degree',\n 'direction': 'east',\n 'abbreviation': 'Lon'}],\n 'subtype': 'ellipsoidal'}},\n 'proj:transform': [1.0, 0.0, -180.0, 0.0, -1.0, 90.0, 0.0, 0.0, 1.0]},\n 'wood-std': {'href': 's3://ghgc-data-store/oco2-mip-co2budget-yeargrid-v1/pilot_topdown_Wood_std_CO2_Budget_grid_v1_2020.tif',\n 'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'Lateral wood flux std',\n 'proj:bbox': [-180.0, -90.0, 180.0, 90.0],\n 'proj:epsg': 4326.0,\n 'proj:shape': [180.0, 360.0],\n 'description': 'The lateral flux of carbon in (positive) or out (negative) of a region due to wood product harvesting and usage.',\n 'raster:bands': [{'scale': 1.0,\n 'offset': 0.0,\n 'sampling': 'area',\n 'data_type': 'float64',\n 'histogram': {'max': 268.02272306001015,\n 'min': 0.0,\n 'count': 11.0,\n 'buckets': [64457.0, 269.0, 57.0, 12.0, 2.0, 1.0, 0.0, 0.0, 0.0, 2.0]},\n 'statistics': {'mean': 0.7520992161897981,\n 'stddev': 4.289892440653641,\n 'maximum': 268.02272306001015,\n 'minimum': 0.0,\n 'valid_percent': 0.00154320987654321}}],\n 'proj:geometry': {'type': 'Polygon',\n 'coordinates': [[[-180.0, -90.0],\n [180.0, -90.0],\n [180.0, 90.0],\n [-180.0, 90.0],\n [-180.0, -90.0]]]},\n 'proj:projjson': {'id': {'code': 4326.0, 'authority': 'EPSG'},\n 'name': 'WGS 84',\n 'type': 'GeographicCRS',\n 'datum': {'name': 'World Geodetic System 1984',\n 'type': 'GeodeticReferenceFrame',\n 'ellipsoid': {'name': 'WGS 84',\n 'semi_major_axis': 6378137.0,\n 'inverse_flattening': 298.257223563}},\n '$schema': 'https://proj.org/schemas/v0.4/projjson.schema.json',\n 'coordinate_system': {'axis': [{'name': 'Geodetic latitude',\n 'unit': 'degree',\n 'direction': 'north',\n 'abbreviation': 'Lat'},\n {'name': 'Geodetic longitude',\n 'unit': 'degree',\n 'direction': 'east',\n 'abbreviation': 'Lon'}],\n 'subtype': 'ellipsoidal'}},\n 'proj:transform': [1.0, 0.0, -180.0, 0.0, -1.0, 90.0, 0.0, 0.0, 1.0]},\n 'river-std': {'href': 's3://ghgc-data-store/oco2-mip-co2budget-yeargrid-v1/pilot_topdown_River_std_CO2_Budget_grid_v1_2020.tif',\n 'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'Lateral rivers flux std',\n 'proj:bbox': [-180.0, -90.0, 180.0, 90.0],\n 'proj:epsg': 4326.0,\n 'proj:shape': [180.0, 360.0],\n 'description': 'The lateral flux of carbon in (positive) or out (negative) of a region transported by the water cycle.',\n 'raster:bands': [{'scale': 1.0,\n 'offset': 0.0,\n 'sampling': 'area',\n 'data_type': 'float64',\n 'histogram': {'max': 138.1745012680451,\n 'min': 0.0,\n 'count': 11.0,\n 'buckets': [64020.0, 586.0, 94.0, 42.0, 35.0, 8.0, 3.0, 8.0, 3.0, 1.0]},\n 'statistics': {'mean': 1.1315162852460954,\n 'stddev': 3.9241498156278833,\n 'maximum': 138.1745012680451,\n 'minimum': 0.0,\n 'valid_percent': 0.00154320987654321}}],\n 'proj:geometry': {'type': 'Polygon',\n 'coordinates': [[[-180.0, -90.0],\n [180.0, -90.0],\n [180.0, 90.0],\n [-180.0, 90.0],\n [-180.0, -90.0]]]},\n 'proj:projjson': {'id': {'code': 4326.0, 'authority': 'EPSG'},\n 'name': 'WGS 84',\n 'type': 'GeographicCRS',\n 'datum': {'name': 'World Geodetic System 1984',\n 'type': 'GeodeticReferenceFrame',\n 'ellipsoid': {'name': 'WGS 84',\n 'semi_major_axis': 6378137.0,\n 'inverse_flattening': 298.257223563}},\n '$schema': 'https://proj.org/schemas/v0.4/projjson.schema.json',\n 'coordinate_system': {'axis': [{'name': 'Geodetic latitude',\n 'unit': 'degree',\n 'direction': 'north',\n 'abbreviation': 'Lat'},\n {'name': 'Geodetic longitude',\n 'unit': 'degree',\n 'direction': 'east',\n 'abbreviation': 'Lon'}],\n 'subtype': 'ellipsoidal'}},\n 'proj:transform': [1.0, 0.0, -180.0, 0.0, -1.0, 90.0, 0.0, 0.0, 1.0]},\n 'is-dc-loss': {'href': 's3://ghgc-data-store/oco2-mip-co2budget-yeargrid-v1/pilot_topdown_IS_dC_loss_CO2_Budget_grid_v1_2020.tif',\n 'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'In situ Net terrestrial carbon stock loss',\n 'proj:bbox': [-180.0, -90.0, 180.0, 90.0],\n 'proj:epsg': 4326.0,\n 'proj:shape': [180.0, 360.0],\n 'description': 'Positive values indicate a loss (decrease) of terrestrial carbon stocks (organic matter stored on land), including above- and below-ground biomass in ecosystems and biomass contained in anthropogenic products (lumber, cattle, etc.).',\n 'raster:bands': [{'scale': 1.0,\n 'offset': 0.0,\n 'sampling': 'area',\n 'data_type': 'float64',\n 'histogram': {'max': 1138.5962078736195,\n 'min': -2094.7614470433873,\n 'count': 11.0,\n 'buckets': [2.0,\n 1.0,\n 16.0,\n 46.0,\n 316.0,\n 2857.0,\n 60788.0,\n 717.0,\n 52.0,\n 5.0]},\n 'statistics': {'mean': -14.78986450442674,\n 'stddev': 89.37595302920583,\n 'maximum': 1138.5962078736195,\n 'minimum': -2094.7614470433873,\n 'valid_percent': 0.00154320987654321}}],\n 'proj:geometry': {'type': 'Polygon',\n 'coordinates': [[[-180.0, -90.0],\n [180.0, -90.0],\n [180.0, 90.0],\n [-180.0, 90.0],\n [-180.0, -90.0]]]},\n 'proj:projjson': {'id': {'code': 4326.0, 'authority': 'EPSG'},\n 'name': 'WGS 84',\n 'type': 'GeographicCRS',\n 'datum': {'name': 'World Geodetic System 1984',\n 'type': 'GeodeticReferenceFrame',\n 'ellipsoid': {'name': 'WGS 84',\n 'semi_major_axis': 6378137.0,\n 'inverse_flattening': 298.257223563}},\n '$schema': 'https://proj.org/schemas/v0.4/projjson.schema.json',\n 'coordinate_system': {'axis': [{'name': 'Geodetic latitude',\n 'unit': 'degree',\n 'direction': 'north',\n 'abbreviation': 'Lat'},\n {'name': 'Geodetic longitude',\n 'unit': 'degree',\n 'direction': 'east',\n 'abbreviation': 'Lon'}],\n 'subtype': 'ellipsoidal'}},\n 'proj:transform': [1.0, 0.0, -180.0, 0.0, -1.0, 90.0, 0.0, 0.0, 1.0]},\n 'is-nbe-std': {'href': 's3://ghgc-data-store/oco2-mip-co2budget-yeargrid-v1/pilot_topdown_IS_NBE_std_CO2_Budget_grid_v1_2020.tif',\n 'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'In situ Net biosphere exchange std',\n 'proj:bbox': [-180.0, -90.0, 180.0, 90.0],\n 'proj:epsg': 4326.0,\n 'proj:shape': [180.0, 360.0],\n 'description': 'Net flux of carbon from the terrestrial biosphere to the atmosphere due to biomass burning (BB) and Reco minus gross primary production (GPP) (i.e., ). It includes both anthropogenic processes (e.g., deforestation, reforestation, farming) and natural processes (e.g., climate-variability-induced carbon fluxes, disturbances, recovery from disturbances.',\n 'raster:bands': [{'scale': 1.0,\n 'offset': 0.0,\n 'sampling': 'area',\n 'data_type': 'float64',\n 'histogram': {'max': 23235.21941604951,\n 'min': 0.0,\n 'count': 11.0,\n 'buckets': [64704.0, 77.0, 11.0, 3.0, 1.0, 1.0, 2.0, 0.0, 0.0, 1.0]},\n 'statistics': {'mean': 60.599365453217466,\n 'stddev': 254.31991295799625,\n 'maximum': 23235.21941604951,\n 'minimum': 0.0,\n 'valid_percent': 0.00154320987654321}}],\n 'proj:geometry': {'type': 'Polygon',\n 'coordinates': [[[-180.0, -90.0],\n [180.0, -90.0],\n [180.0, 90.0],\n [-180.0, 90.0],\n [-180.0, -90.0]]]},\n 'proj:projjson': {'id': {'code': 4326.0, 'authority': 'EPSG'},\n 'name': 'WGS 84',\n 'type': 'GeographicCRS',\n 'datum': {'name': 'World Geodetic System 1984',\n 'type': 'GeodeticReferenceFrame',\n 'ellipsoid': {'name': 'WGS 84',\n 'semi_major_axis': 6378137.0,\n 'inverse_flattening': 298.257223563}},\n '$schema': 'https://proj.org/schemas/v0.4/projjson.schema.json',\n 'coordinate_system': {'axis': [{'name': 'Geodetic latitude',\n 'unit': 'degree',\n 'direction': 'north',\n 'abbreviation': 'Lat'},\n {'name': 'Geodetic longitude',\n 'unit': 'degree',\n 'direction': 'east',\n 'abbreviation': 'Lon'}],\n 'subtype': 'ellipsoidal'}},\n 'proj:transform': [1.0, 0.0, -180.0, 0.0, -1.0, 90.0, 0.0, 0.0, 1.0]},\n 'is-nce-std': {'href': 's3://ghgc-data-store/oco2-mip-co2budget-yeargrid-v1/pilot_topdown_IS_NCE_std_CO2_Budget_grid_v1_2020.tif',\n 'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'In situ Terrestrial net carbon exchange std',\n 'proj:bbox': [-180.0, -90.0, 180.0, 90.0],\n 'proj:epsg': 4326.0,\n 'proj:shape': [180.0, 360.0],\n 'description': 'Net flux of carbon from the surface to the atmosphere. For land, NCE can be defined as sum of NBE and fossil fuel and cement emissions',\n 'raster:bands': [{'scale': 1.0,\n 'offset': 0.0,\n 'sampling': 'area',\n 'data_type': 'float64',\n 'histogram': {'max': 1755.1120221173321,\n 'min': 0.0,\n 'count': 11.0,\n 'buckets': [58642.0,\n 4461.0,\n 1203.0,\n 328.0,\n 94.0,\n 43.0,\n 19.0,\n 3.0,\n 4.0,\n 3.0]},\n 'statistics': {'mean': 41.86482202629824,\n 'stddev': 106.05411508804677,\n 'maximum': 1755.1120221173321,\n 'minimum': 0.0,\n 'valid_percent': 0.00154320987654321}}],\n 'proj:geometry': {'type': 'Polygon',\n 'coordinates': [[[-180.0, -90.0],\n [180.0, -90.0],\n [180.0, 90.0],\n [-180.0, 90.0],\n [-180.0, -90.0]]]},\n 'proj:projjson': {'id': {'code': 4326.0, 'authority': 'EPSG'},\n 'name': 'WGS 84',\n 'type': 'GeographicCRS',\n 'datum': {'name': 'World Geodetic System 1984',\n 'type': 'GeodeticReferenceFrame',\n 'ellipsoid': {'name': 'WGS 84',\n 'semi_major_axis': 6378137.0,\n 'inverse_flattening': 298.257223563}},\n '$schema': 'https://proj.org/schemas/v0.4/projjson.schema.json',\n 'coordinate_system': {'axis': [{'name': 'Geodetic latitude',\n 'unit': 'degree',\n 'direction': 'north',\n 'abbreviation': 'Lat'},\n {'name': 'Geodetic longitude',\n 'unit': 'degree',\n 'direction': 'east',\n 'abbreviation': 'Lon'}],\n 'subtype': 'ellipsoidal'}},\n 'proj:transform': [1.0, 0.0, -180.0, 0.0, -1.0, 90.0, 0.0, 0.0, 1.0]},\n 'lnlgis-nbe': {'href': 's3://ghgc-data-store/oco2-mip-co2budget-yeargrid-v1/pilot_topdown_LNLGIS_NBE_CO2_Budget_grid_v1_2020.tif',\n 'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'Land Nadir and Land Glint In situ Net biosphere exchange',\n 'proj:bbox': [-180.0, -90.0, 180.0, 90.0],\n 'proj:epsg': 4326.0,\n 'proj:shape': [180.0, 360.0],\n 'description': 'Net flux of carbon from the terrestrial biosphere to the atmosphere due to biomass burning (BB) and Reco minus gross primary production (GPP) (i.e., ). It includes both anthropogenic processes (e.g., deforestation, reforestation, farming) and natural processes (e.g., climate-variability-induced carbon fluxes, disturbances, recovery from disturbances',\n 'raster:bands': [{'scale': 1.0,\n 'offset': 0.0,\n 'sampling': 'area',\n 'data_type': 'float64',\n 'histogram': {'max': 2262.087158203125,\n 'min': -1781.954345703125,\n 'count': 11.0,\n 'buckets': [4.0,\n 61.0,\n 679.0,\n 3199.0,\n 59741.0,\n 953.0,\n 125.0,\n 19.0,\n 6.0,\n 13.0]},\n 'statistics': {'mean': -16.494785340231257,\n 'stddev': 134.0106684679555,\n 'maximum': 2262.087158203125,\n 'minimum': -1781.954345703125,\n 'valid_percent': 0.00154320987654321}}],\n 'proj:geometry': {'type': 'Polygon',\n 'coordinates': [[[-180.0, -90.0],\n [180.0, -90.0],\n [180.0, 90.0],\n [-180.0, 90.0],\n [-180.0, -90.0]]]},\n 'proj:projjson': {'id': {'code': 4326.0, 'authority': 'EPSG'},\n 'name': 'WGS 84',\n 'type': 'GeographicCRS',\n 'datum': {'name': 'World Geodetic System 1984',\n 'type': 'GeodeticReferenceFrame',\n 'ellipsoid': {'name': 'WGS 84',\n 'semi_major_axis': 6378137.0,\n 'inverse_flattening': 298.257223563}},\n '$schema': 'https://proj.org/schemas/v0.4/projjson.schema.json',\n 'coordinate_system': {'axis': [{'name': 'Geodetic latitude',\n 'unit': 'degree',\n 'direction': 'north',\n 'abbreviation': 'Lat'},\n {'name': 'Geodetic longitude',\n 'unit': 'degree',\n 'direction': 'east',\n 'abbreviation': 'Lon'}],\n 'subtype': 'ellipsoidal'}},\n 'proj:transform': [1.0, 0.0, -180.0, 0.0, -1.0, 90.0, 0.0, 0.0, 1.0]},\n 'lnlgis-nce': {'href': 's3://ghgc-data-store/oco2-mip-co2budget-yeargrid-v1/pilot_topdown_LNLGIS_NCE_CO2_Budget_grid_v1_2020.tif',\n 'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'Land Nadir and Land Glint In situ Terrestrial net carbon exchange',\n 'proj:bbox': [-180.0, -90.0, 180.0, 90.0],\n 'proj:epsg': 4326.0,\n 'proj:shape': [180.0, 360.0],\n 'description': 'Net flux of carbon from the surface to the atmosphere. For land, NCE can be defined as sum of NBE and fossil fuel and cement emissions',\n 'raster:bands': [{'scale': 1.0,\n 'offset': 0.0,\n 'sampling': 'area',\n 'data_type': 'float64',\n 'histogram': {'max': 25282.59210205078,\n 'min': -1770.9173936843872,\n 'count': 11.0,\n 'buckets': [63998.0, 665.0, 79.0, 32.0, 15.0, 4.0, 2.0, 0.0, 3.0, 2.0]},\n 'statistics': {'mean': 38.19447990625839,\n 'stddev': 434.443731756925,\n 'maximum': 25282.59210205078,\n 'minimum': -1770.9173936843872,\n 'valid_percent': 0.00154320987654321}}],\n 'proj:geometry': {'type': 'Polygon',\n 'coordinates': [[[-180.0, -90.0],\n [180.0, -90.0],\n [180.0, 90.0],\n [-180.0, 90.0],\n [-180.0, -90.0]]]},\n 'proj:projjson': {'id': {'code': 4326.0, 'authority': 'EPSG'},\n 'name': 'WGS 84',\n 'type': 'GeographicCRS',\n 'datum': {'name': 'World Geodetic System 1984',\n 'type': 'GeodeticReferenceFrame',\n 'ellipsoid': {'name': 'WGS 84',\n 'semi_major_axis': 6378137.0,\n 'inverse_flattening': 298.257223563}},\n '$schema': 'https://proj.org/schemas/v0.4/projjson.schema.json',\n 'coordinate_system': {'axis': [{'name': 'Geodetic latitude',\n 'unit': 'degree',\n 'direction': 'north',\n 'abbreviation': 'Lat'},\n {'name': 'Geodetic longitude',\n 'unit': 'degree',\n 'direction': 'east',\n 'abbreviation': 'Lon'}],\n 'subtype': 'ellipsoidal'}},\n 'proj:transform': [1.0, 0.0, -180.0, 0.0, -1.0, 90.0, 0.0, 0.0, 1.0]},\n 'lnlg-dc-loss': {'href': 's3://ghgc-data-store/oco2-mip-co2budget-yeargrid-v1/pilot_topdown_LNLG_dC_loss_CO2_Budget_grid_v1_2020.tif',\n 'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'Land Nadir and Land Glint Net terrestrial carbon stock loss',\n 'proj:bbox': [-180.0, -90.0, 180.0, 90.0],\n 'proj:epsg': 4326.0,\n 'proj:shape': [180.0, 360.0],\n 'description': 'Positive values indicate a loss (decrease) of terrestrial carbon stocks (organic matter stored on land), including above- and below-ground biomass in ecosystems and biomass contained in anthropogenic products (lumber, cattle, etc.).',\n 'raster:bands': [{'scale': 1.0,\n 'offset': 0.0,\n 'sampling': 'area',\n 'data_type': 'float64',\n 'histogram': {'max': 2584.6377295489565,\n 'min': -2275.288622171228,\n 'count': 11.0,\n 'buckets': [5.0,\n 3.0,\n 127.0,\n 1749.0,\n 61088.0,\n 1642.0,\n 152.0,\n 16.0,\n 11.0,\n 7.0]},\n 'statistics': {'mean': -12.80297744494462,\n 'stddev': 131.23640615905333,\n 'maximum': 2584.6377295489565,\n 'minimum': -2275.288622171228,\n 'valid_percent': 0.00154320987654321}}],\n 'proj:geometry': {'type': 'Polygon',\n 'coordinates': [[[-180.0, -90.0],\n [180.0, -90.0],\n [180.0, 90.0],\n [-180.0, 90.0],\n [-180.0, -90.0]]]},\n 'proj:projjson': {'id': {'code': 4326.0, 'authority': 'EPSG'},\n 'name': 'WGS 84',\n 'type': 'GeographicCRS',\n 'datum': {'name': 'World Geodetic System 1984',\n 'type': 'GeodeticReferenceFrame',\n 'ellipsoid': {'name': 'WGS 84',\n 'semi_major_axis': 6378137.0,\n 'inverse_flattening': 298.257223563}},\n '$schema': 'https://proj.org/schemas/v0.4/projjson.schema.json',\n 'coordinate_system': {'axis': [{'name': 'Geodetic latitude',\n 'unit': 'degree',\n 'direction': 'north',\n 'abbreviation': 'Lat'},\n {'name': 'Geodetic longitude',\n 'unit': 'degree',\n 'direction': 'east',\n 'abbreviation': 'Lon'}],\n 'subtype': 'ellipsoidal'}},\n 'proj:transform': [1.0, 0.0, -180.0, 0.0, -1.0, 90.0, 0.0, 0.0, 1.0]},\n 'lnlg-nbe-std': {'href': 's3://ghgc-data-store/oco2-mip-co2budget-yeargrid-v1/pilot_topdown_LNLG_NBE_std_CO2_Budget_grid_v1_2020.tif',\n 'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'Land Nadir and Land Glint Net biosphere exchange std',\n 'proj:bbox': [-180.0, -90.0, 180.0, 90.0],\n 'proj:epsg': 4326.0,\n 'proj:shape': [180.0, 360.0],\n 'description': 'Net flux of carbon from the terrestrial biosphere to the atmosphere due to biomass burning (BB) and Reco minus gross primary production (GPP) (i.e., ). It includes both anthropogenic processes (e.g., deforestation, reforestation, farming) and natural processes (e.g., climate-variability-induced carbon fluxes, disturbances, recovery from disturbances',\n 'raster:bands': [{'scale': 1.0,\n 'offset': 0.0,\n 'sampling': 'area',\n 'data_type': 'float64',\n 'histogram': {'max': 23236.440379123833,\n 'min': 0.0,\n 'count': 11.0,\n 'buckets': [64703.0, 78.0, 11.0, 3.0, 1.0, 1.0, 2.0, 0.0, 0.0, 1.0]},\n 'statistics': {'mean': 76.26838004634416,\n 'stddev': 269.5164626571854,\n 'maximum': 23236.440379123833,\n 'minimum': 0.0,\n 'valid_percent': 0.00154320987654321}}],\n 'proj:geometry': {'type': 'Polygon',\n 'coordinates': [[[-180.0, -90.0],\n [180.0, -90.0],\n [180.0, 90.0],\n [-180.0, 90.0],\n [-180.0, -90.0]]]},\n 'proj:projjson': {'id': {'code': 4326.0, 'authority': 'EPSG'},\n 'name': 'WGS 84',\n 'type': 'GeographicCRS',\n 'datum': {'name': 'World Geodetic System 1984',\n 'type': 'GeodeticReferenceFrame',\n 'ellipsoid': {'name': 'WGS 84',\n 'semi_major_axis': 6378137.0,\n 'inverse_flattening': 298.257223563}},\n '$schema': 'https://proj.org/schemas/v0.4/projjson.schema.json',\n 'coordinate_system': {'axis': [{'name': 'Geodetic latitude',\n 'unit': 'degree',\n 'direction': 'north',\n 'abbreviation': 'Lat'},\n {'name': 'Geodetic longitude',\n 'unit': 'degree',\n 'direction': 'east',\n 'abbreviation': 'Lon'}],\n 'subtype': 'ellipsoidal'}},\n 'proj:transform': [1.0, 0.0, -180.0, 0.0, -1.0, 90.0, 0.0, 0.0, 1.0]},\n 'lnlg-nce-std': {'href': 's3://ghgc-data-store/oco2-mip-co2budget-yeargrid-v1/pilot_topdown_LNLG_NCE_std_CO2_Budget_grid_v1_2020.tif',\n 'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'Land Nadir and Land Glint Terrestrial net carbon exchange std',\n 'proj:bbox': [-180.0, -90.0, 180.0, 90.0],\n 'proj:epsg': 4326.0,\n 'proj:shape': [180.0, 360.0],\n 'description': 'Net flux of carbon from the surface to the atmosphere. For land, NCE can be defined as sum of NBE and fossil fuel and cement emissions',\n 'raster:bands': [{'scale': 1.0,\n 'offset': 0.0,\n 'sampling': 'area',\n 'data_type': 'float64',\n 'histogram': {'max': 1766.6826036241318,\n 'min': 0.0,\n 'count': 11.0,\n 'buckets': [56036.0,\n 5123.0,\n 2433.0,\n 840.0,\n 213.0,\n 92.0,\n 33.0,\n 16.0,\n 1.0,\n 13.0]},\n 'statistics': {'mean': 58.849766427923235,\n 'stddev': 140.14967663045596,\n 'maximum': 1766.6826036241318,\n 'minimum': 0.0,\n 'valid_percent': 0.00154320987654321}}],\n 'proj:geometry': {'type': 'Polygon',\n 'coordinates': [[[-180.0, -90.0],\n [180.0, -90.0],\n [180.0, 90.0],\n [-180.0, 90.0],\n [-180.0, -90.0]]]},\n 'proj:projjson': {'id': {'code': 4326.0, 'authority': 'EPSG'},\n 'name': 'WGS 84',\n 'type': 'GeographicCRS',\n 'datum': {'name': 'World Geodetic System 1984',\n 'type': 'GeodeticReferenceFrame',\n 'ellipsoid': {'name': 'WGS 84',\n 'semi_major_axis': 6378137.0,\n 'inverse_flattening': 298.257223563}},\n '$schema': 'https://proj.org/schemas/v0.4/projjson.schema.json',\n 'coordinate_system': {'axis': [{'name': 'Geodetic latitude',\n 'unit': 'degree',\n 'direction': 'north',\n 'abbreviation': 'Lat'},\n {'name': 'Geodetic longitude',\n 'unit': 'degree',\n 'direction': 'east',\n 'abbreviation': 'Lon'}],\n 'subtype': 'ellipsoidal'}},\n 'proj:transform': [1.0, 0.0, -180.0, 0.0, -1.0, 90.0, 0.0, 0.0, 1.0]},\n 'lnlgogis-nbe': {'href': 's3://ghgc-data-store/oco2-mip-co2budget-yeargrid-v1/pilot_topdown_LNLGOGIS_NBE_CO2_Budget_grid_v1_2020.tif',\n 'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'Land Nadir, Land Glint, Ocean Glint and In sittu Net biosphere exchange',\n 'proj:bbox': [-180.0, -90.0, 180.0, 90.0],\n 'proj:epsg': 4326.0,\n 'proj:shape': [180.0, 360.0],\n 'description': 'Net flux of carbon from the terrestrial biosphere to the atmosphere due to biomass burning (BB) and Reco minus gross primary production (GPP) (i.e., ). It includes both anthropogenic processes (e.g., deforestation, reforestation, farming) and natural processes (e.g., climate-variability-induced carbon fluxes, disturbances, recovery from disturbances',\n 'raster:bands': [{'scale': 1.0,\n 'offset': 0.0,\n 'sampling': 'area',\n 'data_type': 'float64',\n 'histogram': {'max': 1411.748779296875,\n 'min': -1178.65771484375,\n 'count': 11.0,\n 'buckets': [136.0,\n 465.0,\n 863.0,\n 2574.0,\n 58604.0,\n 1648.0,\n 356.0,\n 114.0,\n 22.0,\n 18.0]},\n 'statistics': {'mean': -16.166285264763957,\n 'stddev': 130.45630802436932,\n 'maximum': 1411.748779296875,\n 'minimum': -1178.65771484375,\n 'valid_percent': 0.00154320987654321}}],\n 'proj:geometry': {'type': 'Polygon',\n 'coordinates': [[[-180.0, -90.0],\n [180.0, -90.0],\n [180.0, 90.0],\n [-180.0, 90.0],\n [-180.0, -90.0]]]},\n 'proj:projjson': {'id': {'code': 4326.0, 'authority': 'EPSG'},\n 'name': 'WGS 84',\n 'type': 'GeographicCRS',\n 'datum': {'name': 'World Geodetic System 1984',\n 'type': 'GeodeticReferenceFrame',\n 'ellipsoid': {'name': 'WGS 84',\n 'semi_major_axis': 6378137.0,\n 'inverse_flattening': 298.257223563}},\n '$schema': 'https://proj.org/schemas/v0.4/projjson.schema.json',\n 'coordinate_system': {'axis': [{'name': 'Geodetic latitude',\n 'unit': 'degree',\n 'direction': 'north',\n 'abbreviation': 'Lat'},\n {'name': 'Geodetic longitude',\n 'unit': 'degree',\n 'direction': 'east',\n 'abbreviation': 'Lon'}],\n 'subtype': 'ellipsoidal'}},\n 'proj:transform': [1.0, 0.0, -180.0, 0.0, -1.0, 90.0, 0.0, 0.0, 1.0]},\n 'lnlgogis-nce': {'href': 's3://ghgc-data-store/oco2-mip-co2budget-yeargrid-v1/pilot_topdown_LNLGOGIS_NCE_CO2_Budget_grid_v1_2020.tif',\n 'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'Land Nadir, Land Glint, Ocean Glint In situ Terrestrial net carbon exchange ',\n 'proj:bbox': [-180.0, -90.0, 180.0, 90.0],\n 'proj:epsg': 4326.0,\n 'proj:shape': [180.0, 360.0],\n 'description': 'Net flux of carbon from the surface to the atmosphere. For land, NCE can be defined as sum of NBE and fossil fuel and cement emissions',\n 'raster:bands': [{'scale': 1.0,\n 'offset': 0.0,\n 'sampling': 'area',\n 'data_type': 'float64',\n 'histogram': {'max': 25089.958068847656,\n 'min': -1080.6364135742188,\n 'count': 11.0,\n 'buckets': [64331.0, 353.0, 65.0, 28.0, 12.0, 5.0, 1.0, 0.0, 3.0, 2.0]},\n 'statistics': {'mean': 38.52297998172569,\n 'stddev': 434.3407457632709,\n 'maximum': 25089.958068847656,\n 'minimum': -1080.6364135742188,\n 'valid_percent': 0.00154320987654321}}],\n 'proj:geometry': {'type': 'Polygon',\n 'coordinates': [[[-180.0, -90.0],\n [180.0, -90.0],\n [180.0, 90.0],\n [-180.0, 90.0],\n [-180.0, -90.0]]]},\n 'proj:projjson': {'id': {'code': 4326.0, 'authority': 'EPSG'},\n 'name': 'WGS 84',\n 'type': 'GeographicCRS',\n 'datum': {'name': 'World Geodetic System 1984',\n 'type': 'GeodeticReferenceFrame',\n 'ellipsoid': {'name': 'WGS 84',\n 'semi_major_axis': 6378137.0,\n 'inverse_flattening': 298.257223563}},\n '$schema': 'https://proj.org/schemas/v0.4/projjson.schema.json',\n 'coordinate_system': {'axis': [{'name': 'Geodetic latitude',\n 'unit': 'degree',\n 'direction': 'north',\n 'abbreviation': 'Lat'},\n {'name': 'Geodetic longitude',\n 'unit': 'degree',\n 'direction': 'east',\n 'abbreviation': 'Lon'}],\n 'subtype': 'ellipsoidal'}},\n 'proj:transform': [1.0, 0.0, -180.0, 0.0, -1.0, 90.0, 0.0, 0.0, 1.0]},\n 'is-dc-loss-std': {'href': 's3://ghgc-data-store/oco2-mip-co2budget-yeargrid-v1/pilot_topdown_IS_dC_loss_std_CO2_Budget_grid_v1_2020.tif',\n 'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'In situ Net terrestrial carbon stock loss std',\n 'proj:bbox': [-180.0, -90.0, 180.0, 90.0],\n 'proj:epsg': 4326.0,\n 'proj:shape': [180.0, 360.0],\n 'description': 'Positive values indicate a loss (decrease) of terrestrial carbon stocks (organic matter stored on land), including above- and below-ground biomass in ecosystems and biomass contained in anthropogenic products (lumber, cattle, etc.).',\n 'raster:bands': [{'scale': 1.0,\n 'offset': 0.0,\n 'sampling': 'area',\n 'data_type': 'float64',\n 'histogram': {'max': 23235.22863703968,\n 'min': 0.0,\n 'count': 11.0,\n 'buckets': [64704.0, 77.0, 11.0, 3.0, 1.0, 1.0, 2.0, 0.0, 0.0, 1.0]},\n 'statistics': {'mean': 60.75332424010563,\n 'stddev': 254.42273071958562,\n 'maximum': 23235.22863703968,\n 'minimum': 0.0,\n 'valid_percent': 0.00154320987654321}}],\n 'proj:geometry': {'type': 'Polygon',\n 'coordinates': [[[-180.0, -90.0],\n [180.0, -90.0],\n [180.0, 90.0],\n [-180.0, 90.0],\n [-180.0, -90.0]]]},\n 'proj:projjson': {'id': {'code': 4326.0, 'authority': 'EPSG'},\n 'name': 'WGS 84',\n 'type': 'GeographicCRS',\n 'datum': {'name': 'World Geodetic System 1984',\n 'type': 'GeodeticReferenceFrame',\n 'ellipsoid': {'name': 'WGS 84',\n 'semi_major_axis': 6378137.0,\n 'inverse_flattening': 298.257223563}},\n '$schema': 'https://proj.org/schemas/v0.4/projjson.schema.json',\n 'coordinate_system': {'axis': [{'name': 'Geodetic latitude',\n 'unit': 'degree',\n 'direction': 'north',\n 'abbreviation': 'Lat'},\n {'name': 'Geodetic longitude',\n 'unit': 'degree',\n 'direction': 'east',\n 'abbreviation': 'Lon'}],\n 'subtype': 'ellipsoidal'}},\n 'proj:transform': [1.0, 0.0, -180.0, 0.0, -1.0, 90.0, 0.0, 0.0, 1.0]},\n 'lnlgis-dc-loss': {'href': 's3://ghgc-data-store/oco2-mip-co2budget-yeargrid-v1/pilot_topdown_LNLGIS_dC_loss_CO2_Budget_grid_v1_2020.tif',\n 'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'Land Nadir, Land Glint and In situ Net terrestrial carbon stock loss',\n 'proj:bbox': [-180.0, -90.0, 180.0, 90.0],\n 'proj:epsg': 4326.0,\n 'proj:shape': [180.0, 360.0],\n 'description': 'Positive values indicate a loss (decrease) of terrestrial carbon stocks (organic matter stored on land), including above- and below-ground biomass in ecosystems and biomass contained in anthropogenic products (lumber, cattle, etc.).',\n 'raster:bands': [{'scale': 1.0,\n 'offset': 0.0,\n 'sampling': 'area',\n 'data_type': 'float64',\n 'histogram': {'max': 2246.8855322833315,\n 'min': -2333.8771841829466,\n 'count': 11.0,\n 'buckets': [2.0,\n 5.0,\n 60.0,\n 856.0,\n 5691.0,\n 57689.0,\n 433.0,\n 42.0,\n 7.0,\n 15.0]},\n 'statistics': {'mean': -13.850600045310385,\n 'stddev': 132.5590763144028,\n 'maximum': 2246.8855322833315,\n 'minimum': -2333.8771841829466,\n 'valid_percent': 0.00154320987654321}}],\n 'proj:geometry': {'type': 'Polygon',\n 'coordinates': [[[-180.0, -90.0],\n [180.0, -90.0],\n [180.0, 90.0],\n [-180.0, 90.0],\n [-180.0, -90.0]]]},\n 'proj:projjson': {'id': {'code': 4326.0, 'authority': 'EPSG'},\n 'name': 'WGS 84',\n 'type': 'GeographicCRS',\n 'datum': {'name': 'World Geodetic System 1984',\n 'type': 'GeodeticReferenceFrame',\n 'ellipsoid': {'name': 'WGS 84',\n 'semi_major_axis': 6378137.0,\n 'inverse_flattening': 298.257223563}},\n '$schema': 'https://proj.org/schemas/v0.4/projjson.schema.json',\n 'coordinate_system': {'axis': [{'name': 'Geodetic latitude',\n 'unit': 'degree',\n 'direction': 'north',\n 'abbreviation': 'Lat'},\n {'name': 'Geodetic longitude',\n 'unit': 'degree',\n 'direction': 'east',\n 'abbreviation': 'Lon'}],\n 'subtype': 'ellipsoidal'}},\n 'proj:transform': [1.0, 0.0, -180.0, 0.0, -1.0, 90.0, 0.0, 0.0, 1.0]},\n 'lnlgis-nbe-std': {'href': 's3://ghgc-data-store/oco2-mip-co2budget-yeargrid-v1/pilot_topdown_LNLGIS_NBE_std_CO2_Budget_grid_v1_2020.tif',\n 'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'Land Nadir and Land Glint In situ Net biosphere exchange std',\n 'proj:bbox': [-180.0, -90.0, 180.0, 90.0],\n 'proj:epsg': 4326.0,\n 'proj:shape': [180.0, 360.0],\n 'description': 'Net flux of carbon from the terrestrial biosphere to the atmosphere due to biomass burning (BB) and Reco minus gross primary production (GPP) (i.e., ). It includes both anthropogenic processes (e.g., deforestation, reforestation, farming) and natural processes (e.g., climate-variability-induced carbon fluxes, disturbances, recovery from disturbances',\n 'raster:bands': [{'scale': 1.0,\n 'offset': 0.0,\n 'sampling': 'area',\n 'data_type': 'float64',\n 'histogram': {'max': 23238.134472790065,\n 'min': 0.0,\n 'count': 11.0,\n 'buckets': [64701.0, 80.0, 11.0, 3.0, 1.0, 1.0, 2.0, 0.0, 0.0, 1.0]},\n 'statistics': {'mean': 77.14141473504489,\n 'stddev': 269.4706593885285,\n 'maximum': 23238.134472790065,\n 'minimum': 0.0,\n 'valid_percent': 0.00154320987654321}}],\n 'proj:geometry': {'type': 'Polygon',\n 'coordinates': [[[-180.0, -90.0],\n [180.0, -90.0],\n [180.0, 90.0],\n [-180.0, 90.0],\n [-180.0, -90.0]]]},\n 'proj:projjson': {'id': {'code': 4326.0, 'authority': 'EPSG'},\n 'name': 'WGS 84',\n 'type': 'GeographicCRS',\n 'datum': {'name': 'World Geodetic System 1984',\n 'type': 'GeodeticReferenceFrame',\n 'ellipsoid': {'name': 'WGS 84',\n 'semi_major_axis': 6378137.0,\n 'inverse_flattening': 298.257223563}},\n '$schema': 'https://proj.org/schemas/v0.4/projjson.schema.json',\n 'coordinate_system': {'axis': [{'name': 'Geodetic latitude',\n 'unit': 'degree',\n 'direction': 'north',\n 'abbreviation': 'Lat'},\n {'name': 'Geodetic longitude',\n 'unit': 'degree',\n 'direction': 'east',\n 'abbreviation': 'Lon'}],\n 'subtype': 'ellipsoidal'}},\n 'proj:transform': [1.0, 0.0, -180.0, 0.0, -1.0, 90.0, 0.0, 0.0, 1.0]},\n 'lnlgis-nce-std': {'href': 's3://ghgc-data-store/oco2-mip-co2budget-yeargrid-v1/pilot_topdown_LNLGIS_NCE_std_CO2_Budget_grid_v1_2020.tif',\n 'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'Land Nadir and Land Glint In situ Terrestrial net carbon exchange std',\n 'proj:bbox': [-180.0, -90.0, 180.0, 90.0],\n 'proj:epsg': 4326.0,\n 'proj:shape': [180.0, 360.0],\n 'description': 'Net flux of carbon from the surface to the atmosphere. For land, NCE can be defined as sum of NBE and fossil fuel and cement emissions',\n 'raster:bands': [{'scale': 1.0,\n 'offset': 0.0,\n 'sampling': 'area',\n 'data_type': 'float64',\n 'histogram': {'max': 1408.9118335865162,\n 'min': 0.0,\n 'count': 11.0,\n 'buckets': [54473.0,\n 4810.0,\n 3047.0,\n 1439.0,\n 655.0,\n 223.0,\n 84.0,\n 35.0,\n 24.0,\n 10.0]},\n 'statistics': {'mean': 59.99134534466462,\n 'stddev': 140.05538209028816,\n 'maximum': 1408.9118335865162,\n 'minimum': 0.0,\n 'valid_percent': 0.00154320987654321}}],\n 'proj:geometry': {'type': 'Polygon',\n 'coordinates': [[[-180.0, -90.0],\n [180.0, -90.0],\n [180.0, 90.0],\n [-180.0, 90.0],\n [-180.0, -90.0]]]},\n 'proj:projjson': {'id': {'code': 4326.0, 'authority': 'EPSG'},\n 'name': 'WGS 84',\n 'type': 'GeographicCRS',\n 'datum': {'name': 'World Geodetic System 1984',\n 'type': 'GeodeticReferenceFrame',\n 'ellipsoid': {'name': 'WGS 84',\n 'semi_major_axis': 6378137.0,\n 'inverse_flattening': 298.257223563}},\n '$schema': 'https://proj.org/schemas/v0.4/projjson.schema.json',\n 'coordinate_system': {'axis': [{'name': 'Geodetic latitude',\n 'unit': 'degree',\n 'direction': 'north',\n 'abbreviation': 'Lat'},\n {'name': 'Geodetic longitude',\n 'unit': 'degree',\n 'direction': 'east',\n 'abbreviation': 'Lon'}],\n 'subtype': 'ellipsoidal'}},\n 'proj:transform': [1.0, 0.0, -180.0, 0.0, -1.0, 90.0, 0.0, 0.0, 1.0]},\n 'lnlg-dc-loss-std': {'href': 's3://ghgc-data-store/oco2-mip-co2budget-yeargrid-v1/pilot_topdown_LNLG_dC_loss_std_CO2_Budget_grid_v1_2020.tif',\n 'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'Land Nadir and Land glint Net terrestrial carbon stock loss std',\n 'proj:bbox': [-180.0, -90.0, 180.0, 90.0],\n 'proj:epsg': 4326.0,\n 'proj:shape': [180.0, 360.0],\n 'description': 'Positive values indicate a loss (decrease) of terrestrial carbon stocks (organic matter stored on land), including above- and below-ground biomass in ecosystems and biomass contained in anthropogenic products (lumber, cattle, etc.).',\n 'raster:bands': [{'scale': 1.0,\n 'offset': 0.0,\n 'sampling': 'area',\n 'data_type': 'float64',\n 'histogram': {'max': 23236.449599629486,\n 'min': 0.0,\n 'count': 11.0,\n 'buckets': [64703.0, 78.0, 11.0, 3.0, 1.0, 1.0, 2.0, 0.0, 0.0, 1.0]},\n 'statistics': {'mean': 76.38910144307034,\n 'stddev': 269.61395681899455,\n 'maximum': 23236.449599629486,\n 'minimum': 0.0,\n 'valid_percent': 0.00154320987654321}}],\n 'proj:geometry': {'type': 'Polygon',\n 'coordinates': [[[-180.0, -90.0],\n [180.0, -90.0],\n [180.0, 90.0],\n [-180.0, 90.0],\n [-180.0, -90.0]]]},\n 'proj:projjson': {'id': {'code': 4326.0, 'authority': 'EPSG'},\n 'name': 'WGS 84',\n 'type': 'GeographicCRS',\n 'datum': {'name': 'World Geodetic System 1984',\n 'type': 'GeodeticReferenceFrame',\n 'ellipsoid': {'name': 'WGS 84',\n 'semi_major_axis': 6378137.0,\n 'inverse_flattening': 298.257223563}},\n '$schema': 'https://proj.org/schemas/v0.4/projjson.schema.json',\n 'coordinate_system': {'axis': [{'name': 'Geodetic latitude',\n 'unit': 'degree',\n 'direction': 'north',\n 'abbreviation': 'Lat'},\n {'name': 'Geodetic longitude',\n 'unit': 'degree',\n 'direction': 'east',\n 'abbreviation': 'Lon'}],\n 'subtype': 'ellipsoidal'}},\n 'proj:transform': [1.0, 0.0, -180.0, 0.0, -1.0, 90.0, 0.0, 0.0, 1.0]},\n 'lnlgogis-dc-loss': {'href': 's3://ghgc-data-store/oco2-mip-co2budget-yeargrid-v1/pilot_topdown_LNLGOGIS_dC_loss_CO2_Budget_grid_v1_2020.tif',\n 'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'Land Nadir, Land Glint, Ocean Glint and In situ Net terrestrial carbon stock loss',\n 'proj:bbox': [-180.0, -90.0, 180.0, 90.0],\n 'proj:epsg': 4326.0,\n 'proj:shape': [180.0, 360.0],\n 'description': 'Positive values indicate a loss (decrease) of terrestrial carbon stocks (organic matter stored on land), including above- and below-ground biomass in ecosystems and biomass contained in anthropogenic products (lumber, cattle, etc.).',\n 'raster:bands': [{'scale': 1.0,\n 'offset': 0.0,\n 'sampling': 'area',\n 'data_type': 'float64',\n 'histogram': {'max': 1374.988655119972,\n 'min': -2552.4800894563846,\n 'count': 11.0,\n 'buckets': [1.0,\n 1.0,\n 1.0,\n 68.0,\n 650.0,\n 2261.0,\n 60324.0,\n 1283.0,\n 186.0,\n 25.0]},\n 'statistics': {'mean': -13.522099969843081,\n 'stddev': 130.03717768562043,\n 'maximum': 1374.988655119972,\n 'minimum': -2552.4800894563846,\n 'valid_percent': 0.00154320987654321}}],\n 'proj:geometry': {'type': 'Polygon',\n 'coordinates': [[[-180.0, -90.0],\n [180.0, -90.0],\n [180.0, 90.0],\n [-180.0, 90.0],\n [-180.0, -90.0]]]},\n 'proj:projjson': {'id': {'code': 4326.0, 'authority': 'EPSG'},\n 'name': 'WGS 84',\n 'type': 'GeographicCRS',\n 'datum': {'name': 'World Geodetic System 1984',\n 'type': 'GeodeticReferenceFrame',\n 'ellipsoid': {'name': 'WGS 84',\n 'semi_major_axis': 6378137.0,\n 'inverse_flattening': 298.257223563}},\n '$schema': 'https://proj.org/schemas/v0.4/projjson.schema.json',\n 'coordinate_system': {'axis': [{'name': 'Geodetic latitude',\n 'unit': 'degree',\n 'direction': 'north',\n 'abbreviation': 'Lat'},\n {'name': 'Geodetic longitude',\n 'unit': 'degree',\n 'direction': 'east',\n 'abbreviation': 'Lon'}],\n 'subtype': 'ellipsoidal'}},\n 'proj:transform': [1.0, 0.0, -180.0, 0.0, -1.0, 90.0, 0.0, 0.0, 1.0]},\n 'lnlgogis-nbe-std': {'href': 's3://ghgc-data-store/oco2-mip-co2budget-yeargrid-v1/pilot_topdown_LNLGOGIS_NBE_std_CO2_Budget_grid_v1_2020.tif',\n 'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'Land Nadir, Land Glint, Ocean Glint and In sittu Net biosphere exchange',\n 'proj:bbox': [-180.0, -90.0, 180.0, 90.0],\n 'proj:epsg': 4326.0,\n 'proj:shape': [180.0, 360.0],\n 'description': 'Net flux of carbon from the terrestrial biosphere to the atmosphere due to biomass burning (BB) and Reco minus gross primary production (GPP) (i.e., ). It includes both anthropogenic processes (e.g., deforestation, reforestation, farming) and natural processes (e.g., climate-variability-induced carbon fluxes, disturbances, recovery from disturbances',\n 'raster:bands': [{'scale': 1.0,\n 'offset': 0.0,\n 'sampling': 'area',\n 'data_type': 'float64',\n 'histogram': {'max': 23239.04960867304,\n 'min': 0.0,\n 'count': 11.0,\n 'buckets': [64702.0, 79.0, 11.0, 3.0, 1.0, 1.0, 2.0, 0.0, 0.0, 1.0]},\n 'statistics': {'mean': 81.11764263370435,\n 'stddev': 275.2641623929695,\n 'maximum': 23239.04960867304,\n 'minimum': 0.0,\n 'valid_percent': 0.00154320987654321}}],\n 'proj:geometry': {'type': 'Polygon',\n 'coordinates': [[[-180.0, -90.0],\n [180.0, -90.0],\n [180.0, 90.0],\n [-180.0, 90.0],\n [-180.0, -90.0]]]},\n 'proj:projjson': {'id': {'code': 4326.0, 'authority': 'EPSG'},\n 'name': 'WGS 84',\n 'type': 'GeographicCRS',\n 'datum': {'name': 'World Geodetic System 1984',\n 'type': 'GeodeticReferenceFrame',\n 'ellipsoid': {'name': 'WGS 84',\n 'semi_major_axis': 6378137.0,\n 'inverse_flattening': 298.257223563}},\n '$schema': 'https://proj.org/schemas/v0.4/projjson.schema.json',\n 'coordinate_system': {'axis': [{'name': 'Geodetic latitude',\n 'unit': 'degree',\n 'direction': 'north',\n 'abbreviation': 'Lat'},\n {'name': 'Geodetic longitude',\n 'unit': 'degree',\n 'direction': 'east',\n 'abbreviation': 'Lon'}],\n 'subtype': 'ellipsoidal'}},\n 'proj:transform': [1.0, 0.0, -180.0, 0.0, -1.0, 90.0, 0.0, 0.0, 1.0]},\n 'lnlgogis-nce-std': {'href': 's3://ghgc-data-store/oco2-mip-co2budget-yeargrid-v1/pilot_topdown_LNLGOGIS_NCE_CO2_Budget_grid_v1_2020.tif',\n 'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'Land Nadir, Land Glint, Ocean Glint In situ Terrestrial net carbon exchange std ',\n 'proj:bbox': [-180.0, -90.0, 180.0, 90.0],\n 'proj:epsg': 4326.0,\n 'proj:shape': [180.0, 360.0],\n 'description': 'Net flux of carbon from the surface to the atmosphere. For land, NCE can be defined as sum of NBE and fossil fuel and cement emissions',\n 'raster:bands': [{'scale': 1.0,\n 'offset': 0.0,\n 'sampling': 'area',\n 'data_type': 'float64',\n 'histogram': {'max': 25089.958068847656,\n 'min': -1080.6364135742188,\n 'count': 11.0,\n 'buckets': [64331.0, 353.0, 65.0, 28.0, 12.0, 5.0, 1.0, 0.0, 3.0, 2.0]},\n 'statistics': {'mean': 38.52297998172569,\n 'stddev': 434.3407457632709,\n 'maximum': 25089.958068847656,\n 'minimum': -1080.6364135742188,\n 'valid_percent': 0.00154320987654321}}],\n 'proj:geometry': {'type': 'Polygon',\n 'coordinates': [[[-180.0, -90.0],\n [180.0, -90.0],\n [180.0, 90.0],\n [-180.0, 90.0],\n [-180.0, -90.0]]]},\n 'proj:projjson': {'id': {'code': 4326.0, 'authority': 'EPSG'},\n 'name': 'WGS 84',\n 'type': 'GeographicCRS',\n 'datum': {'name': 'World Geodetic System 1984',\n 'type': 'GeodeticReferenceFrame',\n 'ellipsoid': {'name': 'WGS 84',\n 'semi_major_axis': 6378137.0,\n 'inverse_flattening': 298.257223563}},\n '$schema': 'https://proj.org/schemas/v0.4/projjson.schema.json',\n 'coordinate_system': {'axis': [{'name': 'Geodetic latitude',\n 'unit': 'degree',\n 'direction': 'north',\n 'abbreviation': 'Lat'},\n {'name': 'Geodetic longitude',\n 'unit': 'degree',\n 'direction': 'east',\n 'abbreviation': 'Lon'}],\n 'subtype': 'ellipsoidal'}},\n 'proj:transform': [1.0, 0.0, -180.0, 0.0, -1.0, 90.0, 0.0, 0.0, 1.0]},\n 'lnlgis-dc-loss-std': {'href': 's3://ghgc-data-store/oco2-mip-co2budget-yeargrid-v1/pilot_topdown_LNLGIS_dC_loss_std_CO2_Budget_grid_v1_2020.tif',\n 'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'Land Nadir, Land Glint and In situ Net terrestrial carbon stock loss std',\n 'proj:bbox': [-180.0, -90.0, 180.0, 90.0],\n 'proj:epsg': 4326.0,\n 'proj:shape': [180.0, 360.0],\n 'description': 'Positive values indicate a loss (decrease) of terrestrial carbon stocks (organic matter stored on land), including above- and below-ground biomass in ecosystems and biomass contained in anthropogenic products (lumber, cattle, etc.).',\n 'raster:bands': [{'scale': 1.0,\n 'offset': 0.0,\n 'sampling': 'area',\n 'data_type': 'float64',\n 'histogram': {'max': 23238.143692623533,\n 'min': 0.0,\n 'count': 11.0,\n 'buckets': [64701.0, 80.0, 11.0, 3.0, 1.0, 1.0, 2.0, 0.0, 0.0, 1.0]},\n 'statistics': {'mean': 77.26229950276355,\n 'stddev': 269.56773231768034,\n 'maximum': 23238.143692623533,\n 'minimum': 0.0,\n 'valid_percent': 0.00154320987654321}}],\n 'proj:geometry': {'type': 'Polygon',\n 'coordinates': [[[-180.0, -90.0],\n [180.0, -90.0],\n [180.0, 90.0],\n [-180.0, 90.0],\n [-180.0, -90.0]]]},\n 'proj:projjson': {'id': {'code': 4326.0, 'authority': 'EPSG'},\n 'name': 'WGS 84',\n 'type': 'GeographicCRS',\n 'datum': {'name': 'World Geodetic System 1984',\n 'type': 'GeodeticReferenceFrame',\n 'ellipsoid': {'name': 'WGS 84',\n 'semi_major_axis': 6378137.0,\n 'inverse_flattening': 298.257223563}},\n '$schema': 'https://proj.org/schemas/v0.4/projjson.schema.json',\n 'coordinate_system': {'axis': [{'name': 'Geodetic latitude',\n 'unit': 'degree',\n 'direction': 'north',\n 'abbreviation': 'Lat'},\n {'name': 'Geodetic longitude',\n 'unit': 'degree',\n 'direction': 'east',\n 'abbreviation': 'Lon'}],\n 'subtype': 'ellipsoidal'}},\n 'proj:transform': [1.0, 0.0, -180.0, 0.0, -1.0, 90.0, 0.0, 0.0, 1.0]},\n 'lnlgogis-dc-loss-std': {'href': 's3://ghgc-data-store/oco2-mip-co2budget-yeargrid-v1/pilot_topdown_LNLGOGIS_dC_loss_std_CO2_Budget_grid_v1_2020.tif',\n 'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'Land Nadir, Land Glint, Ocean Glint and In situ Net terrestrial carbon stock loss std',\n 'proj:bbox': [-180.0, -90.0, 180.0, 90.0],\n 'proj:epsg': 4326.0,\n 'proj:shape': [180.0, 360.0],\n 'description': 'Positive values indicate a loss (decrease) of terrestrial carbon stocks (organic matter stored on land), including above- and below-ground biomass in ecosystems and biomass contained in anthropogenic products (lumber, cattle, etc.).',\n 'raster:bands': [{'scale': 1.0,\n 'offset': 0.0,\n 'sampling': 'area',\n 'data_type': 'float64',\n 'histogram': {'max': 23239.058828143436,\n 'min': 0.0,\n 'count': 11.0,\n 'buckets': [64702.0, 79.0, 11.0, 3.0, 1.0, 1.0, 2.0, 0.0, 0.0, 1.0]},\n 'statistics': {'mean': 81.23306346098364,\n 'stddev': 275.35905929864566,\n 'maximum': 23239.058828143436,\n 'minimum': 0.0,\n 'valid_percent': 0.00154320987654321}}],\n 'proj:geometry': {'type': 'Polygon',\n 'coordinates': [[[-180.0, -90.0],\n [180.0, -90.0],\n [180.0, 90.0],\n [-180.0, 90.0],\n [-180.0, -90.0]]]},\n 'proj:projjson': {'id': {'code': 4326.0, 'authority': 'EPSG'},\n 'name': 'WGS 84',\n 'type': 'GeographicCRS',\n 'datum': {'name': 'World Geodetic System 1984',\n 'type': 'GeodeticReferenceFrame',\n 'ellipsoid': {'name': 'WGS 84',\n 'semi_major_axis': 6378137.0,\n 'inverse_flattening': 298.257223563}},\n '$schema': 'https://proj.org/schemas/v0.4/projjson.schema.json',\n 'coordinate_system': {'axis': [{'name': 'Geodetic latitude',\n 'unit': 'degree',\n 'direction': 'north',\n 'abbreviation': 'Lat'},\n {'name': 'Geodetic longitude',\n 'unit': 'degree',\n 'direction': 'east',\n 'abbreviation': 'Lon'}],\n 'subtype': 'ellipsoidal'}},\n 'proj:transform': [1.0, 0.0, -180.0, 0.0, -1.0, 90.0, 0.0, 0.0, 1.0]}},\n 'geometry': {'type': 'Polygon',\n 'coordinates': [[[-180, -90],\n [180, -90],\n [180, 90],\n [-180, 90],\n [-180, -90]]]},\n 'collection': 'oco2-mip-co2budget-yeargrid-v1',\n 'properties': {'end_datetime': '2020-12-31T00:00:00+00:00',\n 'start_datetime': '2020-01-01T00:00:00+00:00'},\n 'stac_version': '1.0.0',\n 'stac_extensions': []}\n\n\nBelow, we are entering the minimum and maximum values to provide our upper and lower bounds in rescale_values."
},
{
"objectID": "user_data_notebooks/oco2-mip-co2budget-yeargrid-v1_User_Notebook.html#exploring-changes-in-co₂-levels-using-the-raster-api",
"href": "user_data_notebooks/oco2-mip-co2budget-yeargrid-v1_User_Notebook.html#exploring-changes-in-co₂-levels-using-the-raster-api",
"title": "OCO-2 MIP Top-Down CO₂ Budgets",
"section": "Exploring Changes in CO₂ Levels Using the Raster API",
- "text": "Exploring Changes in CO₂ Levels Using the Raster API\nIn this notebook, we will explore the global changes of CO₂ budgets over time in urban regions. We will visualize the outputs on a map using folium.\n\n# to access the year value from each item more easily, this will let us query more explicity by year and month (e.g., 2020-02)\nitems = {item[\"properties\"][\"datetime\"]: item for item in items} \nasset_name = \"ff\" #fossil fuel\n\n\n# Fetching the min and max values for a specific item\nrescale_values = {\"max\":items[list(items.keys())[0]][\"assets\"][asset_name][\"raster:bands\"][0][\"histogram\"][\"max\"], \"min\":items[list(items.keys())[0]][\"assets\"][asset_name][\"raster:bands\"][0][\"histogram\"][\"min\"]}\n\nNow, we will pass the item id, collection name, and rescaling_factor to the Raster API endpoint. We will do this twice, once for 2020 and again for 2019, so that we can visualize each event independently.\n\ncolor_map = \"magma\"\nco2_flux_1 = requests.get(\n f\"{RASTER_API_URL}/stac/tilejson.json?collection={items[list(items.keys())[0]]['collection']}&item={items[list(items.keys())[0]]['id']}\"\n f\"&assets={asset_name}\"\n f\"&color_formula=gamma+r+1.05&colormap_name={color_map}\"\n f\"&rescale={rescale_values['min']},{rescale_values['max']}\", \n).json()\nco2_flux_1\n\n\nco2_flux_2 = requests.get(\n f\"{RASTER_API_URL}/stac/tilejson.json?collection={items[list(items.keys())[1]]['collection']}&item={items[list(items.keys())[1]]['id']}\"\n f\"&assets={asset_name}\"\n f\"&color_formula=gamma+r+1.05&colormap_name={color_map}\"\n f\"&rescale={rescale_values['min']},{rescale_values['max']}\", \n).json()\nco2_flux_2"
+ "text": "Exploring Changes in CO₂ Levels Using the Raster API\nIn this notebook, we will explore the global changes of CO₂ budgets over time in urban regions. We will visualize the outputs on a map using folium.\n\n# to access the year value from each item more easily, this will let us query more explicity by year and month (e.g., 2020-02)\nitems = {item[\"properties\"][\"start_datetime\"]: item for item in items} \nasset_name = \"ff\" #fossil fuel\n\n\n# Fetching the min and max values for a specific item\nrescale_values = {\"max\":items[list(items.keys())[0]][\"assets\"][asset_name][\"raster:bands\"][0][\"histogram\"][\"max\"], \"min\":items[list(items.keys())[0]][\"assets\"][asset_name][\"raster:bands\"][0][\"histogram\"][\"min\"]}\n\nNow, we will pass the item id, collection name, and rescaling_factor to the Raster API endpoint. We will do this twice, once for 2020 and again for 2019, so that we can visualize each event independently.\n\ncolor_map = \"magma\"\nco2_flux_1 = requests.get(\n f\"{RASTER_API_URL}/stac/tilejson.json?collection={items[list(items.keys())[0]]['collection']}&item={items[list(items.keys())[0]]['id']}\"\n f\"&assets={asset_name}\"\n f\"&color_formula=gamma+r+1.05&colormap_name={color_map}\"\n f\"&rescale={rescale_values['min']},{rescale_values['max']}\", \n).json()\nco2_flux_1\n\n{'tilejson': '2.2.0',\n 'version': '1.0.0',\n 'scheme': 'xyz',\n 'tiles': ['https://ghg.center/api/raster/stac/tiles/WebMercatorQuad/{z}/{x}/{y}@1x?collection=oco2-mip-co2budget-yeargrid-v1&item=oco2-mip-co2budget-yeargrid-v1-2020&assets=ff&color_formula=gamma+r+1.05&colormap_name=magma&rescale=0.0%2C25762.3125'],\n 'minzoom': 0,\n 'maxzoom': 24,\n 'bounds': [-180.0, -90.0, 180.0, 90.0],\n 'center': [0.0, 0.0, 0]}\n\n\n\nco2_flux_2 = requests.get(\n f\"{RASTER_API_URL}/stac/tilejson.json?collection={items[list(items.keys())[1]]['collection']}&item={items[list(items.keys())[1]]['id']}\"\n f\"&assets={asset_name}\"\n f\"&color_formula=gamma+r+1.05&colormap_name={color_map}\"\n f\"&rescale={rescale_values['min']},{rescale_values['max']}\", \n).json()\nco2_flux_2\n\n{'tilejson': '2.2.0',\n 'version': '1.0.0',\n 'scheme': 'xyz',\n 'tiles': ['https://ghg.center/api/raster/stac/tiles/WebMercatorQuad/{z}/{x}/{y}@1x?collection=oco2-mip-co2budget-yeargrid-v1&item=oco2-mip-co2budget-yeargrid-v1-2019&assets=ff&color_formula=gamma+r+1.05&colormap_name=magma&rescale=0.0%2C25762.3125'],\n 'minzoom': 0,\n 'maxzoom': 24,\n 'bounds': [-180.0, -90.0, 180.0, 90.0],\n 'center': [0.0, 0.0, 0]}"
},
{
"objectID": "user_data_notebooks/oco2-mip-co2budget-yeargrid-v1_User_Notebook.html#visualizing-co₂-emissions",
"href": "user_data_notebooks/oco2-mip-co2budget-yeargrid-v1_User_Notebook.html#visualizing-co₂-emissions",
"title": "OCO-2 MIP Top-Down CO₂ Budgets",
"section": "Visualizing CO₂ Emissions",
- "text": "Visualizing CO₂ Emissions\n\n# We'll import folium to map and folium.plugins to allow mapping side-by-side\nimport folium\nimport folium.plugins\n\n# Set initial zoom and center of map for CO₂ Layer\n# Centre of map [latitude,longitude]\nmap_ = folium.plugins.DualMap(location=(34, -118), zoom_start=6)\n\n\nmap_layer_2020 = TileLayer(\n tiles=co2_flux_1[\"tiles\"][0],\n attr=\"GHG\",\n opacity=0.5,\n)\nmap_layer_2020.add_to(map_.m1)\n\nmap_layer_2019 = TileLayer(\n tiles=co2_flux_2[\"tiles\"][0],\n attr=\"GHG\",\n opacity=0.5,\n)\nmap_layer_2019.add_to(map_.m2)\n\n# visualising the map\nmap_"
+ "text": "Visualizing CO₂ Emissions\n\n# We'll import folium to map and folium.plugins to allow mapping side-by-side\nimport folium\nimport folium.plugins\n\n# Set initial zoom and center of map for CO₂ Layer\n# Centre of map [latitude,longitude]\nmap_ = folium.plugins.DualMap(location=(34, -118), zoom_start=6)\n\n\nmap_layer_2020 = TileLayer(\n tiles=co2_flux_1[\"tiles\"][0],\n attr=\"GHG\",\n opacity=0.5,\n)\nmap_layer_2020.add_to(map_.m1)\n\nmap_layer_2019 = TileLayer(\n tiles=co2_flux_2[\"tiles\"][0],\n attr=\"GHG\",\n opacity=0.5,\n)\nmap_layer_2019.add_to(map_.m2)\n\n# visualising the map\nmap_\n\n\nMake this Notebook Trusted to load map: File -> Trust Notebook"
},
{
"objectID": "user_data_notebooks/oco2-mip-co2budget-yeargrid-v1_User_Notebook.html#visualizing-the-data-as-a-time-series",
"href": "user_data_notebooks/oco2-mip-co2budget-yeargrid-v1_User_Notebook.html#visualizing-the-data-as-a-time-series",
"title": "OCO-2 MIP Top-Down CO₂ Budgets",
"section": "Visualizing the Data as a Time Series",
- "text": "Visualizing the Data as a Time Series\nWe can now explore the fossil fuel emission time series (January 2015 -December 2020) available for the Dallas, Texas area of the U.S. We can plot the data set using the code below:\n\nimport matplotlib.pyplot as plt\n\nfig = plt.figure(figsize=(20, 10))\n\n\nplt.plot(\n df[\"datetime\"],\n df[\"max\"],\n color=\"red\",\n linestyle=\"-\",\n linewidth=0.5,\n label=\"CO2 emissions\",\n)\n\nplt.legend()\nplt.xlabel(\"Years\")\nplt.ylabel(\"CO2 emissions gC/m2/year1\")\nplt.title(\"CO2 emission Values for Texas, Dallas (2015-2020)\")\n\n\nprint(items[2][\"properties\"][\"datetime\"])\n\n\nco2_flux_3 = requests.get(\n f\"{RASTER_API_URL}/stac/tilejson.json?collection={items[2]['collection']}&item={items[2]['id']}\"\n f\"&assets={asset_name}\"\n f\"&color_formula=gamma+r+1.05&colormap_name={color_map}\"\n f\"&rescale={rescale_values['min']},{rescale_values['max']}\",\n).json()\nco2_flux_3\n\n\n# Use bbox initial zoom and map\n# Set up a map located w/in event bounds\nimport folium\n\naoi_map_bbox = Map(\n tiles=\"OpenStreetMap\",\n location=[\n 30,-100\n ],\n zoom_start=6.8,\n)\n\nmap_layer = TileLayer(\n tiles=co2_flux_3[\"tiles\"][0],\n attr=\"GHG\", opacity = 0.7\n)\n\nmap_layer.add_to(aoi_map_bbox)\n\naoi_map_bbox"
+ "text": "Visualizing the Data as a Time Series\nWe can now explore the fossil fuel emission time series (January 2015 -December 2020) available for the Dallas, Texas area of the U.S. We can plot the data set using the code below:\n\nimport matplotlib.pyplot as plt\n\nfig = plt.figure(figsize=(20, 10))\n\n\nplt.plot(\n df[\"datetime\"],\n df[\"max\"],\n color=\"red\",\n linestyle=\"-\",\n linewidth=0.5,\n label=\"CO2 emissions\",\n)\n\nplt.legend()\nplt.xlabel(\"Years\")\nplt.ylabel(\"CO2 emissions gC/m2/year1\")\nplt.title(\"CO2 emission Values for Texas, Dallas (2015-2020)\")\n\nText(0.5, 1.0, 'CO2 emission Values for Texas, Dallas (2015-2020)')\n\n\n\n\n\n\nprint(items[2][\"properties\"][\"start_datetime\"])\n\n2018-01-01T00:00:00+00:00\n\n\n\nco2_flux_3 = requests.get(\n f\"{RASTER_API_URL}/stac/tilejson.json?collection={items[2]['collection']}&item={items[2]['id']}\"\n f\"&assets={asset_name}\"\n f\"&color_formula=gamma+r+1.05&colormap_name={color_map}\"\n f\"&rescale={rescale_values['min']},{rescale_values['max']}\",\n).json()\nco2_flux_3\n\n{'tilejson': '2.2.0',\n 'version': '1.0.0',\n 'scheme': 'xyz',\n 'tiles': ['https://ghg.center/api/raster/stac/tiles/WebMercatorQuad/{z}/{x}/{y}@1x?collection=oco2-mip-co2budget-yeargrid-v1&item=oco2-mip-co2budget-yeargrid-v1-2018&assets=ff&color_formula=gamma+r+1.05&colormap_name=magma&rescale=0.0%2C25762.3125'],\n 'minzoom': 0,\n 'maxzoom': 24,\n 'bounds': [-180.0, -90.0, 180.0, 90.0],\n 'center': [0.0, 0.0, 0]}\n\n\n\n# Use bbox initial zoom and map\n# Set up a map located w/in event bounds\nimport folium\n\naoi_map_bbox = Map(\n tiles=\"OpenStreetMap\",\n location=[\n 30,-100\n ],\n zoom_start=6.8,\n)\n\nmap_layer = TileLayer(\n tiles=co2_flux_3[\"tiles\"][0],\n attr=\"GHG\", opacity = 0.7\n)\n\nmap_layer.add_to(aoi_map_bbox)\n\naoi_map_bbox\n\nMake this Notebook Trusted to load map: File -> Trust Notebook"
},
{
"objectID": "user_data_notebooks/oco2-mip-co2budget-yeargrid-v1_User_Notebook.html#summary",
@@ -816,14 +816,14 @@
"href": "user_data_notebooks/gosat-based-ch4budget-yeargrid-v1_User_Notebook.html#querying-the-stac-api",
"title": "GOSAT-based Top-down Total and Natural Methane Emissions",
"section": "Querying the STAC API",
- "text": "Querying the STAC API\n\nimport requests\nfrom folium import Map, TileLayer\nfrom pystac_client import Client\n\n\n# Provide STAC and RASTER API endpoints\nSTAC_API_URL = \"http://ghg.center/api/stac\"\nRASTER_API_URL = \"https://ghg.center/api/raster\"\n\n# Please use the collection name similar to the one used in STAC collection.\n\n# Name of the collection for gosat budget methane. \ncollection_name = \"gosat-based-ch4budget-yeargrid-v1\"\n\n\n# Fetching the collection from STAC collections using appropriate endpoint.\ncollection = requests.get(f\"{STAC_API_URL}/collections/{collection_name}\").json()\ncollection\n\n{'id': 'gosat-based-ch4budget-yeargrid-v1',\n 'type': 'Collection',\n 'links': [{'rel': 'items',\n 'type': 'application/geo+json',\n 'href': 'https://e6v7j4ejp6.execute-api.us-west-2.amazonaws.com/api/stac/collections/gosat-based-ch4budget-yeargrid-v1/items'},\n {'rel': 'parent',\n 'type': 'application/json',\n 'href': 'https://e6v7j4ejp6.execute-api.us-west-2.amazonaws.com/api/stac/'},\n {'rel': 'root',\n 'type': 'application/json',\n 'href': 'https://e6v7j4ejp6.execute-api.us-west-2.amazonaws.com/api/stac/'},\n {'rel': 'self',\n 'type': 'application/json',\n 'href': 'https://e6v7j4ejp6.execute-api.us-west-2.amazonaws.com/api/stac/collections/gosat-based-ch4budget-yeargrid-v1'}],\n 'title': 'GOSAT-based Top-down Methane Budgets.',\n 'assets': None,\n 'extent': {'spatial': {'bbox': [[-180.5, -90.5, 179.5, 89.5]]},\n 'temporal': {'interval': [['2019-01-01T00:00:00+00:00',\n '2019-12-31T00:00:00+00:00']]}},\n 'license': 'CC-BY-4.0',\n 'keywords': None,\n 'providers': None,\n 'summaries': {'datetime': ['2019-01-01T00:00:00Z']},\n 'description': 'Annual methane emissions gridded globally at 1° resolution for 2019, version.',\n 'item_assets': {'post-gas': {'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'TBD',\n 'description': 'TBD'},\n 'post-geo': {'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'TBD',\n 'description': 'TBD'},\n 'post-oil': {'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'TBD',\n 'description': 'TBD'},\n 'post-coal': {'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'TBD',\n 'description': 'TBD'},\n 'post-fire': {'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'TBD',\n 'description': 'TBD'},\n 'post-rice': {'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'TBD',\n 'description': 'TBD'},\n 'prior-gas': {'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'TBD',\n 'description': 'TBD'},\n 'prior-geo': {'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'TBD',\n 'description': 'TBD'},\n 'prior-oil': {'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'TBD',\n 'description': 'TBD'},\n 'post-total': {'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'TBD',\n 'description': 'TBD'},\n 'post-waste': {'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'TBD',\n 'description': 'TBD'},\n 'prior-coal': {'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'TBD',\n 'description': 'TBD'},\n 'prior-fire': {'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'TBD',\n 'description': 'TBD'},\n 'prior-rice': {'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'TBD',\n 'description': 'TBD'},\n 'prior-total': {'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'TBD',\n 'description': 'TBD'},\n 'prior-waste': {'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'TBD',\n 'description': 'TBD'},\n 'post-wetland': {'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'TBD',\n 'description': 'TBD'},\n 'prior-wetland': {'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'TBD',\n 'description': 'TBD'},\n 'post-livestock': {'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'TBD',\n 'description': 'TBD'},\n 'prior-livestock': {'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'TBD',\n 'description': 'TBD'},\n 'post-gas-uncertainty': {'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'TBD',\n 'description': 'TBD'},\n 'post-geo-uncertainty': {'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'TBD',\n 'description': 'TBD'},\n 'post-oil-uncertainty': {'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'TBD',\n 'description': 'TBD'},\n 'post-coal-uncertainty': {'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'TBD',\n 'description': 'TBD'},\n 'post-fire-uncertainty': {'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'TBD',\n 'description': 'TBD'},\n 'post-rice-uncertainty': {'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'TBD',\n 'description': 'TBD'},\n 'prior-gas-uncertainty': {'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'TBD',\n 'description': 'TBD'},\n 'prior-geo-uncertainty': {'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'TBD',\n 'description': 'TBD'},\n 'prior-oil-uncertainty': {'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'TBD',\n 'description': 'TBD'},\n 'post-waste-uncertainty': {'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'TBD',\n 'description': 'TBD'},\n 'prior-coal-uncertainty': {'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'TBD',\n 'description': 'TBD'},\n 'prior-rice-uncertainty': {'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'TBD',\n 'description': 'TBD'},\n 'prior-waste-uncertainty': {'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'TBD',\n 'description': 'TBD'},\n 'post-wetland-uncertainty': {'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'TBD',\n 'description': 'TBD'},\n 'prior-wetland-uncertainty': {'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'TBD',\n 'description': 'TBD'},\n 'post-livestock-uncertainty': {'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'TBD',\n 'description': 'TBD'},\n 'prior-livestock-uncertainty': {'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'TBD',\n 'description': 'TBD'}},\n 'stac_version': '1.0.0',\n 'stac_extensions': None,\n 'dashboard:is_periodic': False,\n 'dashboard:time_density': 'year'}\n\n\nExamining the contents of our collection under the temporal variable, we see that the data is available from January 2012 to December 2018. By looking at the dashboard:time density, we observe that the data is available for only one year, i.e. 2019.\n\ndef get_item_count(collection_id):\n count = 0\n items_url = f\"{STAC_API_URL}/collections/{collection_id}/items\"\n\n while True:\n response = requests.get(items_url)\n\n if not response.ok:\n print(\"error getting items\")\n exit()\n\n stac = response.json()\n count += int(stac[\"context\"].get(\"returned\", 0))\n next = [link for link in stac[\"links\"] if link[\"rel\"] == \"next\"]\n\n if not next:\n break\n items_url = next[0][\"href\"]\n\n return count\n\n\n# Check total number of items available\nnumber_of_items = get_item_count(collection_name)\nitems = requests.get(f\"{STAC_API_URL}/collections/{collection_name}/items?limit={number_of_items}\").json()[\"features\"]\nprint(f\"Found {len(items)} items\")\n\nFound 1 items\n\n\n\n# Examining the first item in the collection\nitems[0]\n\n{'id': 'gosat-based-ch4budget-yeargrid-v1-2019',\n 'bbox': [-180.5, -90.5, 179.5, 89.5],\n 'type': 'Feature',\n 'links': [{'rel': 'collection',\n 'type': 'application/json',\n 'href': 'https://e6v7j4ejp6.execute-api.us-west-2.amazonaws.com/api/stac/collections/gosat-based-ch4budget-yeargrid-v1'},\n {'rel': 'parent',\n 'type': 'application/json',\n 'href': 'https://e6v7j4ejp6.execute-api.us-west-2.amazonaws.com/api/stac/collections/gosat-based-ch4budget-yeargrid-v1'},\n {'rel': 'root',\n 'type': 'application/json',\n 'href': 'https://e6v7j4ejp6.execute-api.us-west-2.amazonaws.com/api/stac/'},\n {'rel': 'self',\n 'type': 'application/geo+json',\n 'href': 'https://e6v7j4ejp6.execute-api.us-west-2.amazonaws.com/api/stac/collections/gosat-based-ch4budget-yeargrid-v1/items/gosat-based-ch4budget-yeargrid-v1-2019'}],\n 'assets': {'post-gas': {'href': 's3://ghgc-data-store/gosat-based-ch4budget-yeargrid-v1/TopDownEmissions_GOSAT_post_gas_GEOS_CHEM_2019.tif',\n 'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'TBD',\n 'proj:bbox': [-180.5, -90.5, 179.5, 89.5],\n 'proj:epsg': 4326.0,\n 'proj:shape': [180.0, 360.0],\n 'description': 'TBD',\n 'raster:bands': [{'scale': 1.0,\n 'offset': 0.0,\n 'sampling': 'area',\n 'data_type': 'float32',\n 'histogram': {'max': 0.6140491962432861,\n 'min': -0.4103066623210907,\n 'count': 11.0,\n 'buckets': [1.0, 0.0, 2.0, 23.0, 64734.0, 30.0, 7.0, 2.0, 0.0, 1.0]},\n 'statistics': {'mean': 0.00043242290848866105,\n 'stddev': 0.006180576980113983,\n 'maximum': 0.6140491962432861,\n 'minimum': -0.4103066623210907,\n 'valid_percent': 0.00154320987654321}}],\n 'proj:geometry': {'type': 'Polygon',\n 'coordinates': [[[-180.5, -90.5],\n [179.5, -90.5],\n [179.5, 89.5],\n [-180.5, 89.5],\n [-180.5, -90.5]]]},\n 'proj:projjson': {'id': {'code': 4326.0, 'authority': 'EPSG'},\n 'name': 'WGS 84',\n 'type': 'GeographicCRS',\n 'datum': {'name': 'World Geodetic System 1984',\n 'type': 'GeodeticReferenceFrame',\n 'ellipsoid': {'name': 'WGS 84',\n 'semi_major_axis': 6378137.0,\n 'inverse_flattening': 298.257223563}},\n '$schema': 'https://proj.org/schemas/v0.4/projjson.schema.json',\n 'coordinate_system': {'axis': [{'name': 'Geodetic latitude',\n 'unit': 'degree',\n 'direction': 'north',\n 'abbreviation': 'Lat'},\n {'name': 'Geodetic longitude',\n 'unit': 'degree',\n 'direction': 'east',\n 'abbreviation': 'Lon'}],\n 'subtype': 'ellipsoidal'}},\n 'proj:transform': [1.0, 0.0, -180.5, 0.0, -1.0, 89.5, 0.0, 0.0, 1.0]},\n 'post-geo': {'href': 's3://ghgc-data-store/gosat-based-ch4budget-yeargrid-v1/TopDownEmissions_GOSAT_post_geo_GEOS_CHEM_2019.tif',\n 'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'TBD',\n 'proj:bbox': [-180.5, -90.5, 179.5, 89.5],\n 'proj:epsg': 4326.0,\n 'proj:shape': [180.0, 360.0],\n 'description': 'TBD',\n 'raster:bands': [{'scale': 1.0,\n 'offset': 0.0,\n 'sampling': 'area',\n 'data_type': 'float32',\n 'histogram': {'max': 1.0034276247024536,\n 'min': -1.0016025304794312,\n 'count': 11.0,\n 'buckets': [1.0, 0.0, 1.0, 5.0, 63425.0, 1354.0, 10.0, 2.0, 1.0, 1.0]},\n 'statistics': {'mean': 0.0003479516308289021,\n 'stddev': 0.0093332938849926,\n 'maximum': 1.0034276247024536,\n 'minimum': -1.0016025304794312,\n 'valid_percent': 0.00154320987654321}}],\n 'proj:geometry': {'type': 'Polygon',\n 'coordinates': [[[-180.5, -90.5],\n [179.5, -90.5],\n [179.5, 89.5],\n [-180.5, 89.5],\n [-180.5, -90.5]]]},\n 'proj:projjson': {'id': {'code': 4326.0, 'authority': 'EPSG'},\n 'name': 'WGS 84',\n 'type': 'GeographicCRS',\n 'datum': {'name': 'World Geodetic System 1984',\n 'type': 'GeodeticReferenceFrame',\n 'ellipsoid': {'name': 'WGS 84',\n 'semi_major_axis': 6378137.0,\n 'inverse_flattening': 298.257223563}},\n '$schema': 'https://proj.org/schemas/v0.4/projjson.schema.json',\n 'coordinate_system': {'axis': [{'name': 'Geodetic latitude',\n 'unit': 'degree',\n 'direction': 'north',\n 'abbreviation': 'Lat'},\n {'name': 'Geodetic longitude',\n 'unit': 'degree',\n 'direction': 'east',\n 'abbreviation': 'Lon'}],\n 'subtype': 'ellipsoidal'}},\n 'proj:transform': [1.0, 0.0, -180.5, 0.0, -1.0, 89.5, 0.0, 0.0, 1.0]},\n 'post-oil': {'href': 's3://ghgc-data-store/gosat-based-ch4budget-yeargrid-v1/TopDownEmissions_GOSAT_post_oil_GEOS_CHEM_2019.tif',\n 'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'TBD',\n 'proj:bbox': [-180.5, -90.5, 179.5, 89.5],\n 'proj:epsg': 4326.0,\n 'proj:shape': [180.0, 360.0],\n 'description': 'TBD',\n 'raster:bands': [{'scale': 1.0,\n 'offset': 0.0,\n 'sampling': 'area',\n 'data_type': 'float32',\n 'histogram': {'max': 3.457329273223877,\n 'min': -0.7987076640129089,\n 'count': 11.0,\n 'buckets': [2.0, 64681.0, 108.0, 4.0, 3.0, 1.0, 0.0, 0.0, 0.0, 1.0]},\n 'statistics': {'mean': 0.0004447368555702269,\n 'stddev': 0.01879083551466465,\n 'maximum': 3.457329273223877,\n 'minimum': -0.7987076640129089,\n 'valid_percent': 0.00154320987654321}}],\n 'proj:geometry': {'type': 'Polygon',\n 'coordinates': [[[-180.5, -90.5],\n [179.5, -90.5],\n [179.5, 89.5],\n [-180.5, 89.5],\n [-180.5, -90.5]]]},\n 'proj:projjson': {'id': {'code': 4326.0, 'authority': 'EPSG'},\n 'name': 'WGS 84',\n 'type': 'GeographicCRS',\n 'datum': {'name': 'World Geodetic System 1984',\n 'type': 'GeodeticReferenceFrame',\n 'ellipsoid': {'name': 'WGS 84',\n 'semi_major_axis': 6378137.0,\n 'inverse_flattening': 298.257223563}},\n '$schema': 'https://proj.org/schemas/v0.4/projjson.schema.json',\n 'coordinate_system': {'axis': [{'name': 'Geodetic latitude',\n 'unit': 'degree',\n 'direction': 'north',\n 'abbreviation': 'Lat'},\n {'name': 'Geodetic longitude',\n 'unit': 'degree',\n 'direction': 'east',\n 'abbreviation': 'Lon'}],\n 'subtype': 'ellipsoidal'}},\n 'proj:transform': [1.0, 0.0, -180.5, 0.0, -1.0, 89.5, 0.0, 0.0, 1.0]},\n 'post-coal': {'href': 's3://ghgc-data-store/gosat-based-ch4budget-yeargrid-v1/TopDownEmissions_GOSAT_post_coal_GEOS_CHEM_2019.tif',\n 'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'TBD',\n 'proj:bbox': [-180.5, -90.5, 179.5, 89.5],\n 'proj:epsg': 4326.0,\n 'proj:shape': [180.0, 360.0],\n 'description': 'TBD',\n 'raster:bands': [{'scale': 1.0,\n 'offset': 0.0,\n 'sampling': 'area',\n 'data_type': 'float32',\n 'histogram': {'max': 1.1035711765289307,\n 'min': -0.9143016934394836,\n 'count': 11.0,\n 'buckets': [1.0, 1.0, 1.0, 1.0, 64710.0, 62.0, 19.0, 3.0, 1.0, 1.0]},\n 'statistics': {'mean': 0.0003904950572177768,\n 'stddev': 0.01172551792114973,\n 'maximum': 1.1035711765289307,\n 'minimum': -0.9143016934394836,\n 'valid_percent': 0.00154320987654321}}],\n 'proj:geometry': {'type': 'Polygon',\n 'coordinates': [[[-180.5, -90.5],\n [179.5, -90.5],\n [179.5, 89.5],\n [-180.5, 89.5],\n [-180.5, -90.5]]]},\n 'proj:projjson': {'id': {'code': 4326.0, 'authority': 'EPSG'},\n 'name': 'WGS 84',\n 'type': 'GeographicCRS',\n 'datum': {'name': 'World Geodetic System 1984',\n 'type': 'GeodeticReferenceFrame',\n 'ellipsoid': {'name': 'WGS 84',\n 'semi_major_axis': 6378137.0,\n 'inverse_flattening': 298.257223563}},\n '$schema': 'https://proj.org/schemas/v0.4/projjson.schema.json',\n 'coordinate_system': {'axis': [{'name': 'Geodetic latitude',\n 'unit': 'degree',\n 'direction': 'north',\n 'abbreviation': 'Lat'},\n {'name': 'Geodetic longitude',\n 'unit': 'degree',\n 'direction': 'east',\n 'abbreviation': 'Lon'}],\n 'subtype': 'ellipsoidal'}},\n 'proj:transform': [1.0, 0.0, -180.5, 0.0, -1.0, 89.5, 0.0, 0.0, 1.0]},\n 'post-fire': {'href': 's3://ghgc-data-store/gosat-based-ch4budget-yeargrid-v1/TopDownEmissions_GOSAT_post_fire_GEOS_CHEM_2019.tif',\n 'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'TBD',\n 'proj:bbox': [-180.5, -90.5, 179.5, 89.5],\n 'proj:epsg': 4326.0,\n 'proj:shape': [180.0, 360.0],\n 'description': 'TBD',\n 'raster:bands': [{'scale': 1.0,\n 'offset': 0.0,\n 'sampling': 'area',\n 'data_type': 'float32',\n 'histogram': {'max': 0.7065173387527466,\n 'min': -0.08211488276720047,\n 'count': 11.0,\n 'buckets': [103.0, 64685.0, 11.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0]},\n 'statistics': {'mean': 0.00020585705351550132,\n 'stddev': 0.00356540665961802,\n 'maximum': 0.7065173387527466,\n 'minimum': -0.08211488276720047,\n 'valid_percent': 0.00154320987654321}}],\n 'proj:geometry': {'type': 'Polygon',\n 'coordinates': [[[-180.5, -90.5],\n [179.5, -90.5],\n [179.5, 89.5],\n [-180.5, 89.5],\n [-180.5, -90.5]]]},\n 'proj:projjson': {'id': {'code': 4326.0, 'authority': 'EPSG'},\n 'name': 'WGS 84',\n 'type': 'GeographicCRS',\n 'datum': {'name': 'World Geodetic System 1984',\n 'type': 'GeodeticReferenceFrame',\n 'ellipsoid': {'name': 'WGS 84',\n 'semi_major_axis': 6378137.0,\n 'inverse_flattening': 298.257223563}},\n '$schema': 'https://proj.org/schemas/v0.4/projjson.schema.json',\n 'coordinate_system': {'axis': [{'name': 'Geodetic latitude',\n 'unit': 'degree',\n 'direction': 'north',\n 'abbreviation': 'Lat'},\n {'name': 'Geodetic longitude',\n 'unit': 'degree',\n 'direction': 'east',\n 'abbreviation': 'Lon'}],\n 'subtype': 'ellipsoidal'}},\n 'proj:transform': [1.0, 0.0, -180.5, 0.0, -1.0, 89.5, 0.0, 0.0, 1.0]},\n 'post-rice': {'href': 's3://ghgc-data-store/gosat-based-ch4budget-yeargrid-v1/TopDownEmissions_GOSAT_post_rice_GEOS_CHEM_2019.tif',\n 'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'TBD',\n 'proj:bbox': [-180.5, -90.5, 179.5, 89.5],\n 'proj:epsg': 4326.0,\n 'proj:shape': [180.0, 360.0],\n 'description': 'TBD',\n 'raster:bands': [{'scale': 1.0,\n 'offset': 0.0,\n 'sampling': 'area',\n 'data_type': 'float32',\n 'histogram': {'max': 1.3836066722869873,\n 'min': -1.1384793519973755,\n 'count': 11.0,\n 'buckets': [1.0, 4.0, 12.0, 20.0, 64581.0, 132.0, 30.0, 11.0, 4.0, 5.0]},\n 'statistics': {'mean': 0.0010437712771818042,\n 'stddev': 0.024994080886244774,\n 'maximum': 1.3836066722869873,\n 'minimum': -1.1384793519973755,\n 'valid_percent': 0.00154320987654321}}],\n 'proj:geometry': {'type': 'Polygon',\n 'coordinates': [[[-180.5, -90.5],\n [179.5, -90.5],\n [179.5, 89.5],\n [-180.5, 89.5],\n [-180.5, -90.5]]]},\n 'proj:projjson': {'id': {'code': 4326.0, 'authority': 'EPSG'},\n 'name': 'WGS 84',\n 'type': 'GeographicCRS',\n 'datum': {'name': 'World Geodetic System 1984',\n 'type': 'GeodeticReferenceFrame',\n 'ellipsoid': {'name': 'WGS 84',\n 'semi_major_axis': 6378137.0,\n 'inverse_flattening': 298.257223563}},\n '$schema': 'https://proj.org/schemas/v0.4/projjson.schema.json',\n 'coordinate_system': {'axis': [{'name': 'Geodetic latitude',\n 'unit': 'degree',\n 'direction': 'north',\n 'abbreviation': 'Lat'},\n {'name': 'Geodetic longitude',\n 'unit': 'degree',\n 'direction': 'east',\n 'abbreviation': 'Lon'}],\n 'subtype': 'ellipsoidal'}},\n 'proj:transform': [1.0, 0.0, -180.5, 0.0, -1.0, 89.5, 0.0, 0.0, 1.0]},\n 'prior-gas': {'href': 's3://ghgc-data-store/gosat-based-ch4budget-yeargrid-v1/TopDownEmissions_GOSAT_prior_gas_GEOS_CHEM_2019.tif',\n 'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'TBD',\n 'proj:bbox': [-180.5, -90.5, 179.5, 89.5],\n 'proj:epsg': 4326.0,\n 'proj:shape': [180.0, 360.0],\n 'description': 'TBD',\n 'raster:bands': [{'scale': 1.0,\n 'offset': 0.0,\n 'sampling': 'area',\n 'data_type': 'float32',\n 'histogram': {'max': 0.2977725863456726,\n 'min': 0.0,\n 'count': 11.0,\n 'buckets': [64659.0, 93.0, 27.0, 8.0, 2.0, 4.0, 2.0, 2.0, 2.0, 1.0]},\n 'statistics': {'mean': 0.00037746498128399253,\n 'stddev': 0.00403926195576787,\n 'maximum': 0.2977725863456726,\n 'minimum': 0.0,\n 'valid_percent': 0.00154320987654321}}],\n 'proj:geometry': {'type': 'Polygon',\n 'coordinates': [[[-180.5, -90.5],\n [179.5, -90.5],\n [179.5, 89.5],\n [-180.5, 89.5],\n [-180.5, -90.5]]]},\n 'proj:projjson': {'id': {'code': 4326.0, 'authority': 'EPSG'},\n 'name': 'WGS 84',\n 'type': 'GeographicCRS',\n 'datum': {'name': 'World Geodetic System 1984',\n 'type': 'GeodeticReferenceFrame',\n 'ellipsoid': {'name': 'WGS 84',\n 'semi_major_axis': 6378137.0,\n 'inverse_flattening': 298.257223563}},\n '$schema': 'https://proj.org/schemas/v0.4/projjson.schema.json',\n 'coordinate_system': {'axis': [{'name': 'Geodetic latitude',\n 'unit': 'degree',\n 'direction': 'north',\n 'abbreviation': 'Lat'},\n {'name': 'Geodetic longitude',\n 'unit': 'degree',\n 'direction': 'east',\n 'abbreviation': 'Lon'}],\n 'subtype': 'ellipsoidal'}},\n 'proj:transform': [1.0, 0.0, -180.5, 0.0, -1.0, 89.5, 0.0, 0.0, 1.0]},\n 'prior-geo': {'href': 's3://ghgc-data-store/gosat-based-ch4budget-yeargrid-v1/TopDownEmissions_GOSAT_prior_geo_GEOS_CHEM_2019.tif',\n 'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'TBD',\n 'proj:bbox': [-180.5, -90.5, 179.5, 89.5],\n 'proj:epsg': 4326.0,\n 'proj:shape': [180.0, 360.0],\n 'description': 'TBD',\n 'raster:bands': [{'scale': 1.0,\n 'offset': 0.0,\n 'sampling': 'area',\n 'data_type': 'float32',\n 'histogram': {'max': 1.8356599807739258,\n 'min': 0.0,\n 'count': 11.0,\n 'buckets': [64780.0, 15.0, 4.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0]},\n 'statistics': {'mean': 0.0004932624287903309,\n 'stddev': 0.009640775620937347,\n 'maximum': 1.8356599807739258,\n 'minimum': 0.0,\n 'valid_percent': 0.00154320987654321}}],\n 'proj:geometry': {'type': 'Polygon',\n 'coordinates': [[[-180.5, -90.5],\n [179.5, -90.5],\n [179.5, 89.5],\n [-180.5, 89.5],\n [-180.5, -90.5]]]},\n 'proj:projjson': {'id': {'code': 4326.0, 'authority': 'EPSG'},\n 'name': 'WGS 84',\n 'type': 'GeographicCRS',\n 'datum': {'name': 'World Geodetic System 1984',\n 'type': 'GeodeticReferenceFrame',\n 'ellipsoid': {'name': 'WGS 84',\n 'semi_major_axis': 6378137.0,\n 'inverse_flattening': 298.257223563}},\n '$schema': 'https://proj.org/schemas/v0.4/projjson.schema.json',\n 'coordinate_system': {'axis': [{'name': 'Geodetic latitude',\n 'unit': 'degree',\n 'direction': 'north',\n 'abbreviation': 'Lat'},\n {'name': 'Geodetic longitude',\n 'unit': 'degree',\n 'direction': 'east',\n 'abbreviation': 'Lon'}],\n 'subtype': 'ellipsoidal'}},\n 'proj:transform': [1.0, 0.0, -180.5, 0.0, -1.0, 89.5, 0.0, 0.0, 1.0]},\n 'prior-oil': {'href': 's3://ghgc-data-store/gosat-based-ch4budget-yeargrid-v1/TopDownEmissions_GOSAT_prior_oil_GEOS_CHEM_2019.tif',\n 'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'TBD',\n 'proj:bbox': [-180.5, -90.5, 179.5, 89.5],\n 'proj:epsg': 4326.0,\n 'proj:shape': [180.0, 360.0],\n 'description': 'TBD',\n 'raster:bands': [{'scale': 1.0,\n 'offset': 0.0,\n 'sampling': 'area',\n 'data_type': 'float32',\n 'histogram': {'max': 1.287477731704712,\n 'min': 0.0,\n 'count': 11.0,\n 'buckets': [64734.0, 40.0, 15.0, 3.0, 1.0, 4.0, 0.0, 1.0, 1.0, 1.0]},\n 'statistics': {'mean': 0.0006414719391614199,\n 'stddev': 0.01284099742770195,\n 'maximum': 1.287477731704712,\n 'minimum': 0.0,\n 'valid_percent': 0.00154320987654321}}],\n 'proj:geometry': {'type': 'Polygon',\n 'coordinates': [[[-180.5, -90.5],\n [179.5, -90.5],\n [179.5, 89.5],\n [-180.5, 89.5],\n [-180.5, -90.5]]]},\n 'proj:projjson': {'id': {'code': 4326.0, 'authority': 'EPSG'},\n 'name': 'WGS 84',\n 'type': 'GeographicCRS',\n 'datum': {'name': 'World Geodetic System 1984',\n 'type': 'GeodeticReferenceFrame',\n 'ellipsoid': {'name': 'WGS 84',\n 'semi_major_axis': 6378137.0,\n 'inverse_flattening': 298.257223563}},\n '$schema': 'https://proj.org/schemas/v0.4/projjson.schema.json',\n 'coordinate_system': {'axis': [{'name': 'Geodetic latitude',\n 'unit': 'degree',\n 'direction': 'north',\n 'abbreviation': 'Lat'},\n {'name': 'Geodetic longitude',\n 'unit': 'degree',\n 'direction': 'east',\n 'abbreviation': 'Lon'}],\n 'subtype': 'ellipsoidal'}},\n 'proj:transform': [1.0, 0.0, -180.5, 0.0, -1.0, 89.5, 0.0, 0.0, 1.0]},\n 'post-total': {'href': 's3://ghgc-data-store/gosat-based-ch4budget-yeargrid-v1/TopDownEmissions_GOSAT_post_total_GEOS_CHEM_2019.tif',\n 'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'TBD',\n 'proj:bbox': [-180.5, -90.5, 179.5, 89.5],\n 'proj:epsg': 4326.0,\n 'proj:shape': [180.0, 360.0],\n 'description': 'TBD',\n 'raster:bands': [{'scale': 1.0,\n 'offset': 0.0,\n 'sampling': 'area',\n 'data_type': 'float32',\n 'histogram': {'max': 3.621621608734131,\n 'min': -1.157373309135437,\n 'count': 11.0,\n 'buckets': [8.0, 69.0, 64300.0, 366.0, 41.0, 13.0, 2.0, 0.0, 0.0, 1.0]},\n 'statistics': {'mean': 0.008661163039505482,\n 'stddev': 0.057076238095760345,\n 'maximum': 3.621621608734131,\n 'minimum': -1.157373309135437,\n 'valid_percent': 0.00154320987654321}}],\n 'proj:geometry': {'type': 'Polygon',\n 'coordinates': [[[-180.5, -90.5],\n [179.5, -90.5],\n [179.5, 89.5],\n [-180.5, 89.5],\n [-180.5, -90.5]]]},\n 'proj:projjson': {'id': {'code': 4326.0, 'authority': 'EPSG'},\n 'name': 'WGS 84',\n 'type': 'GeographicCRS',\n 'datum': {'name': 'World Geodetic System 1984',\n 'type': 'GeodeticReferenceFrame',\n 'ellipsoid': {'name': 'WGS 84',\n 'semi_major_axis': 6378137.0,\n 'inverse_flattening': 298.257223563}},\n '$schema': 'https://proj.org/schemas/v0.4/projjson.schema.json',\n 'coordinate_system': {'axis': [{'name': 'Geodetic latitude',\n 'unit': 'degree',\n 'direction': 'north',\n 'abbreviation': 'Lat'},\n {'name': 'Geodetic longitude',\n 'unit': 'degree',\n 'direction': 'east',\n 'abbreviation': 'Lon'}],\n 'subtype': 'ellipsoidal'}},\n 'proj:transform': [1.0, 0.0, -180.5, 0.0, -1.0, 89.5, 0.0, 0.0, 1.0]},\n 'post-waste': {'href': 's3://ghgc-data-store/gosat-based-ch4budget-yeargrid-v1/TopDownEmissions_GOSAT_post_waste_GEOS_CHEM_2019.tif',\n 'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'TBD',\n 'proj:bbox': [-180.5, -90.5, 179.5, 89.5],\n 'proj:epsg': 4326.0,\n 'proj:shape': [180.0, 360.0],\n 'description': 'TBD',\n 'raster:bands': [{'scale': 1.0,\n 'offset': 0.0,\n 'sampling': 'area',\n 'data_type': 'float32',\n 'histogram': {'max': 1.2296125888824463,\n 'min': -0.5908117294311523,\n 'count': 11.0,\n 'buckets': [1.0, 2.0, 10.0, 64753.0, 26.0, 5.0, 1.0, 1.0, 0.0, 1.0]},\n 'statistics': {'mean': 0.0007660945411771536,\n 'stddev': 0.010033484548330307,\n 'maximum': 1.2296125888824463,\n 'minimum': -0.5908117294311523,\n 'valid_percent': 0.00154320987654321}}],\n 'proj:geometry': {'type': 'Polygon',\n 'coordinates': [[[-180.5, -90.5],\n [179.5, -90.5],\n [179.5, 89.5],\n [-180.5, 89.5],\n [-180.5, -90.5]]]},\n 'proj:projjson': {'id': {'code': 4326.0, 'authority': 'EPSG'},\n 'name': 'WGS 84',\n 'type': 'GeographicCRS',\n 'datum': {'name': 'World Geodetic System 1984',\n 'type': 'GeodeticReferenceFrame',\n 'ellipsoid': {'name': 'WGS 84',\n 'semi_major_axis': 6378137.0,\n 'inverse_flattening': 298.257223563}},\n '$schema': 'https://proj.org/schemas/v0.4/projjson.schema.json',\n 'coordinate_system': {'axis': [{'name': 'Geodetic latitude',\n 'unit': 'degree',\n 'direction': 'north',\n 'abbreviation': 'Lat'},\n {'name': 'Geodetic longitude',\n 'unit': 'degree',\n 'direction': 'east',\n 'abbreviation': 'Lon'}],\n 'subtype': 'ellipsoidal'}},\n 'proj:transform': [1.0, 0.0, -180.5, 0.0, -1.0, 89.5, 0.0, 0.0, 1.0]},\n 'prior-coal': {'href': 's3://ghgc-data-store/gosat-based-ch4budget-yeargrid-v1/TopDownEmissions_GOSAT_prior_coal_GEOS_CHEM_2019.tif',\n 'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'TBD',\n 'proj:bbox': [-180.5, -90.5, 179.5, 89.5],\n 'proj:epsg': 4326.0,\n 'proj:shape': [180.0, 360.0],\n 'description': 'TBD',\n 'raster:bands': [{'scale': 1.0,\n 'offset': 0.0,\n 'sampling': 'area',\n 'data_type': 'float32',\n 'histogram': {'max': 1.3838224411010742,\n 'min': 0.0,\n 'count': 11.0,\n 'buckets': [64746.0, 29.0, 11.0, 2.0, 5.0, 2.0, 2.0, 2.0, 0.0, 1.0]},\n 'statistics': {'mean': 0.0004846722586080432,\n 'stddev': 0.01380141545087099,\n 'maximum': 1.3838224411010742,\n 'minimum': 0.0,\n 'valid_percent': 0.00154320987654321}}],\n 'proj:geometry': {'type': 'Polygon',\n 'coordinates': [[[-180.5, -90.5],\n [179.5, -90.5],\n [179.5, 89.5],\n [-180.5, 89.5],\n [-180.5, -90.5]]]},\n 'proj:projjson': {'id': {'code': 4326.0, 'authority': 'EPSG'},\n 'name': 'WGS 84',\n 'type': 'GeographicCRS',\n 'datum': {'name': 'World Geodetic System 1984',\n 'type': 'GeodeticReferenceFrame',\n 'ellipsoid': {'name': 'WGS 84',\n 'semi_major_axis': 6378137.0,\n 'inverse_flattening': 298.257223563}},\n '$schema': 'https://proj.org/schemas/v0.4/projjson.schema.json',\n 'coordinate_system': {'axis': [{'name': 'Geodetic latitude',\n 'unit': 'degree',\n 'direction': 'north',\n 'abbreviation': 'Lat'},\n {'name': 'Geodetic longitude',\n 'unit': 'degree',\n 'direction': 'east',\n 'abbreviation': 'Lon'}],\n 'subtype': 'ellipsoidal'}},\n 'proj:transform': [1.0, 0.0, -180.5, 0.0, -1.0, 89.5, 0.0, 0.0, 1.0]},\n 'prior-fire': {'href': 's3://ghgc-data-store/gosat-based-ch4budget-yeargrid-v1/TopDownEmissions_GOSAT_prior_fire_GEOS_CHEM_2019.tif',\n 'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'TBD',\n 'proj:bbox': [-180.5, -90.5, 179.5, 89.5],\n 'proj:epsg': 4326.0,\n 'proj:shape': [180.0, 360.0],\n 'description': 'TBD',\n 'raster:bands': [{'scale': 1.0,\n 'offset': 0.0,\n 'sampling': 'area',\n 'data_type': 'float32',\n 'histogram': {'max': 0.498909056186676,\n 'min': 0.0,\n 'count': 11.0,\n 'buckets': [64786.0, 7.0, 1.0, 3.0, 1.0, 0.0, 0.0, 1.0, 0.0, 1.0]},\n 'statistics': {'mean': 0.0002329142007511109,\n 'stddev': 0.0032598471734672785,\n 'maximum': 0.498909056186676,\n 'minimum': 0.0,\n 'valid_percent': 0.00154320987654321}}],\n 'proj:geometry': {'type': 'Polygon',\n 'coordinates': [[[-180.5, -90.5],\n [179.5, -90.5],\n [179.5, 89.5],\n [-180.5, 89.5],\n [-180.5, -90.5]]]},\n 'proj:projjson': {'id': {'code': 4326.0, 'authority': 'EPSG'},\n 'name': 'WGS 84',\n 'type': 'GeographicCRS',\n 'datum': {'name': 'World Geodetic System 1984',\n 'type': 'GeodeticReferenceFrame',\n 'ellipsoid': {'name': 'WGS 84',\n 'semi_major_axis': 6378137.0,\n 'inverse_flattening': 298.257223563}},\n '$schema': 'https://proj.org/schemas/v0.4/projjson.schema.json',\n 'coordinate_system': {'axis': [{'name': 'Geodetic latitude',\n 'unit': 'degree',\n 'direction': 'north',\n 'abbreviation': 'Lat'},\n {'name': 'Geodetic longitude',\n 'unit': 'degree',\n 'direction': 'east',\n 'abbreviation': 'Lon'}],\n 'subtype': 'ellipsoidal'}},\n 'proj:transform': [1.0, 0.0, -180.5, 0.0, -1.0, 89.5, 0.0, 0.0, 1.0]},\n 'prior-rice': {'href': 's3://ghgc-data-store/gosat-based-ch4budget-yeargrid-v1/TopDownEmissions_GOSAT_prior_rice_GEOS_CHEM_2019.tif',\n 'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'TBD',\n 'proj:bbox': [-180.5, -90.5, 179.5, 89.5],\n 'proj:epsg': 4326.0,\n 'proj:shape': [180.0, 360.0],\n 'description': 'TBD',\n 'raster:bands': [{'scale': 1.0,\n 'offset': 0.0,\n 'sampling': 'area',\n 'data_type': 'float32',\n 'histogram': {'max': 0.5223113298416138,\n 'min': 0.0,\n 'count': 11.0,\n 'buckets': [64539.0, 154.0, 55.0, 25.0, 16.0, 8.0, 2.0, 0.0, 0.0, 1.0]},\n 'statistics': {'mean': 0.000768911384511739,\n 'stddev': 0.008794998750090599,\n 'maximum': 0.5223113298416138,\n 'minimum': 0.0,\n 'valid_percent': 0.00154320987654321}}],\n 'proj:geometry': {'type': 'Polygon',\n 'coordinates': [[[-180.5, -90.5],\n [179.5, -90.5],\n [179.5, 89.5],\n [-180.5, 89.5],\n [-180.5, -90.5]]]},\n 'proj:projjson': {'id': {'code': 4326.0, 'authority': 'EPSG'},\n 'name': 'WGS 84',\n 'type': 'GeographicCRS',\n 'datum': {'name': 'World Geodetic System 1984',\n 'type': 'GeodeticReferenceFrame',\n 'ellipsoid': {'name': 'WGS 84',\n 'semi_major_axis': 6378137.0,\n 'inverse_flattening': 298.257223563}},\n '$schema': 'https://proj.org/schemas/v0.4/projjson.schema.json',\n 'coordinate_system': {'axis': [{'name': 'Geodetic latitude',\n 'unit': 'degree',\n 'direction': 'north',\n 'abbreviation': 'Lat'},\n {'name': 'Geodetic longitude',\n 'unit': 'degree',\n 'direction': 'east',\n 'abbreviation': 'Lon'}],\n 'subtype': 'ellipsoidal'}},\n 'proj:transform': [1.0, 0.0, -180.5, 0.0, -1.0, 89.5, 0.0, 0.0, 1.0]},\n 'prior-total': {'href': 's3://ghgc-data-store/gosat-based-ch4budget-yeargrid-v1/TopDownEmissions_GOSAT_prior_total_GEOS_CHEM_2019.tif',\n 'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'TBD',\n 'proj:bbox': [-180.5, -90.5, 179.5, 89.5],\n 'proj:epsg': 4326.0,\n 'proj:shape': [180.0, 360.0],\n 'description': 'TBD',\n 'raster:bands': [{'scale': 1.0,\n 'offset': 0.0,\n 'sampling': 'area',\n 'data_type': 'float32',\n 'histogram': {'max': 2.121816635131836,\n 'min': 0.0,\n 'count': 11.0,\n 'buckets': [64390.0, 297.0, 63.0, 26.0, 13.0, 7.0, 3.0, 0.0, 0.0, 1.0]},\n 'statistics': {'mean': 0.008324408903717995,\n 'stddev': 0.04165573790669441,\n 'maximum': 2.121816635131836,\n 'minimum': 0.0,\n 'valid_percent': 0.00154320987654321}}],\n 'proj:geometry': {'type': 'Polygon',\n 'coordinates': [[[-180.5, -90.5],\n [179.5, -90.5],\n [179.5, 89.5],\n [-180.5, 89.5],\n [-180.5, -90.5]]]},\n 'proj:projjson': {'id': {'code': 4326.0, 'authority': 'EPSG'},\n 'name': 'WGS 84',\n 'type': 'GeographicCRS',\n 'datum': {'name': 'World Geodetic System 1984',\n 'type': 'GeodeticReferenceFrame',\n 'ellipsoid': {'name': 'WGS 84',\n 'semi_major_axis': 6378137.0,\n 'inverse_flattening': 298.257223563}},\n '$schema': 'https://proj.org/schemas/v0.4/projjson.schema.json',\n 'coordinate_system': {'axis': [{'name': 'Geodetic latitude',\n 'unit': 'degree',\n 'direction': 'north',\n 'abbreviation': 'Lat'},\n {'name': 'Geodetic longitude',\n 'unit': 'degree',\n 'direction': 'east',\n 'abbreviation': 'Lon'}],\n 'subtype': 'ellipsoidal'}},\n 'proj:transform': [1.0, 0.0, -180.5, 0.0, -1.0, 89.5, 0.0, 0.0, 1.0]},\n 'prior-waste': {'href': 's3://ghgc-data-store/gosat-based-ch4budget-yeargrid-v1/TopDownEmissions_GOSAT_prior_waste_GEOS_CHEM_2019.tif',\n 'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'TBD',\n 'proj:bbox': [-180.5, -90.5, 179.5, 89.5],\n 'proj:epsg': 4326.0,\n 'proj:shape': [180.0, 360.0],\n 'description': 'TBD',\n 'raster:bands': [{'scale': 1.0,\n 'offset': 0.0,\n 'sampling': 'area',\n 'data_type': 'float32',\n 'histogram': {'max': 1.4146164655685425,\n 'min': 0.0,\n 'count': 11.0,\n 'buckets': [64750.0, 36.0, 6.0, 4.0, 1.0, 1.0, 0.0, 0.0, 1.0, 1.0]},\n 'statistics': {'mean': 0.0008899783715605736,\n 'stddev': 0.011600765399634838,\n 'maximum': 1.4146164655685425,\n 'minimum': 0.0,\n 'valid_percent': 0.00154320987654321}}],\n 'proj:geometry': {'type': 'Polygon',\n 'coordinates': [[[-180.5, -90.5],\n [179.5, -90.5],\n [179.5, 89.5],\n [-180.5, 89.5],\n [-180.5, -90.5]]]},\n 'proj:projjson': {'id': {'code': 4326.0, 'authority': 'EPSG'},\n 'name': 'WGS 84',\n 'type': 'GeographicCRS',\n 'datum': {'name': 'World Geodetic System 1984',\n 'type': 'GeodeticReferenceFrame',\n 'ellipsoid': {'name': 'WGS 84',\n 'semi_major_axis': 6378137.0,\n 'inverse_flattening': 298.257223563}},\n '$schema': 'https://proj.org/schemas/v0.4/projjson.schema.json',\n 'coordinate_system': {'axis': [{'name': 'Geodetic latitude',\n 'unit': 'degree',\n 'direction': 'north',\n 'abbreviation': 'Lat'},\n {'name': 'Geodetic longitude',\n 'unit': 'degree',\n 'direction': 'east',\n 'abbreviation': 'Lon'}],\n 'subtype': 'ellipsoidal'}},\n 'proj:transform': [1.0, 0.0, -180.5, 0.0, -1.0, 89.5, 0.0, 0.0, 1.0]},\n 'post-wetland': {'href': 's3://ghgc-data-store/gosat-based-ch4budget-yeargrid-v1/TopDownEmissions_GOSAT_post_wetland_GEOS_CHEM_2019.tif',\n 'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'TBD',\n 'proj:bbox': [-180.5, -90.5, 179.5, 89.5],\n 'proj:epsg': 4326.0,\n 'proj:shape': [180.0, 360.0],\n 'description': 'TBD',\n 'raster:bands': [{'scale': 1.0,\n 'offset': 0.0,\n 'sampling': 'area',\n 'data_type': 'float32',\n 'histogram': {'max': 2.0359816551208496,\n 'min': -0.8375182747840881,\n 'count': 11.0,\n 'buckets': [5.0, 15.0, 63361.0, 1288.0, 94.0, 24.0, 7.0, 2.0, 2.0, 2.0]},\n 'statistics': {'mean': 0.0027753026224672794,\n 'stddev': 0.033493757247924805,\n 'maximum': 2.0359816551208496,\n 'minimum': -0.8375182747840881,\n 'valid_percent': 0.00154320987654321}}],\n 'proj:geometry': {'type': 'Polygon',\n 'coordinates': [[[-180.5, -90.5],\n [179.5, -90.5],\n [179.5, 89.5],\n [-180.5, 89.5],\n [-180.5, -90.5]]]},\n 'proj:projjson': {'id': {'code': 4326.0, 'authority': 'EPSG'},\n 'name': 'WGS 84',\n 'type': 'GeographicCRS',\n 'datum': {'name': 'World Geodetic System 1984',\n 'type': 'GeodeticReferenceFrame',\n 'ellipsoid': {'name': 'WGS 84',\n 'semi_major_axis': 6378137.0,\n 'inverse_flattening': 298.257223563}},\n '$schema': 'https://proj.org/schemas/v0.4/projjson.schema.json',\n 'coordinate_system': {'axis': [{'name': 'Geodetic latitude',\n 'unit': 'degree',\n 'direction': 'north',\n 'abbreviation': 'Lat'},\n {'name': 'Geodetic longitude',\n 'unit': 'degree',\n 'direction': 'east',\n 'abbreviation': 'Lon'}],\n 'subtype': 'ellipsoidal'}},\n 'proj:transform': [1.0, 0.0, -180.5, 0.0, -1.0, 89.5, 0.0, 0.0, 1.0]},\n 'prior-wetland': {'href': 's3://ghgc-data-store/gosat-based-ch4budget-yeargrid-v1/TopDownEmissions_GOSAT_prior_wetland_GEOS_CHEM_2019.tif',\n 'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'TBD',\n 'proj:bbox': [-180.5, -90.5, 179.5, 89.5],\n 'proj:epsg': 4326.0,\n 'proj:shape': [180.0, 360.0],\n 'description': 'TBD',\n 'raster:bands': [{'scale': 1.0,\n 'offset': 0.0,\n 'sampling': 'area',\n 'data_type': 'float32',\n 'histogram': {'max': 1.2217899560928345,\n 'min': 0.0,\n 'count': 11.0,\n 'buckets': [64489.0, 188.0, 52.0, 29.0, 17.0, 11.0, 3.0, 4.0, 3.0, 4.0]},\n 'statistics': {'mean': 0.0030836397781968117,\n 'stddev': 0.026006272062659264,\n 'maximum': 1.2217899560928345,\n 'minimum': 0.0,\n 'valid_percent': 0.00154320987654321}}],\n 'proj:geometry': {'type': 'Polygon',\n 'coordinates': [[[-180.5, -90.5],\n [179.5, -90.5],\n [179.5, 89.5],\n [-180.5, 89.5],\n [-180.5, -90.5]]]},\n 'proj:projjson': {'id': {'code': 4326.0, 'authority': 'EPSG'},\n 'name': 'WGS 84',\n 'type': 'GeographicCRS',\n 'datum': {'name': 'World Geodetic System 1984',\n 'type': 'GeodeticReferenceFrame',\n 'ellipsoid': {'name': 'WGS 84',\n 'semi_major_axis': 6378137.0,\n 'inverse_flattening': 298.257223563}},\n '$schema': 'https://proj.org/schemas/v0.4/projjson.schema.json',\n 'coordinate_system': {'axis': [{'name': 'Geodetic latitude',\n 'unit': 'degree',\n 'direction': 'north',\n 'abbreviation': 'Lat'},\n {'name': 'Geodetic longitude',\n 'unit': 'degree',\n 'direction': 'east',\n 'abbreviation': 'Lon'}],\n 'subtype': 'ellipsoidal'}},\n 'proj:transform': [1.0, 0.0, -180.5, 0.0, -1.0, 89.5, 0.0, 0.0, 1.0]},\n 'post-livestock': {'href': 's3://ghgc-data-store/gosat-based-ch4budget-yeargrid-v1/TopDownEmissions_GOSAT_post_livestock_GEOS_CHEM_2019.tif',\n 'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'TBD',\n 'proj:bbox': [-180.5, -90.5, 179.5, 89.5],\n 'proj:epsg': 4326.0,\n 'proj:shape': [180.0, 360.0],\n 'description': 'TBD',\n 'raster:bands': [{'scale': 1.0,\n 'offset': 0.0,\n 'sampling': 'area',\n 'data_type': 'float32',\n 'histogram': {'max': 0.4482361972332001,\n 'min': -0.2484263777732849,\n 'count': 11.0,\n 'buckets': [2.0,\n 10.0,\n 56.0,\n 63290.0,\n 1110.0,\n 239.0,\n 61.0,\n 14.0,\n 13.0,\n 5.0]},\n 'statistics': {'mean': 0.0022545307874679565,\n 'stddev': 0.014899863861501217,\n 'maximum': 0.4482361972332001,\n 'minimum': -0.2484263777732849,\n 'valid_percent': 0.00154320987654321}}],\n 'proj:geometry': {'type': 'Polygon',\n 'coordinates': [[[-180.5, -90.5],\n [179.5, -90.5],\n [179.5, 89.5],\n [-180.5, 89.5],\n [-180.5, -90.5]]]},\n 'proj:projjson': {'id': {'code': 4326.0, 'authority': 'EPSG'},\n 'name': 'WGS 84',\n 'type': 'GeographicCRS',\n 'datum': {'name': 'World Geodetic System 1984',\n 'type': 'GeodeticReferenceFrame',\n 'ellipsoid': {'name': 'WGS 84',\n 'semi_major_axis': 6378137.0,\n 'inverse_flattening': 298.257223563}},\n '$schema': 'https://proj.org/schemas/v0.4/projjson.schema.json',\n 'coordinate_system': {'axis': [{'name': 'Geodetic latitude',\n 'unit': 'degree',\n 'direction': 'north',\n 'abbreviation': 'Lat'},\n {'name': 'Geodetic longitude',\n 'unit': 'degree',\n 'direction': 'east',\n 'abbreviation': 'Lon'}],\n 'subtype': 'ellipsoidal'}},\n 'proj:transform': [1.0, 0.0, -180.5, 0.0, -1.0, 89.5, 0.0, 0.0, 1.0]},\n 'prior-livestock': {'href': 's3://ghgc-data-store/gosat-based-ch4budget-yeargrid-v1/TopDownEmissions_GOSAT_prior_livestock_GEOS_CHEM_2019.tif',\n 'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'TBD',\n 'proj:bbox': [-180.5, -90.5, 179.5, 89.5],\n 'proj:epsg': 4326.0,\n 'proj:shape': [180.0, 360.0],\n 'description': 'TBD',\n 'raster:bands': [{'scale': 1.0,\n 'offset': 0.0,\n 'sampling': 'area',\n 'data_type': 'float32',\n 'histogram': {'max': 0.1304568201303482,\n 'min': 0.0,\n 'count': 11.0,\n 'buckets': [62701.0,\n 1246.0,\n 462.0,\n 214.0,\n 61.0,\n 40.0,\n 41.0,\n 21.0,\n 11.0,\n 3.0]},\n 'statistics': {'mean': 0.0013520935317501426,\n 'stddev': 0.006176645867526531,\n 'maximum': 0.1304568201303482,\n 'minimum': 0.0,\n 'valid_percent': 0.00154320987654321}}],\n 'proj:geometry': {'type': 'Polygon',\n 'coordinates': [[[-180.5, -90.5],\n [179.5, -90.5],\n [179.5, 89.5],\n [-180.5, 89.5],\n [-180.5, -90.5]]]},\n 'proj:projjson': {'id': {'code': 4326.0, 'authority': 'EPSG'},\n 'name': 'WGS 84',\n 'type': 'GeographicCRS',\n 'datum': {'name': 'World Geodetic System 1984',\n 'type': 'GeodeticReferenceFrame',\n 'ellipsoid': {'name': 'WGS 84',\n 'semi_major_axis': 6378137.0,\n 'inverse_flattening': 298.257223563}},\n '$schema': 'https://proj.org/schemas/v0.4/projjson.schema.json',\n 'coordinate_system': {'axis': [{'name': 'Geodetic latitude',\n 'unit': 'degree',\n 'direction': 'north',\n 'abbreviation': 'Lat'},\n {'name': 'Geodetic longitude',\n 'unit': 'degree',\n 'direction': 'east',\n 'abbreviation': 'Lon'}],\n 'subtype': 'ellipsoidal'}},\n 'proj:transform': [1.0, 0.0, -180.5, 0.0, -1.0, 89.5, 0.0, 0.0, 1.0]},\n 'post-gas-uncertainty': {'href': 's3://ghgc-data-store/gosat-based-ch4budget-yeargrid-v1/TopDownEmissions_GOSAT_post_unc_gas_GEOS_CHEM_2019.tif',\n 'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'TBD',\n 'proj:bbox': [-180.5, -90.5, 179.5, 89.5],\n 'proj:epsg': 4326.0,\n 'proj:shape': [180.0, 360.0],\n 'description': 'TBD',\n 'raster:bands': [{'scale': 1.0,\n 'offset': 0.0,\n 'sampling': 'area',\n 'data_type': 'float32',\n 'histogram': {'max': 0.026829414069652557,\n 'min': 0.0,\n 'count': 11.0,\n 'buckets': [64766.0, 20.0, 4.0, 6.0, 1.0, 0.0, 0.0, 1.0, 1.0, 1.0]},\n 'statistics': {'mean': 8.39770473248791e-06,\n 'stddev': 0.00022043172793928534,\n 'maximum': 0.026829414069652557,\n 'minimum': 0.0,\n 'valid_percent': 0.00154320987654321}}],\n 'proj:geometry': {'type': 'Polygon',\n 'coordinates': [[[-180.5, -90.5],\n [179.5, -90.5],\n [179.5, 89.5],\n [-180.5, 89.5],\n [-180.5, -90.5]]]},\n 'proj:projjson': {'id': {'code': 4326.0, 'authority': 'EPSG'},\n 'name': 'WGS 84',\n 'type': 'GeographicCRS',\n 'datum': {'name': 'World Geodetic System 1984',\n 'type': 'GeodeticReferenceFrame',\n 'ellipsoid': {'name': 'WGS 84',\n 'semi_major_axis': 6378137.0,\n 'inverse_flattening': 298.257223563}},\n '$schema': 'https://proj.org/schemas/v0.4/projjson.schema.json',\n 'coordinate_system': {'axis': [{'name': 'Geodetic latitude',\n 'unit': 'degree',\n 'direction': 'north',\n 'abbreviation': 'Lat'},\n {'name': 'Geodetic longitude',\n 'unit': 'degree',\n 'direction': 'east',\n 'abbreviation': 'Lon'}],\n 'subtype': 'ellipsoidal'}},\n 'proj:transform': [1.0, 0.0, -180.5, 0.0, -1.0, 89.5, 0.0, 0.0, 1.0]},\n 'post-geo-uncertainty': {'href': 's3://ghgc-data-store/gosat-based-ch4budget-yeargrid-v1/TopDownEmissions_GOSAT_post_unc_geo_GEOS_CHEM_2019.tif',\n 'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'TBD',\n 'proj:bbox': [-180.5, -90.5, 179.5, 89.5],\n 'proj:epsg': 4326.0,\n 'proj:shape': [180.0, 360.0],\n 'description': 'TBD',\n 'raster:bands': [{'scale': 1.0,\n 'offset': 0.0,\n 'sampling': 'area',\n 'data_type': 'float32',\n 'histogram': {'max': 0.25446972250938416,\n 'min': 0.0,\n 'count': 11.0,\n 'buckets': [64793.0, 5.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0]},\n 'statistics': {'mean': 1.9521785361575894e-05,\n 'stddev': 0.0011142849689349532,\n 'maximum': 0.25446972250938416,\n 'minimum': 0.0,\n 'valid_percent': 0.00154320987654321}}],\n 'proj:geometry': {'type': 'Polygon',\n 'coordinates': [[[-180.5, -90.5],\n [179.5, -90.5],\n [179.5, 89.5],\n [-180.5, 89.5],\n [-180.5, -90.5]]]},\n 'proj:projjson': {'id': {'code': 4326.0, 'authority': 'EPSG'},\n 'name': 'WGS 84',\n 'type': 'GeographicCRS',\n 'datum': {'name': 'World Geodetic System 1984',\n 'type': 'GeodeticReferenceFrame',\n 'ellipsoid': {'name': 'WGS 84',\n 'semi_major_axis': 6378137.0,\n 'inverse_flattening': 298.257223563}},\n '$schema': 'https://proj.org/schemas/v0.4/projjson.schema.json',\n 'coordinate_system': {'axis': [{'name': 'Geodetic latitude',\n 'unit': 'degree',\n 'direction': 'north',\n 'abbreviation': 'Lat'},\n {'name': 'Geodetic longitude',\n 'unit': 'degree',\n 'direction': 'east',\n 'abbreviation': 'Lon'}],\n 'subtype': 'ellipsoidal'}},\n 'proj:transform': [1.0, 0.0, -180.5, 0.0, -1.0, 89.5, 0.0, 0.0, 1.0]},\n 'post-oil-uncertainty': {'href': 's3://ghgc-data-store/gosat-based-ch4budget-yeargrid-v1/TopDownEmissions_GOSAT_post_unc_oil_GEOS_CHEM_2019.tif',\n 'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'TBD',\n 'proj:bbox': [-180.5, -90.5, 179.5, 89.5],\n 'proj:epsg': 4326.0,\n 'proj:shape': [180.0, 360.0],\n 'description': 'TBD',\n 'raster:bands': [{'scale': 1.0,\n 'offset': 0.0,\n 'sampling': 'area',\n 'data_type': 'float32',\n 'histogram': {'max': 0.20816677808761597,\n 'min': 0.0,\n 'count': 11.0,\n 'buckets': [64775.0, 15.0, 2.0, 5.0, 1.0, 0.0, 0.0, 0.0, 1.0, 1.0]},\n 'statistics': {'mean': 3.7560705095529556e-05,\n 'stddev': 0.0014476124197244644,\n 'maximum': 0.20816677808761597,\n 'minimum': 0.0,\n 'valid_percent': 0.00154320987654321}}],\n 'proj:geometry': {'type': 'Polygon',\n 'coordinates': [[[-180.5, -90.5],\n [179.5, -90.5],\n [179.5, 89.5],\n [-180.5, 89.5],\n [-180.5, -90.5]]]},\n 'proj:projjson': {'id': {'code': 4326.0, 'authority': 'EPSG'},\n 'name': 'WGS 84',\n 'type': 'GeographicCRS',\n 'datum': {'name': 'World Geodetic System 1984',\n 'type': 'GeodeticReferenceFrame',\n 'ellipsoid': {'name': 'WGS 84',\n 'semi_major_axis': 6378137.0,\n 'inverse_flattening': 298.257223563}},\n '$schema': 'https://proj.org/schemas/v0.4/projjson.schema.json',\n 'coordinate_system': {'axis': [{'name': 'Geodetic latitude',\n 'unit': 'degree',\n 'direction': 'north',\n 'abbreviation': 'Lat'},\n {'name': 'Geodetic longitude',\n 'unit': 'degree',\n 'direction': 'east',\n 'abbreviation': 'Lon'}],\n 'subtype': 'ellipsoidal'}},\n 'proj:transform': [1.0, 0.0, -180.5, 0.0, -1.0, 89.5, 0.0, 0.0, 1.0]},\n 'post-coal-uncertainty': {'href': 's3://ghgc-data-store/gosat-based-ch4budget-yeargrid-v1/TopDownEmissions_GOSAT_post_unc_coal_GEOS_CHEM_2019.tif',\n 'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'TBD',\n 'proj:bbox': [-180.5, -90.5, 179.5, 89.5],\n 'proj:epsg': 4326.0,\n 'proj:shape': [180.0, 360.0],\n 'description': 'TBD',\n 'raster:bands': [{'scale': 1.0,\n 'offset': 0.0,\n 'sampling': 'area',\n 'data_type': 'float32',\n 'histogram': {'max': 0.28081363439559937,\n 'min': 0.0,\n 'count': 11.0,\n 'buckets': [64778.0, 7.0, 5.0, 1.0, 3.0, 3.0, 2.0, 0.0, 0.0, 1.0]},\n 'statistics': {'mean': 4.5709952246397734e-05,\n 'stddev': 0.0022045010700821877,\n 'maximum': 0.28081363439559937,\n 'minimum': 0.0,\n 'valid_percent': 0.00154320987654321}}],\n 'proj:geometry': {'type': 'Polygon',\n 'coordinates': [[[-180.5, -90.5],\n [179.5, -90.5],\n [179.5, 89.5],\n [-180.5, 89.5],\n [-180.5, -90.5]]]},\n 'proj:projjson': {'id': {'code': 4326.0, 'authority': 'EPSG'},\n 'name': 'WGS 84',\n 'type': 'GeographicCRS',\n 'datum': {'name': 'World Geodetic System 1984',\n 'type': 'GeodeticReferenceFrame',\n 'ellipsoid': {'name': 'WGS 84',\n 'semi_major_axis': 6378137.0,\n 'inverse_flattening': 298.257223563}},\n '$schema': 'https://proj.org/schemas/v0.4/projjson.schema.json',\n 'coordinate_system': {'axis': [{'name': 'Geodetic latitude',\n 'unit': 'degree',\n 'direction': 'north',\n 'abbreviation': 'Lat'},\n {'name': 'Geodetic longitude',\n 'unit': 'degree',\n 'direction': 'east',\n 'abbreviation': 'Lon'}],\n 'subtype': 'ellipsoidal'}},\n 'proj:transform': [1.0, 0.0, -180.5, 0.0, -1.0, 89.5, 0.0, 0.0, 1.0]},\n 'post-fire-uncertainty': {'href': 's3://ghgc-data-store/gosat-based-ch4budget-yeargrid-v1/TopDownEmissions_GOSAT_post_unc_fire_GEOS_CHEM_2019.tif',\n 'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'TBD',\n 'proj:bbox': [-180.5, -90.5, 179.5, 89.5],\n 'proj:epsg': 4326.0,\n 'proj:shape': [180.0, 360.0],\n 'description': 'TBD',\n 'raster:bands': [{'scale': 1.0,\n 'offset': 0.0,\n 'sampling': 'area',\n 'data_type': 'float32',\n 'histogram': {'max': 0.04287702962756157,\n 'min': 0.0,\n 'count': 11.0,\n 'buckets': [64794.0, 3.0, 1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0]},\n 'statistics': {'mean': 3.030148036486935e-06,\n 'stddev': 0.00021067954367026687,\n 'maximum': 0.04287702962756157,\n 'minimum': 0.0,\n 'valid_percent': 0.00154320987654321}}],\n 'proj:geometry': {'type': 'Polygon',\n 'coordinates': [[[-180.5, -90.5],\n [179.5, -90.5],\n [179.5, 89.5],\n [-180.5, 89.5],\n [-180.5, -90.5]]]},\n 'proj:projjson': {'id': {'code': 4326.0, 'authority': 'EPSG'},\n 'name': 'WGS 84',\n 'type': 'GeographicCRS',\n 'datum': {'name': 'World Geodetic System 1984',\n 'type': 'GeodeticReferenceFrame',\n 'ellipsoid': {'name': 'WGS 84',\n 'semi_major_axis': 6378137.0,\n 'inverse_flattening': 298.257223563}},\n '$schema': 'https://proj.org/schemas/v0.4/projjson.schema.json',\n 'coordinate_system': {'axis': [{'name': 'Geodetic latitude',\n 'unit': 'degree',\n 'direction': 'north',\n 'abbreviation': 'Lat'},\n {'name': 'Geodetic longitude',\n 'unit': 'degree',\n 'direction': 'east',\n 'abbreviation': 'Lon'}],\n 'subtype': 'ellipsoidal'}},\n 'proj:transform': [1.0, 0.0, -180.5, 0.0, -1.0, 89.5, 0.0, 0.0, 1.0]},\n 'post-rice-uncertainty': {'href': 's3://ghgc-data-store/gosat-based-ch4budget-yeargrid-v1/TopDownEmissions_GOSAT_post_unc_rice_GEOS_CHEM_2019.tif',\n 'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'TBD',\n 'proj:bbox': [-180.5, -90.5, 179.5, 89.5],\n 'proj:epsg': 4326.0,\n 'proj:shape': [180.0, 360.0],\n 'description': 'TBD',\n 'raster:bands': [{'scale': 1.0,\n 'offset': 0.0,\n 'sampling': 'area',\n 'data_type': 'float32',\n 'histogram': {'max': 0.085321806371212,\n 'min': 0.0,\n 'count': 11.0,\n 'buckets': [64609.0, 88.0, 42.0, 26.0, 15.0, 9.0, 2.0, 4.0, 3.0, 2.0]},\n 'statistics': {'mean': 8.745533705223352e-05,\n 'stddev': 0.0015292511088773608,\n 'maximum': 0.085321806371212,\n 'minimum': 0.0,\n 'valid_percent': 0.00154320987654321}}],\n 'proj:geometry': {'type': 'Polygon',\n 'coordinates': [[[-180.5, -90.5],\n [179.5, -90.5],\n [179.5, 89.5],\n [-180.5, 89.5],\n [-180.5, -90.5]]]},\n 'proj:projjson': {'id': {'code': 4326.0, 'authority': 'EPSG'},\n 'name': 'WGS 84',\n 'type': 'GeographicCRS',\n 'datum': {'name': 'World Geodetic System 1984',\n 'type': 'GeodeticReferenceFrame',\n 'ellipsoid': {'name': 'WGS 84',\n 'semi_major_axis': 6378137.0,\n 'inverse_flattening': 298.257223563}},\n '$schema': 'https://proj.org/schemas/v0.4/projjson.schema.json',\n 'coordinate_system': {'axis': [{'name': 'Geodetic latitude',\n 'unit': 'degree',\n 'direction': 'north',\n 'abbreviation': 'Lat'},\n {'name': 'Geodetic longitude',\n 'unit': 'degree',\n 'direction': 'east',\n 'abbreviation': 'Lon'}],\n 'subtype': 'ellipsoidal'}},\n 'proj:transform': [1.0, 0.0, -180.5, 0.0, -1.0, 89.5, 0.0, 0.0, 1.0]},\n 'prior-gas-uncertainty': {'href': 's3://ghgc-data-store/gosat-based-ch4budget-yeargrid-v1/TopDownEmissions_GOSAT_prior_unc_gas_GEOS_CHEM_2019.tif',\n 'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'TBD',\n 'proj:bbox': [-180.5, -90.5, 179.5, 89.5],\n 'proj:epsg': 4326.0,\n 'proj:shape': [180.0, 360.0],\n 'description': 'TBD',\n 'raster:bands': [{'scale': 1.0,\n 'offset': 0.0,\n 'sampling': 'area',\n 'data_type': 'float32',\n 'histogram': {'max': 0.035356033593416214,\n 'min': 0.0,\n 'count': 11.0,\n 'buckets': [64766.0, 17.0, 5.0, 3.0, 3.0, 0.0, 1.0, 1.0, 0.0, 4.0]},\n 'statistics': {'mean': 1.1367864317435306e-05,\n 'stddev': 0.0003570150875020772,\n 'maximum': 0.035356033593416214,\n 'minimum': 0.0,\n 'valid_percent': 0.00154320987654321}}],\n 'proj:geometry': {'type': 'Polygon',\n 'coordinates': [[[-180.5, -90.5],\n [179.5, -90.5],\n [179.5, 89.5],\n [-180.5, 89.5],\n [-180.5, -90.5]]]},\n 'proj:projjson': {'id': {'code': 4326.0, 'authority': 'EPSG'},\n 'name': 'WGS 84',\n 'type': 'GeographicCRS',\n 'datum': {'name': 'World Geodetic System 1984',\n 'type': 'GeodeticReferenceFrame',\n 'ellipsoid': {'name': 'WGS 84',\n 'semi_major_axis': 6378137.0,\n 'inverse_flattening': 298.257223563}},\n '$schema': 'https://proj.org/schemas/v0.4/projjson.schema.json',\n 'coordinate_system': {'axis': [{'name': 'Geodetic latitude',\n 'unit': 'degree',\n 'direction': 'north',\n 'abbreviation': 'Lat'},\n {'name': 'Geodetic longitude',\n 'unit': 'degree',\n 'direction': 'east',\n 'abbreviation': 'Lon'}],\n 'subtype': 'ellipsoidal'}},\n 'proj:transform': [1.0, 0.0, -180.5, 0.0, -1.0, 89.5, 0.0, 0.0, 1.0]},\n 'prior-geo-uncertainty': {'href': 's3://ghgc-data-store/gosat-based-ch4budget-yeargrid-v1/TopDownEmissions_GOSAT_prior_unc_geo_GEOS_CHEM_2019.tif',\n 'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'TBD',\n 'proj:bbox': [-180.5, -90.5, 179.5, 89.5],\n 'proj:epsg': 4326.0,\n 'proj:shape': [180.0, 360.0],\n 'description': 'TBD',\n 'raster:bands': [{'scale': 1.0,\n 'offset': 0.0,\n 'sampling': 'area',\n 'data_type': 'float32',\n 'histogram': {'max': 1.6511273384094238,\n 'min': 0.0,\n 'count': 11.0,\n 'buckets': [64799.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0]},\n 'statistics': {'mean': 4.881064160144888e-05,\n 'stddev': 0.006545887794345617,\n 'maximum': 1.6511273384094238,\n 'minimum': 0.0,\n 'valid_percent': 0.00154320987654321}}],\n 'proj:geometry': {'type': 'Polygon',\n 'coordinates': [[[-180.5, -90.5],\n [179.5, -90.5],\n [179.5, 89.5],\n [-180.5, 89.5],\n [-180.5, -90.5]]]},\n 'proj:projjson': {'id': {'code': 4326.0, 'authority': 'EPSG'},\n 'name': 'WGS 84',\n 'type': 'GeographicCRS',\n 'datum': {'name': 'World Geodetic System 1984',\n 'type': 'GeodeticReferenceFrame',\n 'ellipsoid': {'name': 'WGS 84',\n 'semi_major_axis': 6378137.0,\n 'inverse_flattening': 298.257223563}},\n '$schema': 'https://proj.org/schemas/v0.4/projjson.schema.json',\n 'coordinate_system': {'axis': [{'name': 'Geodetic latitude',\n 'unit': 'degree',\n 'direction': 'north',\n 'abbreviation': 'Lat'},\n {'name': 'Geodetic longitude',\n 'unit': 'degree',\n 'direction': 'east',\n 'abbreviation': 'Lon'}],\n 'subtype': 'ellipsoidal'}},\n 'proj:transform': [1.0, 0.0, -180.5, 0.0, -1.0, 89.5, 0.0, 0.0, 1.0]},\n 'prior-oil-uncertainty': {'href': 's3://ghgc-data-store/gosat-based-ch4budget-yeargrid-v1/TopDownEmissions_GOSAT_prior_unc_oil_GEOS_CHEM_2019.tif',\n 'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'TBD',\n 'proj:bbox': [-180.5, -90.5, 179.5, 89.5],\n 'proj:epsg': 4326.0,\n 'proj:shape': [180.0, 360.0],\n 'description': 'TBD',\n 'raster:bands': [{'scale': 1.0,\n 'offset': 0.0,\n 'sampling': 'area',\n 'data_type': 'float32',\n 'histogram': {'max': 0.8458506464958191,\n 'min': 0.0,\n 'count': 11.0,\n 'buckets': [64787.0, 5.0, 5.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 2.0]},\n 'statistics': {'mean': 9.116153523791581e-05,\n 'stddev': 0.00547912297770381,\n 'maximum': 0.8458506464958191,\n 'minimum': 0.0,\n 'valid_percent': 0.00154320987654321}}],\n 'proj:geometry': {'type': 'Polygon',\n 'coordinates': [[[-180.5, -90.5],\n [179.5, -90.5],\n [179.5, 89.5],\n [-180.5, 89.5],\n [-180.5, -90.5]]]},\n 'proj:projjson': {'id': {'code': 4326.0, 'authority': 'EPSG'},\n 'name': 'WGS 84',\n 'type': 'GeographicCRS',\n 'datum': {'name': 'World Geodetic System 1984',\n 'type': 'GeodeticReferenceFrame',\n 'ellipsoid': {'name': 'WGS 84',\n 'semi_major_axis': 6378137.0,\n 'inverse_flattening': 298.257223563}},\n '$schema': 'https://proj.org/schemas/v0.4/projjson.schema.json',\n 'coordinate_system': {'axis': [{'name': 'Geodetic latitude',\n 'unit': 'degree',\n 'direction': 'north',\n 'abbreviation': 'Lat'},\n {'name': 'Geodetic longitude',\n 'unit': 'degree',\n 'direction': 'east',\n 'abbreviation': 'Lon'}],\n 'subtype': 'ellipsoidal'}},\n 'proj:transform': [1.0, 0.0, -180.5, 0.0, -1.0, 89.5, 0.0, 0.0, 1.0]},\n 'post-waste-uncertainty': {'href': 's3://ghgc-data-store/gosat-based-ch4budget-yeargrid-v1/TopDownEmissions_GOSAT_post_unc_waste_GEOS_CHEM_2019.tif',\n 'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'TBD',\n 'proj:bbox': [-180.5, -90.5, 179.5, 89.5],\n 'proj:epsg': 4326.0,\n 'proj:shape': [180.0, 360.0],\n 'description': 'TBD',\n 'raster:bands': [{'scale': 1.0,\n 'offset': 0.0,\n 'sampling': 'area',\n 'data_type': 'float32',\n 'histogram': {'max': 0.10136520117521286,\n 'min': 0.0,\n 'count': 11.0,\n 'buckets': [64759.0, 19.0, 6.0, 8.0, 2.0, 1.0, 2.0, 0.0, 1.0, 2.0]},\n 'statistics': {'mean': 3.903839024133049e-05,\n 'stddev': 0.0009961748728528619,\n 'maximum': 0.10136520117521286,\n 'minimum': 0.0,\n 'valid_percent': 0.00154320987654321}}],\n 'proj:geometry': {'type': 'Polygon',\n 'coordinates': [[[-180.5, -90.5],\n [179.5, -90.5],\n [179.5, 89.5],\n [-180.5, 89.5],\n [-180.5, -90.5]]]},\n 'proj:projjson': {'id': {'code': 4326.0, 'authority': 'EPSG'},\n 'name': 'WGS 84',\n 'type': 'GeographicCRS',\n 'datum': {'name': 'World Geodetic System 1984',\n 'type': 'GeodeticReferenceFrame',\n 'ellipsoid': {'name': 'WGS 84',\n 'semi_major_axis': 6378137.0,\n 'inverse_flattening': 298.257223563}},\n '$schema': 'https://proj.org/schemas/v0.4/projjson.schema.json',\n 'coordinate_system': {'axis': [{'name': 'Geodetic latitude',\n 'unit': 'degree',\n 'direction': 'north',\n 'abbreviation': 'Lat'},\n {'name': 'Geodetic longitude',\n 'unit': 'degree',\n 'direction': 'east',\n 'abbreviation': 'Lon'}],\n 'subtype': 'ellipsoidal'}},\n 'proj:transform': [1.0, 0.0, -180.5, 0.0, -1.0, 89.5, 0.0, 0.0, 1.0]},\n 'prior-coal-uncertainty': {'href': 's3://ghgc-data-store/gosat-based-ch4budget-yeargrid-v1/TopDownEmissions_GOSAT_prior_unc_coal_GEOS_CHEM_2019.tif',\n 'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'TBD',\n 'proj:bbox': [-180.5, -90.5, 179.5, 89.5],\n 'proj:epsg': 4326.0,\n 'proj:shape': [180.0, 360.0],\n 'description': 'TBD',\n 'raster:bands': [{'scale': 1.0,\n 'offset': 0.0,\n 'sampling': 'area',\n 'data_type': 'float32',\n 'histogram': {'max': 0.9433419704437256,\n 'min': 0.0,\n 'count': 11.0,\n 'buckets': [64785.0, 5.0, 4.0, 2.0, 1.0, 2.0, 0.0, 0.0, 0.0, 1.0]},\n 'statistics': {'mean': 9.546576620778069e-05,\n 'stddev': 0.00589930871501565,\n 'maximum': 0.9433419704437256,\n 'minimum': 0.0,\n 'valid_percent': 0.00154320987654321}}],\n 'proj:geometry': {'type': 'Polygon',\n 'coordinates': [[[-180.5, -90.5],\n [179.5, -90.5],\n [179.5, 89.5],\n [-180.5, 89.5],\n [-180.5, -90.5]]]},\n 'proj:projjson': {'id': {'code': 4326.0, 'authority': 'EPSG'},\n 'name': 'WGS 84',\n 'type': 'GeographicCRS',\n 'datum': {'name': 'World Geodetic System 1984',\n 'type': 'GeodeticReferenceFrame',\n 'ellipsoid': {'name': 'WGS 84',\n 'semi_major_axis': 6378137.0,\n 'inverse_flattening': 298.257223563}},\n '$schema': 'https://proj.org/schemas/v0.4/projjson.schema.json',\n 'coordinate_system': {'axis': [{'name': 'Geodetic latitude',\n 'unit': 'degree',\n 'direction': 'north',\n 'abbreviation': 'Lat'},\n {'name': 'Geodetic longitude',\n 'unit': 'degree',\n 'direction': 'east',\n 'abbreviation': 'Lon'}],\n 'subtype': 'ellipsoidal'}},\n 'proj:transform': [1.0, 0.0, -180.5, 0.0, -1.0, 89.5, 0.0, 0.0, 1.0]},\n 'prior-rice-uncertainty': {'href': 's3://ghgc-data-store/gosat-based-ch4budget-yeargrid-v1/TopDownEmissions_GOSAT_prior_unc_rice_GEOS_CHEM_2019.tif',\n 'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'TBD',\n 'proj:bbox': [-180.5, -90.5, 179.5, 89.5],\n 'proj:epsg': 4326.0,\n 'proj:shape': [180.0, 360.0],\n 'description': 'TBD',\n 'raster:bands': [{'scale': 1.0,\n 'offset': 0.0,\n 'sampling': 'area',\n 'data_type': 'float32',\n 'histogram': {'max': 0.2505281865596771,\n 'min': 0.0,\n 'count': 11.0,\n 'buckets': [64710.0, 52.0, 26.0, 5.0, 3.0, 3.0, 0.0, 0.0, 0.0, 1.0]},\n 'statistics': {'mean': 0.00012143573985667899,\n 'stddev': 0.002463066717609763,\n 'maximum': 0.2505281865596771,\n 'minimum': 0.0,\n 'valid_percent': 0.00154320987654321}}],\n 'proj:geometry': {'type': 'Polygon',\n 'coordinates': [[[-180.5, -90.5],\n [179.5, -90.5],\n [179.5, 89.5],\n [-180.5, 89.5],\n [-180.5, -90.5]]]},\n 'proj:projjson': {'id': {'code': 4326.0, 'authority': 'EPSG'},\n 'name': 'WGS 84',\n 'type': 'GeographicCRS',\n 'datum': {'name': 'World Geodetic System 1984',\n 'type': 'GeodeticReferenceFrame',\n 'ellipsoid': {'name': 'WGS 84',\n 'semi_major_axis': 6378137.0,\n 'inverse_flattening': 298.257223563}},\n '$schema': 'https://proj.org/schemas/v0.4/projjson.schema.json',\n 'coordinate_system': {'axis': [{'name': 'Geodetic latitude',\n 'unit': 'degree',\n 'direction': 'north',\n 'abbreviation': 'Lat'},\n {'name': 'Geodetic longitude',\n 'unit': 'degree',\n 'direction': 'east',\n 'abbreviation': 'Lon'}],\n 'subtype': 'ellipsoidal'}},\n 'proj:transform': [1.0, 0.0, -180.5, 0.0, -1.0, 89.5, 0.0, 0.0, 1.0]},\n 'prior-waste-uncertainty': {'href': 's3://ghgc-data-store/gosat-based-ch4budget-yeargrid-v1/TopDownEmissions_GOSAT_prior_unc_waste_GEOS_CHEM_2019.tif',\n 'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'TBD',\n 'proj:bbox': [-180.5, -90.5, 179.5, 89.5],\n 'proj:epsg': 4326.0,\n 'proj:shape': [180.0, 360.0],\n 'description': 'TBD',\n 'raster:bands': [{'scale': 1.0,\n 'offset': 0.0,\n 'sampling': 'area',\n 'data_type': 'float32',\n 'histogram': {'max': 1.3018296957015991,\n 'min': 0.0,\n 'count': 11.0,\n 'buckets': [64793.0, 4.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 1.0]},\n 'statistics': {'mean': 0.0001001738928607665,\n 'stddev': 0.006979630794376135,\n 'maximum': 1.3018296957015991,\n 'minimum': 0.0,\n 'valid_percent': 0.00154320987654321}}],\n 'proj:geometry': {'type': 'Polygon',\n 'coordinates': [[[-180.5, -90.5],\n [179.5, -90.5],\n [179.5, 89.5],\n [-180.5, 89.5],\n [-180.5, -90.5]]]},\n 'proj:projjson': {'id': {'code': 4326.0, 'authority': 'EPSG'},\n 'name': 'WGS 84',\n 'type': 'GeographicCRS',\n 'datum': {'name': 'World Geodetic System 1984',\n 'type': 'GeodeticReferenceFrame',\n 'ellipsoid': {'name': 'WGS 84',\n 'semi_major_axis': 6378137.0,\n 'inverse_flattening': 298.257223563}},\n '$schema': 'https://proj.org/schemas/v0.4/projjson.schema.json',\n 'coordinate_system': {'axis': [{'name': 'Geodetic latitude',\n 'unit': 'degree',\n 'direction': 'north',\n 'abbreviation': 'Lat'},\n {'name': 'Geodetic longitude',\n 'unit': 'degree',\n 'direction': 'east',\n 'abbreviation': 'Lon'}],\n 'subtype': 'ellipsoidal'}},\n 'proj:transform': [1.0, 0.0, -180.5, 0.0, -1.0, 89.5, 0.0, 0.0, 1.0]},\n 'post-wetland-uncertainty': {'href': 's3://ghgc-data-store/gosat-based-ch4budget-yeargrid-v1/TopDownEmissions_GOSAT_post_unc_wetland_GEOS_CHEM_2019.tif',\n 'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'TBD',\n 'proj:bbox': [-180.5, -90.5, 179.5, 89.5],\n 'proj:epsg': 4326.0,\n 'proj:shape': [180.0, 360.0],\n 'description': 'TBD',\n 'raster:bands': [{'scale': 1.0,\n 'offset': 0.0,\n 'sampling': 'area',\n 'data_type': 'float32',\n 'histogram': {'max': 0.36633968353271484,\n 'min': 0.0,\n 'count': 11.0,\n 'buckets': [64677.0, 68.0, 19.0, 14.0, 5.0, 8.0, 3.0, 4.0, 0.0, 2.0]},\n 'statistics': {'mean': 0.00034577888436615467,\n 'stddev': 0.005308355204761028,\n 'maximum': 0.36633968353271484,\n 'minimum': 0.0,\n 'valid_percent': 0.00154320987654321}}],\n 'proj:geometry': {'type': 'Polygon',\n 'coordinates': [[[-180.5, -90.5],\n [179.5, -90.5],\n [179.5, 89.5],\n [-180.5, 89.5],\n [-180.5, -90.5]]]},\n 'proj:projjson': {'id': {'code': 4326.0, 'authority': 'EPSG'},\n 'name': 'WGS 84',\n 'type': 'GeographicCRS',\n 'datum': {'name': 'World Geodetic System 1984',\n 'type': 'GeodeticReferenceFrame',\n 'ellipsoid': {'name': 'WGS 84',\n 'semi_major_axis': 6378137.0,\n 'inverse_flattening': 298.257223563}},\n '$schema': 'https://proj.org/schemas/v0.4/projjson.schema.json',\n 'coordinate_system': {'axis': [{'name': 'Geodetic latitude',\n 'unit': 'degree',\n 'direction': 'north',\n 'abbreviation': 'Lat'},\n {'name': 'Geodetic longitude',\n 'unit': 'degree',\n 'direction': 'east',\n 'abbreviation': 'Lon'}],\n 'subtype': 'ellipsoidal'}},\n 'proj:transform': [1.0, 0.0, -180.5, 0.0, -1.0, 89.5, 0.0, 0.0, 1.0]},\n 'prior-wetland-uncertainty': {'href': 's3://ghgc-data-store/gosat-based-ch4budget-yeargrid-v1/TopDownEmissions_GOSAT_prior_unc_wetland_GEOS_CHEM_2019.tif',\n 'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'TBD',\n 'proj:bbox': [-180.5, -90.5, 179.5, 89.5],\n 'proj:epsg': 4326.0,\n 'proj:shape': [180.0, 360.0],\n 'description': 'TBD',\n 'raster:bands': [{'scale': 1.0,\n 'offset': 0.0,\n 'sampling': 'area',\n 'data_type': 'float32',\n 'histogram': {'max': 1.5251290798187256,\n 'min': 0.0,\n 'count': 11.0,\n 'buckets': [64704.0, 49.0, 21.0, 11.0, 2.0, 3.0, 3.0, 3.0, 1.0, 3.0]},\n 'statistics': {'mean': 0.0009943766053766012,\n 'stddev': 0.020392030477523804,\n 'maximum': 1.5251290798187256,\n 'minimum': 0.0,\n 'valid_percent': 0.00154320987654321}}],\n 'proj:geometry': {'type': 'Polygon',\n 'coordinates': [[[-180.5, -90.5],\n [179.5, -90.5],\n [179.5, 89.5],\n [-180.5, 89.5],\n [-180.5, -90.5]]]},\n 'proj:projjson': {'id': {'code': 4326.0, 'authority': 'EPSG'},\n 'name': 'WGS 84',\n 'type': 'GeographicCRS',\n 'datum': {'name': 'World Geodetic System 1984',\n 'type': 'GeodeticReferenceFrame',\n 'ellipsoid': {'name': 'WGS 84',\n 'semi_major_axis': 6378137.0,\n 'inverse_flattening': 298.257223563}},\n '$schema': 'https://proj.org/schemas/v0.4/projjson.schema.json',\n 'coordinate_system': {'axis': [{'name': 'Geodetic latitude',\n 'unit': 'degree',\n 'direction': 'north',\n 'abbreviation': 'Lat'},\n {'name': 'Geodetic longitude',\n 'unit': 'degree',\n 'direction': 'east',\n 'abbreviation': 'Lon'}],\n 'subtype': 'ellipsoidal'}},\n 'proj:transform': [1.0, 0.0, -180.5, 0.0, -1.0, 89.5, 0.0, 0.0, 1.0]},\n 'post-livestock-uncertainty': {'href': 's3://ghgc-data-store/gosat-based-ch4budget-yeargrid-v1/TopDownEmissions_GOSAT_post_unc_livestock_GEOS_CHEM_2019.tif',\n 'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'TBD',\n 'proj:bbox': [-180.5, -90.5, 179.5, 89.5],\n 'proj:epsg': 4326.0,\n 'proj:shape': [180.0, 360.0],\n 'description': 'TBD',\n 'raster:bands': [{'scale': 1.0,\n 'offset': 0.0,\n 'sampling': 'area',\n 'data_type': 'float32',\n 'histogram': {'max': 0.016047537326812744,\n 'min': 0.0,\n 'count': 11.0,\n 'buckets': [64206.0,\n 360.0,\n 119.0,\n 35.0,\n 30.0,\n 20.0,\n 14.0,\n 9.0,\n 6.0,\n 1.0]},\n 'statistics': {'mean': 5.696367225027643e-05,\n 'stddev': 0.00044628031901083887,\n 'maximum': 0.016047537326812744,\n 'minimum': 0.0,\n 'valid_percent': 0.00154320987654321}}],\n 'proj:geometry': {'type': 'Polygon',\n 'coordinates': [[[-180.5, -90.5],\n [179.5, -90.5],\n [179.5, 89.5],\n [-180.5, 89.5],\n [-180.5, -90.5]]]},\n 'proj:projjson': {'id': {'code': 4326.0, 'authority': 'EPSG'},\n 'name': 'WGS 84',\n 'type': 'GeographicCRS',\n 'datum': {'name': 'World Geodetic System 1984',\n 'type': 'GeodeticReferenceFrame',\n 'ellipsoid': {'name': 'WGS 84',\n 'semi_major_axis': 6378137.0,\n 'inverse_flattening': 298.257223563}},\n '$schema': 'https://proj.org/schemas/v0.4/projjson.schema.json',\n 'coordinate_system': {'axis': [{'name': 'Geodetic latitude',\n 'unit': 'degree',\n 'direction': 'north',\n 'abbreviation': 'Lat'},\n {'name': 'Geodetic longitude',\n 'unit': 'degree',\n 'direction': 'east',\n 'abbreviation': 'Lon'}],\n 'subtype': 'ellipsoidal'}},\n 'proj:transform': [1.0, 0.0, -180.5, 0.0, -1.0, 89.5, 0.0, 0.0, 1.0]},\n 'prior-livestock-uncertainty': {'href': 's3://ghgc-data-store/gosat-based-ch4budget-yeargrid-v1/TopDownEmissions_GOSAT_prior_unc_livestock_GEOS_CHEM_2019.tif',\n 'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'TBD',\n 'proj:bbox': [-180.5, -90.5, 179.5, 89.5],\n 'proj:epsg': 4326.0,\n 'proj:shape': [180.0, 360.0],\n 'description': 'TBD',\n 'raster:bands': [{'scale': 1.0,\n 'offset': 0.0,\n 'sampling': 'area',\n 'data_type': 'float32',\n 'histogram': {'max': 0.021834801882505417,\n 'min': 0.0,\n 'count': 11.0,\n 'buckets': [64219.0,\n 326.0,\n 127.0,\n 34.0,\n 19.0,\n 25.0,\n 25.0,\n 17.0,\n 5.0,\n 3.0]},\n 'statistics': {'mean': 7.657577225472778e-05,\n 'stddev': 0.0006582040223293006,\n 'maximum': 0.021834801882505417,\n 'minimum': 0.0,\n 'valid_percent': 0.00154320987654321}}],\n 'proj:geometry': {'type': 'Polygon',\n 'coordinates': [[[-180.5, -90.5],\n [179.5, -90.5],\n [179.5, 89.5],\n [-180.5, 89.5],\n [-180.5, -90.5]]]},\n 'proj:projjson': {'id': {'code': 4326.0, 'authority': 'EPSG'},\n 'name': 'WGS 84',\n 'type': 'GeographicCRS',\n 'datum': {'name': 'World Geodetic System 1984',\n 'type': 'GeodeticReferenceFrame',\n 'ellipsoid': {'name': 'WGS 84',\n 'semi_major_axis': 6378137.0,\n 'inverse_flattening': 298.257223563}},\n '$schema': 'https://proj.org/schemas/v0.4/projjson.schema.json',\n 'coordinate_system': {'axis': [{'name': 'Geodetic latitude',\n 'unit': 'degree',\n 'direction': 'north',\n 'abbreviation': 'Lat'},\n {'name': 'Geodetic longitude',\n 'unit': 'degree',\n 'direction': 'east',\n 'abbreviation': 'Lon'}],\n 'subtype': 'ellipsoidal'}},\n 'proj:transform': [1.0, 0.0, -180.5, 0.0, -1.0, 89.5, 0.0, 0.0, 1.0]}},\n 'geometry': {'type': 'Polygon',\n 'coordinates': [[[-180.5, -90.5],\n [179.5, -90.5],\n [179.5, 89.5],\n [-180.5, 89.5],\n [-180.5, -90.5]]]},\n 'collection': 'gosat-based-ch4budget-yeargrid-v1',\n 'properties': {'end_datetime': '2019-12-31T00:00:00+00:00',\n 'start_datetime': '2019-01-01T00:00:00+00:00'},\n 'stac_version': '1.0.0',\n 'stac_extensions': []}\n\n\nBelow, we enter minimum and maximum values to provide our upper and lower bounds in rescale_values."
+ "text": "Querying the STAC API\n\nimport requests\nfrom folium import Map, TileLayer\nfrom pystac_client import Client\n\n\n# Provide STAC and RASTER API endpoints\nSTAC_API_URL = \"http://ghg.center/api/stac\"\nRASTER_API_URL = \"https://ghg.center/api/raster\"\n\n# Please use the collection name similar to the one used in STAC collection.\n\n# Name of the collection for gosat budget methane. \ncollection_name = \"gosat-based-ch4budget-yeargrid-v1\"\n\n\n# Fetching the collection from STAC collections using appropriate endpoint.\ncollection = requests.get(f\"{STAC_API_URL}/collections/{collection_name}\").json()\ncollection\n\n{'id': 'gosat-based-ch4budget-yeargrid-v1',\n 'type': 'Collection',\n 'links': [{'rel': 'items',\n 'type': 'application/geo+json',\n 'href': 'https://ghg.center/api/stac/collections/gosat-based-ch4budget-yeargrid-v1/items'},\n {'rel': 'parent',\n 'type': 'application/json',\n 'href': 'https://ghg.center/api/stac/'},\n {'rel': 'root',\n 'type': 'application/json',\n 'href': 'https://ghg.center/api/stac/'},\n {'rel': 'self',\n 'type': 'application/json',\n 'href': 'https://ghg.center/api/stac/collections/gosat-based-ch4budget-yeargrid-v1'}],\n 'title': 'GOSAT-based Top-down Methane Budgets.',\n 'assets': None,\n 'extent': {'spatial': {'bbox': [[-180.5, -90.5, 179.5, 89.5]]},\n 'temporal': {'interval': [['2019-01-01T00:00:00+00:00',\n '2019-12-31T00:00:00+00:00']]}},\n 'license': 'CC-BY-4.0',\n 'keywords': None,\n 'providers': None,\n 'summaries': {'datetime': ['2019-01-01T00:00:00Z']},\n 'description': 'Annual methane emissions gridded globally at 1° resolution for 2019, version.',\n 'item_assets': {'post-gas': {'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'TBD',\n 'description': 'TBD'},\n 'post-geo': {'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'TBD',\n 'description': 'TBD'},\n 'post-oil': {'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'TBD',\n 'description': 'TBD'},\n 'post-coal': {'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'TBD',\n 'description': 'TBD'},\n 'post-fire': {'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'TBD',\n 'description': 'TBD'},\n 'post-rice': {'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'TBD',\n 'description': 'TBD'},\n 'prior-gas': {'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'TBD',\n 'description': 'TBD'},\n 'prior-geo': {'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'TBD',\n 'description': 'TBD'},\n 'prior-oil': {'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'TBD',\n 'description': 'TBD'},\n 'post-total': {'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'TBD',\n 'description': 'TBD'},\n 'post-waste': {'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'TBD',\n 'description': 'TBD'},\n 'prior-coal': {'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'TBD',\n 'description': 'TBD'},\n 'prior-fire': {'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'TBD',\n 'description': 'TBD'},\n 'prior-rice': {'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'TBD',\n 'description': 'TBD'},\n 'prior-total': {'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'TBD',\n 'description': 'TBD'},\n 'prior-waste': {'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'TBD',\n 'description': 'TBD'},\n 'post-wetland': {'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'TBD',\n 'description': 'TBD'},\n 'prior-wetland': {'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'TBD',\n 'description': 'TBD'},\n 'post-livestock': {'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'TBD',\n 'description': 'TBD'},\n 'prior-livestock': {'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'TBD',\n 'description': 'TBD'},\n 'post-gas-uncertainty': {'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'TBD',\n 'description': 'TBD'},\n 'post-geo-uncertainty': {'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'TBD',\n 'description': 'TBD'},\n 'post-oil-uncertainty': {'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'TBD',\n 'description': 'TBD'},\n 'post-coal-uncertainty': {'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'TBD',\n 'description': 'TBD'},\n 'post-fire-uncertainty': {'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'TBD',\n 'description': 'TBD'},\n 'post-rice-uncertainty': {'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'TBD',\n 'description': 'TBD'},\n 'prior-gas-uncertainty': {'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'TBD',\n 'description': 'TBD'},\n 'prior-geo-uncertainty': {'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'TBD',\n 'description': 'TBD'},\n 'prior-oil-uncertainty': {'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'TBD',\n 'description': 'TBD'},\n 'post-waste-uncertainty': {'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'TBD',\n 'description': 'TBD'},\n 'prior-coal-uncertainty': {'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'TBD',\n 'description': 'TBD'},\n 'prior-rice-uncertainty': {'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'TBD',\n 'description': 'TBD'},\n 'prior-waste-uncertainty': {'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'TBD',\n 'description': 'TBD'},\n 'post-wetland-uncertainty': {'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'TBD',\n 'description': 'TBD'},\n 'prior-wetland-uncertainty': {'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'TBD',\n 'description': 'TBD'},\n 'post-livestock-uncertainty': {'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'TBD',\n 'description': 'TBD'},\n 'prior-livestock-uncertainty': {'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'TBD',\n 'description': 'TBD'}},\n 'stac_version': '1.0.0',\n 'stac_extensions': None,\n 'dashboard:is_periodic': False,\n 'dashboard:time_density': 'year'}\n\n\nExamining the contents of our collection under the temporal variable, we see that the data is available from January 2012 to December 2018. By looking at the dashboard:time density, we observe that the data is available for only one year, i.e. 2019.\n\ndef get_item_count(collection_id):\n count = 0\n items_url = f\"{STAC_API_URL}/collections/{collection_id}/items\"\n\n while True:\n response = requests.get(items_url)\n\n if not response.ok:\n print(\"error getting items\")\n exit()\n\n stac = response.json()\n count += int(stac[\"context\"].get(\"returned\", 0))\n next = [link for link in stac[\"links\"] if link[\"rel\"] == \"next\"]\n\n if not next:\n break\n items_url = next[0][\"href\"]\n\n return count\n\n\n# Check total number of items available\nnumber_of_items = get_item_count(collection_name)\nitems = requests.get(f\"{STAC_API_URL}/collections/{collection_name}/items?limit={number_of_items}\").json()[\"features\"]\nprint(f\"Found {len(items)} items\")\n\nFound 1 items\n\n\n\n# Examining the first item in the collection\nitems[0]\n\n{'id': 'gosat-based-ch4budget-yeargrid-v1-2019',\n 'bbox': [-180.5, -90.5, 179.5, 89.5],\n 'type': 'Feature',\n 'links': [{'rel': 'collection',\n 'type': 'application/json',\n 'href': 'https://ghg.center/api/stac/collections/gosat-based-ch4budget-yeargrid-v1'},\n {'rel': 'parent',\n 'type': 'application/json',\n 'href': 'https://ghg.center/api/stac/collections/gosat-based-ch4budget-yeargrid-v1'},\n {'rel': 'root',\n 'type': 'application/json',\n 'href': 'https://ghg.center/api/stac/'},\n {'rel': 'self',\n 'type': 'application/geo+json',\n 'href': 'https://ghg.center/api/stac/collections/gosat-based-ch4budget-yeargrid-v1/items/gosat-based-ch4budget-yeargrid-v1-2019'}],\n 'assets': {'post-gas': {'href': 's3://ghgc-data-store/gosat-based-ch4budget-yeargrid-v1/TopDownEmissions_GOSAT_post_gas_GEOS_CHEM_2019.tif',\n 'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'TBD',\n 'proj:bbox': [-180.5, -90.5, 179.5, 89.5],\n 'proj:epsg': 4326.0,\n 'proj:shape': [180.0, 360.0],\n 'description': 'TBD',\n 'raster:bands': [{'scale': 1.0,\n 'offset': 0.0,\n 'sampling': 'area',\n 'data_type': 'float32',\n 'histogram': {'max': 0.6140491962432861,\n 'min': -0.4103066623210907,\n 'count': 11.0,\n 'buckets': [1.0, 0.0, 2.0, 23.0, 64734.0, 30.0, 7.0, 2.0, 0.0, 1.0]},\n 'statistics': {'mean': 0.00043242290848866105,\n 'stddev': 0.006180576980113983,\n 'maximum': 0.6140491962432861,\n 'minimum': -0.4103066623210907,\n 'valid_percent': 0.00154320987654321}}],\n 'proj:geometry': {'type': 'Polygon',\n 'coordinates': [[[-180.5, -90.5],\n [179.5, -90.5],\n [179.5, 89.5],\n [-180.5, 89.5],\n [-180.5, -90.5]]]},\n 'proj:projjson': {'id': {'code': 4326.0, 'authority': 'EPSG'},\n 'name': 'WGS 84',\n 'type': 'GeographicCRS',\n 'datum': {'name': 'World Geodetic System 1984',\n 'type': 'GeodeticReferenceFrame',\n 'ellipsoid': {'name': 'WGS 84',\n 'semi_major_axis': 6378137.0,\n 'inverse_flattening': 298.257223563}},\n '$schema': 'https://proj.org/schemas/v0.4/projjson.schema.json',\n 'coordinate_system': {'axis': [{'name': 'Geodetic latitude',\n 'unit': 'degree',\n 'direction': 'north',\n 'abbreviation': 'Lat'},\n {'name': 'Geodetic longitude',\n 'unit': 'degree',\n 'direction': 'east',\n 'abbreviation': 'Lon'}],\n 'subtype': 'ellipsoidal'}},\n 'proj:transform': [1.0, 0.0, -180.5, 0.0, -1.0, 89.5, 0.0, 0.0, 1.0]},\n 'post-geo': {'href': 's3://ghgc-data-store/gosat-based-ch4budget-yeargrid-v1/TopDownEmissions_GOSAT_post_geo_GEOS_CHEM_2019.tif',\n 'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'TBD',\n 'proj:bbox': [-180.5, -90.5, 179.5, 89.5],\n 'proj:epsg': 4326.0,\n 'proj:shape': [180.0, 360.0],\n 'description': 'TBD',\n 'raster:bands': [{'scale': 1.0,\n 'offset': 0.0,\n 'sampling': 'area',\n 'data_type': 'float32',\n 'histogram': {'max': 1.0034276247024536,\n 'min': -1.0016025304794312,\n 'count': 11.0,\n 'buckets': [1.0, 0.0, 1.0, 5.0, 63425.0, 1354.0, 10.0, 2.0, 1.0, 1.0]},\n 'statistics': {'mean': 0.0003479516308289021,\n 'stddev': 0.0093332938849926,\n 'maximum': 1.0034276247024536,\n 'minimum': -1.0016025304794312,\n 'valid_percent': 0.00154320987654321}}],\n 'proj:geometry': {'type': 'Polygon',\n 'coordinates': [[[-180.5, -90.5],\n [179.5, -90.5],\n [179.5, 89.5],\n [-180.5, 89.5],\n [-180.5, -90.5]]]},\n 'proj:projjson': {'id': {'code': 4326.0, 'authority': 'EPSG'},\n 'name': 'WGS 84',\n 'type': 'GeographicCRS',\n 'datum': {'name': 'World Geodetic System 1984',\n 'type': 'GeodeticReferenceFrame',\n 'ellipsoid': {'name': 'WGS 84',\n 'semi_major_axis': 6378137.0,\n 'inverse_flattening': 298.257223563}},\n '$schema': 'https://proj.org/schemas/v0.4/projjson.schema.json',\n 'coordinate_system': {'axis': [{'name': 'Geodetic latitude',\n 'unit': 'degree',\n 'direction': 'north',\n 'abbreviation': 'Lat'},\n {'name': 'Geodetic longitude',\n 'unit': 'degree',\n 'direction': 'east',\n 'abbreviation': 'Lon'}],\n 'subtype': 'ellipsoidal'}},\n 'proj:transform': [1.0, 0.0, -180.5, 0.0, -1.0, 89.5, 0.0, 0.0, 1.0]},\n 'post-oil': {'href': 's3://ghgc-data-store/gosat-based-ch4budget-yeargrid-v1/TopDownEmissions_GOSAT_post_oil_GEOS_CHEM_2019.tif',\n 'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'TBD',\n 'proj:bbox': [-180.5, -90.5, 179.5, 89.5],\n 'proj:epsg': 4326.0,\n 'proj:shape': [180.0, 360.0],\n 'description': 'TBD',\n 'raster:bands': [{'scale': 1.0,\n 'offset': 0.0,\n 'sampling': 'area',\n 'data_type': 'float32',\n 'histogram': {'max': 3.457329273223877,\n 'min': -0.7987076640129089,\n 'count': 11.0,\n 'buckets': [2.0, 64681.0, 108.0, 4.0, 3.0, 1.0, 0.0, 0.0, 0.0, 1.0]},\n 'statistics': {'mean': 0.0004447368555702269,\n 'stddev': 0.01879083551466465,\n 'maximum': 3.457329273223877,\n 'minimum': -0.7987076640129089,\n 'valid_percent': 0.00154320987654321}}],\n 'proj:geometry': {'type': 'Polygon',\n 'coordinates': [[[-180.5, -90.5],\n [179.5, -90.5],\n [179.5, 89.5],\n [-180.5, 89.5],\n [-180.5, -90.5]]]},\n 'proj:projjson': {'id': {'code': 4326.0, 'authority': 'EPSG'},\n 'name': 'WGS 84',\n 'type': 'GeographicCRS',\n 'datum': {'name': 'World Geodetic System 1984',\n 'type': 'GeodeticReferenceFrame',\n 'ellipsoid': {'name': 'WGS 84',\n 'semi_major_axis': 6378137.0,\n 'inverse_flattening': 298.257223563}},\n '$schema': 'https://proj.org/schemas/v0.4/projjson.schema.json',\n 'coordinate_system': {'axis': [{'name': 'Geodetic latitude',\n 'unit': 'degree',\n 'direction': 'north',\n 'abbreviation': 'Lat'},\n {'name': 'Geodetic longitude',\n 'unit': 'degree',\n 'direction': 'east',\n 'abbreviation': 'Lon'}],\n 'subtype': 'ellipsoidal'}},\n 'proj:transform': [1.0, 0.0, -180.5, 0.0, -1.0, 89.5, 0.0, 0.0, 1.0]},\n 'post-coal': {'href': 's3://ghgc-data-store/gosat-based-ch4budget-yeargrid-v1/TopDownEmissions_GOSAT_post_coal_GEOS_CHEM_2019.tif',\n 'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'TBD',\n 'proj:bbox': [-180.5, -90.5, 179.5, 89.5],\n 'proj:epsg': 4326.0,\n 'proj:shape': [180.0, 360.0],\n 'description': 'TBD',\n 'raster:bands': [{'scale': 1.0,\n 'offset': 0.0,\n 'sampling': 'area',\n 'data_type': 'float32',\n 'histogram': {'max': 1.1035711765289307,\n 'min': -0.9143016934394836,\n 'count': 11.0,\n 'buckets': [1.0, 1.0, 1.0, 1.0, 64710.0, 62.0, 19.0, 3.0, 1.0, 1.0]},\n 'statistics': {'mean': 0.0003904950572177768,\n 'stddev': 0.01172551792114973,\n 'maximum': 1.1035711765289307,\n 'minimum': -0.9143016934394836,\n 'valid_percent': 0.00154320987654321}}],\n 'proj:geometry': {'type': 'Polygon',\n 'coordinates': [[[-180.5, -90.5],\n [179.5, -90.5],\n [179.5, 89.5],\n [-180.5, 89.5],\n [-180.5, -90.5]]]},\n 'proj:projjson': {'id': {'code': 4326.0, 'authority': 'EPSG'},\n 'name': 'WGS 84',\n 'type': 'GeographicCRS',\n 'datum': {'name': 'World Geodetic System 1984',\n 'type': 'GeodeticReferenceFrame',\n 'ellipsoid': {'name': 'WGS 84',\n 'semi_major_axis': 6378137.0,\n 'inverse_flattening': 298.257223563}},\n '$schema': 'https://proj.org/schemas/v0.4/projjson.schema.json',\n 'coordinate_system': {'axis': [{'name': 'Geodetic latitude',\n 'unit': 'degree',\n 'direction': 'north',\n 'abbreviation': 'Lat'},\n {'name': 'Geodetic longitude',\n 'unit': 'degree',\n 'direction': 'east',\n 'abbreviation': 'Lon'}],\n 'subtype': 'ellipsoidal'}},\n 'proj:transform': [1.0, 0.0, -180.5, 0.0, -1.0, 89.5, 0.0, 0.0, 1.0]},\n 'post-fire': {'href': 's3://ghgc-data-store/gosat-based-ch4budget-yeargrid-v1/TopDownEmissions_GOSAT_post_fire_GEOS_CHEM_2019.tif',\n 'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'TBD',\n 'proj:bbox': [-180.5, -90.5, 179.5, 89.5],\n 'proj:epsg': 4326.0,\n 'proj:shape': [180.0, 360.0],\n 'description': 'TBD',\n 'raster:bands': [{'scale': 1.0,\n 'offset': 0.0,\n 'sampling': 'area',\n 'data_type': 'float32',\n 'histogram': {'max': 0.7065173387527466,\n 'min': -0.08211488276720047,\n 'count': 11.0,\n 'buckets': [103.0, 64685.0, 11.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0]},\n 'statistics': {'mean': 0.00020585705351550132,\n 'stddev': 0.00356540665961802,\n 'maximum': 0.7065173387527466,\n 'minimum': -0.08211488276720047,\n 'valid_percent': 0.00154320987654321}}],\n 'proj:geometry': {'type': 'Polygon',\n 'coordinates': [[[-180.5, -90.5],\n [179.5, -90.5],\n [179.5, 89.5],\n [-180.5, 89.5],\n [-180.5, -90.5]]]},\n 'proj:projjson': {'id': {'code': 4326.0, 'authority': 'EPSG'},\n 'name': 'WGS 84',\n 'type': 'GeographicCRS',\n 'datum': {'name': 'World Geodetic System 1984',\n 'type': 'GeodeticReferenceFrame',\n 'ellipsoid': {'name': 'WGS 84',\n 'semi_major_axis': 6378137.0,\n 'inverse_flattening': 298.257223563}},\n '$schema': 'https://proj.org/schemas/v0.4/projjson.schema.json',\n 'coordinate_system': {'axis': [{'name': 'Geodetic latitude',\n 'unit': 'degree',\n 'direction': 'north',\n 'abbreviation': 'Lat'},\n {'name': 'Geodetic longitude',\n 'unit': 'degree',\n 'direction': 'east',\n 'abbreviation': 'Lon'}],\n 'subtype': 'ellipsoidal'}},\n 'proj:transform': [1.0, 0.0, -180.5, 0.0, -1.0, 89.5, 0.0, 0.0, 1.0]},\n 'post-rice': {'href': 's3://ghgc-data-store/gosat-based-ch4budget-yeargrid-v1/TopDownEmissions_GOSAT_post_rice_GEOS_CHEM_2019.tif',\n 'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'TBD',\n 'proj:bbox': [-180.5, -90.5, 179.5, 89.5],\n 'proj:epsg': 4326.0,\n 'proj:shape': [180.0, 360.0],\n 'description': 'TBD',\n 'raster:bands': [{'scale': 1.0,\n 'offset': 0.0,\n 'sampling': 'area',\n 'data_type': 'float32',\n 'histogram': {'max': 1.3836066722869873,\n 'min': -1.1384793519973755,\n 'count': 11.0,\n 'buckets': [1.0, 4.0, 12.0, 20.0, 64581.0, 132.0, 30.0, 11.0, 4.0, 5.0]},\n 'statistics': {'mean': 0.0010437712771818042,\n 'stddev': 0.024994080886244774,\n 'maximum': 1.3836066722869873,\n 'minimum': -1.1384793519973755,\n 'valid_percent': 0.00154320987654321}}],\n 'proj:geometry': {'type': 'Polygon',\n 'coordinates': [[[-180.5, -90.5],\n [179.5, -90.5],\n [179.5, 89.5],\n [-180.5, 89.5],\n [-180.5, -90.5]]]},\n 'proj:projjson': {'id': {'code': 4326.0, 'authority': 'EPSG'},\n 'name': 'WGS 84',\n 'type': 'GeographicCRS',\n 'datum': {'name': 'World Geodetic System 1984',\n 'type': 'GeodeticReferenceFrame',\n 'ellipsoid': {'name': 'WGS 84',\n 'semi_major_axis': 6378137.0,\n 'inverse_flattening': 298.257223563}},\n '$schema': 'https://proj.org/schemas/v0.4/projjson.schema.json',\n 'coordinate_system': {'axis': [{'name': 'Geodetic latitude',\n 'unit': 'degree',\n 'direction': 'north',\n 'abbreviation': 'Lat'},\n {'name': 'Geodetic longitude',\n 'unit': 'degree',\n 'direction': 'east',\n 'abbreviation': 'Lon'}],\n 'subtype': 'ellipsoidal'}},\n 'proj:transform': [1.0, 0.0, -180.5, 0.0, -1.0, 89.5, 0.0, 0.0, 1.0]},\n 'prior-gas': {'href': 's3://ghgc-data-store/gosat-based-ch4budget-yeargrid-v1/TopDownEmissions_GOSAT_prior_gas_GEOS_CHEM_2019.tif',\n 'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'TBD',\n 'proj:bbox': [-180.5, -90.5, 179.5, 89.5],\n 'proj:epsg': 4326.0,\n 'proj:shape': [180.0, 360.0],\n 'description': 'TBD',\n 'raster:bands': [{'scale': 1.0,\n 'offset': 0.0,\n 'sampling': 'area',\n 'data_type': 'float32',\n 'histogram': {'max': 0.2977725863456726,\n 'min': 0.0,\n 'count': 11.0,\n 'buckets': [64659.0, 93.0, 27.0, 8.0, 2.0, 4.0, 2.0, 2.0, 2.0, 1.0]},\n 'statistics': {'mean': 0.00037746498128399253,\n 'stddev': 0.00403926195576787,\n 'maximum': 0.2977725863456726,\n 'minimum': 0.0,\n 'valid_percent': 0.00154320987654321}}],\n 'proj:geometry': {'type': 'Polygon',\n 'coordinates': [[[-180.5, -90.5],\n [179.5, -90.5],\n [179.5, 89.5],\n [-180.5, 89.5],\n [-180.5, -90.5]]]},\n 'proj:projjson': {'id': {'code': 4326.0, 'authority': 'EPSG'},\n 'name': 'WGS 84',\n 'type': 'GeographicCRS',\n 'datum': {'name': 'World Geodetic System 1984',\n 'type': 'GeodeticReferenceFrame',\n 'ellipsoid': {'name': 'WGS 84',\n 'semi_major_axis': 6378137.0,\n 'inverse_flattening': 298.257223563}},\n '$schema': 'https://proj.org/schemas/v0.4/projjson.schema.json',\n 'coordinate_system': {'axis': [{'name': 'Geodetic latitude',\n 'unit': 'degree',\n 'direction': 'north',\n 'abbreviation': 'Lat'},\n {'name': 'Geodetic longitude',\n 'unit': 'degree',\n 'direction': 'east',\n 'abbreviation': 'Lon'}],\n 'subtype': 'ellipsoidal'}},\n 'proj:transform': [1.0, 0.0, -180.5, 0.0, -1.0, 89.5, 0.0, 0.0, 1.0]},\n 'prior-geo': {'href': 's3://ghgc-data-store/gosat-based-ch4budget-yeargrid-v1/TopDownEmissions_GOSAT_prior_geo_GEOS_CHEM_2019.tif',\n 'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'TBD',\n 'proj:bbox': [-180.5, -90.5, 179.5, 89.5],\n 'proj:epsg': 4326.0,\n 'proj:shape': [180.0, 360.0],\n 'description': 'TBD',\n 'raster:bands': [{'scale': 1.0,\n 'offset': 0.0,\n 'sampling': 'area',\n 'data_type': 'float32',\n 'histogram': {'max': 1.8356599807739258,\n 'min': 0.0,\n 'count': 11.0,\n 'buckets': [64780.0, 15.0, 4.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0]},\n 'statistics': {'mean': 0.0004932624287903309,\n 'stddev': 0.009640775620937347,\n 'maximum': 1.8356599807739258,\n 'minimum': 0.0,\n 'valid_percent': 0.00154320987654321}}],\n 'proj:geometry': {'type': 'Polygon',\n 'coordinates': [[[-180.5, -90.5],\n [179.5, -90.5],\n [179.5, 89.5],\n [-180.5, 89.5],\n [-180.5, -90.5]]]},\n 'proj:projjson': {'id': {'code': 4326.0, 'authority': 'EPSG'},\n 'name': 'WGS 84',\n 'type': 'GeographicCRS',\n 'datum': {'name': 'World Geodetic System 1984',\n 'type': 'GeodeticReferenceFrame',\n 'ellipsoid': {'name': 'WGS 84',\n 'semi_major_axis': 6378137.0,\n 'inverse_flattening': 298.257223563}},\n '$schema': 'https://proj.org/schemas/v0.4/projjson.schema.json',\n 'coordinate_system': {'axis': [{'name': 'Geodetic latitude',\n 'unit': 'degree',\n 'direction': 'north',\n 'abbreviation': 'Lat'},\n {'name': 'Geodetic longitude',\n 'unit': 'degree',\n 'direction': 'east',\n 'abbreviation': 'Lon'}],\n 'subtype': 'ellipsoidal'}},\n 'proj:transform': [1.0, 0.0, -180.5, 0.0, -1.0, 89.5, 0.0, 0.0, 1.0]},\n 'prior-oil': {'href': 's3://ghgc-data-store/gosat-based-ch4budget-yeargrid-v1/TopDownEmissions_GOSAT_prior_oil_GEOS_CHEM_2019.tif',\n 'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'TBD',\n 'proj:bbox': [-180.5, -90.5, 179.5, 89.5],\n 'proj:epsg': 4326.0,\n 'proj:shape': [180.0, 360.0],\n 'description': 'TBD',\n 'raster:bands': [{'scale': 1.0,\n 'offset': 0.0,\n 'sampling': 'area',\n 'data_type': 'float32',\n 'histogram': {'max': 1.287477731704712,\n 'min': 0.0,\n 'count': 11.0,\n 'buckets': [64734.0, 40.0, 15.0, 3.0, 1.0, 4.0, 0.0, 1.0, 1.0, 1.0]},\n 'statistics': {'mean': 0.0006414719391614199,\n 'stddev': 0.01284099742770195,\n 'maximum': 1.287477731704712,\n 'minimum': 0.0,\n 'valid_percent': 0.00154320987654321}}],\n 'proj:geometry': {'type': 'Polygon',\n 'coordinates': [[[-180.5, -90.5],\n [179.5, -90.5],\n [179.5, 89.5],\n [-180.5, 89.5],\n [-180.5, -90.5]]]},\n 'proj:projjson': {'id': {'code': 4326.0, 'authority': 'EPSG'},\n 'name': 'WGS 84',\n 'type': 'GeographicCRS',\n 'datum': {'name': 'World Geodetic System 1984',\n 'type': 'GeodeticReferenceFrame',\n 'ellipsoid': {'name': 'WGS 84',\n 'semi_major_axis': 6378137.0,\n 'inverse_flattening': 298.257223563}},\n '$schema': 'https://proj.org/schemas/v0.4/projjson.schema.json',\n 'coordinate_system': {'axis': [{'name': 'Geodetic latitude',\n 'unit': 'degree',\n 'direction': 'north',\n 'abbreviation': 'Lat'},\n {'name': 'Geodetic longitude',\n 'unit': 'degree',\n 'direction': 'east',\n 'abbreviation': 'Lon'}],\n 'subtype': 'ellipsoidal'}},\n 'proj:transform': [1.0, 0.0, -180.5, 0.0, -1.0, 89.5, 0.0, 0.0, 1.0]},\n 'post-total': {'href': 's3://ghgc-data-store/gosat-based-ch4budget-yeargrid-v1/TopDownEmissions_GOSAT_post_total_GEOS_CHEM_2019.tif',\n 'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'TBD',\n 'proj:bbox': [-180.5, -90.5, 179.5, 89.5],\n 'proj:epsg': 4326.0,\n 'proj:shape': [180.0, 360.0],\n 'description': 'TBD',\n 'raster:bands': [{'scale': 1.0,\n 'offset': 0.0,\n 'sampling': 'area',\n 'data_type': 'float32',\n 'histogram': {'max': 3.621621608734131,\n 'min': -1.157373309135437,\n 'count': 11.0,\n 'buckets': [8.0, 69.0, 64300.0, 366.0, 41.0, 13.0, 2.0, 0.0, 0.0, 1.0]},\n 'statistics': {'mean': 0.008661163039505482,\n 'stddev': 0.057076238095760345,\n 'maximum': 3.621621608734131,\n 'minimum': -1.157373309135437,\n 'valid_percent': 0.00154320987654321}}],\n 'proj:geometry': {'type': 'Polygon',\n 'coordinates': [[[-180.5, -90.5],\n [179.5, -90.5],\n [179.5, 89.5],\n [-180.5, 89.5],\n [-180.5, -90.5]]]},\n 'proj:projjson': {'id': {'code': 4326.0, 'authority': 'EPSG'},\n 'name': 'WGS 84',\n 'type': 'GeographicCRS',\n 'datum': {'name': 'World Geodetic System 1984',\n 'type': 'GeodeticReferenceFrame',\n 'ellipsoid': {'name': 'WGS 84',\n 'semi_major_axis': 6378137.0,\n 'inverse_flattening': 298.257223563}},\n '$schema': 'https://proj.org/schemas/v0.4/projjson.schema.json',\n 'coordinate_system': {'axis': [{'name': 'Geodetic latitude',\n 'unit': 'degree',\n 'direction': 'north',\n 'abbreviation': 'Lat'},\n {'name': 'Geodetic longitude',\n 'unit': 'degree',\n 'direction': 'east',\n 'abbreviation': 'Lon'}],\n 'subtype': 'ellipsoidal'}},\n 'proj:transform': [1.0, 0.0, -180.5, 0.0, -1.0, 89.5, 0.0, 0.0, 1.0]},\n 'post-waste': {'href': 's3://ghgc-data-store/gosat-based-ch4budget-yeargrid-v1/TopDownEmissions_GOSAT_post_waste_GEOS_CHEM_2019.tif',\n 'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'TBD',\n 'proj:bbox': [-180.5, -90.5, 179.5, 89.5],\n 'proj:epsg': 4326.0,\n 'proj:shape': [180.0, 360.0],\n 'description': 'TBD',\n 'raster:bands': [{'scale': 1.0,\n 'offset': 0.0,\n 'sampling': 'area',\n 'data_type': 'float32',\n 'histogram': {'max': 1.2296125888824463,\n 'min': -0.5908117294311523,\n 'count': 11.0,\n 'buckets': [1.0, 2.0, 10.0, 64753.0, 26.0, 5.0, 1.0, 1.0, 0.0, 1.0]},\n 'statistics': {'mean': 0.0007660945411771536,\n 'stddev': 0.010033484548330307,\n 'maximum': 1.2296125888824463,\n 'minimum': -0.5908117294311523,\n 'valid_percent': 0.00154320987654321}}],\n 'proj:geometry': {'type': 'Polygon',\n 'coordinates': [[[-180.5, -90.5],\n [179.5, -90.5],\n [179.5, 89.5],\n [-180.5, 89.5],\n [-180.5, -90.5]]]},\n 'proj:projjson': {'id': {'code': 4326.0, 'authority': 'EPSG'},\n 'name': 'WGS 84',\n 'type': 'GeographicCRS',\n 'datum': {'name': 'World Geodetic System 1984',\n 'type': 'GeodeticReferenceFrame',\n 'ellipsoid': {'name': 'WGS 84',\n 'semi_major_axis': 6378137.0,\n 'inverse_flattening': 298.257223563}},\n '$schema': 'https://proj.org/schemas/v0.4/projjson.schema.json',\n 'coordinate_system': {'axis': [{'name': 'Geodetic latitude',\n 'unit': 'degree',\n 'direction': 'north',\n 'abbreviation': 'Lat'},\n {'name': 'Geodetic longitude',\n 'unit': 'degree',\n 'direction': 'east',\n 'abbreviation': 'Lon'}],\n 'subtype': 'ellipsoidal'}},\n 'proj:transform': [1.0, 0.0, -180.5, 0.0, -1.0, 89.5, 0.0, 0.0, 1.0]},\n 'prior-coal': {'href': 's3://ghgc-data-store/gosat-based-ch4budget-yeargrid-v1/TopDownEmissions_GOSAT_prior_coal_GEOS_CHEM_2019.tif',\n 'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'TBD',\n 'proj:bbox': [-180.5, -90.5, 179.5, 89.5],\n 'proj:epsg': 4326.0,\n 'proj:shape': [180.0, 360.0],\n 'description': 'TBD',\n 'raster:bands': [{'scale': 1.0,\n 'offset': 0.0,\n 'sampling': 'area',\n 'data_type': 'float32',\n 'histogram': {'max': 1.3838224411010742,\n 'min': 0.0,\n 'count': 11.0,\n 'buckets': [64746.0, 29.0, 11.0, 2.0, 5.0, 2.0, 2.0, 2.0, 0.0, 1.0]},\n 'statistics': {'mean': 0.0004846722586080432,\n 'stddev': 0.01380141545087099,\n 'maximum': 1.3838224411010742,\n 'minimum': 0.0,\n 'valid_percent': 0.00154320987654321}}],\n 'proj:geometry': {'type': 'Polygon',\n 'coordinates': [[[-180.5, -90.5],\n [179.5, -90.5],\n [179.5, 89.5],\n [-180.5, 89.5],\n [-180.5, -90.5]]]},\n 'proj:projjson': {'id': {'code': 4326.0, 'authority': 'EPSG'},\n 'name': 'WGS 84',\n 'type': 'GeographicCRS',\n 'datum': {'name': 'World Geodetic System 1984',\n 'type': 'GeodeticReferenceFrame',\n 'ellipsoid': {'name': 'WGS 84',\n 'semi_major_axis': 6378137.0,\n 'inverse_flattening': 298.257223563}},\n '$schema': 'https://proj.org/schemas/v0.4/projjson.schema.json',\n 'coordinate_system': {'axis': [{'name': 'Geodetic latitude',\n 'unit': 'degree',\n 'direction': 'north',\n 'abbreviation': 'Lat'},\n {'name': 'Geodetic longitude',\n 'unit': 'degree',\n 'direction': 'east',\n 'abbreviation': 'Lon'}],\n 'subtype': 'ellipsoidal'}},\n 'proj:transform': [1.0, 0.0, -180.5, 0.0, -1.0, 89.5, 0.0, 0.0, 1.0]},\n 'prior-fire': {'href': 's3://ghgc-data-store/gosat-based-ch4budget-yeargrid-v1/TopDownEmissions_GOSAT_prior_fire_GEOS_CHEM_2019.tif',\n 'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'TBD',\n 'proj:bbox': [-180.5, -90.5, 179.5, 89.5],\n 'proj:epsg': 4326.0,\n 'proj:shape': [180.0, 360.0],\n 'description': 'TBD',\n 'raster:bands': [{'scale': 1.0,\n 'offset': 0.0,\n 'sampling': 'area',\n 'data_type': 'float32',\n 'histogram': {'max': 0.498909056186676,\n 'min': 0.0,\n 'count': 11.0,\n 'buckets': [64786.0, 7.0, 1.0, 3.0, 1.0, 0.0, 0.0, 1.0, 0.0, 1.0]},\n 'statistics': {'mean': 0.0002329142007511109,\n 'stddev': 0.0032598471734672785,\n 'maximum': 0.498909056186676,\n 'minimum': 0.0,\n 'valid_percent': 0.00154320987654321}}],\n 'proj:geometry': {'type': 'Polygon',\n 'coordinates': [[[-180.5, -90.5],\n [179.5, -90.5],\n [179.5, 89.5],\n [-180.5, 89.5],\n [-180.5, -90.5]]]},\n 'proj:projjson': {'id': {'code': 4326.0, 'authority': 'EPSG'},\n 'name': 'WGS 84',\n 'type': 'GeographicCRS',\n 'datum': {'name': 'World Geodetic System 1984',\n 'type': 'GeodeticReferenceFrame',\n 'ellipsoid': {'name': 'WGS 84',\n 'semi_major_axis': 6378137.0,\n 'inverse_flattening': 298.257223563}},\n '$schema': 'https://proj.org/schemas/v0.4/projjson.schema.json',\n 'coordinate_system': {'axis': [{'name': 'Geodetic latitude',\n 'unit': 'degree',\n 'direction': 'north',\n 'abbreviation': 'Lat'},\n {'name': 'Geodetic longitude',\n 'unit': 'degree',\n 'direction': 'east',\n 'abbreviation': 'Lon'}],\n 'subtype': 'ellipsoidal'}},\n 'proj:transform': [1.0, 0.0, -180.5, 0.0, -1.0, 89.5, 0.0, 0.0, 1.0]},\n 'prior-rice': {'href': 's3://ghgc-data-store/gosat-based-ch4budget-yeargrid-v1/TopDownEmissions_GOSAT_prior_rice_GEOS_CHEM_2019.tif',\n 'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'TBD',\n 'proj:bbox': [-180.5, -90.5, 179.5, 89.5],\n 'proj:epsg': 4326.0,\n 'proj:shape': [180.0, 360.0],\n 'description': 'TBD',\n 'raster:bands': [{'scale': 1.0,\n 'offset': 0.0,\n 'sampling': 'area',\n 'data_type': 'float32',\n 'histogram': {'max': 0.5223113298416138,\n 'min': 0.0,\n 'count': 11.0,\n 'buckets': [64539.0, 154.0, 55.0, 25.0, 16.0, 8.0, 2.0, 0.0, 0.0, 1.0]},\n 'statistics': {'mean': 0.000768911384511739,\n 'stddev': 0.008794998750090599,\n 'maximum': 0.5223113298416138,\n 'minimum': 0.0,\n 'valid_percent': 0.00154320987654321}}],\n 'proj:geometry': {'type': 'Polygon',\n 'coordinates': [[[-180.5, -90.5],\n [179.5, -90.5],\n [179.5, 89.5],\n [-180.5, 89.5],\n [-180.5, -90.5]]]},\n 'proj:projjson': {'id': {'code': 4326.0, 'authority': 'EPSG'},\n 'name': 'WGS 84',\n 'type': 'GeographicCRS',\n 'datum': {'name': 'World Geodetic System 1984',\n 'type': 'GeodeticReferenceFrame',\n 'ellipsoid': {'name': 'WGS 84',\n 'semi_major_axis': 6378137.0,\n 'inverse_flattening': 298.257223563}},\n '$schema': 'https://proj.org/schemas/v0.4/projjson.schema.json',\n 'coordinate_system': {'axis': [{'name': 'Geodetic latitude',\n 'unit': 'degree',\n 'direction': 'north',\n 'abbreviation': 'Lat'},\n {'name': 'Geodetic longitude',\n 'unit': 'degree',\n 'direction': 'east',\n 'abbreviation': 'Lon'}],\n 'subtype': 'ellipsoidal'}},\n 'proj:transform': [1.0, 0.0, -180.5, 0.0, -1.0, 89.5, 0.0, 0.0, 1.0]},\n 'prior-total': {'href': 's3://ghgc-data-store/gosat-based-ch4budget-yeargrid-v1/TopDownEmissions_GOSAT_prior_total_GEOS_CHEM_2019.tif',\n 'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'TBD',\n 'proj:bbox': [-180.5, -90.5, 179.5, 89.5],\n 'proj:epsg': 4326.0,\n 'proj:shape': [180.0, 360.0],\n 'description': 'TBD',\n 'raster:bands': [{'scale': 1.0,\n 'offset': 0.0,\n 'sampling': 'area',\n 'data_type': 'float32',\n 'histogram': {'max': 2.121816635131836,\n 'min': 0.0,\n 'count': 11.0,\n 'buckets': [64390.0, 297.0, 63.0, 26.0, 13.0, 7.0, 3.0, 0.0, 0.0, 1.0]},\n 'statistics': {'mean': 0.008324408903717995,\n 'stddev': 0.04165573790669441,\n 'maximum': 2.121816635131836,\n 'minimum': 0.0,\n 'valid_percent': 0.00154320987654321}}],\n 'proj:geometry': {'type': 'Polygon',\n 'coordinates': [[[-180.5, -90.5],\n [179.5, -90.5],\n [179.5, 89.5],\n [-180.5, 89.5],\n [-180.5, -90.5]]]},\n 'proj:projjson': {'id': {'code': 4326.0, 'authority': 'EPSG'},\n 'name': 'WGS 84',\n 'type': 'GeographicCRS',\n 'datum': {'name': 'World Geodetic System 1984',\n 'type': 'GeodeticReferenceFrame',\n 'ellipsoid': {'name': 'WGS 84',\n 'semi_major_axis': 6378137.0,\n 'inverse_flattening': 298.257223563}},\n '$schema': 'https://proj.org/schemas/v0.4/projjson.schema.json',\n 'coordinate_system': {'axis': [{'name': 'Geodetic latitude',\n 'unit': 'degree',\n 'direction': 'north',\n 'abbreviation': 'Lat'},\n {'name': 'Geodetic longitude',\n 'unit': 'degree',\n 'direction': 'east',\n 'abbreviation': 'Lon'}],\n 'subtype': 'ellipsoidal'}},\n 'proj:transform': [1.0, 0.0, -180.5, 0.0, -1.0, 89.5, 0.0, 0.0, 1.0]},\n 'prior-waste': {'href': 's3://ghgc-data-store/gosat-based-ch4budget-yeargrid-v1/TopDownEmissions_GOSAT_prior_waste_GEOS_CHEM_2019.tif',\n 'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'TBD',\n 'proj:bbox': [-180.5, -90.5, 179.5, 89.5],\n 'proj:epsg': 4326.0,\n 'proj:shape': [180.0, 360.0],\n 'description': 'TBD',\n 'raster:bands': [{'scale': 1.0,\n 'offset': 0.0,\n 'sampling': 'area',\n 'data_type': 'float32',\n 'histogram': {'max': 1.4146164655685425,\n 'min': 0.0,\n 'count': 11.0,\n 'buckets': [64750.0, 36.0, 6.0, 4.0, 1.0, 1.0, 0.0, 0.0, 1.0, 1.0]},\n 'statistics': {'mean': 0.0008899783715605736,\n 'stddev': 0.011600765399634838,\n 'maximum': 1.4146164655685425,\n 'minimum': 0.0,\n 'valid_percent': 0.00154320987654321}}],\n 'proj:geometry': {'type': 'Polygon',\n 'coordinates': [[[-180.5, -90.5],\n [179.5, -90.5],\n [179.5, 89.5],\n [-180.5, 89.5],\n [-180.5, -90.5]]]},\n 'proj:projjson': {'id': {'code': 4326.0, 'authority': 'EPSG'},\n 'name': 'WGS 84',\n 'type': 'GeographicCRS',\n 'datum': {'name': 'World Geodetic System 1984',\n 'type': 'GeodeticReferenceFrame',\n 'ellipsoid': {'name': 'WGS 84',\n 'semi_major_axis': 6378137.0,\n 'inverse_flattening': 298.257223563}},\n '$schema': 'https://proj.org/schemas/v0.4/projjson.schema.json',\n 'coordinate_system': {'axis': [{'name': 'Geodetic latitude',\n 'unit': 'degree',\n 'direction': 'north',\n 'abbreviation': 'Lat'},\n {'name': 'Geodetic longitude',\n 'unit': 'degree',\n 'direction': 'east',\n 'abbreviation': 'Lon'}],\n 'subtype': 'ellipsoidal'}},\n 'proj:transform': [1.0, 0.0, -180.5, 0.0, -1.0, 89.5, 0.0, 0.0, 1.0]},\n 'post-wetland': {'href': 's3://ghgc-data-store/gosat-based-ch4budget-yeargrid-v1/TopDownEmissions_GOSAT_post_wetland_GEOS_CHEM_2019.tif',\n 'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'TBD',\n 'proj:bbox': [-180.5, -90.5, 179.5, 89.5],\n 'proj:epsg': 4326.0,\n 'proj:shape': [180.0, 360.0],\n 'description': 'TBD',\n 'raster:bands': [{'scale': 1.0,\n 'offset': 0.0,\n 'sampling': 'area',\n 'data_type': 'float32',\n 'histogram': {'max': 2.0359816551208496,\n 'min': -0.8375182747840881,\n 'count': 11.0,\n 'buckets': [5.0, 15.0, 63361.0, 1288.0, 94.0, 24.0, 7.0, 2.0, 2.0, 2.0]},\n 'statistics': {'mean': 0.0027753026224672794,\n 'stddev': 0.033493757247924805,\n 'maximum': 2.0359816551208496,\n 'minimum': -0.8375182747840881,\n 'valid_percent': 0.00154320987654321}}],\n 'proj:geometry': {'type': 'Polygon',\n 'coordinates': [[[-180.5, -90.5],\n [179.5, -90.5],\n [179.5, 89.5],\n [-180.5, 89.5],\n [-180.5, -90.5]]]},\n 'proj:projjson': {'id': {'code': 4326.0, 'authority': 'EPSG'},\n 'name': 'WGS 84',\n 'type': 'GeographicCRS',\n 'datum': {'name': 'World Geodetic System 1984',\n 'type': 'GeodeticReferenceFrame',\n 'ellipsoid': {'name': 'WGS 84',\n 'semi_major_axis': 6378137.0,\n 'inverse_flattening': 298.257223563}},\n '$schema': 'https://proj.org/schemas/v0.4/projjson.schema.json',\n 'coordinate_system': {'axis': [{'name': 'Geodetic latitude',\n 'unit': 'degree',\n 'direction': 'north',\n 'abbreviation': 'Lat'},\n {'name': 'Geodetic longitude',\n 'unit': 'degree',\n 'direction': 'east',\n 'abbreviation': 'Lon'}],\n 'subtype': 'ellipsoidal'}},\n 'proj:transform': [1.0, 0.0, -180.5, 0.0, -1.0, 89.5, 0.0, 0.0, 1.0]},\n 'prior-wetland': {'href': 's3://ghgc-data-store/gosat-based-ch4budget-yeargrid-v1/TopDownEmissions_GOSAT_prior_wetland_GEOS_CHEM_2019.tif',\n 'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'TBD',\n 'proj:bbox': [-180.5, -90.5, 179.5, 89.5],\n 'proj:epsg': 4326.0,\n 'proj:shape': [180.0, 360.0],\n 'description': 'TBD',\n 'raster:bands': [{'scale': 1.0,\n 'offset': 0.0,\n 'sampling': 'area',\n 'data_type': 'float32',\n 'histogram': {'max': 1.2217899560928345,\n 'min': 0.0,\n 'count': 11.0,\n 'buckets': [64489.0, 188.0, 52.0, 29.0, 17.0, 11.0, 3.0, 4.0, 3.0, 4.0]},\n 'statistics': {'mean': 0.0030836397781968117,\n 'stddev': 0.026006272062659264,\n 'maximum': 1.2217899560928345,\n 'minimum': 0.0,\n 'valid_percent': 0.00154320987654321}}],\n 'proj:geometry': {'type': 'Polygon',\n 'coordinates': [[[-180.5, -90.5],\n [179.5, -90.5],\n [179.5, 89.5],\n [-180.5, 89.5],\n [-180.5, -90.5]]]},\n 'proj:projjson': {'id': {'code': 4326.0, 'authority': 'EPSG'},\n 'name': 'WGS 84',\n 'type': 'GeographicCRS',\n 'datum': {'name': 'World Geodetic System 1984',\n 'type': 'GeodeticReferenceFrame',\n 'ellipsoid': {'name': 'WGS 84',\n 'semi_major_axis': 6378137.0,\n 'inverse_flattening': 298.257223563}},\n '$schema': 'https://proj.org/schemas/v0.4/projjson.schema.json',\n 'coordinate_system': {'axis': [{'name': 'Geodetic latitude',\n 'unit': 'degree',\n 'direction': 'north',\n 'abbreviation': 'Lat'},\n {'name': 'Geodetic longitude',\n 'unit': 'degree',\n 'direction': 'east',\n 'abbreviation': 'Lon'}],\n 'subtype': 'ellipsoidal'}},\n 'proj:transform': [1.0, 0.0, -180.5, 0.0, -1.0, 89.5, 0.0, 0.0, 1.0]},\n 'post-livestock': {'href': 's3://ghgc-data-store/gosat-based-ch4budget-yeargrid-v1/TopDownEmissions_GOSAT_post_livestock_GEOS_CHEM_2019.tif',\n 'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'TBD',\n 'proj:bbox': [-180.5, -90.5, 179.5, 89.5],\n 'proj:epsg': 4326.0,\n 'proj:shape': [180.0, 360.0],\n 'description': 'TBD',\n 'raster:bands': [{'scale': 1.0,\n 'offset': 0.0,\n 'sampling': 'area',\n 'data_type': 'float32',\n 'histogram': {'max': 0.4482361972332001,\n 'min': -0.2484263777732849,\n 'count': 11.0,\n 'buckets': [2.0,\n 10.0,\n 56.0,\n 63290.0,\n 1110.0,\n 239.0,\n 61.0,\n 14.0,\n 13.0,\n 5.0]},\n 'statistics': {'mean': 0.0022545307874679565,\n 'stddev': 0.014899863861501217,\n 'maximum': 0.4482361972332001,\n 'minimum': -0.2484263777732849,\n 'valid_percent': 0.00154320987654321}}],\n 'proj:geometry': {'type': 'Polygon',\n 'coordinates': [[[-180.5, -90.5],\n [179.5, -90.5],\n [179.5, 89.5],\n [-180.5, 89.5],\n [-180.5, -90.5]]]},\n 'proj:projjson': {'id': {'code': 4326.0, 'authority': 'EPSG'},\n 'name': 'WGS 84',\n 'type': 'GeographicCRS',\n 'datum': {'name': 'World Geodetic System 1984',\n 'type': 'GeodeticReferenceFrame',\n 'ellipsoid': {'name': 'WGS 84',\n 'semi_major_axis': 6378137.0,\n 'inverse_flattening': 298.257223563}},\n '$schema': 'https://proj.org/schemas/v0.4/projjson.schema.json',\n 'coordinate_system': {'axis': [{'name': 'Geodetic latitude',\n 'unit': 'degree',\n 'direction': 'north',\n 'abbreviation': 'Lat'},\n {'name': 'Geodetic longitude',\n 'unit': 'degree',\n 'direction': 'east',\n 'abbreviation': 'Lon'}],\n 'subtype': 'ellipsoidal'}},\n 'proj:transform': [1.0, 0.0, -180.5, 0.0, -1.0, 89.5, 0.0, 0.0, 1.0]},\n 'prior-livestock': {'href': 's3://ghgc-data-store/gosat-based-ch4budget-yeargrid-v1/TopDownEmissions_GOSAT_prior_livestock_GEOS_CHEM_2019.tif',\n 'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'TBD',\n 'proj:bbox': [-180.5, -90.5, 179.5, 89.5],\n 'proj:epsg': 4326.0,\n 'proj:shape': [180.0, 360.0],\n 'description': 'TBD',\n 'raster:bands': [{'scale': 1.0,\n 'offset': 0.0,\n 'sampling': 'area',\n 'data_type': 'float32',\n 'histogram': {'max': 0.1304568201303482,\n 'min': 0.0,\n 'count': 11.0,\n 'buckets': [62701.0,\n 1246.0,\n 462.0,\n 214.0,\n 61.0,\n 40.0,\n 41.0,\n 21.0,\n 11.0,\n 3.0]},\n 'statistics': {'mean': 0.0013520935317501426,\n 'stddev': 0.006176645867526531,\n 'maximum': 0.1304568201303482,\n 'minimum': 0.0,\n 'valid_percent': 0.00154320987654321}}],\n 'proj:geometry': {'type': 'Polygon',\n 'coordinates': [[[-180.5, -90.5],\n [179.5, -90.5],\n [179.5, 89.5],\n [-180.5, 89.5],\n [-180.5, -90.5]]]},\n 'proj:projjson': {'id': {'code': 4326.0, 'authority': 'EPSG'},\n 'name': 'WGS 84',\n 'type': 'GeographicCRS',\n 'datum': {'name': 'World Geodetic System 1984',\n 'type': 'GeodeticReferenceFrame',\n 'ellipsoid': {'name': 'WGS 84',\n 'semi_major_axis': 6378137.0,\n 'inverse_flattening': 298.257223563}},\n '$schema': 'https://proj.org/schemas/v0.4/projjson.schema.json',\n 'coordinate_system': {'axis': [{'name': 'Geodetic latitude',\n 'unit': 'degree',\n 'direction': 'north',\n 'abbreviation': 'Lat'},\n {'name': 'Geodetic longitude',\n 'unit': 'degree',\n 'direction': 'east',\n 'abbreviation': 'Lon'}],\n 'subtype': 'ellipsoidal'}},\n 'proj:transform': [1.0, 0.0, -180.5, 0.0, -1.0, 89.5, 0.0, 0.0, 1.0]},\n 'post-gas-uncertainty': {'href': 's3://ghgc-data-store/gosat-based-ch4budget-yeargrid-v1/TopDownEmissions_GOSAT_post_unc_gas_GEOS_CHEM_2019.tif',\n 'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'TBD',\n 'proj:bbox': [-180.5, -90.5, 179.5, 89.5],\n 'proj:epsg': 4326.0,\n 'proj:shape': [180.0, 360.0],\n 'description': 'TBD',\n 'raster:bands': [{'scale': 1.0,\n 'offset': 0.0,\n 'sampling': 'area',\n 'data_type': 'float32',\n 'histogram': {'max': 0.026829414069652557,\n 'min': 0.0,\n 'count': 11.0,\n 'buckets': [64766.0, 20.0, 4.0, 6.0, 1.0, 0.0, 0.0, 1.0, 1.0, 1.0]},\n 'statistics': {'mean': 8.39770473248791e-06,\n 'stddev': 0.00022043172793928534,\n 'maximum': 0.026829414069652557,\n 'minimum': 0.0,\n 'valid_percent': 0.00154320987654321}}],\n 'proj:geometry': {'type': 'Polygon',\n 'coordinates': [[[-180.5, -90.5],\n [179.5, -90.5],\n [179.5, 89.5],\n [-180.5, 89.5],\n [-180.5, -90.5]]]},\n 'proj:projjson': {'id': {'code': 4326.0, 'authority': 'EPSG'},\n 'name': 'WGS 84',\n 'type': 'GeographicCRS',\n 'datum': {'name': 'World Geodetic System 1984',\n 'type': 'GeodeticReferenceFrame',\n 'ellipsoid': {'name': 'WGS 84',\n 'semi_major_axis': 6378137.0,\n 'inverse_flattening': 298.257223563}},\n '$schema': 'https://proj.org/schemas/v0.4/projjson.schema.json',\n 'coordinate_system': {'axis': [{'name': 'Geodetic latitude',\n 'unit': 'degree',\n 'direction': 'north',\n 'abbreviation': 'Lat'},\n {'name': 'Geodetic longitude',\n 'unit': 'degree',\n 'direction': 'east',\n 'abbreviation': 'Lon'}],\n 'subtype': 'ellipsoidal'}},\n 'proj:transform': [1.0, 0.0, -180.5, 0.0, -1.0, 89.5, 0.0, 0.0, 1.0]},\n 'post-geo-uncertainty': {'href': 's3://ghgc-data-store/gosat-based-ch4budget-yeargrid-v1/TopDownEmissions_GOSAT_post_unc_geo_GEOS_CHEM_2019.tif',\n 'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'TBD',\n 'proj:bbox': [-180.5, -90.5, 179.5, 89.5],\n 'proj:epsg': 4326.0,\n 'proj:shape': [180.0, 360.0],\n 'description': 'TBD',\n 'raster:bands': [{'scale': 1.0,\n 'offset': 0.0,\n 'sampling': 'area',\n 'data_type': 'float32',\n 'histogram': {'max': 0.25446972250938416,\n 'min': 0.0,\n 'count': 11.0,\n 'buckets': [64793.0, 5.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0]},\n 'statistics': {'mean': 1.9521785361575894e-05,\n 'stddev': 0.0011142849689349532,\n 'maximum': 0.25446972250938416,\n 'minimum': 0.0,\n 'valid_percent': 0.00154320987654321}}],\n 'proj:geometry': {'type': 'Polygon',\n 'coordinates': [[[-180.5, -90.5],\n [179.5, -90.5],\n [179.5, 89.5],\n [-180.5, 89.5],\n [-180.5, -90.5]]]},\n 'proj:projjson': {'id': {'code': 4326.0, 'authority': 'EPSG'},\n 'name': 'WGS 84',\n 'type': 'GeographicCRS',\n 'datum': {'name': 'World Geodetic System 1984',\n 'type': 'GeodeticReferenceFrame',\n 'ellipsoid': {'name': 'WGS 84',\n 'semi_major_axis': 6378137.0,\n 'inverse_flattening': 298.257223563}},\n '$schema': 'https://proj.org/schemas/v0.4/projjson.schema.json',\n 'coordinate_system': {'axis': [{'name': 'Geodetic latitude',\n 'unit': 'degree',\n 'direction': 'north',\n 'abbreviation': 'Lat'},\n {'name': 'Geodetic longitude',\n 'unit': 'degree',\n 'direction': 'east',\n 'abbreviation': 'Lon'}],\n 'subtype': 'ellipsoidal'}},\n 'proj:transform': [1.0, 0.0, -180.5, 0.0, -1.0, 89.5, 0.0, 0.0, 1.0]},\n 'post-oil-uncertainty': {'href': 's3://ghgc-data-store/gosat-based-ch4budget-yeargrid-v1/TopDownEmissions_GOSAT_post_unc_oil_GEOS_CHEM_2019.tif',\n 'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'TBD',\n 'proj:bbox': [-180.5, -90.5, 179.5, 89.5],\n 'proj:epsg': 4326.0,\n 'proj:shape': [180.0, 360.0],\n 'description': 'TBD',\n 'raster:bands': [{'scale': 1.0,\n 'offset': 0.0,\n 'sampling': 'area',\n 'data_type': 'float32',\n 'histogram': {'max': 0.20816677808761597,\n 'min': 0.0,\n 'count': 11.0,\n 'buckets': [64775.0, 15.0, 2.0, 5.0, 1.0, 0.0, 0.0, 0.0, 1.0, 1.0]},\n 'statistics': {'mean': 3.7560705095529556e-05,\n 'stddev': 0.0014476124197244644,\n 'maximum': 0.20816677808761597,\n 'minimum': 0.0,\n 'valid_percent': 0.00154320987654321}}],\n 'proj:geometry': {'type': 'Polygon',\n 'coordinates': [[[-180.5, -90.5],\n [179.5, -90.5],\n [179.5, 89.5],\n [-180.5, 89.5],\n [-180.5, -90.5]]]},\n 'proj:projjson': {'id': {'code': 4326.0, 'authority': 'EPSG'},\n 'name': 'WGS 84',\n 'type': 'GeographicCRS',\n 'datum': {'name': 'World Geodetic System 1984',\n 'type': 'GeodeticReferenceFrame',\n 'ellipsoid': {'name': 'WGS 84',\n 'semi_major_axis': 6378137.0,\n 'inverse_flattening': 298.257223563}},\n '$schema': 'https://proj.org/schemas/v0.4/projjson.schema.json',\n 'coordinate_system': {'axis': [{'name': 'Geodetic latitude',\n 'unit': 'degree',\n 'direction': 'north',\n 'abbreviation': 'Lat'},\n {'name': 'Geodetic longitude',\n 'unit': 'degree',\n 'direction': 'east',\n 'abbreviation': 'Lon'}],\n 'subtype': 'ellipsoidal'}},\n 'proj:transform': [1.0, 0.0, -180.5, 0.0, -1.0, 89.5, 0.0, 0.0, 1.0]},\n 'post-coal-uncertainty': {'href': 's3://ghgc-data-store/gosat-based-ch4budget-yeargrid-v1/TopDownEmissions_GOSAT_post_unc_coal_GEOS_CHEM_2019.tif',\n 'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'TBD',\n 'proj:bbox': [-180.5, -90.5, 179.5, 89.5],\n 'proj:epsg': 4326.0,\n 'proj:shape': [180.0, 360.0],\n 'description': 'TBD',\n 'raster:bands': [{'scale': 1.0,\n 'offset': 0.0,\n 'sampling': 'area',\n 'data_type': 'float32',\n 'histogram': {'max': 0.28081363439559937,\n 'min': 0.0,\n 'count': 11.0,\n 'buckets': [64778.0, 7.0, 5.0, 1.0, 3.0, 3.0, 2.0, 0.0, 0.0, 1.0]},\n 'statistics': {'mean': 4.5709952246397734e-05,\n 'stddev': 0.0022045010700821877,\n 'maximum': 0.28081363439559937,\n 'minimum': 0.0,\n 'valid_percent': 0.00154320987654321}}],\n 'proj:geometry': {'type': 'Polygon',\n 'coordinates': [[[-180.5, -90.5],\n [179.5, -90.5],\n [179.5, 89.5],\n [-180.5, 89.5],\n [-180.5, -90.5]]]},\n 'proj:projjson': {'id': {'code': 4326.0, 'authority': 'EPSG'},\n 'name': 'WGS 84',\n 'type': 'GeographicCRS',\n 'datum': {'name': 'World Geodetic System 1984',\n 'type': 'GeodeticReferenceFrame',\n 'ellipsoid': {'name': 'WGS 84',\n 'semi_major_axis': 6378137.0,\n 'inverse_flattening': 298.257223563}},\n '$schema': 'https://proj.org/schemas/v0.4/projjson.schema.json',\n 'coordinate_system': {'axis': [{'name': 'Geodetic latitude',\n 'unit': 'degree',\n 'direction': 'north',\n 'abbreviation': 'Lat'},\n {'name': 'Geodetic longitude',\n 'unit': 'degree',\n 'direction': 'east',\n 'abbreviation': 'Lon'}],\n 'subtype': 'ellipsoidal'}},\n 'proj:transform': [1.0, 0.0, -180.5, 0.0, -1.0, 89.5, 0.0, 0.0, 1.0]},\n 'post-fire-uncertainty': {'href': 's3://ghgc-data-store/gosat-based-ch4budget-yeargrid-v1/TopDownEmissions_GOSAT_post_unc_fire_GEOS_CHEM_2019.tif',\n 'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'TBD',\n 'proj:bbox': [-180.5, -90.5, 179.5, 89.5],\n 'proj:epsg': 4326.0,\n 'proj:shape': [180.0, 360.0],\n 'description': 'TBD',\n 'raster:bands': [{'scale': 1.0,\n 'offset': 0.0,\n 'sampling': 'area',\n 'data_type': 'float32',\n 'histogram': {'max': 0.04287702962756157,\n 'min': 0.0,\n 'count': 11.0,\n 'buckets': [64794.0, 3.0, 1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0]},\n 'statistics': {'mean': 3.030148036486935e-06,\n 'stddev': 0.00021067954367026687,\n 'maximum': 0.04287702962756157,\n 'minimum': 0.0,\n 'valid_percent': 0.00154320987654321}}],\n 'proj:geometry': {'type': 'Polygon',\n 'coordinates': [[[-180.5, -90.5],\n [179.5, -90.5],\n [179.5, 89.5],\n [-180.5, 89.5],\n [-180.5, -90.5]]]},\n 'proj:projjson': {'id': {'code': 4326.0, 'authority': 'EPSG'},\n 'name': 'WGS 84',\n 'type': 'GeographicCRS',\n 'datum': {'name': 'World Geodetic System 1984',\n 'type': 'GeodeticReferenceFrame',\n 'ellipsoid': {'name': 'WGS 84',\n 'semi_major_axis': 6378137.0,\n 'inverse_flattening': 298.257223563}},\n '$schema': 'https://proj.org/schemas/v0.4/projjson.schema.json',\n 'coordinate_system': {'axis': [{'name': 'Geodetic latitude',\n 'unit': 'degree',\n 'direction': 'north',\n 'abbreviation': 'Lat'},\n {'name': 'Geodetic longitude',\n 'unit': 'degree',\n 'direction': 'east',\n 'abbreviation': 'Lon'}],\n 'subtype': 'ellipsoidal'}},\n 'proj:transform': [1.0, 0.0, -180.5, 0.0, -1.0, 89.5, 0.0, 0.0, 1.0]},\n 'post-rice-uncertainty': {'href': 's3://ghgc-data-store/gosat-based-ch4budget-yeargrid-v1/TopDownEmissions_GOSAT_post_unc_rice_GEOS_CHEM_2019.tif',\n 'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'TBD',\n 'proj:bbox': [-180.5, -90.5, 179.5, 89.5],\n 'proj:epsg': 4326.0,\n 'proj:shape': [180.0, 360.0],\n 'description': 'TBD',\n 'raster:bands': [{'scale': 1.0,\n 'offset': 0.0,\n 'sampling': 'area',\n 'data_type': 'float32',\n 'histogram': {'max': 0.085321806371212,\n 'min': 0.0,\n 'count': 11.0,\n 'buckets': [64609.0, 88.0, 42.0, 26.0, 15.0, 9.0, 2.0, 4.0, 3.0, 2.0]},\n 'statistics': {'mean': 8.745533705223352e-05,\n 'stddev': 0.0015292511088773608,\n 'maximum': 0.085321806371212,\n 'minimum': 0.0,\n 'valid_percent': 0.00154320987654321}}],\n 'proj:geometry': {'type': 'Polygon',\n 'coordinates': [[[-180.5, -90.5],\n [179.5, -90.5],\n [179.5, 89.5],\n [-180.5, 89.5],\n [-180.5, -90.5]]]},\n 'proj:projjson': {'id': {'code': 4326.0, 'authority': 'EPSG'},\n 'name': 'WGS 84',\n 'type': 'GeographicCRS',\n 'datum': {'name': 'World Geodetic System 1984',\n 'type': 'GeodeticReferenceFrame',\n 'ellipsoid': {'name': 'WGS 84',\n 'semi_major_axis': 6378137.0,\n 'inverse_flattening': 298.257223563}},\n '$schema': 'https://proj.org/schemas/v0.4/projjson.schema.json',\n 'coordinate_system': {'axis': [{'name': 'Geodetic latitude',\n 'unit': 'degree',\n 'direction': 'north',\n 'abbreviation': 'Lat'},\n {'name': 'Geodetic longitude',\n 'unit': 'degree',\n 'direction': 'east',\n 'abbreviation': 'Lon'}],\n 'subtype': 'ellipsoidal'}},\n 'proj:transform': [1.0, 0.0, -180.5, 0.0, -1.0, 89.5, 0.0, 0.0, 1.0]},\n 'prior-gas-uncertainty': {'href': 's3://ghgc-data-store/gosat-based-ch4budget-yeargrid-v1/TopDownEmissions_GOSAT_prior_unc_gas_GEOS_CHEM_2019.tif',\n 'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'TBD',\n 'proj:bbox': [-180.5, -90.5, 179.5, 89.5],\n 'proj:epsg': 4326.0,\n 'proj:shape': [180.0, 360.0],\n 'description': 'TBD',\n 'raster:bands': [{'scale': 1.0,\n 'offset': 0.0,\n 'sampling': 'area',\n 'data_type': 'float32',\n 'histogram': {'max': 0.035356033593416214,\n 'min': 0.0,\n 'count': 11.0,\n 'buckets': [64766.0, 17.0, 5.0, 3.0, 3.0, 0.0, 1.0, 1.0, 0.0, 4.0]},\n 'statistics': {'mean': 1.1367864317435306e-05,\n 'stddev': 0.0003570150875020772,\n 'maximum': 0.035356033593416214,\n 'minimum': 0.0,\n 'valid_percent': 0.00154320987654321}}],\n 'proj:geometry': {'type': 'Polygon',\n 'coordinates': [[[-180.5, -90.5],\n [179.5, -90.5],\n [179.5, 89.5],\n [-180.5, 89.5],\n [-180.5, -90.5]]]},\n 'proj:projjson': {'id': {'code': 4326.0, 'authority': 'EPSG'},\n 'name': 'WGS 84',\n 'type': 'GeographicCRS',\n 'datum': {'name': 'World Geodetic System 1984',\n 'type': 'GeodeticReferenceFrame',\n 'ellipsoid': {'name': 'WGS 84',\n 'semi_major_axis': 6378137.0,\n 'inverse_flattening': 298.257223563}},\n '$schema': 'https://proj.org/schemas/v0.4/projjson.schema.json',\n 'coordinate_system': {'axis': [{'name': 'Geodetic latitude',\n 'unit': 'degree',\n 'direction': 'north',\n 'abbreviation': 'Lat'},\n {'name': 'Geodetic longitude',\n 'unit': 'degree',\n 'direction': 'east',\n 'abbreviation': 'Lon'}],\n 'subtype': 'ellipsoidal'}},\n 'proj:transform': [1.0, 0.0, -180.5, 0.0, -1.0, 89.5, 0.0, 0.0, 1.0]},\n 'prior-geo-uncertainty': {'href': 's3://ghgc-data-store/gosat-based-ch4budget-yeargrid-v1/TopDownEmissions_GOSAT_prior_unc_geo_GEOS_CHEM_2019.tif',\n 'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'TBD',\n 'proj:bbox': [-180.5, -90.5, 179.5, 89.5],\n 'proj:epsg': 4326.0,\n 'proj:shape': [180.0, 360.0],\n 'description': 'TBD',\n 'raster:bands': [{'scale': 1.0,\n 'offset': 0.0,\n 'sampling': 'area',\n 'data_type': 'float32',\n 'histogram': {'max': 1.6511273384094238,\n 'min': 0.0,\n 'count': 11.0,\n 'buckets': [64799.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0]},\n 'statistics': {'mean': 4.881064160144888e-05,\n 'stddev': 0.006545887794345617,\n 'maximum': 1.6511273384094238,\n 'minimum': 0.0,\n 'valid_percent': 0.00154320987654321}}],\n 'proj:geometry': {'type': 'Polygon',\n 'coordinates': [[[-180.5, -90.5],\n [179.5, -90.5],\n [179.5, 89.5],\n [-180.5, 89.5],\n [-180.5, -90.5]]]},\n 'proj:projjson': {'id': {'code': 4326.0, 'authority': 'EPSG'},\n 'name': 'WGS 84',\n 'type': 'GeographicCRS',\n 'datum': {'name': 'World Geodetic System 1984',\n 'type': 'GeodeticReferenceFrame',\n 'ellipsoid': {'name': 'WGS 84',\n 'semi_major_axis': 6378137.0,\n 'inverse_flattening': 298.257223563}},\n '$schema': 'https://proj.org/schemas/v0.4/projjson.schema.json',\n 'coordinate_system': {'axis': [{'name': 'Geodetic latitude',\n 'unit': 'degree',\n 'direction': 'north',\n 'abbreviation': 'Lat'},\n {'name': 'Geodetic longitude',\n 'unit': 'degree',\n 'direction': 'east',\n 'abbreviation': 'Lon'}],\n 'subtype': 'ellipsoidal'}},\n 'proj:transform': [1.0, 0.0, -180.5, 0.0, -1.0, 89.5, 0.0, 0.0, 1.0]},\n 'prior-oil-uncertainty': {'href': 's3://ghgc-data-store/gosat-based-ch4budget-yeargrid-v1/TopDownEmissions_GOSAT_prior_unc_oil_GEOS_CHEM_2019.tif',\n 'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'TBD',\n 'proj:bbox': [-180.5, -90.5, 179.5, 89.5],\n 'proj:epsg': 4326.0,\n 'proj:shape': [180.0, 360.0],\n 'description': 'TBD',\n 'raster:bands': [{'scale': 1.0,\n 'offset': 0.0,\n 'sampling': 'area',\n 'data_type': 'float32',\n 'histogram': {'max': 0.8458506464958191,\n 'min': 0.0,\n 'count': 11.0,\n 'buckets': [64787.0, 5.0, 5.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 2.0]},\n 'statistics': {'mean': 9.116153523791581e-05,\n 'stddev': 0.00547912297770381,\n 'maximum': 0.8458506464958191,\n 'minimum': 0.0,\n 'valid_percent': 0.00154320987654321}}],\n 'proj:geometry': {'type': 'Polygon',\n 'coordinates': [[[-180.5, -90.5],\n [179.5, -90.5],\n [179.5, 89.5],\n [-180.5, 89.5],\n [-180.5, -90.5]]]},\n 'proj:projjson': {'id': {'code': 4326.0, 'authority': 'EPSG'},\n 'name': 'WGS 84',\n 'type': 'GeographicCRS',\n 'datum': {'name': 'World Geodetic System 1984',\n 'type': 'GeodeticReferenceFrame',\n 'ellipsoid': {'name': 'WGS 84',\n 'semi_major_axis': 6378137.0,\n 'inverse_flattening': 298.257223563}},\n '$schema': 'https://proj.org/schemas/v0.4/projjson.schema.json',\n 'coordinate_system': {'axis': [{'name': 'Geodetic latitude',\n 'unit': 'degree',\n 'direction': 'north',\n 'abbreviation': 'Lat'},\n {'name': 'Geodetic longitude',\n 'unit': 'degree',\n 'direction': 'east',\n 'abbreviation': 'Lon'}],\n 'subtype': 'ellipsoidal'}},\n 'proj:transform': [1.0, 0.0, -180.5, 0.0, -1.0, 89.5, 0.0, 0.0, 1.0]},\n 'post-waste-uncertainty': {'href': 's3://ghgc-data-store/gosat-based-ch4budget-yeargrid-v1/TopDownEmissions_GOSAT_post_unc_waste_GEOS_CHEM_2019.tif',\n 'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'TBD',\n 'proj:bbox': [-180.5, -90.5, 179.5, 89.5],\n 'proj:epsg': 4326.0,\n 'proj:shape': [180.0, 360.0],\n 'description': 'TBD',\n 'raster:bands': [{'scale': 1.0,\n 'offset': 0.0,\n 'sampling': 'area',\n 'data_type': 'float32',\n 'histogram': {'max': 0.10136520117521286,\n 'min': 0.0,\n 'count': 11.0,\n 'buckets': [64759.0, 19.0, 6.0, 8.0, 2.0, 1.0, 2.0, 0.0, 1.0, 2.0]},\n 'statistics': {'mean': 3.903839024133049e-05,\n 'stddev': 0.0009961748728528619,\n 'maximum': 0.10136520117521286,\n 'minimum': 0.0,\n 'valid_percent': 0.00154320987654321}}],\n 'proj:geometry': {'type': 'Polygon',\n 'coordinates': [[[-180.5, -90.5],\n [179.5, -90.5],\n [179.5, 89.5],\n [-180.5, 89.5],\n [-180.5, -90.5]]]},\n 'proj:projjson': {'id': {'code': 4326.0, 'authority': 'EPSG'},\n 'name': 'WGS 84',\n 'type': 'GeographicCRS',\n 'datum': {'name': 'World Geodetic System 1984',\n 'type': 'GeodeticReferenceFrame',\n 'ellipsoid': {'name': 'WGS 84',\n 'semi_major_axis': 6378137.0,\n 'inverse_flattening': 298.257223563}},\n '$schema': 'https://proj.org/schemas/v0.4/projjson.schema.json',\n 'coordinate_system': {'axis': [{'name': 'Geodetic latitude',\n 'unit': 'degree',\n 'direction': 'north',\n 'abbreviation': 'Lat'},\n {'name': 'Geodetic longitude',\n 'unit': 'degree',\n 'direction': 'east',\n 'abbreviation': 'Lon'}],\n 'subtype': 'ellipsoidal'}},\n 'proj:transform': [1.0, 0.0, -180.5, 0.0, -1.0, 89.5, 0.0, 0.0, 1.0]},\n 'prior-coal-uncertainty': {'href': 's3://ghgc-data-store/gosat-based-ch4budget-yeargrid-v1/TopDownEmissions_GOSAT_prior_unc_coal_GEOS_CHEM_2019.tif',\n 'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'TBD',\n 'proj:bbox': [-180.5, -90.5, 179.5, 89.5],\n 'proj:epsg': 4326.0,\n 'proj:shape': [180.0, 360.0],\n 'description': 'TBD',\n 'raster:bands': [{'scale': 1.0,\n 'offset': 0.0,\n 'sampling': 'area',\n 'data_type': 'float32',\n 'histogram': {'max': 0.9433419704437256,\n 'min': 0.0,\n 'count': 11.0,\n 'buckets': [64785.0, 5.0, 4.0, 2.0, 1.0, 2.0, 0.0, 0.0, 0.0, 1.0]},\n 'statistics': {'mean': 9.546576620778069e-05,\n 'stddev': 0.00589930871501565,\n 'maximum': 0.9433419704437256,\n 'minimum': 0.0,\n 'valid_percent': 0.00154320987654321}}],\n 'proj:geometry': {'type': 'Polygon',\n 'coordinates': [[[-180.5, -90.5],\n [179.5, -90.5],\n [179.5, 89.5],\n [-180.5, 89.5],\n [-180.5, -90.5]]]},\n 'proj:projjson': {'id': {'code': 4326.0, 'authority': 'EPSG'},\n 'name': 'WGS 84',\n 'type': 'GeographicCRS',\n 'datum': {'name': 'World Geodetic System 1984',\n 'type': 'GeodeticReferenceFrame',\n 'ellipsoid': {'name': 'WGS 84',\n 'semi_major_axis': 6378137.0,\n 'inverse_flattening': 298.257223563}},\n '$schema': 'https://proj.org/schemas/v0.4/projjson.schema.json',\n 'coordinate_system': {'axis': [{'name': 'Geodetic latitude',\n 'unit': 'degree',\n 'direction': 'north',\n 'abbreviation': 'Lat'},\n {'name': 'Geodetic longitude',\n 'unit': 'degree',\n 'direction': 'east',\n 'abbreviation': 'Lon'}],\n 'subtype': 'ellipsoidal'}},\n 'proj:transform': [1.0, 0.0, -180.5, 0.0, -1.0, 89.5, 0.0, 0.0, 1.0]},\n 'prior-rice-uncertainty': {'href': 's3://ghgc-data-store/gosat-based-ch4budget-yeargrid-v1/TopDownEmissions_GOSAT_prior_unc_rice_GEOS_CHEM_2019.tif',\n 'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'TBD',\n 'proj:bbox': [-180.5, -90.5, 179.5, 89.5],\n 'proj:epsg': 4326.0,\n 'proj:shape': [180.0, 360.0],\n 'description': 'TBD',\n 'raster:bands': [{'scale': 1.0,\n 'offset': 0.0,\n 'sampling': 'area',\n 'data_type': 'float32',\n 'histogram': {'max': 0.2505281865596771,\n 'min': 0.0,\n 'count': 11.0,\n 'buckets': [64710.0, 52.0, 26.0, 5.0, 3.0, 3.0, 0.0, 0.0, 0.0, 1.0]},\n 'statistics': {'mean': 0.00012143573985667899,\n 'stddev': 0.002463066717609763,\n 'maximum': 0.2505281865596771,\n 'minimum': 0.0,\n 'valid_percent': 0.00154320987654321}}],\n 'proj:geometry': {'type': 'Polygon',\n 'coordinates': [[[-180.5, -90.5],\n [179.5, -90.5],\n [179.5, 89.5],\n [-180.5, 89.5],\n [-180.5, -90.5]]]},\n 'proj:projjson': {'id': {'code': 4326.0, 'authority': 'EPSG'},\n 'name': 'WGS 84',\n 'type': 'GeographicCRS',\n 'datum': {'name': 'World Geodetic System 1984',\n 'type': 'GeodeticReferenceFrame',\n 'ellipsoid': {'name': 'WGS 84',\n 'semi_major_axis': 6378137.0,\n 'inverse_flattening': 298.257223563}},\n '$schema': 'https://proj.org/schemas/v0.4/projjson.schema.json',\n 'coordinate_system': {'axis': [{'name': 'Geodetic latitude',\n 'unit': 'degree',\n 'direction': 'north',\n 'abbreviation': 'Lat'},\n {'name': 'Geodetic longitude',\n 'unit': 'degree',\n 'direction': 'east',\n 'abbreviation': 'Lon'}],\n 'subtype': 'ellipsoidal'}},\n 'proj:transform': [1.0, 0.0, -180.5, 0.0, -1.0, 89.5, 0.0, 0.0, 1.0]},\n 'prior-waste-uncertainty': {'href': 's3://ghgc-data-store/gosat-based-ch4budget-yeargrid-v1/TopDownEmissions_GOSAT_prior_unc_waste_GEOS_CHEM_2019.tif',\n 'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'TBD',\n 'proj:bbox': [-180.5, -90.5, 179.5, 89.5],\n 'proj:epsg': 4326.0,\n 'proj:shape': [180.0, 360.0],\n 'description': 'TBD',\n 'raster:bands': [{'scale': 1.0,\n 'offset': 0.0,\n 'sampling': 'area',\n 'data_type': 'float32',\n 'histogram': {'max': 1.3018296957015991,\n 'min': 0.0,\n 'count': 11.0,\n 'buckets': [64793.0, 4.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 1.0]},\n 'statistics': {'mean': 0.0001001738928607665,\n 'stddev': 0.006979630794376135,\n 'maximum': 1.3018296957015991,\n 'minimum': 0.0,\n 'valid_percent': 0.00154320987654321}}],\n 'proj:geometry': {'type': 'Polygon',\n 'coordinates': [[[-180.5, -90.5],\n [179.5, -90.5],\n [179.5, 89.5],\n [-180.5, 89.5],\n [-180.5, -90.5]]]},\n 'proj:projjson': {'id': {'code': 4326.0, 'authority': 'EPSG'},\n 'name': 'WGS 84',\n 'type': 'GeographicCRS',\n 'datum': {'name': 'World Geodetic System 1984',\n 'type': 'GeodeticReferenceFrame',\n 'ellipsoid': {'name': 'WGS 84',\n 'semi_major_axis': 6378137.0,\n 'inverse_flattening': 298.257223563}},\n '$schema': 'https://proj.org/schemas/v0.4/projjson.schema.json',\n 'coordinate_system': {'axis': [{'name': 'Geodetic latitude',\n 'unit': 'degree',\n 'direction': 'north',\n 'abbreviation': 'Lat'},\n {'name': 'Geodetic longitude',\n 'unit': 'degree',\n 'direction': 'east',\n 'abbreviation': 'Lon'}],\n 'subtype': 'ellipsoidal'}},\n 'proj:transform': [1.0, 0.0, -180.5, 0.0, -1.0, 89.5, 0.0, 0.0, 1.0]},\n 'post-wetland-uncertainty': {'href': 's3://ghgc-data-store/gosat-based-ch4budget-yeargrid-v1/TopDownEmissions_GOSAT_post_unc_wetland_GEOS_CHEM_2019.tif',\n 'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'TBD',\n 'proj:bbox': [-180.5, -90.5, 179.5, 89.5],\n 'proj:epsg': 4326.0,\n 'proj:shape': [180.0, 360.0],\n 'description': 'TBD',\n 'raster:bands': [{'scale': 1.0,\n 'offset': 0.0,\n 'sampling': 'area',\n 'data_type': 'float32',\n 'histogram': {'max': 0.36633968353271484,\n 'min': 0.0,\n 'count': 11.0,\n 'buckets': [64677.0, 68.0, 19.0, 14.0, 5.0, 8.0, 3.0, 4.0, 0.0, 2.0]},\n 'statistics': {'mean': 0.00034577888436615467,\n 'stddev': 0.005308355204761028,\n 'maximum': 0.36633968353271484,\n 'minimum': 0.0,\n 'valid_percent': 0.00154320987654321}}],\n 'proj:geometry': {'type': 'Polygon',\n 'coordinates': [[[-180.5, -90.5],\n [179.5, -90.5],\n [179.5, 89.5],\n [-180.5, 89.5],\n [-180.5, -90.5]]]},\n 'proj:projjson': {'id': {'code': 4326.0, 'authority': 'EPSG'},\n 'name': 'WGS 84',\n 'type': 'GeographicCRS',\n 'datum': {'name': 'World Geodetic System 1984',\n 'type': 'GeodeticReferenceFrame',\n 'ellipsoid': {'name': 'WGS 84',\n 'semi_major_axis': 6378137.0,\n 'inverse_flattening': 298.257223563}},\n '$schema': 'https://proj.org/schemas/v0.4/projjson.schema.json',\n 'coordinate_system': {'axis': [{'name': 'Geodetic latitude',\n 'unit': 'degree',\n 'direction': 'north',\n 'abbreviation': 'Lat'},\n {'name': 'Geodetic longitude',\n 'unit': 'degree',\n 'direction': 'east',\n 'abbreviation': 'Lon'}],\n 'subtype': 'ellipsoidal'}},\n 'proj:transform': [1.0, 0.0, -180.5, 0.0, -1.0, 89.5, 0.0, 0.0, 1.0]},\n 'prior-wetland-uncertainty': {'href': 's3://ghgc-data-store/gosat-based-ch4budget-yeargrid-v1/TopDownEmissions_GOSAT_prior_unc_wetland_GEOS_CHEM_2019.tif',\n 'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'TBD',\n 'proj:bbox': [-180.5, -90.5, 179.5, 89.5],\n 'proj:epsg': 4326.0,\n 'proj:shape': [180.0, 360.0],\n 'description': 'TBD',\n 'raster:bands': [{'scale': 1.0,\n 'offset': 0.0,\n 'sampling': 'area',\n 'data_type': 'float32',\n 'histogram': {'max': 1.5251290798187256,\n 'min': 0.0,\n 'count': 11.0,\n 'buckets': [64704.0, 49.0, 21.0, 11.0, 2.0, 3.0, 3.0, 3.0, 1.0, 3.0]},\n 'statistics': {'mean': 0.0009943766053766012,\n 'stddev': 0.020392030477523804,\n 'maximum': 1.5251290798187256,\n 'minimum': 0.0,\n 'valid_percent': 0.00154320987654321}}],\n 'proj:geometry': {'type': 'Polygon',\n 'coordinates': [[[-180.5, -90.5],\n [179.5, -90.5],\n [179.5, 89.5],\n [-180.5, 89.5],\n [-180.5, -90.5]]]},\n 'proj:projjson': {'id': {'code': 4326.0, 'authority': 'EPSG'},\n 'name': 'WGS 84',\n 'type': 'GeographicCRS',\n 'datum': {'name': 'World Geodetic System 1984',\n 'type': 'GeodeticReferenceFrame',\n 'ellipsoid': {'name': 'WGS 84',\n 'semi_major_axis': 6378137.0,\n 'inverse_flattening': 298.257223563}},\n '$schema': 'https://proj.org/schemas/v0.4/projjson.schema.json',\n 'coordinate_system': {'axis': [{'name': 'Geodetic latitude',\n 'unit': 'degree',\n 'direction': 'north',\n 'abbreviation': 'Lat'},\n {'name': 'Geodetic longitude',\n 'unit': 'degree',\n 'direction': 'east',\n 'abbreviation': 'Lon'}],\n 'subtype': 'ellipsoidal'}},\n 'proj:transform': [1.0, 0.0, -180.5, 0.0, -1.0, 89.5, 0.0, 0.0, 1.0]},\n 'post-livestock-uncertainty': {'href': 's3://ghgc-data-store/gosat-based-ch4budget-yeargrid-v1/TopDownEmissions_GOSAT_post_unc_livestock_GEOS_CHEM_2019.tif',\n 'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'TBD',\n 'proj:bbox': [-180.5, -90.5, 179.5, 89.5],\n 'proj:epsg': 4326.0,\n 'proj:shape': [180.0, 360.0],\n 'description': 'TBD',\n 'raster:bands': [{'scale': 1.0,\n 'offset': 0.0,\n 'sampling': 'area',\n 'data_type': 'float32',\n 'histogram': {'max': 0.016047537326812744,\n 'min': 0.0,\n 'count': 11.0,\n 'buckets': [64206.0,\n 360.0,\n 119.0,\n 35.0,\n 30.0,\n 20.0,\n 14.0,\n 9.0,\n 6.0,\n 1.0]},\n 'statistics': {'mean': 5.696367225027643e-05,\n 'stddev': 0.00044628031901083887,\n 'maximum': 0.016047537326812744,\n 'minimum': 0.0,\n 'valid_percent': 0.00154320987654321}}],\n 'proj:geometry': {'type': 'Polygon',\n 'coordinates': [[[-180.5, -90.5],\n [179.5, -90.5],\n [179.5, 89.5],\n [-180.5, 89.5],\n [-180.5, -90.5]]]},\n 'proj:projjson': {'id': {'code': 4326.0, 'authority': 'EPSG'},\n 'name': 'WGS 84',\n 'type': 'GeographicCRS',\n 'datum': {'name': 'World Geodetic System 1984',\n 'type': 'GeodeticReferenceFrame',\n 'ellipsoid': {'name': 'WGS 84',\n 'semi_major_axis': 6378137.0,\n 'inverse_flattening': 298.257223563}},\n '$schema': 'https://proj.org/schemas/v0.4/projjson.schema.json',\n 'coordinate_system': {'axis': [{'name': 'Geodetic latitude',\n 'unit': 'degree',\n 'direction': 'north',\n 'abbreviation': 'Lat'},\n {'name': 'Geodetic longitude',\n 'unit': 'degree',\n 'direction': 'east',\n 'abbreviation': 'Lon'}],\n 'subtype': 'ellipsoidal'}},\n 'proj:transform': [1.0, 0.0, -180.5, 0.0, -1.0, 89.5, 0.0, 0.0, 1.0]},\n 'prior-livestock-uncertainty': {'href': 's3://ghgc-data-store/gosat-based-ch4budget-yeargrid-v1/TopDownEmissions_GOSAT_prior_unc_livestock_GEOS_CHEM_2019.tif',\n 'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'TBD',\n 'proj:bbox': [-180.5, -90.5, 179.5, 89.5],\n 'proj:epsg': 4326.0,\n 'proj:shape': [180.0, 360.0],\n 'description': 'TBD',\n 'raster:bands': [{'scale': 1.0,\n 'offset': 0.0,\n 'sampling': 'area',\n 'data_type': 'float32',\n 'histogram': {'max': 0.021834801882505417,\n 'min': 0.0,\n 'count': 11.0,\n 'buckets': [64219.0,\n 326.0,\n 127.0,\n 34.0,\n 19.0,\n 25.0,\n 25.0,\n 17.0,\n 5.0,\n 3.0]},\n 'statistics': {'mean': 7.657577225472778e-05,\n 'stddev': 0.0006582040223293006,\n 'maximum': 0.021834801882505417,\n 'minimum': 0.0,\n 'valid_percent': 0.00154320987654321}}],\n 'proj:geometry': {'type': 'Polygon',\n 'coordinates': [[[-180.5, -90.5],\n [179.5, -90.5],\n [179.5, 89.5],\n [-180.5, 89.5],\n [-180.5, -90.5]]]},\n 'proj:projjson': {'id': {'code': 4326.0, 'authority': 'EPSG'},\n 'name': 'WGS 84',\n 'type': 'GeographicCRS',\n 'datum': {'name': 'World Geodetic System 1984',\n 'type': 'GeodeticReferenceFrame',\n 'ellipsoid': {'name': 'WGS 84',\n 'semi_major_axis': 6378137.0,\n 'inverse_flattening': 298.257223563}},\n '$schema': 'https://proj.org/schemas/v0.4/projjson.schema.json',\n 'coordinate_system': {'axis': [{'name': 'Geodetic latitude',\n 'unit': 'degree',\n 'direction': 'north',\n 'abbreviation': 'Lat'},\n {'name': 'Geodetic longitude',\n 'unit': 'degree',\n 'direction': 'east',\n 'abbreviation': 'Lon'}],\n 'subtype': 'ellipsoidal'}},\n 'proj:transform': [1.0, 0.0, -180.5, 0.0, -1.0, 89.5, 0.0, 0.0, 1.0]}},\n 'geometry': {'type': 'Polygon',\n 'coordinates': [[[-180.5, -90.5],\n [179.5, -90.5],\n [179.5, 89.5],\n [-180.5, 89.5],\n [-180.5, -90.5]]]},\n 'collection': 'gosat-based-ch4budget-yeargrid-v1',\n 'properties': {'end_datetime': '2019-12-31T00:00:00+00:00',\n 'start_datetime': '2019-01-01T00:00:00+00:00'},\n 'stac_version': '1.0.0',\n 'stac_extensions': []}\n\n\nBelow, we enter minimum and maximum values to provide our upper and lower bounds in rescale_values."
},
{
"objectID": "user_data_notebooks/gosat-based-ch4budget-yeargrid-v1_User_Notebook.html#exploring-changes-in-gosat-methane-budgets-ch4-levels-using-the-raster-api",
"href": "user_data_notebooks/gosat-based-ch4budget-yeargrid-v1_User_Notebook.html#exploring-changes-in-gosat-methane-budgets-ch4-levels-using-the-raster-api",
"title": "GOSAT-based Top-down Total and Natural Methane Emissions",
"section": "Exploring Changes in GOSAT Methane budgets (CH4) Levels Using the Raster API",
- "text": "Exploring Changes in GOSAT Methane budgets (CH4) Levels Using the Raster API\nIn this notebook, we will explore the impacts of methane emissions and by examining changes over time in urban regions. We will visualize the outputs on a map using folium.\n\n# To access the year value from each item more easily, this will let us query more explicity by year and month (e.g., 2020-02)\nitems = {item[\"properties\"][\"start_datetime\"][:10]: item for item in items} \nasset_name = \"prior-total\"\n\n\n# Fetching the min and max values for a specific item\nrescale_values = {\"max\":items[list(items.keys())[0]][\"assets\"][asset_name][\"raster:bands\"][0][\"histogram\"][\"max\"], \"min\":items[list(items.keys())[0]][\"assets\"][asset_name][\"raster:bands\"][0][\"histogram\"][\"min\"]}\n\n\nitems.keys()\n\ndict_keys(['2019-01-01'])\n\n\nNow, we will pass the item id, collection name, and rescaling_factor to the Raster API endpoint. We will do this for first January 2019.\n\ncolor_map = \"rainbow\" # please select the color ramp from matplotlib library.\njanuary_2019_tile = requests.get(\n f\"{RASTER_API_URL}/stac/tilejson.json?collection={items['2019-01-01']['collection']}&item={items['2019-01-01']['id']}\"\n f\"&assets={asset_name}\"\n f\"&color_formula=gamma+r+1.05&colormap_name={color_map}\"\n f\"&rescale={rescale_values['min']},{rescale_values['max']}\", \n).json()\njanuary_2019_tile\n\n{'tilejson': '2.2.0',\n 'version': '1.0.0',\n 'scheme': 'xyz',\n 'tiles': ['https://1w7hfngnp7.execute-api.us-west-2.amazonaws.com/api/raster/stac/tiles/WebMercatorQuad/{z}/{x}/{y}@1x?collection=gosat-based-ch4budget-yeargrid-v1&item=gosat-based-ch4budget-yeargrid-v1-2019&assets=prior-total&color_formula=gamma+r+1.05&colormap_name=rainbow&rescale=0.0%2C2.121816635131836'],\n 'minzoom': 0,\n 'maxzoom': 24,\n 'bounds': [-180.5, -90.5, 179.5, 89.5],\n 'center': [-0.5, -0.5, 0]}"
+ "text": "Exploring Changes in GOSAT Methane budgets (CH4) Levels Using the Raster API\nIn this notebook, we will explore the impacts of methane emissions and by examining changes over time in urban regions. We will visualize the outputs on a map using folium.\n\n# To access the year value from each item more easily, this will let us query more explicity by year and month (e.g., 2020-02)\nitems = {item[\"properties\"][\"start_datetime\"][:10]: item for item in items} \nasset_name = \"prior-total\"\n\n\n# Fetching the min and max values for a specific item\nrescale_values = {\"max\":items[list(items.keys())[0]][\"assets\"][asset_name][\"raster:bands\"][0][\"histogram\"][\"max\"], \"min\":items[list(items.keys())[0]][\"assets\"][asset_name][\"raster:bands\"][0][\"histogram\"][\"min\"]}\n\n\nitems.keys()\n\ndict_keys(['2019-01-01'])\n\n\nNow, we will pass the item id, collection name, and rescaling_factor to the Raster API endpoint. We will do this for first January 2019.\n\ncolor_map = \"rainbow\" # please select the color ramp from matplotlib library.\njanuary_2019_tile = requests.get(\n f\"{RASTER_API_URL}/stac/tilejson.json?collection={items['2019-01-01']['collection']}&item={items['2019-01-01']['id']}\"\n f\"&assets={asset_name}\"\n f\"&color_formula=gamma+r+1.05&colormap_name={color_map}\"\n f\"&rescale={rescale_values['min']},{rescale_values['max']}\", \n).json()\njanuary_2019_tile\n\n{'tilejson': '2.2.0',\n 'version': '1.0.0',\n 'scheme': 'xyz',\n 'tiles': ['https://ghg.center/api/raster/stac/tiles/WebMercatorQuad/{z}/{x}/{y}@1x?collection=gosat-based-ch4budget-yeargrid-v1&item=gosat-based-ch4budget-yeargrid-v1-2019&assets=prior-total&color_formula=gamma+r+1.05&colormap_name=rainbow&rescale=0.0%2C2.121816635131836'],\n 'minzoom': 0,\n 'maxzoom': 24,\n 'bounds': [-180.5, -90.5, 179.5, 89.5],\n 'center': [-0.5, -0.5, 0]}"
},
{
"objectID": "user_data_notebooks/gosat-based-ch4budget-yeargrid-v1_User_Notebook.html#visualizing-ch₄-emissions",
@@ -865,35 +865,35 @@
"href": "user_data_notebooks/sedac-popdensity-yeargrid5yr-v4.11_User_Notebook.html#querying-the-stac-api",
"title": "SEDAC Gridded World Population Density",
"section": "Querying the STAC API",
- "text": "Querying the STAC API\n\nimport requests\nfrom folium import Map, TileLayer\nfrom pystac_client import Client\n\n\n# Provide STAC and RASTER API endpoints\nSTAC_API_URL = \"http://ghg.center/api/stac\"\nRASTER_API_URL = \"https://ghg.center/api/raster\"\n\n#Please use the collection name similar to the one used in STAC collection.\n# Name of the collection for SEDAC population density dataset. \ncollection_name = \"sedac-popdensity-yeargrid5yr-v4.11\"\n\n\n# Fetching the collection from STAC collections using appropriate endpoint.\ncollection = requests.get(f\"{STAC_API_URL}/collections/{collection_name}\").json()\ncollection\n\nExamining the contents of our collection under summaries we see that the data is available from January 2000 to December 2020. By looking at the dashboard:time density we observe that the data is available for the years 2000, 2005, 2010, 2015, 2020.\n\ndef get_item_count(collection_id):\n count = 0\n items_url = f\"{STAC_API_URL}/collections/{collection_id}/items\"\n\n while True:\n response = requests.get(items_url)\n\n if not response.ok:\n print(\"error getting items\")\n exit()\n\n stac = response.json()\n count += int(stac[\"context\"].get(\"returned\", 0))\n next = [link for link in stac[\"links\"] if link[\"rel\"] == \"next\"]\n\n if not next:\n break\n items_url = next[0][\"href\"]\n\n return count\n\n\n# Check total number of items available\nnumber_of_items = get_item_count(collection_name)\nitems = requests.get(f\"{STAC_API_URL}/collections/{collection_name}/items?limit={number_of_items}\").json()[\"features\"]\nprint(f\"Found {len(items)} items\")\n\n\nitems[0]\n\nBelow, we are entering the minimum and maximum values to provide our upper and lower bounds in rescale_values."
+ "text": "Querying the STAC API\n\nimport requests\nfrom folium import Map, TileLayer\nfrom pystac_client import Client\n\n\n# Provide STAC and RASTER API endpoints\nSTAC_API_URL = \"http://ghg.center/api/stac\"\nRASTER_API_URL = \"https://ghg.center/api/raster\"\n\n#Please use the collection name similar to the one used in STAC collection.\n# Name of the collection for SEDAC population density dataset. \ncollection_name = \"sedac-popdensity-yeargrid5yr-v4.11\"\n\n\n# Fetching the collection from STAC collections using appropriate endpoint.\ncollection = requests.get(f\"{STAC_API_URL}/collections/{collection_name}\").json()\ncollection\n\n{'id': 'sedac-popdensity-yeargrid5yr-v4.11',\n 'type': 'Collection',\n 'links': [{'rel': 'items',\n 'type': 'application/geo+json',\n 'href': 'https://ghg.center/api/stac/collections/sedac-popdensity-yeargrid5yr-v4.11/items'},\n {'rel': 'parent',\n 'type': 'application/json',\n 'href': 'https://ghg.center/api/stac/'},\n {'rel': 'root',\n 'type': 'application/json',\n 'href': 'https://ghg.center/api/stac/'},\n {'rel': 'self',\n 'type': 'application/json',\n 'href': 'https://ghg.center/api/stac/collections/sedac-popdensity-yeargrid5yr-v4.11'}],\n 'title': 'SEDAC Gridded World Population Data',\n 'assets': None,\n 'extent': {'spatial': {'bbox': [[-180, -90, 180, 90]]},\n 'temporal': {'interval': [['2000-01-01T00:00:00+00:00',\n '2020-12-31T00:00:00+00:00']]}},\n 'license': 'CC-BY-4.0',\n 'keywords': None,\n 'providers': None,\n 'summaries': {'datetime': ['2000-01-01T00:00:00Z',\n '2005-01-01T00:00:00Z',\n '2010-01-01T00:00:00Z',\n '2015-01-01T00:00:00Z',\n '2020-01-01T00:00:00Z']},\n 'description': 'The Gridded Population of the World, Version 4 (GPWv4): Population Density, Revision 11 consists of estimates of human population density (number of persons per square kilometer) based on counts consistent with national censuses and population registers, for the years 2000, 2005, 2010, 2015, and 2020. ',\n 'item_assets': {'population-density': {'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'Population density',\n 'description': 'Provides estimates of population density based on counts consistent with national censuses and population registers'}},\n 'stac_version': '1.0.0',\n 'stac_extensions': None,\n 'dashboard:is_periodic': False,\n 'dashboard:time_density': 'year'}\n\n\nExamining the contents of our collection under summaries we see that the data is available from January 2000 to December 2020. By looking at the dashboard:time density we observe that the data is available for the years 2000, 2005, 2010, 2015, 2020.\n\ndef get_item_count(collection_id):\n count = 0\n items_url = f\"{STAC_API_URL}/collections/{collection_id}/items\"\n\n while True:\n response = requests.get(items_url)\n\n if not response.ok:\n print(\"error getting items\")\n exit()\n\n stac = response.json()\n count += int(stac[\"context\"].get(\"returned\", 0))\n next = [link for link in stac[\"links\"] if link[\"rel\"] == \"next\"]\n\n if not next:\n break\n items_url = next[0][\"href\"]\n\n return count\n\n\n# Check total number of items available\nnumber_of_items = get_item_count(collection_name)\nitems = requests.get(f\"{STAC_API_URL}/collections/{collection_name}/items?limit={number_of_items}\").json()[\"features\"]\nprint(f\"Found {len(items)} items\")\n\nFound 5 items\n\n\n\nitems[0]\n\n{'id': 'sedac-popdensity-yeargrid5yr-v4.11-2020',\n 'bbox': [-180.0, -90.0, 179.99999999999983, 89.99999999999991],\n 'type': 'Feature',\n 'links': [{'rel': 'collection',\n 'type': 'application/json',\n 'href': 'https://ghg.center/api/stac/collections/sedac-popdensity-yeargrid5yr-v4.11'},\n {'rel': 'parent',\n 'type': 'application/json',\n 'href': 'https://ghg.center/api/stac/collections/sedac-popdensity-yeargrid5yr-v4.11'},\n {'rel': 'root',\n 'type': 'application/json',\n 'href': 'https://ghg.center/api/stac/'},\n {'rel': 'self',\n 'type': 'application/geo+json',\n 'href': 'https://ghg.center/api/stac/collections/sedac-popdensity-yeargrid5yr-v4.11/items/sedac-popdensity-yeargrid5yr-v4.11-2020'}],\n 'assets': {'population-density': {'href': 's3://ghgc-data-store/sedac-popdensity-yeargrid5yr-v4.11/gpw_v4_population_density_rev11_2020_30_sec_2020.tif',\n 'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'Population density',\n 'proj:bbox': [-180.0, -90.0, 179.99999999999983, 89.99999999999991],\n 'proj:epsg': 4326.0,\n 'proj:shape': [21600.0, 43200.0],\n 'description': 'Provides estimates of population density based on counts consistent with national censuses and population registers',\n 'raster:bands': [{'scale': 1.0,\n 'nodata': -3.4028230607370965e+38,\n 'offset': 0.0,\n 'sampling': 'area',\n 'data_type': 'float32',\n 'histogram': {'max': 30795.859375,\n 'min': -1505.7174072265625,\n 'count': 11.0,\n 'buckets': [129008.0, 362.0, 52.0, 22.0, 7.0, 2.0, 2.0, 0.0, 1.0, 1.0]},\n 'statistics': {'mean': 55.30964721876762,\n 'stddev': 319.5376065398882,\n 'maximum': 30795.859375,\n 'minimum': -1505.7174072265625,\n 'valid_percent': 24.69196319580078}}],\n 'proj:geometry': {'type': 'Polygon',\n 'coordinates': [[[-180.0, -90.0],\n [179.99999999999983, -90.0],\n [179.99999999999983, 89.99999999999991],\n [-180.0, 89.99999999999991],\n [-180.0, -90.0]]]},\n 'proj:projjson': {'id': {'code': 4326.0, 'authority': 'EPSG'},\n 'name': 'WGS 84',\n 'type': 'GeographicCRS',\n 'datum': {'name': 'World Geodetic System 1984',\n 'type': 'GeodeticReferenceFrame',\n 'ellipsoid': {'name': 'WGS 84',\n 'semi_major_axis': 6378137.0,\n 'inverse_flattening': 298.257223563}},\n '$schema': 'https://proj.org/schemas/v0.4/projjson.schema.json',\n 'coordinate_system': {'axis': [{'name': 'Geodetic latitude',\n 'unit': 'degree',\n 'direction': 'north',\n 'abbreviation': 'Lat'},\n {'name': 'Geodetic longitude',\n 'unit': 'degree',\n 'direction': 'east',\n 'abbreviation': 'Lon'}],\n 'subtype': 'ellipsoidal'}},\n 'proj:transform': [0.00833333333333333,\n 0.0,\n -180.0,\n 0.0,\n -0.00833333333333333,\n 89.99999999999991,\n 0.0,\n 0.0,\n 1.0]}},\n 'geometry': {'type': 'Polygon',\n 'coordinates': [[[-180, -90],\n [179.99999999999983, -90],\n [179.99999999999983, 89.99999999999991],\n [-180, 89.99999999999991],\n [-180, -90]]]},\n 'collection': 'sedac-popdensity-yeargrid5yr-v4.11',\n 'properties': {'end_datetime': '2020-12-31T00:00:00+00:00',\n 'start_datetime': '2020-01-01T00:00:00+00:00'},\n 'stac_version': '1.0.0',\n 'stac_extensions': []}\n\n\nBelow, we are entering the minimum and maximum values to provide our upper and lower bounds in rescale_values."
},
{
"objectID": "user_data_notebooks/sedac-popdensity-yeargrid5yr-v4.11_User_Notebook.html#exploring-changes-in-the-world-population-density-using-the-raster-api",
"href": "user_data_notebooks/sedac-popdensity-yeargrid5yr-v4.11_User_Notebook.html#exploring-changes-in-the-world-population-density-using-the-raster-api",
"title": "SEDAC Gridded World Population Density",
"section": "Exploring Changes in the World Population Density using the Raster API",
- "text": "Exploring Changes in the World Population Density using the Raster API\nWe will explore changes in population density in urban regions. In this notebook, we’ll explore the changes in population density over time. We’ll then visualize the outputs on a map using folium.\n\n# to access the year value from each item more easily, this will let us query more explicity by year and month (e.g., 2020-02)\nitems = {item[\"properties\"][\"start_datetime\"][:7]: item for item in items} \nasset_name = \"population-density\"\n\n\nrescale_values = {\"max\":items[list(items.keys())[0]][\"assets\"][asset_name][\"raster:bands\"][0][\"histogram\"][\"max\"], \"min\":items[list(items.keys())[0]][\"assets\"][asset_name][\"raster:bands\"][0][\"histogram\"][\"min\"]}\n\nNow we will pass the item id, collection name, and rescaling_factor to the Raster API endpoint. We will do this twice, once for January 2000 and again for January 2020, so that we can visualize each event independently.\n\ncolor_map = \"rainbow\" # please select the color ramp from matplotlib library.\njanuary_2020_tile = requests.get(\n f\"{RASTER_API_URL}/stac/tilejson.json?collection={items['2020-01']['collection']}&item={items['2020-01']['id']}\"\n f\"&assets={asset_name}\"\n f\"&color_formula=gamma+r+1.05&colormap_name={color_map}\"\n f\"&rescale={rescale_values['min']},{rescale_values['max']}\", \n).json()\njanuary_2020_tile\n\n\njanuary_2000_tile = requests.get(\n f\"{RASTER_API_URL}/stac/tilejson.json?collection={items['2000-01']['collection']}&item={items['2000-01']['id']}\"\n f\"&assets={asset_name}\"\n f\"&color_formula=gamma+r+1.05&colormap_name={color_map}\"\n f\"&rescale={rescale_values['min']},{rescale_values['max']}\", \n).json()\njanuary_2000_tile"
+ "text": "Exploring Changes in the World Population Density using the Raster API\nWe will explore changes in population density in urban regions. In this notebook, we’ll explore the changes in population density over time. We’ll then visualize the outputs on a map using folium.\n\n# to access the year value from each item more easily, this will let us query more explicity by year and month (e.g., 2020-02)\nitems = {item[\"properties\"][\"start_datetime\"][:7]: item for item in items} \nasset_name = \"population-density\"\n\n\nrescale_values = {\"max\":items[list(items.keys())[0]][\"assets\"][asset_name][\"raster:bands\"][0][\"histogram\"][\"max\"], \"min\":items[list(items.keys())[0]][\"assets\"][asset_name][\"raster:bands\"][0][\"histogram\"][\"min\"]}\n\nNow we will pass the item id, collection name, and rescaling_factor to the Raster API endpoint. We will do this twice, once for January 2000 and again for January 2020, so that we can visualize each event independently.\n\ncolor_map = \"rainbow\" # please select the color ramp from matplotlib library.\njanuary_2020_tile = requests.get(\n f\"{RASTER_API_URL}/stac/tilejson.json?collection={items['2020-01']['collection']}&item={items['2020-01']['id']}\"\n f\"&assets={asset_name}\"\n f\"&color_formula=gamma+r+1.05&colormap_name={color_map}\"\n f\"&rescale={rescale_values['min']},{rescale_values['max']}\", \n).json()\njanuary_2020_tile\n\n{'tilejson': '2.2.0',\n 'version': '1.0.0',\n 'scheme': 'xyz',\n 'tiles': ['https://ghg.center/api/raster/stac/tiles/WebMercatorQuad/{z}/{x}/{y}@1x?collection=sedac-popdensity-yeargrid5yr-v4.11&item=sedac-popdensity-yeargrid5yr-v4.11-2020&assets=population-density&color_formula=gamma+r+1.05&colormap_name=rainbow&rescale=-1505.7174072265625%2C30795.859375'],\n 'minzoom': 0,\n 'maxzoom': 24,\n 'bounds': [-180.0, -90.0, 179.99999999999983, 89.99999999999991],\n 'center': [-8.526512829121202e-14, -4.263256414560601e-14, 0]}\n\n\n\njanuary_2000_tile = requests.get(\n f\"{RASTER_API_URL}/stac/tilejson.json?collection={items['2000-01']['collection']}&item={items['2000-01']['id']}\"\n f\"&assets={asset_name}\"\n f\"&color_formula=gamma+r+1.05&colormap_name={color_map}\"\n f\"&rescale={rescale_values['min']},{rescale_values['max']}\", \n).json()\njanuary_2000_tile\n\n{'tilejson': '2.2.0',\n 'version': '1.0.0',\n 'scheme': 'xyz',\n 'tiles': ['https://ghg.center/api/raster/stac/tiles/WebMercatorQuad/{z}/{x}/{y}@1x?collection=sedac-popdensity-yeargrid5yr-v4.11&item=sedac-popdensity-yeargrid5yr-v4.11-2000&assets=population-density&color_formula=gamma+r+1.05&colormap_name=rainbow&rescale=-1505.7174072265625%2C30795.859375'],\n 'minzoom': 0,\n 'maxzoom': 24,\n 'bounds': [-180.0, -90.0, 179.99999999999983, 89.99999999999991],\n 'center': [-8.526512829121202e-14, -4.263256414560601e-14, 0]}"
},
{
"objectID": "user_data_notebooks/sedac-popdensity-yeargrid5yr-v4.11_User_Notebook.html#visualizing-population-density.",
"href": "user_data_notebooks/sedac-popdensity-yeargrid5yr-v4.11_User_Notebook.html#visualizing-population-density.",
"title": "SEDAC Gridded World Population Density",
"section": "Visualizing Population Density.",
- "text": "Visualizing Population Density.\n\n# We'll import folium to map and folium.plugins to allow mapping side-by-side\nimport folium\nimport folium.plugins\n\n# Set initial zoom and center of map for population density Layer\nmap_ = folium.plugins.DualMap(location=(34, -118), zoom_start=6)\n\n# January 2020\nmap_layer_2020 = TileLayer(\n tiles=january_2020_tile[\"tiles\"][0],\n attr=\"GHG\",\n opacity=1,\n)\nmap_layer_2020.add_to(map_.m1)\n\n# January 2000\nmap_layer_2000 = TileLayer(\n tiles=january_2000_tile[\"tiles\"][0],\n attr=\"GHG\",\n opacity=1,\n)\nmap_layer_2000.add_to(map_.m2)\n\n# visualising the map\nmap_"
+ "text": "Visualizing Population Density.\n\n# We'll import folium to map and folium.plugins to allow mapping side-by-side\nimport folium\nimport folium.plugins\n\n# Set initial zoom and center of map for population density Layer\nmap_ = folium.plugins.DualMap(location=(34, -118), zoom_start=6)\n\n# January 2020\nmap_layer_2020 = TileLayer(\n tiles=january_2020_tile[\"tiles\"][0],\n attr=\"GHG\",\n opacity=1,\n)\nmap_layer_2020.add_to(map_.m1)\n\n# January 2000\nmap_layer_2000 = TileLayer(\n tiles=january_2000_tile[\"tiles\"][0],\n attr=\"GHG\",\n opacity=1,\n)\nmap_layer_2000.add_to(map_.m2)\n\n# visualising the map\nmap_\n\n\nMake this Notebook Trusted to load map: File -> Trust Notebook"
},
{
"objectID": "user_data_notebooks/sedac-popdensity-yeargrid5yr-v4.11_User_Notebook.html#section",
"href": "user_data_notebooks/sedac-popdensity-yeargrid5yr-v4.11_User_Notebook.html#section",
"title": "SEDAC Gridded World Population Density",
"section": "",
- "text": "# Texas, USA\ntexas_aoi = {\n \"type\": \"Feature\",\n \"properties\": {},\n \"geometry\": {\n \"coordinates\": [\n [\n # [13.686159004559698, -21.700046934333145],\n # [13.686159004559698, -23.241974326585833],\n # [14.753560168039911, -23.241974326585833],\n # [14.753560168039911, -21.700046934333145],\n # [13.686159004559698, -21.700046934333145],\n [-95, 29],\n [-95, 33],\n [-104, 33],\n [-104,29],\n [-95, 29]\n ]\n ],\n \"type\": \"Polygon\",\n },\n}\n\n\n# We'll plug in the coordinates for a location\n# central to the study area and a reasonable zoom level\n\nimport folium\n\naoi_map = Map(\n tiles=\"OpenStreetMap\",\n location=[\n 30,-100\n ],\n zoom_start=6,\n)\n\nfolium.GeoJson(texas_aoi, name=\"Texas, USA\").add_to(aoi_map)\naoi_map\n\n\n# Check total number of items available\nitems = requests.get(\n f\"{STAC_API_URL}/collections/{collection_name}/items?limit=300\"\n).json()[\"features\"]\nprint(f\"Found {len(items)} items\")\n\n\n# Explore one item to see what it contains\nitems[0]\n\n\n# the bounding box should be passed to the geojson param as a geojson Feature or FeatureCollection\ndef generate_stats(item, geojson):\n result = requests.post(\n f\"{RASTER_API_URL}/cog/statistics\",\n params={\"url\": item[\"assets\"][asset_name][\"href\"]},\n json=geojson,\n ).json()\n return {\n **result[\"properties\"],\n \"start_datetime\": item[\"properties\"][\"start_datetime\"],\n }\n\nWith the function above we can generate the statistics for the AOI.\n\n%%time\nstats = [generate_stats(item, texas_aoi) for item in items]\n\n\nstats[0]\n\n\nimport pandas as pd\n\n\ndef clean_stats(stats_json) -> pd.DataFrame:\n df = pd.json_normalize(stats_json)\n df.columns = [col.replace(\"statistics.b1.\", \"\") for col in df.columns]\n df[\"date\"] = pd.to_datetime(df[\"start_datetime\"])\n return df\n\n\ndf = clean_stats(stats)\ndf.head(5)"
+ "text": "# Texas, USA\ntexas_aoi = {\n \"type\": \"Feature\",\n \"properties\": {},\n \"geometry\": {\n \"coordinates\": [\n [\n # [13.686159004559698, -21.700046934333145],\n # [13.686159004559698, -23.241974326585833],\n # [14.753560168039911, -23.241974326585833],\n # [14.753560168039911, -21.700046934333145],\n # [13.686159004559698, -21.700046934333145],\n [-95, 29],\n [-95, 33],\n [-104, 33],\n [-104,29],\n [-95, 29]\n ]\n ],\n \"type\": \"Polygon\",\n },\n}\n\n\n# We'll plug in the coordinates for a location\n# central to the study area and a reasonable zoom level\n\nimport folium\n\naoi_map = Map(\n tiles=\"OpenStreetMap\",\n location=[\n 30,-100\n ],\n zoom_start=6,\n)\n\nfolium.GeoJson(texas_aoi, name=\"Texas, USA\").add_to(aoi_map)\naoi_map\n\nMake this Notebook Trusted to load map: File -> Trust Notebook\n\n\n\n# Check total number of items available\nitems = requests.get(\n f\"{STAC_API_URL}/collections/{collection_name}/items?limit=300\"\n).json()[\"features\"]\nprint(f\"Found {len(items)} items\")\n\nFound 5 items\n\n\n\n# Explore one item to see what it contains\nitems[0]\n\n{'id': 'sedac-popdensity-yeargrid5yr-v4.11-2020',\n 'bbox': [-180.0, -90.0, 179.99999999999983, 89.99999999999991],\n 'type': 'Feature',\n 'links': [{'rel': 'collection',\n 'type': 'application/json',\n 'href': 'https://ghg.center/api/stac/collections/sedac-popdensity-yeargrid5yr-v4.11'},\n {'rel': 'parent',\n 'type': 'application/json',\n 'href': 'https://ghg.center/api/stac/collections/sedac-popdensity-yeargrid5yr-v4.11'},\n {'rel': 'root',\n 'type': 'application/json',\n 'href': 'https://ghg.center/api/stac/'},\n {'rel': 'self',\n 'type': 'application/geo+json',\n 'href': 'https://ghg.center/api/stac/collections/sedac-popdensity-yeargrid5yr-v4.11/items/sedac-popdensity-yeargrid5yr-v4.11-2020'}],\n 'assets': {'population-density': {'href': 's3://ghgc-data-store/sedac-popdensity-yeargrid5yr-v4.11/gpw_v4_population_density_rev11_2020_30_sec_2020.tif',\n 'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'Population density',\n 'proj:bbox': [-180.0, -90.0, 179.99999999999983, 89.99999999999991],\n 'proj:epsg': 4326.0,\n 'proj:shape': [21600.0, 43200.0],\n 'description': 'Provides estimates of population density based on counts consistent with national censuses and population registers',\n 'raster:bands': [{'scale': 1.0,\n 'nodata': -3.4028230607370965e+38,\n 'offset': 0.0,\n 'sampling': 'area',\n 'data_type': 'float32',\n 'histogram': {'max': 30795.859375,\n 'min': -1505.7174072265625,\n 'count': 11.0,\n 'buckets': [129008.0, 362.0, 52.0, 22.0, 7.0, 2.0, 2.0, 0.0, 1.0, 1.0]},\n 'statistics': {'mean': 55.30964721876762,\n 'stddev': 319.5376065398882,\n 'maximum': 30795.859375,\n 'minimum': -1505.7174072265625,\n 'valid_percent': 24.69196319580078}}],\n 'proj:geometry': {'type': 'Polygon',\n 'coordinates': [[[-180.0, -90.0],\n [179.99999999999983, -90.0],\n [179.99999999999983, 89.99999999999991],\n [-180.0, 89.99999999999991],\n [-180.0, -90.0]]]},\n 'proj:projjson': {'id': {'code': 4326.0, 'authority': 'EPSG'},\n 'name': 'WGS 84',\n 'type': 'GeographicCRS',\n 'datum': {'name': 'World Geodetic System 1984',\n 'type': 'GeodeticReferenceFrame',\n 'ellipsoid': {'name': 'WGS 84',\n 'semi_major_axis': 6378137.0,\n 'inverse_flattening': 298.257223563}},\n '$schema': 'https://proj.org/schemas/v0.4/projjson.schema.json',\n 'coordinate_system': {'axis': [{'name': 'Geodetic latitude',\n 'unit': 'degree',\n 'direction': 'north',\n 'abbreviation': 'Lat'},\n {'name': 'Geodetic longitude',\n 'unit': 'degree',\n 'direction': 'east',\n 'abbreviation': 'Lon'}],\n 'subtype': 'ellipsoidal'}},\n 'proj:transform': [0.00833333333333333,\n 0.0,\n -180.0,\n 0.0,\n -0.00833333333333333,\n 89.99999999999991,\n 0.0,\n 0.0,\n 1.0]}},\n 'geometry': {'type': 'Polygon',\n 'coordinates': [[[-180, -90],\n [179.99999999999983, -90],\n [179.99999999999983, 89.99999999999991],\n [-180, 89.99999999999991],\n [-180, -90]]]},\n 'collection': 'sedac-popdensity-yeargrid5yr-v4.11',\n 'properties': {'end_datetime': '2020-12-31T00:00:00+00:00',\n 'start_datetime': '2020-01-01T00:00:00+00:00'},\n 'stac_version': '1.0.0',\n 'stac_extensions': []}\n\n\n\n# the bounding box should be passed to the geojson param as a geojson Feature or FeatureCollection\ndef generate_stats(item, geojson):\n result = requests.post(\n f\"{RASTER_API_URL}/cog/statistics\",\n params={\"url\": item[\"assets\"][asset_name][\"href\"]},\n json=geojson,\n ).json()\n return {\n **result[\"properties\"],\n \"start_datetime\": item[\"properties\"][\"start_datetime\"],\n }\n\nWith the function above we can generate the statistics for the AOI.\n\n%%time\nstats = [generate_stats(item, texas_aoi) for item in items]\n\nCPU times: user 84.8 ms, sys: 10.4 ms, total: 95.1 ms\nWall time: 6.83 s\n\n\n\nstats[0]\n\n{'statistics': {'b1': {'min': 0.0,\n 'max': 18419.53125,\n 'mean': 58.53235268568119,\n 'count': 518400.0,\n 'sum': 30321222.0,\n 'std': 335.6929520668643,\n 'median': 0.4415185749530792,\n 'majority': 0.0,\n 'minority': 1.0156783218917553e-06,\n 'unique': 304154.0,\n 'histogram': [[512941.0,\n 4330.0,\n 627.0,\n 91.0,\n 22.0,\n 7.0,\n 1.0,\n 4.0,\n 0.0,\n 2.0],\n [0.0,\n 1841.953125,\n 3683.90625,\n 5525.859375,\n 7367.8125,\n 9209.765625,\n 11051.71875,\n 12893.671875,\n 14735.625,\n 16577.578125,\n 18419.53125]],\n 'valid_percent': 99.93,\n 'masked_pixels': 375.0,\n 'valid_pixels': 518025.0,\n 'percentile_2': 0.0,\n 'percentile_98': 898.1920996093824}},\n 'start_datetime': '2020-01-01T00:00:00+00:00'}\n\n\n\nimport pandas as pd\n\n\ndef clean_stats(stats_json) -> pd.DataFrame:\n df = pd.json_normalize(stats_json)\n df.columns = [col.replace(\"statistics.b1.\", \"\") for col in df.columns]\n df[\"date\"] = pd.to_datetime(df[\"start_datetime\"])\n return df\n\n\ndf = clean_stats(stats)\ndf.head(5)\n\n\n\n\n\n\n\n\nstart_datetime\nmin\nmax\nmean\ncount\nsum\nstd\nmedian\nmajority\nminority\nunique\nhistogram\nvalid_percent\nmasked_pixels\nvalid_pixels\npercentile_2\npercentile_98\ndate\n\n\n\n\n0\n2020-01-01T00:00:00+00:00\n0.0\n18419.531250\n58.532353\n518400.0\n30321222.0\n335.692952\n0.441519\n0.0\n0.000001\n304154.0\n[[512941.0, 4330.0, 627.0, 91.0, 22.0, 7.0, 1....\n99.93\n375.0\n518025.0\n0.0\n898.192100\n2020-01-01 00:00:00+00:00\n\n\n1\n2015-01-01T00:00:00+00:00\n0.0\n16791.851562\n52.619171\n518400.0\n27258046.0\n302.069689\n0.432173\n0.0\n0.000001\n304042.0\n[[513082.0, 4248.0, 572.0, 87.0, 20.0, 9.0, 1....\n99.93\n375.0\n518025.0\n0.0\n802.884363\n2015-01-01 00:00:00+00:00\n\n\n2\n2010-01-01T00:00:00+00:00\n0.0\n15308.004883\n47.493947\n518400.0\n24603052.0\n273.645484\n0.426434\n0.0\n0.000001\n304161.0\n[[513182.0, 4159.0, 560.0, 83.0, 25.0, 9.0, 1....\n99.93\n375.0\n518025.0\n0.0\n722.900876\n2010-01-01 00:00:00+00:00\n\n\n3\n2005-01-01T00:00:00+00:00\n0.0\n13955.282227\n43.030074\n518400.0\n22290654.0\n249.332851\n0.417514\n0.0\n0.000001\n304215.0\n[[513253.0, 4076.0, 561.0, 91.0, 27.0, 10.0, 1...\n99.93\n375.0\n518025.0\n0.0\n648.693762\n2005-01-01 00:00:00+00:00\n\n\n4\n2000-01-01T00:00:00+00:00\n0.0\n12722.096680\n39.124289\n518400.0\n20267360.0\n228.324844\n0.405285\n0.0\n0.000001\n304130.0\n[[513329.0, 3965.0, 580.0, 104.0, 29.0, 8.0, 4...\n99.93\n375.0\n518025.0\n0.0\n582.569736\n2000-01-01 00:00:00+00:00"
},
{
"objectID": "user_data_notebooks/sedac-popdensity-yeargrid5yr-v4.11_User_Notebook.html#visualizing-the-data-as-a-time-series",
"href": "user_data_notebooks/sedac-popdensity-yeargrid5yr-v4.11_User_Notebook.html#visualizing-the-data-as-a-time-series",
"title": "SEDAC Gridded World Population Density",
"section": "Visualizing the Data as a Time Series",
- "text": "Visualizing the Data as a Time Series\nWe can now explore the SEDAC population density dataset time series available for the Texas, Dallas area of USA. We can plot the dataset using the code below:\n\nimport matplotlib.pyplot as plt\n\nfig = plt.figure(figsize=(20, 10))\n\n\nplt.plot(\n df[\"date\"],\n df[\"max\"],\n color=\"red\",\n linestyle=\"-\",\n linewidth=0.5,\n label=\"Population density over the years\",\n)\n\nplt.legend()\nplt.xlabel(\"Years\")\nplt.ylabel(\"Population density\")\nplt.title(\"Population density over Texas, Dallas (2000-2020)\")\n\n\nprint(items[2][\"properties\"][\"start_datetime\"])\n\n\noctober_tile = requests.get(\n f\"{RASTER_API_URL}/stac/tilejson.json?collection={items[2]['collection']}&item={items[2]['id']}\"\n f\"&assets={asset_name}\"\n f\"&color_formula=gamma+r+1.05&colormap_name={color_map}\"\n f\"&rescale={rescale_values['min']},{rescale_values['max']}\",\n).json()\noctober_tile\n\n\n# Use bbox initial zoom and map\n# Set up a map located w/in event bounds\nimport folium\n\naoi_map_bbox = Map(\n tiles=\"OpenStreetMap\",\n location=[\n 30,-100\n ],\n zoom_start=8,\n)\n\nmap_layer = TileLayer(\n tiles=october_tile[\"tiles\"][0],\n attr=\"GHG\", opacity = 0.5\n)\n\nmap_layer.add_to(aoi_map_bbox)\n\naoi_map_bbox"
+ "text": "Visualizing the Data as a Time Series\nWe can now explore the SEDAC population density dataset time series available for the Texas, Dallas area of USA. We can plot the dataset using the code below:\n\nimport matplotlib.pyplot as plt\n\nfig = plt.figure(figsize=(20, 10))\n\n\nplt.plot(\n df[\"date\"],\n df[\"max\"],\n color=\"red\",\n linestyle=\"-\",\n linewidth=0.5,\n label=\"Population density over the years\",\n)\n\nplt.legend()\nplt.xlabel(\"Years\")\nplt.ylabel(\"Population density\")\nplt.title(\"Population density over Texas, Dallas (2000-2020)\")\n\nText(0.5, 1.0, 'Population density over Texas, Dallas (2000-2020)')\n\n\n\n\n\n\nprint(items[2][\"properties\"][\"start_datetime\"])\n\n2010-01-01T00:00:00+00:00\n\n\n\noctober_tile = requests.get(\n f\"{RASTER_API_URL}/stac/tilejson.json?collection={items[2]['collection']}&item={items[2]['id']}\"\n f\"&assets={asset_name}\"\n f\"&color_formula=gamma+r+1.05&colormap_name={color_map}\"\n f\"&rescale={rescale_values['min']},{rescale_values['max']}\",\n).json()\noctober_tile\n\n{'tilejson': '2.2.0',\n 'version': '1.0.0',\n 'scheme': 'xyz',\n 'tiles': ['https://ghg.center/api/raster/stac/tiles/WebMercatorQuad/{z}/{x}/{y}@1x?collection=sedac-popdensity-yeargrid5yr-v4.11&item=sedac-popdensity-yeargrid5yr-v4.11-2010&assets=population-density&color_formula=gamma+r+1.05&colormap_name=rainbow&rescale=-1505.7174072265625%2C30795.859375'],\n 'minzoom': 0,\n 'maxzoom': 24,\n 'bounds': [-180.0, -90.0, 179.99999999999983, 89.99999999999991],\n 'center': [-8.526512829121202e-14, -4.263256414560601e-14, 0]}\n\n\n\n# Use bbox initial zoom and map\n# Set up a map located w/in event bounds\nimport folium\n\naoi_map_bbox = Map(\n tiles=\"OpenStreetMap\",\n location=[\n 30,-100\n ],\n zoom_start=8,\n)\n\nmap_layer = TileLayer(\n tiles=october_tile[\"tiles\"][0],\n attr=\"GHG\", opacity = 0.5\n)\n\nmap_layer.add_to(aoi_map_bbox)\n\naoi_map_bbox\n\nMake this Notebook Trusted to load map: File -> Trust Notebook"
},
{
"objectID": "user_data_notebooks/sedac-popdensity-yeargrid5yr-v4.11_User_Notebook.html#summary",
@@ -928,28 +928,28 @@
"href": "user_data_notebooks/lpjwsl-wetlandch4-grid-v1_User_Notebook.html#querying-the-stac-api",
"title": "Wetland Methane Emissions, LPJ-wsl Model",
"section": "Querying the STAC API",
- "text": "Querying the STAC API\n\nimport requests\nfrom folium import Map, TileLayer\nfrom pystac_client import Client\n\n\n# Provide STAC and RASTER API endpoints\nSTAC_API_URL = \"http://ghg.center/api/stac\"\nRASTER_API_URL = \"https://ghg.center/api/raster\"\n\n# Please use the collection name similar to the one used in STAC collection.\n\n# Name of the collection for wetland methane monthly emissions. \ncollection_name = \"lpjwsl-wetlandch4-monthgrid-v1\"\n\n\n# Fetching the collection from STAC collections using appropriate endpoint.\ncollection = requests.get(f\"{STAC_API_URL}/collections/{collection_name}\").json()\ncollection\n\nExamining the contents of our collection under summaries, we see that the data is available from January 1980 to December 2021. By looking at dashboard: time density, we can see that these observations are collected monthly.\n\ndef get_item_count(collection_id):\n count = 0\n items_url = f\"{STAC_API_URL}/collections/{collection_id}/items\"\n\n while True:\n response = requests.get(items_url)\n\n if not response.ok:\n print(\"error getting items\")\n exit()\n\n stac = response.json()\n count += int(stac[\"context\"].get(\"returned\", 0))\n next = [link for link in stac[\"links\"] if link[\"rel\"] == \"next\"]\n\n if not next:\n break\n items_url = next[0][\"href\"]\n\n return count\n\n\n# Check total number of items available\nnumber_of_items = get_item_count(collection_name)\nitems = requests.get(f\"{STAC_API_URL}/collections/{collection_name}/items?limit={number_of_items}\").json()[\"features\"]\nprint(f\"Found {len(items)} items\")\n\n\n# Examining the first item in the collection\nitems[0]\n\nBelow, we enter minimum and maximum values to provide our upper and lower bounds in rescale_values.\n\nrescale_values = {'max': 0.2, 'min': 0.0}"
+ "text": "Querying the STAC API\n\nimport requests\nfrom folium import Map, TileLayer\nfrom pystac_client import Client\n\n\n# Provide STAC and RASTER API endpoints\nSTAC_API_URL = \"http://ghg.center/api/stac\"\nRASTER_API_URL = \"https://ghg.center/api/raster\"\n\n# Please use the collection name similar to the one used in STAC collection.\n\n# Name of the collection for wetland methane monthly emissions. \ncollection_name = \"lpjwsl-wetlandch4-monthgrid-v1\"\n\n\n# Fetching the collection from STAC collections using appropriate endpoint.\ncollection = requests.get(f\"{STAC_API_URL}/collections/{collection_name}\").json()\ncollection\n\n{'id': 'lpjwsl-wetlandch4-monthgrid-v1',\n 'type': 'Collection',\n 'links': [{'rel': 'items',\n 'type': 'application/geo+json',\n 'href': 'https://ghg.center/api/stac/collections/lpjwsl-wetlandch4-monthgrid-v1/items'},\n {'rel': 'parent',\n 'type': 'application/json',\n 'href': 'https://ghg.center/api/stac/'},\n {'rel': 'root',\n 'type': 'application/json',\n 'href': 'https://ghg.center/api/stac/'},\n {'rel': 'self',\n 'type': 'application/json',\n 'href': 'https://ghg.center/api/stac/collections/lpjwsl-wetlandch4-monthgrid-v1'}],\n 'title': 'Wetland Methane Emissions, LPJ-wsl Model (Monthly)',\n 'assets': None,\n 'extent': {'spatial': {'bbox': [[-180, -90, 180, 90]]},\n 'temporal': {'interval': [['1980-01-01T00:00:00+00:00',\n '2021-12-01T00:00:00+00:00']]}},\n 'license': 'CC-BY-4.0',\n 'keywords': None,\n 'providers': None,\n 'summaries': {'datetime': ['1980-01-01T00:00:00Z', '2021-12-01T00:00:00Z']},\n 'description': 'Wetland methane emissions produced by the Lund–Potsdam–Jena Dynamic Global Vegetation Model (LPJ-DGVM) Wald Schnee und Landscaft version (LPJ-wsl). LPJ-wsl is a prognostic model used to simulate future changes in wetland emissions and independently verified with remote sensing data products. The LPJ-wsl model is regularly used in conjunction with NASA’s GEOS model to simulate the impact of wetlands and other methane sources on atmospheric methane concentrations.',\n 'item_assets': {'ch4-wetlands-emissions': {'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'CH4 Wetland Emissions',\n 'description': 'Methane emissions from wetlands.'}},\n 'stac_version': '1.0.0',\n 'stac_extensions': None,\n 'dashboard:is_periodic': True,\n 'dashboard:time_density': 'month'}\n\n\nExamining the contents of our collection under summaries, we see that the data is available from January 1980 to December 2021. By looking at dashboard: time density, we can see that these observations are collected monthly.\n\ndef get_item_count(collection_id):\n count = 0\n items_url = f\"{STAC_API_URL}/collections/{collection_id}/items\"\n\n while True:\n response = requests.get(items_url)\n\n if not response.ok:\n print(\"error getting items\")\n exit()\n\n stac = response.json()\n count += int(stac[\"context\"].get(\"returned\", 0))\n next = [link for link in stac[\"links\"] if link[\"rel\"] == \"next\"]\n\n if not next:\n break\n items_url = next[0][\"href\"]\n\n return count\n\n\n# Check total number of items available\nnumber_of_items = get_item_count(collection_name)\nitems = requests.get(f\"{STAC_API_URL}/collections/{collection_name}/items?limit={number_of_items}\").json()[\"features\"]\nprint(f\"Found {len(items)} items\")\n\nFound 504 items\n\n\n\n# Examining the first item in the collection\nitems[0]\n\n{'id': 'lpjwsl-wetlandch4-monthgrid-v1-202112',\n 'bbox': [-180.0, -90.0, 180.0, 90.0],\n 'type': 'Feature',\n 'links': [{'rel': 'collection',\n 'type': 'application/json',\n 'href': 'https://ghg.center/api/stac/collections/lpjwsl-wetlandch4-monthgrid-v1'},\n {'rel': 'parent',\n 'type': 'application/json',\n 'href': 'https://ghg.center/api/stac/collections/lpjwsl-wetlandch4-monthgrid-v1'},\n {'rel': 'root',\n 'type': 'application/json',\n 'href': 'https://ghg.center/api/stac/'},\n {'rel': 'self',\n 'type': 'application/geo+json',\n 'href': 'https://ghg.center/api/stac/collections/lpjwsl-wetlandch4-monthgrid-v1/items/lpjwsl-wetlandch4-monthgrid-v1-202112'}],\n 'assets': {'ch4-wetlands-emissions': {'href': 's3://ghgc-data-store/lpjwsl-wetlandch4-monthgrid-v1/NASA_GSFC_ch4_wl_ch4_wetlands_v22_x720_y360_t12_202112.tif',\n 'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'CH4 Wetland Emissions',\n 'proj:bbox': [-180.0, -90.0, 180.0, 90.0],\n 'proj:epsg': 4326.0,\n 'proj:shape': [360.0, 720.0],\n 'description': 'Methane emissions from wetlands.',\n 'raster:bands': [{'scale': 1.0,\n 'offset': 0.0,\n 'sampling': 'area',\n 'data_type': 'float32',\n 'histogram': {'max': 6.929981708526611,\n 'min': 0.0,\n 'count': 11.0,\n 'buckets': [258080.0,\n 575.0,\n 251.0,\n 124.0,\n 78.0,\n 41.0,\n 26.0,\n 16.0,\n 7.0,\n 2.0]},\n 'statistics': {'mean': 0.012271502055227757,\n 'stddev': 0.1378920078277588,\n 'maximum': 6.929981708526611,\n 'minimum': 0.0,\n 'valid_percent': 0.0003858024691358025}}],\n 'proj:geometry': {'type': 'Polygon',\n 'coordinates': [[[-180.0, -90.0],\n [180.0, -90.0],\n [180.0, 90.0],\n [-180.0, 90.0],\n [-180.0, -90.0]]]},\n 'proj:projjson': {'id': {'code': 4326.0, 'authority': 'EPSG'},\n 'name': 'WGS 84',\n 'type': 'GeographicCRS',\n 'datum': {'name': 'World Geodetic System 1984',\n 'type': 'GeodeticReferenceFrame',\n 'ellipsoid': {'name': 'WGS 84',\n 'semi_major_axis': 6378137.0,\n 'inverse_flattening': 298.257223563}},\n '$schema': 'https://proj.org/schemas/v0.4/projjson.schema.json',\n 'coordinate_system': {'axis': [{'name': 'Geodetic latitude',\n 'unit': 'degree',\n 'direction': 'north',\n 'abbreviation': 'Lat'},\n {'name': 'Geodetic longitude',\n 'unit': 'degree',\n 'direction': 'east',\n 'abbreviation': 'Lon'}],\n 'subtype': 'ellipsoidal'}},\n 'proj:transform': [0.5, 0.0, -180.0, 0.0, -0.5, 90.0, 0.0, 0.0, 1.0]}},\n 'geometry': {'type': 'Polygon',\n 'coordinates': [[[-180, -90],\n [180, -90],\n [180, 90],\n [-180, 90],\n [-180, -90]]]},\n 'collection': 'lpjwsl-wetlandch4-monthgrid-v1',\n 'properties': {'datetime': '2021-12-01T00:00:00+00:00'},\n 'stac_version': '1.0.0',\n 'stac_extensions': []}\n\n\nBelow, we enter minimum and maximum values to provide our upper and lower bounds in rescale_values.\n\nrescale_values = {'max': 0.2, 'min': 0.0}"
},
{
"objectID": "user_data_notebooks/lpjwsl-wetlandch4-grid-v1_User_Notebook.html#exploring-changes-in-methane-ch4-emission-levels-using-the-raster-api",
"href": "user_data_notebooks/lpjwsl-wetlandch4-grid-v1_User_Notebook.html#exploring-changes-in-methane-ch4-emission-levels-using-the-raster-api",
"title": "Wetland Methane Emissions, LPJ-wsl Model",
"section": "Exploring Changes in Methane (CH4) Emission Levels Using the Raster API",
- "text": "Exploring Changes in Methane (CH4) Emission Levels Using the Raster API\nIn this notebook, we will explore the temporal impacts of methane emissions. We will visualize the outputs on a map using folium.\n\n# To access the year value from each item more easily, this will let us query more explicity by year and month (e.g., 2020-02)\nitems = {item[\"properties\"][\"datetime\"][:7]: item for item in items} \n\nNow, we will pass the item id, collection name, and rescaling_factor to the Raster API endpoint. We will do this twice, once for December 2001 and again for December 2021, so we can visualize each event independently.\n\ncolor_map = \"magma\" # select the color ramp from matplotlib library.\ndecember_2001_tile = requests.get(\n f\"{RASTER_API_URL}/stac/tilejson.json?collection={items['2001-12']['collection']}&item={items['2001-12']['id']}\"\n \"&assets=ch4-wetlands-emissions\"\n f\"&color_formula=gamma+r+1.05&colormap_name={color_map}\"\n f\"&rescale={rescale_values['min']},{rescale_values['max']}\", \n).json()\ndecember_2001_tile\n\n\ndecember_2021_tile = requests.get(\n f\"{RASTER_API_URL}/stac/tilejson.json?collection={items['2021-12']['collection']}&item={items['2021-12']['id']}\"\n \"&assets=ch4-wetlands-emissions\"\n f\"&color_formula=gamma+r+1.05&colormap_name={color_map}\"\n f\"&rescale={rescale_values['min']},{rescale_values['max']}\", \n).json()\ndecember_2021_tile"
+ "text": "Exploring Changes in Methane (CH4) Emission Levels Using the Raster API\nIn this notebook, we will explore the temporal impacts of methane emissions. We will visualize the outputs on a map using folium.\n\n# To access the year value from each item more easily, this will let us query more explicity by year and month (e.g., 2020-02)\nitems = {item[\"properties\"][\"datetime\"][:7]: item for item in items} \n\nNow, we will pass the item id, collection name, and rescaling_factor to the Raster API endpoint. We will do this twice, once for December 2001 and again for December 2021, so we can visualize each event independently.\n\ncolor_map = \"magma\" # select the color ramp from matplotlib library.\ndecember_2001_tile = requests.get(\n f\"{RASTER_API_URL}/stac/tilejson.json?collection={items['2001-12']['collection']}&item={items['2001-12']['id']}\"\n \"&assets=ch4-wetlands-emissions\"\n f\"&color_formula=gamma+r+1.05&colormap_name={color_map}\"\n f\"&rescale={rescale_values['min']},{rescale_values['max']}\", \n).json()\ndecember_2001_tile\n\n{'tilejson': '2.2.0',\n 'version': '1.0.0',\n 'scheme': 'xyz',\n 'tiles': ['https://ghg.center/api/raster/stac/tiles/WebMercatorQuad/{z}/{x}/{y}@1x?collection=lpjwsl-wetlandch4-monthgrid-v1&item=lpjwsl-wetlandch4-monthgrid-v1-200112&assets=ch4-wetlands-emissions&color_formula=gamma+r+1.05&colormap_name=magma&rescale=0.0%2C0.2'],\n 'minzoom': 0,\n 'maxzoom': 24,\n 'bounds': [-180.0, -90.0, 180.0, 90.0],\n 'center': [0.0, 0.0, 0]}\n\n\n\ndecember_2021_tile = requests.get(\n f\"{RASTER_API_URL}/stac/tilejson.json?collection={items['2021-12']['collection']}&item={items['2021-12']['id']}\"\n \"&assets=ch4-wetlands-emissions\"\n f\"&color_formula=gamma+r+1.05&colormap_name={color_map}\"\n f\"&rescale={rescale_values['min']},{rescale_values['max']}\", \n).json()\ndecember_2021_tile\n\n{'tilejson': '2.2.0',\n 'version': '1.0.0',\n 'scheme': 'xyz',\n 'tiles': ['https://ghg.center/api/raster/stac/tiles/WebMercatorQuad/{z}/{x}/{y}@1x?collection=lpjwsl-wetlandch4-monthgrid-v1&item=lpjwsl-wetlandch4-monthgrid-v1-202112&assets=ch4-wetlands-emissions&color_formula=gamma+r+1.05&colormap_name=magma&rescale=0.0%2C0.2'],\n 'minzoom': 0,\n 'maxzoom': 24,\n 'bounds': [-180.0, -90.0, 180.0, 90.0],\n 'center': [0.0, 0.0, 0]}"
},
{
"objectID": "user_data_notebooks/lpjwsl-wetlandch4-grid-v1_User_Notebook.html#visualizing-ch₄-emissions",
"href": "user_data_notebooks/lpjwsl-wetlandch4-grid-v1_User_Notebook.html#visualizing-ch₄-emissions",
"title": "Wetland Methane Emissions, LPJ-wsl Model",
"section": "Visualizing CH₄ Emissions",
- "text": "Visualizing CH₄ Emissions\n\n# We will import folium to map and folium.plugins to allow side-by-side mapping\nimport folium\nimport folium.plugins\n\n# Set initial zoom and center of map for CH₄ Layer\n# Centre of map [latitude,longitude]\nmap_ = folium.plugins.DualMap(location=(34, -118), zoom_start=6)\n\n# December 2001\nmap_layer_2001 = TileLayer(\n tiles=december_2001_tile[\"tiles\"][0],\n attr=\"GHG\",\n opacity=0.5,\n)\nmap_layer_2001.add_to(map_.m1)\n\n# December 2021\nmap_layer_2021 = TileLayer(\n tiles=december_2021_tile[\"tiles\"][0],\n attr=\"GHG\",\n opacity=0.5,\n)\nmap_layer_2021.add_to(map_.m2)\n\n# visualising the map\nmap_"
+ "text": "Visualizing CH₄ Emissions\n\n# We will import folium to map and folium.plugins to allow side-by-side mapping\nimport folium\nimport folium.plugins\n\n# Set initial zoom and center of map for CH₄ Layer\n# Centre of map [latitude,longitude]\nmap_ = folium.plugins.DualMap(location=(34, -118), zoom_start=6)\n\n# December 2001\nmap_layer_2001 = TileLayer(\n tiles=december_2001_tile[\"tiles\"][0],\n attr=\"GHG\",\n opacity=0.5,\n)\nmap_layer_2001.add_to(map_.m1)\n\n# December 2021\nmap_layer_2021 = TileLayer(\n tiles=december_2021_tile[\"tiles\"][0],\n attr=\"GHG\",\n opacity=0.5,\n)\nmap_layer_2021.add_to(map_.m2)\n\n# visualising the map\nmap_\n\n\nMake this Notebook Trusted to load map: File -> Trust Notebook"
},
{
"objectID": "user_data_notebooks/lpjwsl-wetlandch4-grid-v1_User_Notebook.html#visualizing-the-data-as-a-time-series",
"href": "user_data_notebooks/lpjwsl-wetlandch4-grid-v1_User_Notebook.html#visualizing-the-data-as-a-time-series",
"title": "Wetland Methane Emissions, LPJ-wsl Model",
"section": "Visualizing the Data as a Time Series",
- "text": "Visualizing the Data as a Time Series\nWe can now explore the wetland methane emissions time series (January 1980 – December 2021) available for the Dallas, Texas area of the U.S. We can plot the data set using the code below:\n\nimport matplotlib.pyplot as plt\n\nfig = plt.figure(figsize=(20, 10))\n\n\nplt.plot(\n df[\"date\"],\n df[\"max\"],\n color=\"red\",\n linestyle=\"-\",\n linewidth=0.5,\n label=\"Max monthly CH₄ emissions\",\n)\n\nplt.legend()\nplt.xlabel(\"Years\")\nplt.ylabel(\"CH4 emissions g/m2\")\nplt.title(\"CH4 emission Values for Texas, Dallas (1980-2021)\")\n\n\nprint(items[2][\"properties\"][\"datetime\"])\n\n\noctober_tile = requests.get(\n f\"{RASTER_API_URL}/stac/tilejson.json?collection={items[2]['collection']}&item={items[2]['id']}\"\n \"&assets=ch4-wetlands-emissions\"\n f\"&color_formula=gamma+r+1.05&colormap_name={color_map}\"\n f\"&rescale={rescale_values['min']},{rescale_values['max']}\",\n).json()\noctober_tile\n\n\n# Use bbox initial zoom and map\n# Set up a map located w/in event bounds\nimport folium\n\naoi_map_bbox = Map(\n tiles=\"OpenStreetMap\",\n location=[\n 30,-100\n ],\n zoom_start=8,\n)\n\nmap_layer = TileLayer(\n tiles=october_tile[\"tiles\"][0],\n attr=\"GHG\", opacity = 0.5\n)\n\nmap_layer.add_to(aoi_map_bbox)\n\naoi_map_bbox"
+ "text": "Visualizing the Data as a Time Series\nWe can now explore the wetland methane emissions time series (January 1980 – December 2021) available for the Dallas, Texas area of the U.S. We can plot the data set using the code below:\n\nimport matplotlib.pyplot as plt\n\nfig = plt.figure(figsize=(20, 10))\n\n\nplt.plot(\n df[\"date\"],\n df[\"max\"],\n color=\"red\",\n linestyle=\"-\",\n linewidth=0.5,\n label=\"Max monthly CH₄ emissions\",\n)\n\nplt.legend()\nplt.xlabel(\"Years\")\nplt.ylabel(\"CH4 emissions g/m2\")\nplt.title(\"CH4 emission Values for Texas, Dallas (1980-2021)\")\n\nText(0.5, 1.0, 'CH4 emission Values for Texas, Dallas (1980-2021)')\n\n\n\n\n\n\nprint(items[2][\"properties\"][\"datetime\"])\n\n2021-10-01T00:00:00+00:00\n\n\n\noctober_tile = requests.get(\n f\"{RASTER_API_URL}/stac/tilejson.json?collection={items[2]['collection']}&item={items[2]['id']}\"\n \"&assets=ch4-wetlands-emissions\"\n f\"&color_formula=gamma+r+1.05&colormap_name={color_map}\"\n f\"&rescale={rescale_values['min']},{rescale_values['max']}\",\n).json()\noctober_tile\n\n{'tilejson': '2.2.0',\n 'version': '1.0.0',\n 'scheme': 'xyz',\n 'tiles': ['https://ghg.center/api/raster/stac/tiles/WebMercatorQuad/{z}/{x}/{y}@1x?collection=lpjwsl-wetlandch4-monthgrid-v1&item=lpjwsl-wetlandch4-monthgrid-v1-202110&assets=ch4-wetlands-emissions&color_formula=gamma+r+1.05&colormap_name=magma&rescale=0.0%2C0.2'],\n 'minzoom': 0,\n 'maxzoom': 24,\n 'bounds': [-180.0, -90.0, 180.0, 90.0],\n 'center': [0.0, 0.0, 0]}\n\n\n\n# Use bbox initial zoom and map\n# Set up a map located w/in event bounds\nimport folium\n\naoi_map_bbox = Map(\n tiles=\"OpenStreetMap\",\n location=[\n 30,-100\n ],\n zoom_start=8,\n)\n\nmap_layer = TileLayer(\n tiles=october_tile[\"tiles\"][0],\n attr=\"GHG\", opacity = 0.5\n)\n\nmap_layer.add_to(aoi_map_bbox)\n\naoi_map_bbox\n\nMake this Notebook Trusted to load map: File -> Trust Notebook"
},
{
"objectID": "user_data_notebooks/lpjwsl-wetlandch4-grid-v1_User_Notebook.html#summary",
@@ -984,35 +984,35 @@
"href": "user_data_notebooks/eccodarwin-co2flux-monthgrid-v5_User_Notebook.html#installing-the-required-libraries",
"title": "Air-Sea CO₂ Flux, ECCO-Darwin Model v5",
"section": "Installing the required libraries",
- "text": "Installing the required libraries\nPlease run the cell below to install the libraries required to run this notebook.\n\n%pip install requests\n%pip install folium\n%pip install pystac_client"
+ "text": "Installing the required libraries\nPlease run the cell below to install the libraries required to run this notebook.\n\n%pip install requests\n%pip install folium\n%pip install pystac_client\n\nRequirement already satisfied: requests in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (2.31.0)\nRequirement already satisfied: charset-normalizer<4,>=2 in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from requests) (3.1.0)\nRequirement already satisfied: certifi>=2017.4.17 in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from requests) (2023.7.22)\nRequirement already satisfied: urllib3<3,>=1.21.1 in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from requests) (1.26.16)\nRequirement already satisfied: idna<4,>=2.5 in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from requests) (3.4)\nNote: you may need to restart the kernel to use updated packages.\nRequirement already satisfied: folium in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (0.14.0)\nRequirement already satisfied: numpy in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from folium) (1.24.3)\nRequirement already satisfied: jinja2>=2.9 in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from folium) (3.1.2)\nRequirement already satisfied: branca>=0.6.0 in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from folium) (0.6.0)\nRequirement already satisfied: requests in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from folium) (2.31.0)\nRequirement already satisfied: MarkupSafe>=2.0 in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from jinja2>=2.9->folium) (2.1.3)\nRequirement already satisfied: idna<4,>=2.5 in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from requests->folium) (3.4)\nRequirement already satisfied: certifi>=2017.4.17 in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from requests->folium) (2023.7.22)\nRequirement already satisfied: urllib3<3,>=1.21.1 in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from requests->folium) (1.26.16)\nRequirement already satisfied: charset-normalizer<4,>=2 in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from requests->folium) (3.1.0)\nNote: you may need to restart the kernel to use updated packages.\nRequirement already satisfied: pystac_client in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (0.7.2)\nRequirement already satisfied: pystac[validation]>=1.7.2 in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from pystac_client) (1.7.3)\nRequirement already satisfied: requests>=2.28.2 in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from pystac_client) (2.31.0)\nRequirement already satisfied: python-dateutil>=2.8.2 in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from pystac_client) (2.8.2)\nRequirement already satisfied: jsonschema>=4.0.1 in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from pystac[validation]>=1.7.2->pystac_client) (4.17.3)\nRequirement already satisfied: six>=1.5 in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from python-dateutil>=2.8.2->pystac_client) (1.16.0)\nRequirement already satisfied: certifi>=2017.4.17 in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from requests>=2.28.2->pystac_client) (2023.7.22)\nRequirement already satisfied: idna<4,>=2.5 in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from requests>=2.28.2->pystac_client) (3.4)\nRequirement already satisfied: charset-normalizer<4,>=2 in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from requests>=2.28.2->pystac_client) (3.1.0)\nRequirement already satisfied: urllib3<3,>=1.21.1 in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from requests>=2.28.2->pystac_client) (1.26.16)\nRequirement already satisfied: attrs>=17.4.0 in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from jsonschema>=4.0.1->pystac[validation]>=1.7.2->pystac_client) (22.2.0)\nRequirement already satisfied: pyrsistent!=0.17.0,!=0.17.1,!=0.17.2,>=0.14.0 in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from jsonschema>=4.0.1->pystac[validation]>=1.7.2->pystac_client) (0.19.3)\nNote: you may need to restart the kernel to use updated packages."
},
{
"objectID": "user_data_notebooks/eccodarwin-co2flux-monthgrid-v5_User_Notebook.html#querying-the-stac-api",
"href": "user_data_notebooks/eccodarwin-co2flux-monthgrid-v5_User_Notebook.html#querying-the-stac-api",
"title": "Air-Sea CO₂ Flux, ECCO-Darwin Model v5",
"section": "Querying the STAC API",
- "text": "Querying the STAC API\n\nimport requests\nfrom folium import Map, TileLayer\nfrom pystac_client import Client\n\n\n# Provide STAC and RASTER API endpoints\nSTAC_API_URL = \"http://ghg.center/api/stac\"\nRASTER_API_URL = \"https://ghg.center/api/raster\"\n\n# Please use the collection name similar to the one used in STAC collection.\n# Name of the collection for Ecco Darwin CO₂ flux dataset. \ncollection_name = \"eccodarwin-co2flux-monthgrid-v5\"\n\n\n# Fetching the collection from STAC collections using appropriate endpoint.\ncollection = requests.get(f\"{STAC_API_URL}/collections/{collection_name}\").json()\ncollection\n\nExamining the contents of our collection under the temporal variable, we see that the data is available from January 2020 to December 2022. By looking at the dashboard:time density, we observe that the data is periodic with monthly time density.\n\ndef get_item_count(collection_id):\n count = 0\n items_url = f\"{STAC_API_URL}/collections/{collection_id}/items\"\n\n while True:\n response = requests.get(items_url)\n\n if not response.ok:\n print(\"error getting items\")\n exit()\n\n stac = response.json()\n count += int(stac[\"context\"].get(\"returned\", 0))\n next = [link for link in stac[\"links\"] if link[\"rel\"] == \"next\"]\n\n if not next:\n break\n items_url = next[0][\"href\"]\n\n return count\n\n\n# Check total number of items available\nnumber_of_items = get_item_count(collection_name)\nitems = requests.get(f\"{STAC_API_URL}/collections/{collection_name}/items?limit={number_of_items}\").json()[\"features\"]\nprint(f\"Found {len(items)} items\")\n\n\n# Examining the first item in the collection\nitems[0]\n\nBelow, we are entering the minimum and maximum values to provide our upper and lower bounds in rescale_values."
+ "text": "Querying the STAC API\n\nimport requests\nfrom folium import Map, TileLayer\nfrom pystac_client import Client\n\n\n# Provide STAC and RASTER API endpoints\nSTAC_API_URL = \"http://ghg.center/api/stac\"\nRASTER_API_URL = \"https://ghg.center/api/raster\"\n\n# Please use the collection name similar to the one used in STAC collection.\n# Name of the collection for Ecco Darwin CO₂ flux dataset. \ncollection_name = \"eccodarwin-co2flux-monthgrid-v5\"\n\n\n# Fetching the collection from STAC collections using appropriate endpoint.\ncollection = requests.get(f\"{STAC_API_URL}/collections/{collection_name}\").json()\ncollection\n\n{'id': 'eccodarwin-co2flux-monthgrid-v5',\n 'type': 'Collection',\n 'links': [{'rel': 'items',\n 'type': 'application/geo+json',\n 'href': 'https://ghg.center/api/stac/collections/eccodarwin-co2flux-monthgrid-v5/items'},\n {'rel': 'parent',\n 'type': 'application/json',\n 'href': 'https://ghg.center/api/stac/'},\n {'rel': 'root',\n 'type': 'application/json',\n 'href': 'https://ghg.center/api/stac/'},\n {'rel': 'self',\n 'type': 'application/json',\n 'href': 'https://ghg.center/api/stac/collections/eccodarwin-co2flux-monthgrid-v5'}],\n 'title': 'Air-Sea CO2 Flux, ECCO-Darwin Model v5',\n 'assets': None,\n 'extent': {'spatial': {'bbox': [[-180.125,\n -90.12483215332031,\n 179.875,\n 89.87517547607422]]},\n 'temporal': {'interval': [['2020-01-01T00:00:00+00:00',\n '2022-12-31T00:00:00+00:00']]}},\n 'license': 'CC-BY-4.0',\n 'keywords': None,\n 'providers': None,\n 'summaries': {'datetime': ['2020-01-01T00:00:00Z', '2022-12-31T00:00:00Z']},\n 'description': 'Global, monthly average air-sea CO2 flux at ~1/3° resolution from 2020 to 2022',\n 'item_assets': {'co2': {'type': 'image/tiff; application=geotiff; profile=cloud-optimized',\n 'roles': ['data', 'layer'],\n 'title': 'Air-Sea CO2 Flux',\n 'description': 'Monthly mean air-sea CO2 Flux (negative into ocean)'}},\n 'stac_version': '1.0.0',\n 'stac_extensions': None,\n 'dashboard:is_periodic': True,\n 'dashboard:time_density': 'month'}\n\n\nExamining the contents of our collection under the temporal variable, we see that the data is available from January 2020 to December 2022. By looking at the dashboard:time density, we observe that the data is periodic with monthly time density.\n\ndef get_item_count(collection_id):\n count = 0\n items_url = f\"{STAC_API_URL}/collections/{collection_id}/items\"\n\n while True:\n response = requests.get(items_url)\n\n if not response.ok:\n print(\"error getting items\")\n exit()\n\n stac = response.json()\n count += int(stac[\"context\"].get(\"returned\", 0))\n next = [link for link in stac[\"links\"] if link[\"rel\"] == \"next\"]\n\n if not next:\n break\n items_url = next[0][\"href\"]\n\n return count\n\n\n# Check total number of items available\nnumber_of_items = get_item_count(collection_name)\nitems = requests.get(f\"{STAC_API_URL}/collections/{collection_name}/items?limit={number_of_items}\").json()[\"features\"]\nprint(f\"Found {len(items)} items\")\n\nFound 36 items\n\n\n\n# Examining the first item in the collection\nitems[0]\n\n{'id': 'eccodarwin-co2flux-monthgrid-v5-202212',\n 'bbox': [-180.125, -90.124826629681, 179.875, 89.875173370319],\n 'type': 'Feature',\n 'links': [{'rel': 'collection',\n 'type': 'application/json',\n 'href': 'https://ghg.center/api/stac/collections/eccodarwin-co2flux-monthgrid-v5'},\n {'rel': 'parent',\n 'type': 'application/json',\n 'href': 'https://ghg.center/api/stac/collections/eccodarwin-co2flux-monthgrid-v5'},\n {'rel': 'root',\n 'type': 'application/json',\n 'href': 'https://ghg.center/api/stac/'},\n {'rel': 'self',\n 'type': 'application/geo+json',\n 'href': 'https://ghg.center/api/stac/collections/eccodarwin-co2flux-monthgrid-v5/items/eccodarwin-co2flux-monthgrid-v5-202212'}],\n 'assets': {'co2': {'href': 's3://ghgc-data-store/eccodarwin-co2flux-monthgrid-v5/ECCO-Darwin_CO2_flux_202212.tif',\n 'type': 'image/tiff; application=geotiff',\n 'roles': ['data', 'layer'],\n 'title': 'Air-Sea CO2 Flux',\n 'proj:bbox': [-180.125, -90.124826629681, 179.875, 89.875173370319],\n 'proj:epsg': 4326.0,\n 'proj:shape': [721.0, 1440.0],\n 'description': 'Monthly mean air-sea CO2 Flux (negative into ocean)',\n 'raster:bands': [{'scale': 1.0,\n 'offset': 0.0,\n 'sampling': 'area',\n 'data_type': 'float64',\n 'histogram': {'max': 1e+20,\n 'min': -0.0560546528687938,\n 'count': 11.0,\n 'buckets': [338606.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 186706.0]},\n 'statistics': {'mean': 3.554192556042885e+19,\n 'stddev': 4.786401658343999e+19,\n 'maximum': 1e+20,\n 'minimum': -0.0560546528687938,\n 'valid_percent': 0.0001903630604288499}}],\n 'proj:geometry': {'type': 'Polygon',\n 'coordinates': [[[-180.125, -90.124826629681],\n [179.875, -90.124826629681],\n [179.875, 89.875173370319],\n [-180.125, 89.875173370319],\n [-180.125, -90.124826629681]]]},\n 'proj:projjson': {'id': {'code': 4326.0, 'authority': 'EPSG'},\n 'name': 'WGS 84',\n 'type': 'GeographicCRS',\n 'datum': {'name': 'World Geodetic System 1984',\n 'type': 'GeodeticReferenceFrame',\n 'ellipsoid': {'name': 'WGS 84',\n 'semi_major_axis': 6378137.0,\n 'inverse_flattening': 298.257223563}},\n '$schema': 'https://proj.org/schemas/v0.4/projjson.schema.json',\n 'coordinate_system': {'axis': [{'name': 'Geodetic latitude',\n 'unit': 'degree',\n 'direction': 'north',\n 'abbreviation': 'Lat'},\n {'name': 'Geodetic longitude',\n 'unit': 'degree',\n 'direction': 'east',\n 'abbreviation': 'Lon'}],\n 'subtype': 'ellipsoidal'}},\n 'proj:transform': [0.25,\n 0.0,\n -180.125,\n 0.0,\n -0.24965325936199723,\n 89.875173370319,\n 0.0,\n 0.0,\n 1.0]}},\n 'geometry': {'type': 'Polygon',\n 'coordinates': [[[-180.125, -90.124826629681],\n [179.875, -90.124826629681],\n [179.875, 89.875173370319],\n [-180.125, 89.875173370319],\n [-180.125, -90.124826629681]]]},\n 'collection': 'eccodarwin-co2flux-monthgrid-v5',\n 'properties': {'end_datetime': '2022-12-31T00:00:00+00:00',\n 'start_datetime': '2022-12-01T00:00:00+00:00'},\n 'stac_version': '1.0.0',\n 'stac_extensions': ['https://stac-extensions.github.io/raster/v1.1.0/schema.json',\n 'https://stac-extensions.github.io/projection/v1.1.0/schema.json']}\n\n\nBelow, we are entering the minimum and maximum values to provide our upper and lower bounds in rescale_values."
},
{
"objectID": "user_data_notebooks/eccodarwin-co2flux-monthgrid-v5_User_Notebook.html#exploring-changes-in-co₂-levels-using-the-raster-api",
"href": "user_data_notebooks/eccodarwin-co2flux-monthgrid-v5_User_Notebook.html#exploring-changes-in-co₂-levels-using-the-raster-api",
"title": "Air-Sea CO₂ Flux, ECCO-Darwin Model v5",
"section": "Exploring Changes in CO₂ Levels Using the Raster API",
- "text": "Exploring Changes in CO₂ Levels Using the Raster API\nIn this notebook, we will explore the global changes of CO₂ flux over time in urban regions. We will visualize the outputs on a map using folium.\n\n# to access the year value from each item more easily, this will let us query more explicity by year and month (e.g., 2020-02)\nitems = {item[\"properties\"][\"start_datetime\"]: item for item in items} \nasset_name = \"co2\"\n\n\n# Fetching the min and max values for a specific item\nrescale_values = {\"max\":0.05544506255821962, \"min\":-0.0560546997598733}\n\nNow, we will pass the item id, collection name, and rescaling_factor to the Raster API endpoint. We will do this twice so that we can visualize each event independently.\n\ncolor_map = \"magma\"\nco2_flux_1 = requests.get(\n f\"{RASTER_API_URL}/stac/tilejson.json?collection={items[list(items.keys())[0]]['collection']}&item={items[list(items.keys())[0]]['id']}\"\n f\"&assets={asset_name}\"\n f\"&color_formula=gamma+r+1.05&colormap_name={color_map}\"\n f\"&rescale={rescale_values['min']},{rescale_values['max']}\", \n).json()\nco2_flux_1\n\n\nco2_flux_2 = requests.get(\n f\"{RASTER_API_URL}/stac/tilejson.json?collection={items[list(items.keys())[20]]['collection']}&item={items[list(items.keys())[20]]['id']}\"\n f\"&assets={asset_name}\"\n f\"&color_formula=gamma+r+1.05&colormap_name={color_map}\"\n f\"&rescale={rescale_values['min']},{rescale_values['max']}\", \n).json()\nco2_flux_2"
+ "text": "Exploring Changes in CO₂ Levels Using the Raster API\nIn this notebook, we will explore the global changes of CO₂ flux over time in urban regions. We will visualize the outputs on a map using folium.\n\n# to access the year value from each item more easily, this will let us query more explicity by year and month (e.g., 2020-02)\nitems = {item[\"properties\"][\"start_datetime\"]: item for item in items} \nasset_name = \"co2\"\n\n\n# Fetching the min and max values for a specific item\nrescale_values = {\"max\":0.05544506255821962, \"min\":-0.0560546997598733}\n\nNow, we will pass the item id, collection name, and rescaling_factor to the Raster API endpoint. We will do this twice so that we can visualize each event independently.\n\ncolor_map = \"magma\"\nco2_flux_1 = requests.get(\n f\"{RASTER_API_URL}/stac/tilejson.json?collection={items[list(items.keys())[0]]['collection']}&item={items[list(items.keys())[0]]['id']}\"\n f\"&assets={asset_name}\"\n f\"&color_formula=gamma+r+1.05&colormap_name={color_map}\"\n f\"&rescale={rescale_values['min']},{rescale_values['max']}\", \n).json()\nco2_flux_1\n\n{'tilejson': '2.2.0',\n 'version': '1.0.0',\n 'scheme': 'xyz',\n 'tiles': ['https://ghg.center/api/raster/stac/tiles/WebMercatorQuad/{z}/{x}/{y}@1x?collection=eccodarwin-co2flux-monthgrid-v5&item=eccodarwin-co2flux-monthgrid-v5-202212&assets=co2&color_formula=gamma+r+1.05&colormap_name=magma&rescale=-0.0560546997598733%2C0.05544506255821962'],\n 'minzoom': 0,\n 'maxzoom': 24,\n 'bounds': [-180.125, -90.124826629681, 179.875, 89.875173370319],\n 'center': [-0.125, -0.1248266296809959, 0]}\n\n\n\nco2_flux_2 = requests.get(\n f\"{RASTER_API_URL}/stac/tilejson.json?collection={items[list(items.keys())[20]]['collection']}&item={items[list(items.keys())[20]]['id']}\"\n f\"&assets={asset_name}\"\n f\"&color_formula=gamma+r+1.05&colormap_name={color_map}\"\n f\"&rescale={rescale_values['min']},{rescale_values['max']}\", \n).json()\nco2_flux_2\n\n{'tilejson': '2.2.0',\n 'version': '1.0.0',\n 'scheme': 'xyz',\n 'tiles': ['https://ghg.center/api/raster/stac/tiles/WebMercatorQuad/{z}/{x}/{y}@1x?collection=eccodarwin-co2flux-monthgrid-v5&item=eccodarwin-co2flux-monthgrid-v5-202104&assets=co2&color_formula=gamma+r+1.05&colormap_name=magma&rescale=-0.0560546997598733%2C0.05544506255821962'],\n 'minzoom': 0,\n 'maxzoom': 24,\n 'bounds': [-180.125, -90.124826629681, 179.875, 89.875173370319],\n 'center': [-0.125, -0.1248266296809959, 0]}"
},
{
"objectID": "user_data_notebooks/eccodarwin-co2flux-monthgrid-v5_User_Notebook.html#visualizing-co₂-flux-emissions",
"href": "user_data_notebooks/eccodarwin-co2flux-monthgrid-v5_User_Notebook.html#visualizing-co₂-flux-emissions",
"title": "Air-Sea CO₂ Flux, ECCO-Darwin Model v5",
"section": "Visualizing CO₂ flux Emissions",
- "text": "Visualizing CO₂ flux Emissions\n\n# We'll import folium to map and folium.plugins to allow mapping side-by-side\nimport folium\nimport folium.plugins\n\n# Set initial zoom and center of map for CO₂ Layer\n# Centre of map [latitude,longitude]\nmap_ = folium.plugins.DualMap(location=(34, -118), zoom_start=6)\n\n\nmap_layer_1 = TileLayer(\n tiles=co2_flux_1[\"tiles\"][0],\n attr=\"GHG\",\n opacity=0.8,\n)\nmap_layer_1.add_to(map_.m1)\n\nmap_layer_2 = TileLayer(\n tiles=co2_flux_2[\"tiles\"][0],\n attr=\"GHG\",\n opacity=0.8,\n)\nmap_layer_2.add_to(map_.m2)\n\n# visualising the map\nmap_"
+ "text": "Visualizing CO₂ flux Emissions\n\n# We'll import folium to map and folium.plugins to allow mapping side-by-side\nimport folium\nimport folium.plugins\n\n# Set initial zoom and center of map for CO₂ Layer\n# Centre of map [latitude,longitude]\nmap_ = folium.plugins.DualMap(location=(34, -118), zoom_start=6)\n\n\nmap_layer_1 = TileLayer(\n tiles=co2_flux_1[\"tiles\"][0],\n attr=\"GHG\",\n opacity=0.8,\n)\nmap_layer_1.add_to(map_.m1)\n\nmap_layer_2 = TileLayer(\n tiles=co2_flux_2[\"tiles\"][0],\n attr=\"GHG\",\n opacity=0.8,\n)\nmap_layer_2.add_to(map_.m2)\n\n# visualising the map\nmap_\n\n\nMake this Notebook Trusted to load map: File -> Trust Notebook"
},
{
"objectID": "user_data_notebooks/eccodarwin-co2flux-monthgrid-v5_User_Notebook.html#visualizing-the-data-as-a-time-series",
"href": "user_data_notebooks/eccodarwin-co2flux-monthgrid-v5_User_Notebook.html#visualizing-the-data-as-a-time-series",
"title": "Air-Sea CO₂ Flux, ECCO-Darwin Model v5",
"section": "Visualizing the Data as a Time Series",
- "text": "Visualizing the Data as a Time Series\nWe can now explore the fossil fuel emission time series (January 2020 -December 2022) available for the Dallas, Texas area of the U.S. We can plot the data set using the code below:\n\nimport matplotlib.pyplot as plt\n\nfig = plt.figure(figsize=(20, 10))\n\n\nplt.plot(\n df[\"datetime\"],\n df[\"max\"],\n color=\"red\",\n linestyle=\"-\",\n linewidth=0.5,\n label=\"CO2 emissions\",\n)\n\nplt.legend()\nplt.xlabel(\"Years\")\nplt.ylabel(\"CO2 emissions mmol m²/s\")\nplt.title(\"CO2 emission Values for Gulf of Mexico (2020-2022)\")\n\n\nprint(items[2][\"properties\"][\"start_datetime\"])\n\n\nco2_flux_3 = requests.get(\n f\"{RASTER_API_URL}/stac/tilejson.json?collection={items[2]['collection']}&item={items[2]['id']}\"\n f\"&assets={asset_name}\"\n f\"&color_formula=gamma+r+1.05&colormap_name={color_map}\"\n f\"&rescale={rescale_values['min']},{rescale_values['max']}\",\n).json()\nco2_flux_3\n\n\n# Use bbox initial zoom and map\n# Set up a map located w/in event bounds\nimport folium\n\naoi_map_bbox = Map(\n tiles=\"OpenStreetMap\",\n location=[\n 30,-100\n ],\n zoom_start=6.8,\n)\n\nmap_layer = TileLayer(\n tiles=co2_flux_3[\"tiles\"][0],\n attr=\"GHG\", opacity = 0.7\n)\n\nmap_layer.add_to(aoi_map_bbox)\n\naoi_map_bbox"
+ "text": "Visualizing the Data as a Time Series\nWe can now explore the fossil fuel emission time series (January 2020 -December 2022) available for the Dallas, Texas area of the U.S. We can plot the data set using the code below:\n\nimport matplotlib.pyplot as plt\n\nfig = plt.figure(figsize=(20, 10))\n\n\nplt.plot(\n df[\"datetime\"],\n df[\"max\"],\n color=\"red\",\n linestyle=\"-\",\n linewidth=0.5,\n label=\"CO2 emissions\",\n)\n\nplt.legend()\nplt.xlabel(\"Years\")\nplt.ylabel(\"CO2 emissions mmol m²/s\")\nplt.title(\"CO2 emission Values for Gulf of Mexico (2020-2022)\")\n\nText(0.5, 1.0, 'CO2 emission Values for Gulf of Mexico (2020-2022)')\n\n\n\n\n\n\nprint(items[2][\"properties\"][\"start_datetime\"])\n\n2022-10-01T00:00:00+00:00\n\n\n\nco2_flux_3 = requests.get(\n f\"{RASTER_API_URL}/stac/tilejson.json?collection={items[2]['collection']}&item={items[2]['id']}\"\n f\"&assets={asset_name}\"\n f\"&color_formula=gamma+r+1.05&colormap_name={color_map}\"\n f\"&rescale={rescale_values['min']},{rescale_values['max']}\",\n).json()\nco2_flux_3\n\n{'tilejson': '2.2.0',\n 'version': '1.0.0',\n 'scheme': 'xyz',\n 'tiles': ['https://ghg.center/api/raster/stac/tiles/WebMercatorQuad/{z}/{x}/{y}@1x?collection=eccodarwin-co2flux-monthgrid-v5&item=eccodarwin-co2flux-monthgrid-v5-202210&assets=co2&color_formula=gamma+r+1.05&colormap_name=magma&rescale=-0.0560546997598733%2C0.05544506255821962'],\n 'minzoom': 0,\n 'maxzoom': 24,\n 'bounds': [-180.125, -90.124826629681, 179.875, 89.875173370319],\n 'center': [-0.125, -0.1248266296809959, 0]}\n\n\n\n# Use bbox initial zoom and map\n# Set up a map located w/in event bounds\nimport folium\n\naoi_map_bbox = Map(\n tiles=\"OpenStreetMap\",\n location=[\n 30,-100\n ],\n zoom_start=6.8,\n)\n\nmap_layer = TileLayer(\n tiles=co2_flux_3[\"tiles\"][0],\n attr=\"GHG\", opacity = 0.7\n)\n\nmap_layer.add_to(aoi_map_bbox)\n\naoi_map_bbox\n\nMake this Notebook Trusted to load map: File -> Trust Notebook"
},
{
"objectID": "user_data_notebooks/eccodarwin-co2flux-monthgrid-v5_User_Notebook.html#summary",
diff --git a/pr-preview/pr-51/sitemap.xml b/pr-preview/pr-51/sitemap.xml
index 0c012d69..35c20cc4 100644
--- a/pr-preview/pr-51/sitemap.xml
+++ b/pr-preview/pr-51/sitemap.xml
@@ -2,210 +2,210 @@
https://us-ghg-center.github.io/ghgc-docs/user_data_notebooks/emit-ch4plume-v1_User_Notebook.html
- 2023-11-20T23:32:41.759Z
+ 2023-11-21T16:19:16.876Z
https://us-ghg-center.github.io/ghgc-docs/user_data_notebooks/tm54dvar-ch4flux-monthgrid-v1_User_Notebook.html
- 2023-11-20T23:32:40.603Z
+ 2023-11-21T16:19:15.420Z
https://us-ghg-center.github.io/ghgc-docs/user_data_notebooks/oco2geos-co2-daygrid-v10r_User_Notebook.html
- 2023-11-20T23:32:39.415Z
+ 2023-11-21T16:19:14.024Z
https://us-ghg-center.github.io/ghgc-docs/user_data_notebooks/casagfed-carbonflux-monthgrid-v3_User_Notebook.html
- 2023-11-20T23:32:38.455Z
+ 2023-11-21T16:19:12.524Z
https://us-ghg-center.github.io/ghgc-docs/user_data_notebooks/odiac-ffco2-monthgrid-v2022_User_Notebook.html
- 2023-11-20T23:32:37.347Z
+ 2023-11-21T16:19:11.208Z
https://us-ghg-center.github.io/ghgc-docs/user_data_notebooks/epa-ch4emission-grid-v2express_User_Notebook.html
- 2023-11-20T23:32:36.203Z
+ 2023-11-21T16:19:09.812Z
https://us-ghg-center.github.io/ghgc-docs/processing_and_verification_reports/odiac-ffco2-monthgrid-v2022_Processing and Verification Report.html
- 2023-11-20T23:32:35.291Z
+ 2023-11-21T16:19:08.892Z
https://us-ghg-center.github.io/ghgc-docs/processing_and_verification_reports/epa-ch4emission-grid-v2express_Processing and Verification Report.html
- 2023-11-20T23:32:34.647Z
+ 2023-11-21T16:19:08.252Z
https://us-ghg-center.github.io/ghgc-docs/processing_and_verification_reports/oco2-mip-co2budget-yeargrid-v1_Processing and Verification Report.html
- 2023-11-20T23:32:34.007Z
+ 2023-11-21T16:19:07.600Z
https://us-ghg-center.github.io/ghgc-docs/processing_and_verification_reports/gosat-based-ch4budget-yeargrid-v1_Processing and Verification Report.html
- 2023-11-20T23:32:33.387Z
+ 2023-11-21T16:19:06.952Z
https://us-ghg-center.github.io/ghgc-docs/processing_and_verification_reports/casagfed-carbonflux-monthgrid-v3_Processing and Verification Report.html
- 2023-11-20T23:32:32.755Z
+ 2023-11-21T16:19:06.328Z
https://us-ghg-center.github.io/ghgc-docs/processing_and_verification_reports/sedac-popdensity-yeargrid5yr-v4.11_Processing and Verification Report.html
- 2023-11-20T23:32:32.115Z
+ 2023-11-21T16:19:05.684Z
https://us-ghg-center.github.io/ghgc-docs/cog_transformation/casagfed-carbonflux-monthgrid-v3.html
- 2023-11-20T23:32:31.451Z
+ 2023-11-21T16:19:05.008Z
https://us-ghg-center.github.io/ghgc-docs/cog_transformation/eccodarwin-co2flux-monthgrid-v5.html
- 2023-11-20T23:32:30.739Z
+ 2023-11-21T16:19:04.292Z
https://us-ghg-center.github.io/ghgc-docs/cog_transformation/epa-ch4emission-grid-v2express.html
- 2023-11-20T23:32:30.027Z
+ 2023-11-21T16:19:03.596Z
https://us-ghg-center.github.io/ghgc-docs/cog_transformation/sedac-popdensity-yeargrid5yr-v4.11.html
- 2023-11-20T23:32:29.287Z
+ 2023-11-21T16:19:02.868Z
https://us-ghg-center.github.io/ghgc-docs/cog_transformation/oco2geos-co2-daygrid-v10r.html
- 2023-11-20T23:32:28.583Z
+ 2023-11-21T16:19:02.152Z
https://us-ghg-center.github.io/ghgc-docs/cog_transformation/odiac-ffco2-monthgrid-v2022.html
- 2023-11-20T23:32:27.851Z
+ 2023-11-21T16:19:01.436Z
https://us-ghg-center.github.io/ghgc-docs/cog_transformation/lpjwsl-wetlandch4-daygrid-v1.html
- 2023-11-20T23:32:27.155Z
+ 2023-11-21T16:19:00.712Z
https://us-ghg-center.github.io/ghgc-docs/services/apis.html
- 2023-11-20T23:32:26.439Z
+ 2023-11-21T16:18:59.980Z
https://us-ghg-center.github.io/ghgc-docs/data_workflow/oco2-mip-co2budget-yeargrid-v1_Data_Flow.html
- 2023-11-20T23:32:25.751Z
+ 2023-11-21T16:18:59.296Z
https://us-ghg-center.github.io/ghgc-docs/data_workflow/lpjwsl-wetlandch4-grid-v1_Data_Flow.html
- 2023-11-20T23:32:25.123Z
+ 2023-11-21T16:18:58.668Z
https://us-ghg-center.github.io/ghgc-docs/data_workflow/casagfed-carbonflux-monthgrid-v3_Data_Flow.html
- 2023-11-20T23:32:24.511Z
+ 2023-11-21T16:18:58.052Z
https://us-ghg-center.github.io/ghgc-docs/data_workflow/sedac-popdensity-yeargrid5yr-v4.11_Data_Flow.html
- 2023-11-20T23:32:23.903Z
+ 2023-11-21T16:18:57.440Z
https://us-ghg-center.github.io/ghgc-docs/data_workflow/epa-ch4emission-grid-v2express_Data_Flow.html
- 2023-11-20T23:32:23.267Z
+ 2023-11-21T16:18:56.792Z
https://us-ghg-center.github.io/ghgc-docs/data_workflow/odiac-ffco2-monthgrid-v2022_Data_Flow.html
- 2023-11-20T23:32:22.647Z
+ 2023-11-21T16:18:56.168Z
https://us-ghg-center.github.io/ghgc-docs/data_workflow/eccodarwin-co2flux-monthgrid-v5_Data_Flow.html
- 2023-11-20T23:32:21.787Z
+ 2023-11-21T16:18:55.272Z
https://us-ghg-center.github.io/ghgc-docs/data_workflow/gosat-based-ch4budget-yeargrid-v1_Data_Flow.html
- 2023-11-20T23:32:22.955Z
+ 2023-11-21T16:18:56.484Z
https://us-ghg-center.github.io/ghgc-docs/data_workflow/emit-ch4plume-v1_Data_Flow.html
- 2023-11-20T23:32:23.587Z
+ 2023-11-21T16:18:57.120Z
https://us-ghg-center.github.io/ghgc-docs/data_workflow/oco2geos-co2-daygrid-v10r_Data_Flow.html
- 2023-11-20T23:32:24.211Z
+ 2023-11-21T16:18:57.752Z
https://us-ghg-center.github.io/ghgc-docs/data_workflow/noaa-insitu_Data_Flow.html
- 2023-11-20T23:32:24.819Z
+ 2023-11-21T16:18:58.360Z
https://us-ghg-center.github.io/ghgc-docs/data_workflow/tm54dvar-ch4flux-monthgrid-v1_Data_Flow.html
- 2023-11-20T23:32:25.443Z
+ 2023-11-21T16:18:58.988Z
https://us-ghg-center.github.io/ghgc-docs/index.html
- 2023-11-20T23:32:26.095Z
+ 2023-11-21T16:18:59.652Z
https://us-ghg-center.github.io/ghgc-docs/services/jupyterhub.html
- 2023-11-20T23:32:26.783Z
+ 2023-11-21T16:19:00.328Z
https://us-ghg-center.github.io/ghgc-docs/cog_transformation/lpjwsl-wetlandch4-monthgrid-v1.html
- 2023-11-20T23:32:27.511Z
+ 2023-11-21T16:19:01.092Z
https://us-ghg-center.github.io/ghgc-docs/cog_transformation/gosat-based-ch4budget-yeargrid-v1.html
- 2023-11-20T23:32:28.203Z
+ 2023-11-21T16:19:01.796Z
https://us-ghg-center.github.io/ghgc-docs/cog_transformation/epa-ch4emission-grid-v2express_layers_update.html
- 2023-11-20T23:32:28.943Z
+ 2023-11-21T16:19:02.524Z
https://us-ghg-center.github.io/ghgc-docs/cog_transformation/epa-ch4emission-monthgrid-v2.html
- 2023-11-20T23:32:29.663Z
+ 2023-11-21T16:19:03.228Z
https://us-ghg-center.github.io/ghgc-docs/cog_transformation/emit-ch4plume-v1.html
- 2023-11-20T23:32:30.375Z
+ 2023-11-21T16:19:03.936Z
https://us-ghg-center.github.io/ghgc-docs/cog_transformation/oco2-mip-co2budget-yeargrid-v1.html
- 2023-11-20T23:32:31.087Z
+ 2023-11-21T16:19:04.660Z
https://us-ghg-center.github.io/ghgc-docs/cog_transformation/tm54dvar-ch4flux-monthgrid-v1.html
- 2023-11-20T23:32:31.803Z
+ 2023-11-21T16:19:05.368Z
https://us-ghg-center.github.io/ghgc-docs/processing_and_verification_reports/eccodarwin-co2flux-monthgrid-v5_Processing and Verification Report.html
- 2023-11-20T23:32:32.431Z
+ 2023-11-21T16:19:06.008Z
https://us-ghg-center.github.io/ghgc-docs/processing_and_verification_reports/emit-ch4plume-v1_Processing and Verification Report.html
- 2023-11-20T23:32:33.067Z
+ 2023-11-21T16:19:06.640Z
https://us-ghg-center.github.io/ghgc-docs/processing_and_verification_reports/oco2geos-co2-daygrid-v10r_Processing and Verification Report.html
- 2023-11-20T23:32:33.699Z
+ 2023-11-21T16:19:07.264Z
https://us-ghg-center.github.io/ghgc-docs/processing_and_verification_reports/lpjwsl-wetlandch4-grid-v1_Processing and Verification Report.html
- 2023-11-20T23:32:34.323Z
+ 2023-11-21T16:19:07.928Z
https://us-ghg-center.github.io/ghgc-docs/processing_and_verification_reports/tm54dvar-ch4flux-monthgrid-v1_Processing and Verification Report.html
- 2023-11-20T23:32:34.979Z
+ 2023-11-21T16:19:08.572Z
https://us-ghg-center.github.io/ghgc-docs/user_data_notebooks/noaa-insitu_User_Notebook.html
- 2023-11-20T23:32:35.707Z
+ 2023-11-21T16:19:09.320Z
https://us-ghg-center.github.io/ghgc-docs/user_data_notebooks/oco2-mip-co2budget-yeargrid-v1_User_Notebook.html
- 2023-11-20T23:32:36.687Z
+ 2023-11-21T16:19:10.536Z
https://us-ghg-center.github.io/ghgc-docs/user_data_notebooks/gosat-based-ch4budget-yeargrid-v1_User_Notebook.html
- 2023-11-20T23:32:37.951Z
+ 2023-11-21T16:19:11.816Z
https://us-ghg-center.github.io/ghgc-docs/user_data_notebooks/sedac-popdensity-yeargrid5yr-v4.11_User_Notebook.html
- 2023-11-20T23:32:38.919Z
+ 2023-11-21T16:19:13.184Z
https://us-ghg-center.github.io/ghgc-docs/user_data_notebooks/lpjwsl-wetlandch4-grid-v1_User_Notebook.html
- 2023-11-20T23:32:39.899Z
+ 2023-11-21T16:19:14.688Z
https://us-ghg-center.github.io/ghgc-docs/user_data_notebooks/eccodarwin-co2flux-monthgrid-v5_User_Notebook.html
- 2023-11-20T23:32:41.099Z
+ 2023-11-21T16:19:16.132Z
diff --git a/pr-preview/pr-51/user_data_notebooks/casagfed-carbonflux-monthgrid-v3_User_Notebook.html b/pr-preview/pr-51/user_data_notebooks/casagfed-carbonflux-monthgrid-v3_User_Notebook.html
index c881c431..2c6ed150 100644
--- a/pr-preview/pr-51/user_data_notebooks/casagfed-carbonflux-monthgrid-v3_User_Notebook.html
+++ b/pr-preview/pr-51/user_data_notebooks/casagfed-carbonflux-monthgrid-v3_User_Notebook.html
@@ -97,6 +97,9 @@
"search-label": "Search"
}
}
+
+
+
@@ -575,281 +578,1664 @@
About the Data
Installing the Required Libraries
Please run the next cell to install all the required libraries to run the notebook.
-
+
% pip install requests
% pip install folium
% pip install rasterstats
% pip install pystac_client
+
+
Requirement already satisfied: requests in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (2.31.0)
+Requirement already satisfied: certifi>=2017.4.17 in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from requests) (2023.7.22)
+Requirement already satisfied: urllib3<3,>=1.21.1 in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from requests) (1.26.16)
+Requirement already satisfied: charset-normalizer<4,>=2 in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from requests) (3.1.0)
+Requirement already satisfied: idna<4,>=2.5 in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from requests) (3.4)
+Note: you may need to restart the kernel to use updated packages.
+Requirement already satisfied: folium in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (0.14.0)
+Requirement already satisfied: branca>=0.6.0 in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from folium) (0.6.0)
+Requirement already satisfied: numpy in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from folium) (1.24.3)
+Requirement already satisfied: jinja2>=2.9 in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from folium) (3.1.2)
+Requirement already satisfied: requests in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from folium) (2.31.0)
+Requirement already satisfied: MarkupSafe>=2.0 in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from jinja2>=2.9->folium) (2.1.3)
+Requirement already satisfied: urllib3<3,>=1.21.1 in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from requests->folium) (1.26.16)
+Requirement already satisfied: charset-normalizer<4,>=2 in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from requests->folium) (3.1.0)
+Requirement already satisfied: idna<4,>=2.5 in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from requests->folium) (3.4)
+Requirement already satisfied: certifi>=2017.4.17 in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from requests->folium) (2023.7.22)
+Note: you may need to restart the kernel to use updated packages.
+Requirement already satisfied: rasterstats in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (0.19.0)
+Requirement already satisfied: click>7.1 in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from rasterstats) (8.1.3)
+Requirement already satisfied: numpy>=1.9 in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from rasterstats) (1.24.3)
+Requirement already satisfied: affine in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from rasterstats) (2.4.0)
+Requirement already satisfied: cligj>=0.4 in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from rasterstats) (0.7.2)
+Requirement already satisfied: fiona in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from rasterstats) (1.9.4.post1)
+Requirement already satisfied: simplejson in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from rasterstats) (3.19.1)
+Requirement already satisfied: shapely in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from rasterstats) (2.0.1)
+Requirement already satisfied: rasterio>=1.0 in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from rasterstats) (1.3.6)
+Requirement already satisfied: attrs in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from rasterio>=1.0->rasterstats) (22.2.0)
+Requirement already satisfied: snuggs>=1.4.1 in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from rasterio>=1.0->rasterstats) (1.4.7)
+Requirement already satisfied: setuptools in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from rasterio>=1.0->rasterstats) (66.0.0)
+Requirement already satisfied: certifi in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from rasterio>=1.0->rasterstats) (2023.7.22)
+Requirement already satisfied: click-plugins in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from rasterio>=1.0->rasterstats) (1.1.1)
+Requirement already satisfied: six in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from fiona->rasterstats) (1.16.0)
+Requirement already satisfied: importlib-metadata in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from fiona->rasterstats) (6.0.0)
+Requirement already satisfied: pyparsing>=2.1.6 in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from snuggs>=1.4.1->rasterio>=1.0->rasterstats) (3.0.9)
+Requirement already satisfied: zipp>=0.5 in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from importlib-metadata->fiona->rasterstats) (3.15.0)
+Note: you may need to restart the kernel to use updated packages.
+Requirement already satisfied: pystac_client in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (0.7.2)
+Requirement already satisfied: requests>=2.28.2 in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from pystac_client) (2.31.0)
+Requirement already satisfied: python-dateutil>=2.8.2 in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from pystac_client) (2.8.2)
+Requirement already satisfied: pystac[validation]>=1.7.2 in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from pystac_client) (1.7.3)
+Requirement already satisfied: jsonschema>=4.0.1 in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from pystac[validation]>=1.7.2->pystac_client) (4.17.3)
+Requirement already satisfied: six>=1.5 in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from python-dateutil>=2.8.2->pystac_client) (1.16.0)
+Requirement already satisfied: urllib3<3,>=1.21.1 in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from requests>=2.28.2->pystac_client) (1.26.16)
+Requirement already satisfied: charset-normalizer<4,>=2 in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from requests>=2.28.2->pystac_client) (3.1.0)
+Requirement already satisfied: idna<4,>=2.5 in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from requests>=2.28.2->pystac_client) (3.4)
+Requirement already satisfied: certifi>=2017.4.17 in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from requests>=2.28.2->pystac_client) (2023.7.22)
+Requirement already satisfied: attrs>=17.4.0 in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from jsonschema>=4.0.1->pystac[validation]>=1.7.2->pystac_client) (22.2.0)
+Requirement already satisfied: pyrsistent!=0.17.0,!=0.17.1,!=0.17.2,>=0.14.0 in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from jsonschema>=4.0.1->pystac[validation]>=1.7.2->pystac_client) (0.19.3)
+Note: you may need to restart the kernel to use updated packages.
+
Querying the STAC API
-
-
import requests
-from folium import Map, TileLayer
-from pystac_client import Client
+
+
import requests
+from folium import Map, TileLayer
+from pystac_client import Client
+
+
+
# Provide STAC and RASTER API endpoints
+ STAC_API_URL = "http://ghg.center/api/stac"
+ RASTER_API_URL = "https://ghg.center/api/raster"
+
+# Please use the collection name similar to the one used in STAC collection.
+# Name of the collection for CASA GFED Land-Atmosphere Carbon Flux monthly emissions.
+ collection_name = "casagfed-carbonflux-monthgrid-v3"
-
-
# Provide STAC and RASTER API endpoints
- STAC_API_URL = "http://ghg.center/api/stac"
- RASTER_API_URL = "https://ghg.center/api/raster"
-
-# Please use the collection name similar to the one used in STAC collection.
-# Name of the collection for CASA GFED Land-Atmosphere Carbon Flux monthly emissions.
- collection_name = "casagfed-carbonflux-monthgrid-v3"
+
+
# Fetching the collection from STAC collections using appropriate endpoint.
+ collection = requests.get(f" { STAC_API_URL} /collections/ { collection_name} " ).json()
+ collection
+
+
{'id': 'casagfed-carbonflux-monthgrid-v3',
+ 'type': 'Collection',
+ 'links': [{'rel': 'items',
+ 'type': 'application/geo+json',
+ 'href': 'https://ghg.center/api/stac/collections/casagfed-carbonflux-monthgrid-v3/items'},
+ {'rel': 'parent',
+ 'type': 'application/json',
+ 'href': 'https://ghg.center/api/stac/'},
+ {'rel': 'root',
+ 'type': 'application/json',
+ 'href': 'https://ghg.center/api/stac/'},
+ {'rel': 'self',
+ 'type': 'application/json',
+ 'href': 'https://ghg.center/api/stac/collections/casagfed-carbonflux-monthgrid-v3'}],
+ 'title': 'CASA GFED3 Land Carbon Flux',
+ 'assets': None,
+ 'extent': {'spatial': {'bbox': [[-180, -90, 180, 90]]},
+ 'temporal': {'interval': [['2003-01-01T00:00:00+00:00',
+ '2017-12-31T00:00:00+00:00']]}},
+ 'license': 'CC-BY-4.0',
+ 'keywords': None,
+ 'providers': None,
+ 'summaries': {'datetime': ['2003-01-01T00:00:00Z', '2017-12-31T00:00:00Z']},
+ 'description': 'This product provides Monthly average Net Primary Production (NPP), heterotrophic respiration (Rh), wildfire emissions (FIRE), and fuel wood burning emissions (FUEL) derived from the Carnegie-Ames-Stanford-Approach – Global Fire Emissions Database version 3 (CASA-GFED3) model.',
+ 'item_assets': {'rh': {'type': 'image/tiff; application=geotiff; profile=cloud-optimized',
+ 'roles': ['data', 'layer'],
+ 'title': 'rh',
+ 'description': 'Heterotrophic respiration'},
+ 'nee': {'type': 'image/tiff; application=geotiff; profile=cloud-optimized',
+ 'roles': ['data', 'layer'],
+ 'title': 'nee',
+ 'description': 'Net ecosystem exchange'},
+ 'npp': {'type': 'image/tiff; application=geotiff; profile=cloud-optimized',
+ 'roles': ['data', 'layer'],
+ 'title': 'NPP',
+ 'description': 'Net Primary Production'},
+ 'fire': {'type': 'image/tiff; application=geotiff; profile=cloud-optimized',
+ 'roles': ['data', 'layer'],
+ 'title': 'fire',
+ 'description': 'fire emissions'},
+ 'fuel': {'type': 'image/tiff; application=geotiff; profile=cloud-optimized',
+ 'roles': ['data', 'layer'],
+ 'title': 'fuel',
+ 'description': 'fuel emissions'}},
+ 'stac_version': '1.0.0',
+ 'stac_extensions': None,
+ 'dashboard:is_periodic': True,
+ 'dashboard:time_density': 'month'}
-
-
# Fetching the collection from STAC collections using appropriate endpoint.
- collection = requests.get(f" { STAC_API_URL} /collections/ { collection_name} " ).json()
- collection
Examining the contents of our collection
under the temporal
variable, we see that the data is available from January 2003 to December 2017. By looking at the dashboard:time density
, we observe that the periodic frequency of these observations is monthly.
-
-
def get_item_count(collection_id):
- count = 0
- items_url = f" { STAC_API_URL} /collections/ { collection_id} /items"
-
- while True :
- response = requests.get(items_url)
-
- if not response.ok:
- print ("error getting items" )
- exit()
-
- stac = response.json()
- count += int (stac["context" ].get("returned" , 0 ))
- next = [link for link in stac["links" ] if link["rel" ] == "next" ]
-
- if not next :
- break
- items_url = next [0 ]["href" ]
-
- return count
+
+
def get_item_count(collection_id):
+ count = 0
+ items_url = f" { STAC_API_URL} /collections/ { collection_id} /items"
+
+ while True :
+ response = requests.get(items_url)
+
+ if not response.ok:
+ print ("error getting items" )
+ exit()
+
+ stac = response.json()
+ count += int (stac["context" ].get("returned" , 0 ))
+ next = [link for link in stac["links" ] if link["rel" ] == "next" ]
+
+ if not next :
+ break
+ items_url = next [0 ]["href" ]
+
+ return count
+
+
+
# Check the total number of items available
+ number_of_items = get_item_count(collection_name)
+ items = requests.get(f" { STAC_API_URL} /collections/ { collection_name} /items?limit= { number_of_items} " ).json()["features" ]
+print (f"Found { len (items)} items" )
+
-
-
# Check the total number of items available
- number_of_items = get_item_count(collection_name)
- items = requests.get(f" { STAC_API_URL} /collections/ { collection_name} /items?limit= { number_of_items} " ).json()["features" ]
-print (f"Found { len (items)} items" )
-
-
# Examining the first item in the collection
- items[0 ]
+
+
# Examining the first item in the collection
+ items[0 ]
+
+
{'id': 'casagfed-carbonflux-monthgrid-v3-201712',
+ 'bbox': [-180.0, -90.0, 180.0, 90.0],
+ 'type': 'Feature',
+ 'links': [{'rel': 'collection',
+ 'type': 'application/json',
+ 'href': 'https://ghg.center/api/stac/collections/casagfed-carbonflux-monthgrid-v3'},
+ {'rel': 'parent',
+ 'type': 'application/json',
+ 'href': 'https://ghg.center/api/stac/collections/casagfed-carbonflux-monthgrid-v3'},
+ {'rel': 'root',
+ 'type': 'application/json',
+ 'href': 'https://ghg.center/api/stac/'},
+ {'rel': 'self',
+ 'type': 'application/geo+json',
+ 'href': 'https://ghg.center/api/stac/collections/casagfed-carbonflux-monthgrid-v3/items/casagfed-carbonflux-monthgrid-v3-201712'}],
+ 'assets': {'rh': {'href': 's3://ghgc-data-store/casagfed-carbonflux-monthgrid-v3/GEOSCarb_CASAGFED3v3_Rh_Flux_Monthly_x720_y360_201712.tif',
+ 'type': 'image/tiff; application=geotiff; profile=cloud-optimized',
+ 'roles': ['data', 'layer'],
+ 'title': 'rh',
+ 'proj:bbox': [-180.0, -90.0, 180.0, 90.0],
+ 'proj:epsg': 4326.0,
+ 'proj:shape': [360.0, 720.0],
+ 'description': 'Heterotrophic respiration',
+ 'raster:bands': [{'scale': 1.0,
+ 'offset': 0.0,
+ 'sampling': 'area',
+ 'data_type': 'float32',
+ 'histogram': {'max': 0.6039900183677673,
+ 'min': 0.0,
+ 'count': 11.0,
+ 'buckets': [249101.0,
+ 7375.0,
+ 2429.0,
+ 252.0,
+ 32.0,
+ 5.0,
+ 2.0,
+ 2.0,
+ 0.0,
+ 2.0]},
+ 'statistics': {'mean': 0.006758838426321745,
+ 'stddev': 0.022668374702334404,
+ 'maximum': 0.6039900183677673,
+ 'minimum': 0.0,
+ 'valid_percent': 0.0003858024691358025}}],
+ 'proj:geometry': {'type': 'Polygon',
+ 'coordinates': [[[-180.0, -90.0],
+ [180.0, -90.0],
+ [180.0, 90.0],
+ [-180.0, 90.0],
+ [-180.0, -90.0]]]},
+ 'proj:projjson': {'id': {'code': 4326.0, 'authority': 'EPSG'},
+ 'name': 'WGS 84',
+ 'type': 'GeographicCRS',
+ 'datum': {'name': 'World Geodetic System 1984',
+ 'type': 'GeodeticReferenceFrame',
+ 'ellipsoid': {'name': 'WGS 84',
+ 'semi_major_axis': 6378137.0,
+ 'inverse_flattening': 298.257223563}},
+ '$schema': 'https://proj.org/schemas/v0.4/projjson.schema.json',
+ 'coordinate_system': {'axis': [{'name': 'Geodetic latitude',
+ 'unit': 'degree',
+ 'direction': 'north',
+ 'abbreviation': 'Lat'},
+ {'name': 'Geodetic longitude',
+ 'unit': 'degree',
+ 'direction': 'east',
+ 'abbreviation': 'Lon'}],
+ 'subtype': 'ellipsoidal'}},
+ 'proj:transform': [0.5, 0.0, -180.0, 0.0, -0.5, 90.0, 0.0, 0.0, 1.0]},
+ 'nee': {'href': 's3://ghgc-data-store/casagfed-carbonflux-monthgrid-v3/GEOSCarb_CASAGFED3v3_NEE_Flux_Monthly_x720_y360_201712.tif',
+ 'type': 'image/tiff; application=geotiff; profile=cloud-optimized',
+ 'roles': ['data', 'layer'],
+ 'title': 'nee',
+ 'proj:bbox': [-180.0, -90.0, 180.0, 90.0],
+ 'proj:epsg': 4326.0,
+ 'proj:shape': [360.0, 720.0],
+ 'description': 'Net ecosystem exchange',
+ 'raster:bands': [{'scale': 1.0,
+ 'offset': 0.0,
+ 'sampling': 'area',
+ 'data_type': 'float32',
+ 'histogram': {'max': 0.48997998237609863,
+ 'min': -0.11027999967336655,
+ 'count': 11.0,
+ 'buckets': [663.0,
+ 234393.0,
+ 23809.0,
+ 282.0,
+ 37.0,
+ 10.0,
+ 4.0,
+ 0.0,
+ 0.0,
+ 2.0]},
+ 'statistics': {'mean': 0.0015448036137968302,
+ 'stddev': 0.00977976992726326,
+ 'maximum': 0.48997998237609863,
+ 'minimum': -0.11027999967336655,
+ 'valid_percent': 0.0003858024691358025}}],
+ 'proj:geometry': {'type': 'Polygon',
+ 'coordinates': [[[-180.0, -90.0],
+ [180.0, -90.0],
+ [180.0, 90.0],
+ [-180.0, 90.0],
+ [-180.0, -90.0]]]},
+ 'proj:projjson': {'id': {'code': 4326.0, 'authority': 'EPSG'},
+ 'name': 'WGS 84',
+ 'type': 'GeographicCRS',
+ 'datum': {'name': 'World Geodetic System 1984',
+ 'type': 'GeodeticReferenceFrame',
+ 'ellipsoid': {'name': 'WGS 84',
+ 'semi_major_axis': 6378137.0,
+ 'inverse_flattening': 298.257223563}},
+ '$schema': 'https://proj.org/schemas/v0.4/projjson.schema.json',
+ 'coordinate_system': {'axis': [{'name': 'Geodetic latitude',
+ 'unit': 'degree',
+ 'direction': 'north',
+ 'abbreviation': 'Lat'},
+ {'name': 'Geodetic longitude',
+ 'unit': 'degree',
+ 'direction': 'east',
+ 'abbreviation': 'Lon'}],
+ 'subtype': 'ellipsoidal'}},
+ 'proj:transform': [0.5, 0.0, -180.0, 0.0, -0.5, 90.0, 0.0, 0.0, 1.0]},
+ 'npp': {'href': 's3://ghgc-data-store/casagfed-carbonflux-monthgrid-v3/GEOSCarb_CASAGFED3v3_NPP_Flux_Monthly_x720_y360_201712.tif',
+ 'type': 'image/tiff; application=geotiff; profile=cloud-optimized',
+ 'roles': ['data', 'layer'],
+ 'title': 'NPP',
+ 'proj:bbox': [-180.0, -90.0, 180.0, 90.0],
+ 'proj:epsg': 4326.0,
+ 'proj:shape': [360.0, 720.0],
+ 'description': 'Net Primary Production',
+ 'raster:bands': [{'scale': 1.0,
+ 'offset': 0.0,
+ 'sampling': 'area',
+ 'data_type': 'float32',
+ 'histogram': {'max': 0.23635999858379364,
+ 'min': 0.0,
+ 'count': 11.0,
+ 'buckets': [244636.0,
+ 3051.0,
+ 1928.0,
+ 2634.0,
+ 4088.0,
+ 2211.0,
+ 428.0,
+ 156.0,
+ 59.0,
+ 9.0]},
+ 'statistics': {'mean': 0.005214035045355558,
+ 'stddev': 0.021809572353959084,
+ 'maximum': 0.23635999858379364,
+ 'minimum': 0.0,
+ 'valid_percent': 0.0003858024691358025}}],
+ 'proj:geometry': {'type': 'Polygon',
+ 'coordinates': [[[-180.0, -90.0],
+ [180.0, -90.0],
+ [180.0, 90.0],
+ [-180.0, 90.0],
+ [-180.0, -90.0]]]},
+ 'proj:projjson': {'id': {'code': 4326.0, 'authority': 'EPSG'},
+ 'name': 'WGS 84',
+ 'type': 'GeographicCRS',
+ 'datum': {'name': 'World Geodetic System 1984',
+ 'type': 'GeodeticReferenceFrame',
+ 'ellipsoid': {'name': 'WGS 84',
+ 'semi_major_axis': 6378137.0,
+ 'inverse_flattening': 298.257223563}},
+ '$schema': 'https://proj.org/schemas/v0.4/projjson.schema.json',
+ 'coordinate_system': {'axis': [{'name': 'Geodetic latitude',
+ 'unit': 'degree',
+ 'direction': 'north',
+ 'abbreviation': 'Lat'},
+ {'name': 'Geodetic longitude',
+ 'unit': 'degree',
+ 'direction': 'east',
+ 'abbreviation': 'Lon'}],
+ 'subtype': 'ellipsoidal'}},
+ 'proj:transform': [0.5, 0.0, -180.0, 0.0, -0.5, 90.0, 0.0, 0.0, 1.0]},
+ 'fire': {'href': 's3://ghgc-data-store/casagfed-carbonflux-monthgrid-v3/GEOSCarb_CASAGFED3v3_FIRE_Flux_Monthly_x720_y360_201712.tif',
+ 'type': 'image/tiff; application=geotiff; profile=cloud-optimized',
+ 'roles': ['data', 'layer'],
+ 'title': 'fire',
+ 'proj:bbox': [-180.0, -90.0, 180.0, 90.0],
+ 'proj:epsg': 4326.0,
+ 'proj:shape': [360.0, 720.0],
+ 'description': 'fire emissions',
+ 'raster:bands': [{'scale': 1.0,
+ 'offset': 0.0,
+ 'sampling': 'area',
+ 'data_type': 'float32',
+ 'histogram': {'max': 0.7556899785995483,
+ 'min': 0.0,
+ 'count': 11.0,
+ 'buckets': [258952.0, 161.0, 53.0, 22.0, 11.0, 0.0, 0.0, 0.0, 0.0, 1.0]},
+ 'statistics': {'mean': 0.00025634843041189015,
+ 'stddev': 0.005492232274264097,
+ 'maximum': 0.7556899785995483,
+ 'minimum': 0.0,
+ 'valid_percent': 0.0003858024691358025}}],
+ 'proj:geometry': {'type': 'Polygon',
+ 'coordinates': [[[-180.0, -90.0],
+ [180.0, -90.0],
+ [180.0, 90.0],
+ [-180.0, 90.0],
+ [-180.0, -90.0]]]},
+ 'proj:projjson': {'id': {'code': 4326.0, 'authority': 'EPSG'},
+ 'name': 'WGS 84',
+ 'type': 'GeographicCRS',
+ 'datum': {'name': 'World Geodetic System 1984',
+ 'type': 'GeodeticReferenceFrame',
+ 'ellipsoid': {'name': 'WGS 84',
+ 'semi_major_axis': 6378137.0,
+ 'inverse_flattening': 298.257223563}},
+ '$schema': 'https://proj.org/schemas/v0.4/projjson.schema.json',
+ 'coordinate_system': {'axis': [{'name': 'Geodetic latitude',
+ 'unit': 'degree',
+ 'direction': 'north',
+ 'abbreviation': 'Lat'},
+ {'name': 'Geodetic longitude',
+ 'unit': 'degree',
+ 'direction': 'east',
+ 'abbreviation': 'Lon'}],
+ 'subtype': 'ellipsoidal'}},
+ 'proj:transform': [0.5, 0.0, -180.0, 0.0, -0.5, 90.0, 0.0, 0.0, 1.0]},
+ 'fuel': {'href': 's3://ghgc-data-store/casagfed-carbonflux-monthgrid-v3/GEOSCarb_CASAGFED3v3_FUEL_Flux_Monthly_x720_y360_201712.tif',
+ 'type': 'image/tiff; application=geotiff; profile=cloud-optimized',
+ 'roles': ['data', 'layer'],
+ 'title': 'fuel',
+ 'proj:bbox': [-180.0, -90.0, 180.0, 90.0],
+ 'proj:epsg': 4326.0,
+ 'proj:shape': [360.0, 720.0],
+ 'description': 'fuel emissions',
+ 'raster:bands': [{'scale': 1.0,
+ 'offset': 0.0,
+ 'sampling': 'area',
+ 'data_type': 'float32',
+ 'histogram': {'max': 0.020759999752044678,
+ 'min': 0.0,
+ 'count': 11.0,
+ 'buckets': [257568.0,
+ 1150.0,
+ 284.0,
+ 115.0,
+ 47.0,
+ 21.0,
+ 5.0,
+ 6.0,
+ 3.0,
+ 1.0]},
+ 'statistics': {'mean': 5.057307134848088e-05,
+ 'stddev': 0.0003876804548781365,
+ 'maximum': 0.020759999752044678,
+ 'minimum': 0.0,
+ 'valid_percent': 0.0003858024691358025}}],
+ 'proj:geometry': {'type': 'Polygon',
+ 'coordinates': [[[-180.0, -90.0],
+ [180.0, -90.0],
+ [180.0, 90.0],
+ [-180.0, 90.0],
+ [-180.0, -90.0]]]},
+ 'proj:projjson': {'id': {'code': 4326.0, 'authority': 'EPSG'},
+ 'name': 'WGS 84',
+ 'type': 'GeographicCRS',
+ 'datum': {'name': 'World Geodetic System 1984',
+ 'type': 'GeodeticReferenceFrame',
+ 'ellipsoid': {'name': 'WGS 84',
+ 'semi_major_axis': 6378137.0,
+ 'inverse_flattening': 298.257223563}},
+ '$schema': 'https://proj.org/schemas/v0.4/projjson.schema.json',
+ 'coordinate_system': {'axis': [{'name': 'Geodetic latitude',
+ 'unit': 'degree',
+ 'direction': 'north',
+ 'abbreviation': 'Lat'},
+ {'name': 'Geodetic longitude',
+ 'unit': 'degree',
+ 'direction': 'east',
+ 'abbreviation': 'Lon'}],
+ 'subtype': 'ellipsoidal'}},
+ 'proj:transform': [0.5, 0.0, -180.0, 0.0, -0.5, 90.0, 0.0, 0.0, 1.0]}},
+ 'geometry': {'type': 'Polygon',
+ 'coordinates': [[[-180, -90],
+ [180, -90],
+ [180, 90],
+ [-180, 90],
+ [-180, -90]]]},
+ 'collection': 'casagfed-carbonflux-monthgrid-v3',
+ 'properties': {'end_datetime': '2017-12-31T00:00:00+00:00',
+ 'start_datetime': '2017-12-01T00:00:00+00:00'},
+ 'stac_version': '1.0.0',
+ 'stac_extensions': []}
+
Below, we are entering the minimum and maximum values to provide our upper and lower bounds in rescale_values
.
Exploring Changes in Carbon Flux Levels Using the Raster API
We will explore changes in land atmosphere Carbon flux Heterotrophic Respiration
. In this notebook, we’ll explore the impacts of these emissions and explore these changes over time. We’ll then visualize the outputs on a map using folium
.
-
-
# To access the year value from each item more easily, this will let us query more explicity by year and month (e.g., 2020-02)
- items = {item["properties" ]["start_datetime" ][:7 ]: item for item in items}
-# rh = Heterotrophic Respiration
- asset_name = "rh"
+
+
# To access the year value from each item more easily, this will let us query more explicity by year and month (e.g., 2020-02)
+ items = {item["properties" ]["start_datetime" ][:7 ]: item for item in items}
+# rh = Heterotrophic Respiration
+ asset_name = "rh"
-
-
rescale_values = {"max" :items[list (items.keys())[0 ]]["assets" ][asset_name]["raster:bands" ][0 ]["histogram" ]["max" ], "min" :items[list (items.keys())[0 ]]["assets" ][asset_name]["raster:bands" ][0 ]["histogram" ]["min" ]}
+
+
rescale_values = {"max" :items[list (items.keys())[0 ]]["assets" ][asset_name]["raster:bands" ][0 ]["histogram" ]["max" ], "min" :items[list (items.keys())[0 ]]["assets" ][asset_name]["raster:bands" ][0 ]["histogram" ]["min" ]}
Now, we will pass the item id, collection name, and rescaling_factor
to the Raster API
endpoint. We will do this twice, once for December 2003 and again for December 2017, so that we can visualize each event independently.
-
-
color_map = "purd" # please select the color ramp from matplotlib library.
- december_2003_tile = requests.get(
- f" { RASTER_API_URL} /stac/tilejson.json?collection= { items['2003-12' ]['collection' ]} &item= { items['2003-12' ]['id' ]} "
- f"&assets= { asset_name} "
- f"&color_formula=gamma+r+1.05&colormap_name= { color_map} "
- f"&rescale= { rescale_values['min' ]} , { rescale_values['max' ]} " ,
- ).json()
- december_2003_tile
+
+
color_map = "purd" # please select the color ramp from matplotlib library.
+ december_2003_tile = requests.get(
+ f" { RASTER_API_URL} /stac/tilejson.json?collection= { items['2003-12' ]['collection' ]} &item= { items['2003-12' ]['id' ]} "
+ f"&assets= { asset_name} "
+ f"&color_formula=gamma+r+1.05&colormap_name= { color_map} "
+ f"&rescale= { rescale_values['min' ]} , { rescale_values['max' ]} " ,
+ ).json()
+ december_2003_tile
+
+
{'tilejson': '2.2.0',
+ 'version': '1.0.0',
+ 'scheme': 'xyz',
+ 'tiles': ['https://ghg.center/api/raster/stac/tiles/WebMercatorQuad/{z}/{x}/{y}@1x?collection=casagfed-carbonflux-monthgrid-v3&item=casagfed-carbonflux-monthgrid-v3-200312&assets=rh&color_formula=gamma+r+1.05&colormap_name=purd&rescale=0.0%2C0.6039900183677673'],
+ 'minzoom': 0,
+ 'maxzoom': 24,
+ 'bounds': [-180.0, -90.0, 180.0, 90.0],
+ 'center': [0.0, 0.0, 0]}
+
+
+
+
december_2017_tile = requests.get(
+ f" { RASTER_API_URL} /stac/tilejson.json?collection= { items['2017-12' ]['collection' ]} &item= { items['2017-12' ]['id' ]} "
+ f"&assets= { asset_name} "
+ f"&color_formula=gamma+r+1.05&colormap_name= { color_map} "
+ f"&rescale= { rescale_values['min' ]} , { rescale_values['max' ]} " ,
+ ).json()
+ december_2017_tile
+
+
{'tilejson': '2.2.0',
+ 'version': '1.0.0',
+ 'scheme': 'xyz',
+ 'tiles': ['https://ghg.center/api/raster/stac/tiles/WebMercatorQuad/{z}/{x}/{y}@1x?collection=casagfed-carbonflux-monthgrid-v3&item=casagfed-carbonflux-monthgrid-v3-201712&assets=rh&color_formula=gamma+r+1.05&colormap_name=purd&rescale=0.0%2C0.6039900183677673'],
+ 'minzoom': 0,
+ 'maxzoom': 24,
+ 'bounds': [-180.0, -90.0, 180.0, 90.0],
+ 'center': [0.0, 0.0, 0]}
-
-
december_2017_tile = requests.get(
- f" { RASTER_API_URL} /stac/tilejson.json?collection= { items['2017-12' ]['collection' ]} &item= { items['2017-12' ]['id' ]} "
- f"&assets= { asset_name} "
- f"&color_formula=gamma+r+1.05&colormap_name= { color_map} "
- f"&rescale= { rescale_values['min' ]} , { rescale_values['max' ]} " ,
- ).json()
- december_2017_tile
Visualizing Land-Atmosphere Carbon Flux (Heterotrophic Respiration)
-
-
# We will import folium to map and folium.plugins to allow mapping side-by-side
-import folium
-import folium.plugins
-
-# Set initial zoom and center of map for CO₂ Layer
- map_ = folium.plugins.DualMap(location= (34 , - 118 ), zoom_start= 6 )
-
-# December 2003
- map_layer_2003 = TileLayer(
- tiles= december_2003_tile["tiles" ][0 ],
- attr= "GHG" ,
- opacity= 0.8 ,
- )
- map_layer_2003.add_to(map_.m1)
-
-# December 2017
- map_layer_2017 = TileLayer(
- tiles= december_2017_tile["tiles" ][0 ],
- attr= "GHG" ,
- opacity= 0.8 ,
- )
- map_layer_2017.add_to(map_.m2)
-
-# visualising the map
- map_
-
+
+
# We will import folium to map and folium.plugins to allow mapping side-by-side
+import folium
+import folium.plugins
+
+# Set initial zoom and center of map for CO₂ Layer
+ map_ = folium.plugins.DualMap(location= (34 , - 118 ), zoom_start= 6 )
+
+# December 2003
+ map_layer_2003 = TileLayer(
+ tiles= december_2003_tile["tiles" ][0 ],
+ attr= "GHG" ,
+ opacity= 0.8 ,
+ )
+ map_layer_2003.add_to(map_.m1)
+
+# December 2017
+ map_layer_2017 = TileLayer(
+ tiles= december_2017_tile["tiles" ][0 ],
+ attr= "GHG" ,
+ opacity= 0.8 ,
+ )
+ map_layer_2017.add_to(map_.m2)
+
+# visualising the map
+ map_
+
+
+
Make this Notebook Trusted to load map: File -> Trust Notebook
+
Calculating Zonal Statistics
To perform zonal statistics, first we need to create a polygon. In this use case we are creating a polygon in Texas (USA).
-
-
# Texas, Dallas, USA AOI
- texas_dallas_aoi = {
- "type" : "Feature" ,
- "properties" : {},
- "geometry" : {
- "coordinates" : [
- [
- # [longitude, latitude]
- [- 95 , 29 ],
- [- 95 , 33 ],
- [- 104 , 33 ],
- [- 104 ,29 ],
- [- 95 , 29 ]
- ]
- ],
- "type" : "Polygon" ,
- },
- }
+
+
# Texas, Dallas, USA AOI
+ texas_dallas_aoi = {
+ "type" : "Feature" ,
+ "properties" : {},
+ "geometry" : {
+ "coordinates" : [
+ [
+ # [longitude, latitude]
+ [- 95 , 29 ],
+ [- 95 , 33 ],
+ [- 104 , 33 ],
+ [- 104 ,29 ],
+ [- 95 , 29 ]
+ ]
+ ],
+ "type" : "Polygon" ,
+ },
+ }
+
+
+
# We will plug in the coordinates for a location inside the the polygon and a zoom level
+
+import folium
+
+ aoi_map = Map(
+ tiles= "OpenStreetMap" ,
+ location= [
+ 32.81 ,- 96.93 ,
+ ],
+ zoom_start= 6 ,
+ )
+
+ folium.GeoJson(texas_dallas_aoi, name= "Texas, Dallas" ).add_to(aoi_map)
+ aoi_map
+
+
Make this Notebook Trusted to load map: File -> Trust Notebook
-
-
# We will plug in the coordinates for a location inside the the polygon and a zoom level
-
-import folium
-
- aoi_map = Map(
- tiles= "OpenStreetMap" ,
- location= [
- 32.81 ,- 96.93 ,
- ],
- zoom_start= 6 ,
- )
-
- folium.GeoJson(texas_dallas_aoi, name= "Texas, Dallas" ).add_to(aoi_map)
- aoi_map
-
-
# Check total number of items available
- items = requests.get(
- f" { STAC_API_URL} /collections/ { collection_name} /items?limit=600"
- ).json()["features" ]
-print (f"Found { len (items)} items" )
+
+
# Check total number of items available
+ items = requests.get(
+ f" { STAC_API_URL} /collections/ { collection_name} /items?limit=600"
+ ).json()["features" ]
+print (f"Found { len (items)} items" )
+
-
-
# Explore the first item
- items[0 ]
-
-
# The bounding box should be passed to the geojson param as a geojson Feature or FeatureCollection
-def generate_stats(item, geojson):
- result = requests.post(
- f" { RASTER_API_URL} /cog/statistics" ,
- params= {"url" : item["assets" ][asset_name]["href" ]},
- json= geojson,
- ).json()
- print (result)
- return {
- ** result["properties" ],
- "start_datetime" : item["properties" ]["start_datetime" ],
- }
+
+
# Explore the first item
+ items[0 ]
+
+
{'id': 'casagfed-carbonflux-monthgrid-v3-201712',
+ 'bbox': [-180.0, -90.0, 180.0, 90.0],
+ 'type': 'Feature',
+ 'links': [{'rel': 'collection',
+ 'type': 'application/json',
+ 'href': 'https://ghg.center/api/stac/collections/casagfed-carbonflux-monthgrid-v3'},
+ {'rel': 'parent',
+ 'type': 'application/json',
+ 'href': 'https://ghg.center/api/stac/collections/casagfed-carbonflux-monthgrid-v3'},
+ {'rel': 'root',
+ 'type': 'application/json',
+ 'href': 'https://ghg.center/api/stac/'},
+ {'rel': 'self',
+ 'type': 'application/geo+json',
+ 'href': 'https://ghg.center/api/stac/collections/casagfed-carbonflux-monthgrid-v3/items/casagfed-carbonflux-monthgrid-v3-201712'}],
+ 'assets': {'rh': {'href': 's3://ghgc-data-store/casagfed-carbonflux-monthgrid-v3/GEOSCarb_CASAGFED3v3_Rh_Flux_Monthly_x720_y360_201712.tif',
+ 'type': 'image/tiff; application=geotiff; profile=cloud-optimized',
+ 'roles': ['data', 'layer'],
+ 'title': 'rh',
+ 'proj:bbox': [-180.0, -90.0, 180.0, 90.0],
+ 'proj:epsg': 4326.0,
+ 'proj:shape': [360.0, 720.0],
+ 'description': 'Heterotrophic respiration',
+ 'raster:bands': [{'scale': 1.0,
+ 'offset': 0.0,
+ 'sampling': 'area',
+ 'data_type': 'float32',
+ 'histogram': {'max': 0.6039900183677673,
+ 'min': 0.0,
+ 'count': 11.0,
+ 'buckets': [249101.0,
+ 7375.0,
+ 2429.0,
+ 252.0,
+ 32.0,
+ 5.0,
+ 2.0,
+ 2.0,
+ 0.0,
+ 2.0]},
+ 'statistics': {'mean': 0.006758838426321745,
+ 'stddev': 0.022668374702334404,
+ 'maximum': 0.6039900183677673,
+ 'minimum': 0.0,
+ 'valid_percent': 0.0003858024691358025}}],
+ 'proj:geometry': {'type': 'Polygon',
+ 'coordinates': [[[-180.0, -90.0],
+ [180.0, -90.0],
+ [180.0, 90.0],
+ [-180.0, 90.0],
+ [-180.0, -90.0]]]},
+ 'proj:projjson': {'id': {'code': 4326.0, 'authority': 'EPSG'},
+ 'name': 'WGS 84',
+ 'type': 'GeographicCRS',
+ 'datum': {'name': 'World Geodetic System 1984',
+ 'type': 'GeodeticReferenceFrame',
+ 'ellipsoid': {'name': 'WGS 84',
+ 'semi_major_axis': 6378137.0,
+ 'inverse_flattening': 298.257223563}},
+ '$schema': 'https://proj.org/schemas/v0.4/projjson.schema.json',
+ 'coordinate_system': {'axis': [{'name': 'Geodetic latitude',
+ 'unit': 'degree',
+ 'direction': 'north',
+ 'abbreviation': 'Lat'},
+ {'name': 'Geodetic longitude',
+ 'unit': 'degree',
+ 'direction': 'east',
+ 'abbreviation': 'Lon'}],
+ 'subtype': 'ellipsoidal'}},
+ 'proj:transform': [0.5, 0.0, -180.0, 0.0, -0.5, 90.0, 0.0, 0.0, 1.0]},
+ 'nee': {'href': 's3://ghgc-data-store/casagfed-carbonflux-monthgrid-v3/GEOSCarb_CASAGFED3v3_NEE_Flux_Monthly_x720_y360_201712.tif',
+ 'type': 'image/tiff; application=geotiff; profile=cloud-optimized',
+ 'roles': ['data', 'layer'],
+ 'title': 'nee',
+ 'proj:bbox': [-180.0, -90.0, 180.0, 90.0],
+ 'proj:epsg': 4326.0,
+ 'proj:shape': [360.0, 720.0],
+ 'description': 'Net ecosystem exchange',
+ 'raster:bands': [{'scale': 1.0,
+ 'offset': 0.0,
+ 'sampling': 'area',
+ 'data_type': 'float32',
+ 'histogram': {'max': 0.48997998237609863,
+ 'min': -0.11027999967336655,
+ 'count': 11.0,
+ 'buckets': [663.0,
+ 234393.0,
+ 23809.0,
+ 282.0,
+ 37.0,
+ 10.0,
+ 4.0,
+ 0.0,
+ 0.0,
+ 2.0]},
+ 'statistics': {'mean': 0.0015448036137968302,
+ 'stddev': 0.00977976992726326,
+ 'maximum': 0.48997998237609863,
+ 'minimum': -0.11027999967336655,
+ 'valid_percent': 0.0003858024691358025}}],
+ 'proj:geometry': {'type': 'Polygon',
+ 'coordinates': [[[-180.0, -90.0],
+ [180.0, -90.0],
+ [180.0, 90.0],
+ [-180.0, 90.0],
+ [-180.0, -90.0]]]},
+ 'proj:projjson': {'id': {'code': 4326.0, 'authority': 'EPSG'},
+ 'name': 'WGS 84',
+ 'type': 'GeographicCRS',
+ 'datum': {'name': 'World Geodetic System 1984',
+ 'type': 'GeodeticReferenceFrame',
+ 'ellipsoid': {'name': 'WGS 84',
+ 'semi_major_axis': 6378137.0,
+ 'inverse_flattening': 298.257223563}},
+ '$schema': 'https://proj.org/schemas/v0.4/projjson.schema.json',
+ 'coordinate_system': {'axis': [{'name': 'Geodetic latitude',
+ 'unit': 'degree',
+ 'direction': 'north',
+ 'abbreviation': 'Lat'},
+ {'name': 'Geodetic longitude',
+ 'unit': 'degree',
+ 'direction': 'east',
+ 'abbreviation': 'Lon'}],
+ 'subtype': 'ellipsoidal'}},
+ 'proj:transform': [0.5, 0.0, -180.0, 0.0, -0.5, 90.0, 0.0, 0.0, 1.0]},
+ 'npp': {'href': 's3://ghgc-data-store/casagfed-carbonflux-monthgrid-v3/GEOSCarb_CASAGFED3v3_NPP_Flux_Monthly_x720_y360_201712.tif',
+ 'type': 'image/tiff; application=geotiff; profile=cloud-optimized',
+ 'roles': ['data', 'layer'],
+ 'title': 'NPP',
+ 'proj:bbox': [-180.0, -90.0, 180.0, 90.0],
+ 'proj:epsg': 4326.0,
+ 'proj:shape': [360.0, 720.0],
+ 'description': 'Net Primary Production',
+ 'raster:bands': [{'scale': 1.0,
+ 'offset': 0.0,
+ 'sampling': 'area',
+ 'data_type': 'float32',
+ 'histogram': {'max': 0.23635999858379364,
+ 'min': 0.0,
+ 'count': 11.0,
+ 'buckets': [244636.0,
+ 3051.0,
+ 1928.0,
+ 2634.0,
+ 4088.0,
+ 2211.0,
+ 428.0,
+ 156.0,
+ 59.0,
+ 9.0]},
+ 'statistics': {'mean': 0.005214035045355558,
+ 'stddev': 0.021809572353959084,
+ 'maximum': 0.23635999858379364,
+ 'minimum': 0.0,
+ 'valid_percent': 0.0003858024691358025}}],
+ 'proj:geometry': {'type': 'Polygon',
+ 'coordinates': [[[-180.0, -90.0],
+ [180.0, -90.0],
+ [180.0, 90.0],
+ [-180.0, 90.0],
+ [-180.0, -90.0]]]},
+ 'proj:projjson': {'id': {'code': 4326.0, 'authority': 'EPSG'},
+ 'name': 'WGS 84',
+ 'type': 'GeographicCRS',
+ 'datum': {'name': 'World Geodetic System 1984',
+ 'type': 'GeodeticReferenceFrame',
+ 'ellipsoid': {'name': 'WGS 84',
+ 'semi_major_axis': 6378137.0,
+ 'inverse_flattening': 298.257223563}},
+ '$schema': 'https://proj.org/schemas/v0.4/projjson.schema.json',
+ 'coordinate_system': {'axis': [{'name': 'Geodetic latitude',
+ 'unit': 'degree',
+ 'direction': 'north',
+ 'abbreviation': 'Lat'},
+ {'name': 'Geodetic longitude',
+ 'unit': 'degree',
+ 'direction': 'east',
+ 'abbreviation': 'Lon'}],
+ 'subtype': 'ellipsoidal'}},
+ 'proj:transform': [0.5, 0.0, -180.0, 0.0, -0.5, 90.0, 0.0, 0.0, 1.0]},
+ 'fire': {'href': 's3://ghgc-data-store/casagfed-carbonflux-monthgrid-v3/GEOSCarb_CASAGFED3v3_FIRE_Flux_Monthly_x720_y360_201712.tif',
+ 'type': 'image/tiff; application=geotiff; profile=cloud-optimized',
+ 'roles': ['data', 'layer'],
+ 'title': 'fire',
+ 'proj:bbox': [-180.0, -90.0, 180.0, 90.0],
+ 'proj:epsg': 4326.0,
+ 'proj:shape': [360.0, 720.0],
+ 'description': 'fire emissions',
+ 'raster:bands': [{'scale': 1.0,
+ 'offset': 0.0,
+ 'sampling': 'area',
+ 'data_type': 'float32',
+ 'histogram': {'max': 0.7556899785995483,
+ 'min': 0.0,
+ 'count': 11.0,
+ 'buckets': [258952.0, 161.0, 53.0, 22.0, 11.0, 0.0, 0.0, 0.0, 0.0, 1.0]},
+ 'statistics': {'mean': 0.00025634843041189015,
+ 'stddev': 0.005492232274264097,
+ 'maximum': 0.7556899785995483,
+ 'minimum': 0.0,
+ 'valid_percent': 0.0003858024691358025}}],
+ 'proj:geometry': {'type': 'Polygon',
+ 'coordinates': [[[-180.0, -90.0],
+ [180.0, -90.0],
+ [180.0, 90.0],
+ [-180.0, 90.0],
+ [-180.0, -90.0]]]},
+ 'proj:projjson': {'id': {'code': 4326.0, 'authority': 'EPSG'},
+ 'name': 'WGS 84',
+ 'type': 'GeographicCRS',
+ 'datum': {'name': 'World Geodetic System 1984',
+ 'type': 'GeodeticReferenceFrame',
+ 'ellipsoid': {'name': 'WGS 84',
+ 'semi_major_axis': 6378137.0,
+ 'inverse_flattening': 298.257223563}},
+ '$schema': 'https://proj.org/schemas/v0.4/projjson.schema.json',
+ 'coordinate_system': {'axis': [{'name': 'Geodetic latitude',
+ 'unit': 'degree',
+ 'direction': 'north',
+ 'abbreviation': 'Lat'},
+ {'name': 'Geodetic longitude',
+ 'unit': 'degree',
+ 'direction': 'east',
+ 'abbreviation': 'Lon'}],
+ 'subtype': 'ellipsoidal'}},
+ 'proj:transform': [0.5, 0.0, -180.0, 0.0, -0.5, 90.0, 0.0, 0.0, 1.0]},
+ 'fuel': {'href': 's3://ghgc-data-store/casagfed-carbonflux-monthgrid-v3/GEOSCarb_CASAGFED3v3_FUEL_Flux_Monthly_x720_y360_201712.tif',
+ 'type': 'image/tiff; application=geotiff; profile=cloud-optimized',
+ 'roles': ['data', 'layer'],
+ 'title': 'fuel',
+ 'proj:bbox': [-180.0, -90.0, 180.0, 90.0],
+ 'proj:epsg': 4326.0,
+ 'proj:shape': [360.0, 720.0],
+ 'description': 'fuel emissions',
+ 'raster:bands': [{'scale': 1.0,
+ 'offset': 0.0,
+ 'sampling': 'area',
+ 'data_type': 'float32',
+ 'histogram': {'max': 0.020759999752044678,
+ 'min': 0.0,
+ 'count': 11.0,
+ 'buckets': [257568.0,
+ 1150.0,
+ 284.0,
+ 115.0,
+ 47.0,
+ 21.0,
+ 5.0,
+ 6.0,
+ 3.0,
+ 1.0]},
+ 'statistics': {'mean': 5.057307134848088e-05,
+ 'stddev': 0.0003876804548781365,
+ 'maximum': 0.020759999752044678,
+ 'minimum': 0.0,
+ 'valid_percent': 0.0003858024691358025}}],
+ 'proj:geometry': {'type': 'Polygon',
+ 'coordinates': [[[-180.0, -90.0],
+ [180.0, -90.0],
+ [180.0, 90.0],
+ [-180.0, 90.0],
+ [-180.0, -90.0]]]},
+ 'proj:projjson': {'id': {'code': 4326.0, 'authority': 'EPSG'},
+ 'name': 'WGS 84',
+ 'type': 'GeographicCRS',
+ 'datum': {'name': 'World Geodetic System 1984',
+ 'type': 'GeodeticReferenceFrame',
+ 'ellipsoid': {'name': 'WGS 84',
+ 'semi_major_axis': 6378137.0,
+ 'inverse_flattening': 298.257223563}},
+ '$schema': 'https://proj.org/schemas/v0.4/projjson.schema.json',
+ 'coordinate_system': {'axis': [{'name': 'Geodetic latitude',
+ 'unit': 'degree',
+ 'direction': 'north',
+ 'abbreviation': 'Lat'},
+ {'name': 'Geodetic longitude',
+ 'unit': 'degree',
+ 'direction': 'east',
+ 'abbreviation': 'Lon'}],
+ 'subtype': 'ellipsoidal'}},
+ 'proj:transform': [0.5, 0.0, -180.0, 0.0, -0.5, 90.0, 0.0, 0.0, 1.0]}},
+ 'geometry': {'type': 'Polygon',
+ 'coordinates': [[[-180, -90],
+ [180, -90],
+ [180, 90],
+ [-180, 90],
+ [-180, -90]]]},
+ 'collection': 'casagfed-carbonflux-monthgrid-v3',
+ 'properties': {'end_datetime': '2017-12-31T00:00:00+00:00',
+ 'start_datetime': '2017-12-01T00:00:00+00:00'},
+ 'stac_version': '1.0.0',
+ 'stac_extensions': []}
+
+
+
+
# The bounding box should be passed to the geojson param as a geojson Feature or FeatureCollection
+def generate_stats(item, geojson):
+ result = requests.post(
+ f" { RASTER_API_URL} /cog/statistics" ,
+ params= {"url" : item["assets" ][asset_name]["href" ]},
+ json= geojson,
+ ).json()
+ print (result)
+ return {
+ ** result["properties" ],
+ "start_datetime" : item["properties" ]["start_datetime" ],
+ }
+
+
+
for item in items:
+ print (item["properties" ]["start_datetime" ])
+ break
+
+
2017-12-01T00:00:00+00:00
-
-
for item in items:
- print (item["properties" ]["start_datetime" ])
- break
With the function above, we can generate the statistics for the area of interest.
-
-
%% time
- stats = [generate_stats(item, texas_dallas_aoi) for item in items]
+
+
%% time
+ stats = [generate_stats(item, texas_dallas_aoi) for item in items]
+
+
{'type': 'Feature', 'geometry': {'type': 'Polygon', 'coordinates': [[[-95.0, 29.0], [-95.0, 33.0], [-104.0, 33.0], [-104.0, 29.0], [-95.0, 29.0]]]}, 'properties': {'statistics': {'b1': {'min': 0.0032399999909102917, 'max': 0.052889999002218246, 'mean': 0.02876812219619751, 'count': 144.0, 'sum': 4.142609596252441, 'std': 0.012291292235868848, 'median': 0.031109999865293503, 'majority': 0.012779999524354935, 'minority': 0.0032399999909102917, 'unique': 141.0, 'histogram': [[9.0, 12.0, 16.0, 8.0, 17.0, 16.0, 28.0, 23.0, 13.0, 2.0], [0.0032399999909102917, 0.008205000311136246, 0.013170000165700912, 0.01813500002026558, 0.023099999874830246, 0.028064999729394913, 0.03302999958395958, 0.037994999438524246, 0.04295999929308891, 0.04792499914765358, 0.052889999002218246]], 'valid_percent': 100.0, 'masked_pixels': 0.0, 'valid_pixels': 144.0, 'percentile_2': 0.005100000007078051, 'percentile_98': 0.047526400610804556}}}}
+{'type': 'Feature', 'geometry': {'type': 'Polygon', 'coordinates': [[[-95.0, 29.0], [-95.0, 33.0], [-104.0, 33.0], [-104.0, 29.0], [-95.0, 29.0]]]}, 'properties': {'statistics': {'b1': {'min': 0.0009800000116229057, 'max': 0.0901699960231781, 'mean': 0.027965346972147625, 'count': 144.0, 'sum': 4.027009963989258, 'std': 0.022134307648132897, 'median': 0.02225000038743019, 'majority': 0.0009800000116229057, 'minority': 0.0009800000116229057, 'unique': 144.0, 'histogram': [[44.0, 17.0, 22.0, 14.0, 9.0, 17.0, 6.0, 10.0, 4.0, 1.0], [0.0009800000116229057, 0.009898999705910683, 0.018817998468875885, 0.027736999094486237, 0.03665599972009659, 0.04557499662041664, 0.05449399724602699, 0.06341299414634705, 0.0723319947719574, 0.08125099539756775, 0.0901699960231781]], 'valid_percent': 100.0, 'masked_pixels': 0.0, 'valid_pixels': 144.0, 'percentile_2': 0.0012801999342627822, 'percentile_98': 0.07261659607291221}}}}
+{'type': 'Feature', 'geometry': {'type': 'Polygon', 'coordinates': [[[-95.0, 29.0], [-95.0, 33.0], [-104.0, 33.0], [-104.0, 29.0], [-95.0, 29.0]]]}, 'properties': {'statistics': {'b1': {'min': 0.0015899999998509884, 'max': 0.08780999481678009, 'mean': 0.029584513770209417, 'count': 144.0, 'sum': 4.260169982910156, 'std': 0.024204915753597133, 'median': 0.022424999624490738, 'majority': 0.005900000222027302, 'minority': 0.0015899999998509884, 'unique': 140.0, 'histogram': [[43.0, 22.0, 16.0, 12.0, 13.0, 10.0, 7.0, 8.0, 8.0, 5.0], [0.0015899999998509884, 0.010211999528110027, 0.01883399859070778, 0.027455998584628105, 0.03607799857854843, 0.04469999670982361, 0.053321998566389084, 0.06194399669766426, 0.07056599855422974, 0.07918799668550491, 0.08780999481678009]], 'valid_percent': 100.0, 'masked_pixels': 0.0, 'valid_pixels': 144.0, 'percentile_2': 0.002036000017542392, 'percentile_98': 0.08195619896054263}}}}
+{'type': 'Feature', 'geometry': {'type': 'Polygon', 'coordinates': [[[-95.0, 29.0], [-95.0, 33.0], [-104.0, 33.0], [-104.0, 29.0], [-95.0, 29.0]]]}, 'properties': {'statistics': {'b1': {'min': 0.004410000052303076, 'max': 0.1061599999666214, 'mean': 0.04472277561823527, 'count': 144.0, 'sum': 6.440079689025879, 'std': 0.026252593313285687, 'median': 0.041474997997283936, 'majority': 0.004410000052303076, 'minority': 0.004410000052303076, 'unique': 144.0, 'histogram': [[17.0, 24.0, 20.0, 19.0, 17.0, 17.0, 4.0, 12.0, 11.0, 3.0], [0.004410000052303076, 0.014585000462830067, 0.02476000040769577, 0.03493500128388405, 0.04510999843478203, 0.055284999310970306, 0.06545999646186829, 0.07563500106334686, 0.08580999821424484, 0.09598500281572342, 0.1061599999666214]], 'valid_percent': 100.0, 'masked_pixels': 0.0, 'valid_pixels': 144.0, 'percentile_2': 0.005008199876174331, 'percentile_98': 0.0960599987208843}}}}
+{'type': 'Feature', 'geometry': {'type': 'Polygon', 'coordinates': [[[-95.0, 29.0], [-95.0, 33.0], [-104.0, 33.0], [-104.0, 29.0], [-95.0, 29.0]]]}, 'properties': {'statistics': {'b1': {'min': 0.003599999938160181, 'max': 0.1076899990439415, 'mean': 0.04400124814775255, 'count': 144.0, 'sum': 6.336179733276367, 'std': 0.02863772313168659, 'median': 0.039525002241134644, 'majority': 0.007230000104755163, 'minority': 0.003599999938160181, 'unique': 141.0, 'histogram': [[28.0, 24.0, 11.0, 19.0, 11.0, 15.0, 10.0, 12.0, 9.0, 5.0], [0.003599999938160181, 0.014008999802172184, 0.024418000131845474, 0.03482700139284134, 0.045235998928546906, 0.05564500018954277, 0.06605400145053864, 0.0764629989862442, 0.08687199652194977, 0.09728100150823593, 0.1076899990439415]], 'valid_percent': 100.0, 'masked_pixels': 0.0, 'valid_pixels': 144.0, 'percentile_2': 0.004590800292789936, 'percentile_98': 0.10081959992647169}}}}
+{'type': 'Feature', 'geometry': {'type': 'Polygon', 'coordinates': [[[-95.0, 29.0], [-95.0, 33.0], [-104.0, 33.0], [-104.0, 29.0], [-95.0, 29.0]]]}, 'properties': {'statistics': {'b1': {'min': 0.0033499998971819878, 'max': 0.10698999464511871, 'mean': 0.03240319424205356, 'count': 144.0, 'sum': 4.666059970855713, 'std': 0.02831003698323507, 'median': 0.019609998911619186, 'majority': 0.011950000189244747, 'minority': 0.0033499998971819878, 'unique': 141.0, 'histogram': [[31.0, 54.0, 20.0, 6.0, 2.0, 6.0, 6.0, 6.0, 5.0, 8.0], [0.0033499998971819878, 0.013713999651372433, 0.024077998474240303, 0.0344420000910759, 0.044805996119976044, 0.05516999587416649, 0.06553399562835693, 0.07589799910783768, 0.08626199513673782, 0.09662599861621857, 0.10698999464511871]], 'valid_percent': 100.0, 'masked_pixels': 0.0, 'valid_pixels': 144.0, 'percentile_2': 0.005627399897202849, 'percentile_98': 0.10408900052309035}}}}
+{'type': 'Feature', 'geometry': {'type': 'Polygon', 'coordinates': [[[-95.0, 29.0], [-95.0, 33.0], [-104.0, 33.0], [-104.0, 29.0], [-95.0, 29.0]]]}, 'properties': {'statistics': {'b1': {'min': 0.0018700000364333391, 'max': 0.11305000633001328, 'mean': 0.04476645588874817, 'count': 144.0, 'sum': 6.446369647979736, 'std': 0.03614385350389832, 'median': 0.03468000143766403, 'majority': 0.015540000051259995, 'minority': 0.0018700000364333391, 'unique': 143.0, 'histogram': [[44.0, 18.0, 12.0, 9.0, 4.0, 10.0, 11.0, 17.0, 7.0, 12.0], [0.0018700000364333391, 0.012988001108169556, 0.02410600148141384, 0.03522400185465813, 0.04634200409054756, 0.0574600026011467, 0.06857800483703613, 0.07969600707292557, 0.0908140018582344, 0.10193200409412384, 0.11305000633001328]], 'valid_percent': 100.0, 'masked_pixels': 0.0, 'valid_pixels': 144.0, 'percentile_2': 0.0026126000611111522, 'percentile_98': 0.1110901978611946}}}}
+{'type': 'Feature', 'geometry': {'type': 'Polygon', 'coordinates': [[[-95.0, 29.0], [-95.0, 33.0], [-104.0, 33.0], [-104.0, 29.0], [-95.0, 29.0]]]}, 'properties': {'statistics': {'b1': {'min': 0.0009299999801442027, 'max': 0.08319000154733658, 'mean': 0.037843677732679576, 'count': 144.0, 'sum': 5.449489593505859, 'std': 0.024260560566742684, 'median': 0.04007500037550926, 'majority': 0.0009299999801442027, 'minority': 0.0013200000394135714, 'unique': 142.0, 'histogram': [[27.0, 12.0, 13.0, 10.0, 13.0, 30.0, 6.0, 5.0, 18.0, 10.0], [0.0009299999801442027, 0.0091559998691082, 0.017381999641656876, 0.0256080012768507, 0.03383399918675423, 0.0420599989593029, 0.050286002457141876, 0.05851200222969055, 0.06673800200223923, 0.0749640017747879, 0.08319000154733658]], 'valid_percent': 100.0, 'masked_pixels': 0.0, 'valid_pixels': 144.0, 'percentile_2': 0.002747600097209215, 'percentile_98': 0.08049520298838615}}}}
+{'type': 'Feature', 'geometry': {'type': 'Polygon', 'coordinates': [[[-95.0, 29.0], [-95.0, 33.0], [-104.0, 33.0], [-104.0, 29.0], [-95.0, 29.0]]]}, 'properties': {'statistics': {'b1': {'min': 0.0020099999383091927, 'max': 0.08257000148296356, 'mean': 0.039201041062672935, 'count': 144.0, 'sum': 5.644949913024902, 'std': 0.022890301495904184, 'median': 0.0416250005364418, 'majority': 0.0020099999383091927, 'minority': 0.0020099999383091927, 'unique': 144.0, 'histogram': [[21.0, 17.0, 9.0, 13.0, 13.0, 28.0, 11.0, 7.0, 15.0, 10.0], [0.0020099999383091927, 0.010065999813377857, 0.018122000619769096, 0.02617800049483776, 0.034234002232551575, 0.04229000210762024, 0.050346001982688904, 0.05840200185775757, 0.06645800173282623, 0.0745140016078949, 0.08257000148296356]], 'valid_percent': 100.0, 'masked_pixels': 0.0, 'valid_pixels': 144.0, 'percentile_2': 0.0027418000530451537, 'percentile_98': 0.07992819875478743}}}}
+{'type': 'Feature', 'geometry': {'type': 'Polygon', 'coordinates': [[[-95.0, 29.0], [-95.0, 33.0], [-104.0, 33.0], [-104.0, 29.0], [-95.0, 29.0]]]}, 'properties': {'statistics': {'b1': {'min': 0.0013000000035390258, 'max': 0.08073999732732773, 'mean': 0.03796451290448507, 'count': 144.0, 'sum': 5.46688985824585, 'std': 0.022048092722680348, 'median': 0.04171000048518181, 'majority': 0.0013000000035390258, 'minority': 0.001340000075288117, 'unique': 141.0, 'histogram': [[23.0, 10.0, 13.0, 11.0, 12.0, 32.0, 12.0, 12.0, 10.0, 9.0], [0.0013000000035390258, 0.009243999607861042, 0.017187999561429024, 0.02513199858367443, 0.03307599946856499, 0.041019998490810394, 0.0489639975130558, 0.05690799653530121, 0.06485199928283691, 0.07279599457979202, 0.08073999732732773]], 'valid_percent': 100.0, 'masked_pixels': 0.0, 'valid_pixels': 144.0, 'percentile_2': 0.0013915999676100909, 'percentile_98': 0.07549100086092948}}}}
+{'type': 'Feature', 'geometry': {'type': 'Polygon', 'coordinates': [[[-95.0, 29.0], [-95.0, 33.0], [-104.0, 33.0], [-104.0, 29.0], [-95.0, 29.0]]]}, 'properties': {'statistics': {'b1': {'min': 0.001230000052601099, 'max': 0.07756000012159348, 'mean': 0.036982360813352794, 'count': 144.0, 'sum': 5.325459957122803, 'std': 0.019287064831751757, 'median': 0.037735000252723694, 'majority': 0.0422700010240078, 'minority': 0.001230000052601099, 'unique': 143.0, 'histogram': [[10.0, 16.0, 16.0, 19.0, 16.0, 24.0, 12.0, 11.0, 12.0, 8.0], [0.001230000052601099, 0.008863000199198723, 0.016496000811457634, 0.024128999561071396, 0.03176200017333031, 0.03939500078558922, 0.04702800139784813, 0.05466099828481674, 0.06229399889707565, 0.06992699950933456, 0.07756000012159348]], 'valid_percent': 100.0, 'masked_pixels': 0.0, 'valid_pixels': 144.0, 'percentile_2': 0.004217399791814387, 'percentile_98': 0.07569880187511442}}}}
+{'type': 'Feature', 'geometry': {'type': 'Polygon', 'coordinates': [[[-95.0, 29.0], [-95.0, 33.0], [-104.0, 33.0], [-104.0, 29.0], [-95.0, 29.0]]]}, 'properties': {'statistics': {'b1': {'min': 0.0031199997756630182, 'max': 0.06483999639749527, 'mean': 0.030360764927334256, 'count': 144.0, 'sum': 4.371950149536133, 'std': 0.01578784576597252, 'median': 0.02966500073671341, 'majority': 0.01641000062227249, 'minority': 0.0031199997756630182, 'unique': 143.0, 'histogram': [[10.0, 24.0, 16.0, 16.0, 18.0, 21.0, 12.0, 12.0, 10.0, 5.0], [0.0031199997756630182, 0.00929199904203415, 0.015463999472558498, 0.0216359980404377, 0.027807997539639473, 0.03397999703884125, 0.04015199840068817, 0.0463239960372448, 0.05249599739909172, 0.058667995035648346, 0.06483999639749527]], 'valid_percent': 100.0, 'masked_pixels': 0.0, 'valid_pixels': 144.0, 'percentile_2': 0.005556400017812848, 'percentile_98': 0.0617266009747982}}}}
+{'type': 'Feature', 'geometry': {'type': 'Polygon', 'coordinates': [[[-95.0, 29.0], [-95.0, 33.0], [-104.0, 33.0], [-104.0, 29.0], [-95.0, 29.0]]]}, 'properties': {'statistics': {'b1': {'min': 0.002410000190138817, 'max': 0.06453000009059906, 'mean': 0.026904791593551636, 'count': 144.0, 'sum': 3.8742899894714355, 'std': 0.015966014120834104, 'median': 0.024165000766515732, 'majority': 0.0062699997797608376, 'minority': 0.002410000190138817, 'unique': 139.0, 'histogram': [[15.0, 25.0, 25.0, 17.0, 18.0, 10.0, 10.0, 11.0, 7.0, 6.0], [0.002410000190138817, 0.008621999993920326, 0.014833999797701836, 0.021045999601483345, 0.027257999405264854, 0.03347000107169151, 0.03968200087547302, 0.04589400067925453, 0.05210600048303604, 0.05831800028681755, 0.06453000009059906]], 'valid_percent': 100.0, 'masked_pixels': 0.0, 'valid_pixels': 144.0, 'percentile_2': 0.004702000366523861, 'percentile_98': 0.06074100024998188}}}}
+{'type': 'Feature', 'geometry': {'type': 'Polygon', 'coordinates': [[[-95.0, 29.0], [-95.0, 33.0], [-104.0, 33.0], [-104.0, 29.0], [-95.0, 29.0]]]}, 'properties': {'statistics': {'b1': {'min': 0.001879999996162951, 'max': 0.0840499997138977, 'mean': 0.03630638784832425, 'count': 144.0, 'sum': 5.228119850158691, 'std': 0.02168570294789857, 'median': 0.03590000048279762, 'majority': 0.001879999996162951, 'minority': 0.001879999996162951, 'unique': 144.0, 'histogram': [[19.0, 20.0, 17.0, 15.0, 14.0, 19.0, 12.0, 14.0, 12.0, 2.0], [0.001879999996162951, 0.010096999816596508, 0.018314000219106674, 0.026530999690294266, 0.03474799916148186, 0.04296499863266945, 0.05118199810385704, 0.05939900130033493, 0.06761600077152252, 0.07583300024271011, 0.0840499997138977]], 'valid_percent': 100.0, 'masked_pixels': 0.0, 'valid_pixels': 144.0, 'percentile_2': 0.0034805999556556345, 'percentile_98': 0.07544299855828285}}}}
+{'type': 'Feature', 'geometry': {'type': 'Polygon', 'coordinates': [[[-95.0, 29.0], [-95.0, 33.0], [-104.0, 33.0], [-104.0, 29.0], [-95.0, 29.0]]]}, 'properties': {'statistics': {'b1': {'min': 0.0010000000474974513, 'max': 0.06208000332117081, 'mean': 0.017112639215257432, 'count': 144.0, 'sum': 2.4642200469970703, 'std': 0.013540445573554464, 'median': 0.013340000063180923, 'majority': 0.01489999983459711, 'minority': 0.0010000000474974513, 'unique': 139.0, 'histogram': [[44.0, 28.0, 18.0, 15.0, 15.0, 9.0, 11.0, 0.0, 3.0, 1.0], [0.0010000000474974513, 0.007108000572770834, 0.013216000981628895, 0.01932400092482567, 0.025432001799345016, 0.031540002673864365, 0.03764800354838371, 0.04375600069761276, 0.04986400157213211, 0.05597200244665146, 0.06208000332117081]], 'valid_percent': 100.0, 'masked_pixels': 0.0, 'valid_pixels': 144.0, 'percentile_2': 0.0018578000273555516, 'percentile_98': 0.05144279867410656}}}}
+{'type': 'Feature', 'geometry': {'type': 'Polygon', 'coordinates': [[[-95.0, 29.0], [-95.0, 33.0], [-104.0, 33.0], [-104.0, 29.0], [-95.0, 29.0]]]}, 'properties': {'statistics': {'b1': {'min': 0.002420000033453107, 'max': 0.10796999931335449, 'mean': 0.04258666767014398, 'count': 144.0, 'sum': 6.132480144500732, 'std': 0.02294909195247957, 'median': 0.04481000080704689, 'majority': 0.01496999990195036, 'minority': 0.002420000033453107, 'unique': 143.0, 'histogram': [[20.0, 18.0, 17.0, 15.0, 29.0, 17.0, 23.0, 3.0, 1.0, 1.0], [0.002420000033453107, 0.012974999845027924, 0.02352999895811081, 0.034084998071193695, 0.04464000090956688, 0.055195000022649765, 0.06575000286102295, 0.07630500197410583, 0.08686000108718872, 0.0974150002002716, 0.10796999931335449]], 'valid_percent': 100.0, 'masked_pixels': 0.0, 'valid_pixels': 144.0, 'percentile_2': 0.005680600111372769, 'percentile_98': 0.07897120103240013}}}}
+{'type': 'Feature', 'geometry': {'type': 'Polygon', 'coordinates': [[[-95.0, 29.0], [-95.0, 33.0], [-104.0, 33.0], [-104.0, 29.0], [-95.0, 29.0]]]}, 'properties': {'statistics': {'b1': {'min': 0.004309999756515026, 'max': 0.11157000064849854, 'mean': 0.05126465360323588, 'count': 144.0, 'sum': 7.382110118865967, 'std': 0.030924842235394965, 'median': 0.04677499830722809, 'majority': 0.004309999756515026, 'minority': 0.004309999756515026, 'unique': 144.0, 'histogram': [[17.0, 26.0, 16.0, 14.0, 15.0, 6.0, 12.0, 15.0, 15.0, 8.0], [0.004309999756515026, 0.015035999938845634, 0.025761999189853668, 0.03648800030350685, 0.047214001417160034, 0.05793999880552292, 0.0686660036444664, 0.07939200103282928, 0.09011799842119217, 0.10084400326013565, 0.11157000064849854]], 'valid_percent': 100.0, 'masked_pixels': 0.0, 'valid_pixels': 144.0, 'percentile_2': 0.0076777999848127365, 'percentile_98': 0.1075360000133514}}}}
+{'type': 'Feature', 'geometry': {'type': 'Polygon', 'coordinates': [[[-95.0, 29.0], [-95.0, 33.0], [-104.0, 33.0], [-104.0, 29.0], [-95.0, 29.0]]]}, 'properties': {'statistics': {'b1': {'min': 0.0013200000394135714, 'max': 0.11808999627828598, 'mean': 0.034186181094911366, 'count': 144.0, 'sum': 4.922810077667236, 'std': 0.03185002205545449, 'median': 0.021114999428391457, 'majority': 0.0013200000394135714, 'minority': 0.0013200000394135714, 'unique': 144.0, 'histogram': [[53.0, 24.0, 10.0, 16.0, 11.0, 6.0, 7.0, 6.0, 8.0, 3.0], [0.0013200000394135714, 0.01299699954688549, 0.02467399835586548, 0.036350999027490616, 0.04802799969911575, 0.05970499664545059, 0.07138200104236603, 0.08305899798870087, 0.0947359949350357, 0.10641299933195114, 0.11808999627828598]], 'valid_percent': 100.0, 'masked_pixels': 0.0, 'valid_pixels': 144.0, 'percentile_2': 0.002593400063924491, 'percentile_98': 0.1071648009121417}}}}
+{'type': 'Feature', 'geometry': {'type': 'Polygon', 'coordinates': [[[-95.0, 29.0], [-95.0, 33.0], [-104.0, 33.0], [-104.0, 29.0], [-95.0, 29.0]]]}, 'properties': {'statistics': {'b1': {'min': 0.0024500000290572643, 'max': 0.1171099990606308, 'mean': 0.05090833372539944, 'count': 144.0, 'sum': 7.3308000564575195, 'std': 0.032706516638430584, 'median': 0.05314499884843826, 'majority': 0.0024500000290572643, 'minority': 0.0024500000290572643, 'unique': 144.0, 'histogram': [[33.0, 13.0, 8.0, 11.0, 20.0, 14.0, 13.0, 17.0, 10.0, 5.0], [0.0024500000290572643, 0.013915999792516232, 0.02538199909031391, 0.036848001182079315, 0.04831400141119957, 0.059779997915029526, 0.07124599814414978, 0.08271200209856033, 0.09417799860239029, 0.10564400255680084, 0.1171099990606308]], 'valid_percent': 100.0, 'masked_pixels': 0.0, 'valid_pixels': 144.0, 'percentile_2': 0.004546999810263515, 'percentile_98': 0.1110965986549854}}}}
+{'type': 'Feature', 'geometry': {'type': 'Polygon', 'coordinates': [[[-95.0, 29.0], [-95.0, 33.0], [-104.0, 33.0], [-104.0, 29.0], [-95.0, 29.0]]]}, 'properties': {'statistics': {'b1': {'min': 0.001600000075995922, 'max': 0.08723000437021255, 'mean': 0.04007840156555176, 'count': 144.0, 'sum': 5.771289825439453, 'std': 0.0231075629707442, 'median': 0.04303999990224838, 'majority': 0.008239999413490295, 'minority': 0.001600000075995922, 'unique': 139.0, 'histogram': [[18.0, 22.0, 7.0, 8.0, 21.0, 26.0, 14.0, 9.0, 16.0, 3.0], [0.001600000075995922, 0.010163000784814358, 0.01872600056231022, 0.027289001271128654, 0.03585200011730194, 0.04441500082612038, 0.05297800153493881, 0.06154100224375725, 0.07010400295257568, 0.07866700738668442, 0.08723000437021255]], 'valid_percent': 100.0, 'masked_pixels': 0.0, 'valid_pixels': 144.0, 'percentile_2': 0.004133799993433058, 'percentile_98': 0.0782908000051975}}}}
+{'type': 'Feature', 'geometry': {'type': 'Polygon', 'coordinates': [[[-95.0, 29.0], [-95.0, 33.0], [-104.0, 33.0], [-104.0, 29.0], [-95.0, 29.0]]]}, 'properties': {'statistics': {'b1': {'min': 0.0012600000482052565, 'max': 0.0860000029206276, 'mean': 0.0404761102464464, 'count': 144.0, 'sum': 5.828559875488281, 'std': 0.02278757271922941, 'median': 0.04392000287771225, 'majority': 0.012479999102652073, 'minority': 0.0012600000482052565, 'unique': 142.0, 'histogram': [[23.0, 13.0, 7.0, 9.0, 18.0, 21.0, 25.0, 10.0, 16.0, 2.0], [0.0012600000482052565, 0.009734000079333782, 0.01820800080895424, 0.02668200060725212, 0.03515600040555, 0.043630000203847885, 0.05210400000214577, 0.06057800352573395, 0.06905200332403183, 0.07752600312232971, 0.0860000029206276]], 'valid_percent': 100.0, 'masked_pixels': 0.0, 'valid_pixels': 144.0, 'percentile_2': 0.001815800005570054, 'percentile_98': 0.07653020188212394}}}}
+{'type': 'Feature', 'geometry': {'type': 'Polygon', 'coordinates': [[[-95.0, 29.0], [-95.0, 33.0], [-104.0, 33.0], [-104.0, 29.0], [-95.0, 29.0]]]}, 'properties': {'statistics': {'b1': {'min': 0.001029999926686287, 'max': 0.07891999930143356, 'mean': 0.04056979219118754, 'count': 144.0, 'sum': 5.842050075531006, 'std': 0.01964315959309418, 'median': 0.04239500313997269, 'majority': 0.04172000288963318, 'minority': 0.001029999926686287, 'unique': 141.0, 'histogram': [[10.0, 12.0, 14.0, 11.0, 18.0, 17.0, 30.0, 11.0, 16.0, 5.0], [0.001029999926686287, 0.008818999864161015, 0.016607999801635742, 0.024397000670433044, 0.03218600153923035, 0.03997499868273735, 0.04776399955153465, 0.055553000420331955, 0.06334199756383896, 0.07113099843263626, 0.07891999930143356]], 'valid_percent': 100.0, 'masked_pixels': 0.0, 'valid_pixels': 144.0, 'percentile_2': 0.0022373999375849963, 'percentile_98': 0.0753060035407543}}}}
+{'type': 'Feature', 'geometry': {'type': 'Polygon', 'coordinates': [[[-95.0, 29.0], [-95.0, 33.0], [-104.0, 33.0], [-104.0, 29.0], [-95.0, 29.0]]]}, 'properties': {'statistics': {'b1': {'min': 0.0023499999660998583, 'max': 0.06370999664068222, 'mean': 0.031763056914011635, 'count': 144.0, 'sum': 4.573880195617676, 'std': 0.015100516130921747, 'median': 0.032715000212192535, 'majority': 0.040439996868371964, 'minority': 0.0023499999660998583, 'unique': 142.0, 'histogram': [[8.0, 15.0, 17.0, 15.0, 19.0, 19.0, 22.0, 16.0, 9.0, 4.0], [0.0023499999660998583, 0.008485999889671803, 0.014621999114751816, 0.020757999271154404, 0.02689399942755699, 0.03302999958395958, 0.03916599974036217, 0.04530199617147446, 0.051437996327877045, 0.05757399648427963, 0.06370999664068222]], 'valid_percent': 100.0, 'masked_pixels': 0.0, 'valid_pixels': 144.0, 'percentile_2': 0.003605999881401658, 'percentile_98': 0.05997399955987929}}}}
+{'type': 'Feature', 'geometry': {'type': 'Polygon', 'coordinates': [[[-95.0, 29.0], [-95.0, 33.0], [-104.0, 33.0], [-104.0, 29.0], [-95.0, 29.0]]]}, 'properties': {'statistics': {'b1': {'min': 0.002570000011473894, 'max': 0.04463000223040581, 'mean': 0.020769652393129136, 'count': 144.0, 'sum': 2.9908299446105957, 'std': 0.009070262593626829, 'median': 0.02056499943137169, 'majority': 0.017829999327659607, 'minority': 0.002570000011473894, 'unique': 141.0, 'histogram': [[9.0, 14.0, 18.0, 25.0, 25.0, 20.0, 18.0, 8.0, 3.0, 4.0], [0.002570000011473894, 0.006776000373065472, 0.010982000268995762, 0.015188001096248627, 0.019394000992178917, 0.023600000888109207, 0.027806000784039497, 0.03201200067996979, 0.03621800243854523, 0.04042400047183037, 0.04463000223040581]], 'valid_percent': 100.0, 'masked_pixels': 0.0, 'valid_pixels': 144.0, 'percentile_2': 0.0035381998913362623, 'percentile_98': 0.04141139894723892}}}}
+{'type': 'Feature', 'geometry': {'type': 'Polygon', 'coordinates': [[[-95.0, 29.0], [-95.0, 33.0], [-104.0, 33.0], [-104.0, 29.0], [-95.0, 29.0]]]}, 'properties': {'statistics': {'b1': {'min': 0.0026400000788271427, 'max': 0.053369998931884766, 'mean': 0.025750971502727933, 'count': 144.0, 'sum': 3.7081398963928223, 'std': 0.012830051617866246, 'median': 0.026020001620054245, 'majority': 0.023559998720884323, 'minority': 0.0026400000788271427, 'unique': 143.0, 'histogram': [[12.0, 18.0, 17.0, 14.0, 16.0, 25.0, 15.0, 12.0, 8.0, 7.0], [0.0026400000788271427, 0.007712999824434519, 0.012786000035703182, 0.017858998849987984, 0.02293200045824051, 0.028005000203847885, 0.03307799994945526, 0.03815099969506264, 0.04322399944067001, 0.04829699918627739, 0.053369998931884766]], 'valid_percent': 100.0, 'masked_pixels': 0.0, 'valid_pixels': 144.0, 'percentile_2': 0.004642599718645215, 'percentile_98': 0.05058120198547839}}}}
+{'type': 'Feature', 'geometry': {'type': 'Polygon', 'coordinates': [[[-95.0, 29.0], [-95.0, 33.0], [-104.0, 33.0], [-104.0, 29.0], [-95.0, 29.0]]]}, 'properties': {'statistics': {'b1': {'min': 0.003599999938160181, 'max': 0.06798000633716583, 'mean': 0.03546256820360819, 'count': 144.0, 'sum': 5.10660982131958, 'std': 0.016213531912186305, 'median': 0.03819499909877777, 'majority': 0.035909999161958694, 'minority': 0.003599999938160181, 'unique': 140.0, 'histogram': [[10.0, 17.0, 11.0, 11.0, 15.0, 25.0, 22.0, 16.0, 14.0, 3.0], [0.003599999938160181, 0.010038000531494617, 0.01647600159049034, 0.02291400171816349, 0.02935200184583664, 0.03579000383615494, 0.04222800210118294, 0.048666004091501236, 0.055104006081819534, 0.061542004346847534, 0.06798000633716583]], 'valid_percent': 100.0, 'masked_pixels': 0.0, 'valid_pixels': 144.0, 'percentile_2': 0.005782800018787384, 'percentile_98': 0.06203639984130853}}}}
+{'type': 'Feature', 'geometry': {'type': 'Polygon', 'coordinates': [[[-95.0, 29.0], [-95.0, 33.0], [-104.0, 33.0], [-104.0, 29.0], [-95.0, 29.0]]]}, 'properties': {'statistics': {'b1': {'min': 0.006010000128298998, 'max': 0.10190000385046005, 'mean': 0.05987221664852566, 'count': 144.0, 'sum': 8.621599197387695, 'std': 0.02748853158593725, 'median': 0.06458000093698502, 'majority': 0.07848000526428223, 'minority': 0.006010000128298998, 'unique': 142.0, 'histogram': [[11.0, 13.0, 11.0, 9.0, 14.0, 13.0, 11.0, 23.0, 27.0, 12.0], [0.006010000128298998, 0.01559900026768446, 0.02518800087273121, 0.03477700054645538, 0.04436600208282471, 0.05395500361919403, 0.06354400515556335, 0.07313299924135208, 0.0827220007777214, 0.09231100231409073, 0.10190000385046005]], 'valid_percent': 100.0, 'masked_pixels': 0.0, 'valid_pixels': 144.0, 'percentile_2': 0.00806120041757822, 'percentile_98': 0.09972680240869522}}}}
+{'type': 'Feature', 'geometry': {'type': 'Polygon', 'coordinates': [[[-95.0, 29.0], [-95.0, 33.0], [-104.0, 33.0], [-104.0, 29.0], [-95.0, 29.0]]]}, 'properties': {'statistics': {'b1': {'min': 0.0032099999953061342, 'max': 0.11005000025033951, 'mean': 0.020922707186804876, 'count': 144.0, 'sum': 3.0128698348999023, 'std': 0.015321124169287059, 'median': 0.01858000084757805, 'majority': 0.008659999817609787, 'minority': 0.0032099999953061342, 'unique': 141.0, 'histogram': [[51.0, 57.0, 21.0, 5.0, 5.0, 3.0, 0.0, 1.0, 0.0, 1.0], [0.0032099999953061342, 0.013894000090658665, 0.024577999487519264, 0.03526199981570244, 0.04594599828124046, 0.05663000047206879, 0.06731399893760681, 0.07799799740314484, 0.08868200331926346, 0.09936600178480148, 0.11005000025033951]], 'valid_percent': 100.0, 'masked_pixels': 0.0, 'valid_pixels': 144.0, 'percentile_2': 0.003710399977862835, 'percentile_98': 0.06081520214676857}}}}
+{'type': 'Feature', 'geometry': {'type': 'Polygon', 'coordinates': [[[-95.0, 29.0], [-95.0, 33.0], [-104.0, 33.0], [-104.0, 29.0], [-95.0, 29.0]]]}, 'properties': {'statistics': {'b1': {'min': 0.00215000007301569, 'max': 0.06647000461816788, 'mean': 0.01590548621283637, 'count': 144.0, 'sum': 2.2903900146484375, 'std': 0.010954393744004686, 'median': 0.013445000164210796, 'majority': 0.006579999811947346, 'minority': 0.00215000007301569, 'unique': 139.0, 'histogram': [[35.0, 46.0, 30.0, 14.0, 12.0, 1.0, 3.0, 1.0, 0.0, 2.0], [0.00215000007301569, 0.008582000620663166, 0.015014001168310642, 0.021446000784635544, 0.02787800133228302, 0.034310001879930496, 0.04074200242757797, 0.04717400297522545, 0.053606003522872925, 0.0600380040705204, 0.06647000461816788]], 'valid_percent': 100.0, 'masked_pixels': 0.0, 'valid_pixels': 144.0, 'percentile_2': 0.0024273999547585845, 'percentile_98': 0.04365739926695812}}}}
+{'type': 'Feature', 'geometry': {'type': 'Polygon', 'coordinates': [[[-95.0, 29.0], [-95.0, 33.0], [-104.0, 33.0], [-104.0, 29.0], [-95.0, 29.0]]]}, 'properties': {'statistics': {'b1': {'min': 0.0020200000144541264, 'max': 0.10114999860525131, 'mean': 0.03817812270588345, 'count': 144.0, 'sum': 5.497649669647217, 'std': 0.028452418841903738, 'median': 0.033440001308918, 'majority': 0.00471000000834465, 'minority': 0.0020200000144541264, 'unique': 142.0, 'histogram': [[36.0, 22.0, 11.0, 13.0, 12.0, 18.0, 8.0, 10.0, 8.0, 6.0], [0.0020200000144541264, 0.011932999826967716, 0.021846000105142593, 0.031759001314640045, 0.0416719987988472, 0.05158500000834465, 0.061497997492551804, 0.07141099870204926, 0.08132399618625641, 0.09123700112104416, 0.10114999860525131]], 'valid_percent': 100.0, 'masked_pixels': 0.0, 'valid_pixels': 144.0, 'percentile_2': 0.002631200002506375, 'percentile_98': 0.09226840227842328}}}}
+{'type': 'Feature', 'geometry': {'type': 'Polygon', 'coordinates': [[[-95.0, 29.0], [-95.0, 33.0], [-104.0, 33.0], [-104.0, 29.0], [-95.0, 29.0]]]}, 'properties': {'statistics': {'b1': {'min': 0.0019600000232458115, 'max': 0.11550000309944153, 'mean': 0.05139208502239651, 'count': 144.0, 'sum': 7.400460243225098, 'std': 0.03346654303546549, 'median': 0.0471000000834465, 'majority': 0.0800199955701828, 'minority': 0.0019600000232458115, 'unique': 142.0, 'histogram': [[28.0, 15.0, 15.0, 15.0, 8.0, 8.0, 23.0, 12.0, 11.0, 9.0], [0.0019600000232458115, 0.013314000330865383, 0.024668000638484955, 0.03602200001478195, 0.04737599939107895, 0.058730002492666245, 0.07008400559425354, 0.08143800497055054, 0.09279200434684753, 0.10414600372314453, 0.11550000309944153]], 'valid_percent': 100.0, 'masked_pixels': 0.0, 'valid_pixels': 144.0, 'percentile_2': 0.003025999944657087, 'percentile_98': 0.10987499609589574}}}}
+{'type': 'Feature', 'geometry': {'type': 'Polygon', 'coordinates': [[[-95.0, 29.0], [-95.0, 33.0], [-104.0, 33.0], [-104.0, 29.0], [-95.0, 29.0]]]}, 'properties': {'statistics': {'b1': {'min': 0.0028299998957663774, 'max': 0.0919400006532669, 'mean': 0.042569723394181996, 'count': 144.0, 'sum': 6.130040168762207, 'std': 0.021987430824359902, 'median': 0.04195000231266022, 'majority': 0.04595999792218208, 'minority': 0.0028299998957663774, 'unique': 142.0, 'histogram': [[12.0, 18.0, 15.0, 16.0, 24.0, 23.0, 5.0, 16.0, 8.0, 7.0], [0.0028299998957663774, 0.011741000227630138, 0.02065199986100197, 0.029563000425696373, 0.03847400099039078, 0.04738499969244003, 0.05629600211977959, 0.06520699709653854, 0.0741180032491684, 0.08302900195121765, 0.0919400006532669]], 'valid_percent': 100.0, 'masked_pixels': 0.0, 'valid_pixels': 144.0, 'percentile_2': 0.006113600013777613, 'percentile_98': 0.08365759819746017}}}}
+{'type': 'Feature', 'geometry': {'type': 'Polygon', 'coordinates': [[[-95.0, 29.0], [-95.0, 33.0], [-104.0, 33.0], [-104.0, 29.0], [-95.0, 29.0]]]}, 'properties': {'statistics': {'b1': {'min': 0.0027100001461803913, 'max': 0.091279998421669, 'mean': 0.04392770926157633, 'count': 144.0, 'sum': 6.325590133666992, 'std': 0.022188844194767618, 'median': 0.04529000073671341, 'majority': 0.0027100001461803913, 'minority': 0.0027100001461803913, 'unique': 144.0, 'histogram': [[11.0, 20.0, 13.0, 13.0, 18.0, 30.0, 9.0, 11.0, 12.0, 7.0], [0.0027100001461803913, 0.011567000299692154, 0.020423999056220055, 0.029280999675393105, 0.038137998431921005, 0.046994999051094055, 0.055851999670267105, 0.06470900028944016, 0.0735659971833229, 0.08242300152778625, 0.091279998421669]], 'valid_percent': 100.0, 'masked_pixels': 0.0, 'valid_pixels': 144.0, 'percentile_2': 0.006952800201252102, 'percentile_98': 0.084031603038311}}}}
+{'type': 'Feature', 'geometry': {'type': 'Polygon', 'coordinates': [[[-95.0, 29.0], [-95.0, 33.0], [-104.0, 33.0], [-104.0, 29.0], [-95.0, 29.0]]]}, 'properties': {'statistics': {'b1': {'min': 0.003449999960139394, 'max': 0.07080000638961792, 'mean': 0.03542617956797282, 'count': 144.0, 'sum': 5.101369857788086, 'std': 0.016915149539018823, 'median': 0.0368649996817112, 'majority': 0.0370200015604496, 'minority': 0.003449999960139394, 'unique': 142.0, 'histogram': [[10.0, 17.0, 16.0, 12.0, 19.0, 26.0, 15.0, 12.0, 10.0, 7.0], [0.003449999960139394, 0.010185000486671925, 0.016920000314712524, 0.0236550010740757, 0.030390001833438873, 0.03712500259280205, 0.04386000335216522, 0.0505950041115284, 0.05733000487089157, 0.06406500935554504, 0.07080000638961792]], 'valid_percent': 100.0, 'masked_pixels': 0.0, 'valid_pixels': 144.0, 'percentile_2': 0.006235400130972266, 'percentile_98': 0.06815719425678252}}}}
+{'type': 'Feature', 'geometry': {'type': 'Polygon', 'coordinates': [[[-95.0, 29.0], [-95.0, 33.0], [-104.0, 33.0], [-104.0, 29.0], [-95.0, 29.0]]]}, 'properties': {'statistics': {'b1': {'min': 0.0031700001563876867, 'max': 0.056379999965429306, 'mean': 0.025651526119973924, 'count': 144.0, 'sum': 3.693819761276245, 'std': 0.011597901510046, 'median': 0.025384999811649323, 'majority': 0.01688999868929386, 'minority': 0.0031700001563876867, 'unique': 142.0, 'histogram': [[8.0, 18.0, 24.0, 21.0, 18.0, 25.0, 16.0, 7.0, 4.0, 3.0], [0.0031700001563876867, 0.008491000160574913, 0.013811999931931496, 0.01913299970328808, 0.02445399947464466, 0.029774999246001244, 0.035096000880002975, 0.04041700065135956, 0.04573800042271614, 0.05105900019407272, 0.056379999965429306]], 'valid_percent': 100.0, 'masked_pixels': 0.0, 'valid_pixels': 144.0, 'percentile_2': 0.005844000009819865, 'percentile_98': 0.05081240028142925}}}}
+{'type': 'Feature', 'geometry': {'type': 'Polygon', 'coordinates': [[[-95.0, 29.0], [-95.0, 33.0], [-104.0, 33.0], [-104.0, 29.0], [-95.0, 29.0]]]}, 'properties': {'statistics': {'b1': {'min': 0.002240000059828162, 'max': 0.03600999712944031, 'mean': 0.017863263686498005, 'count': 144.0, 'sum': 2.572309970855713, 'std': 0.008277393158440808, 'median': 0.018330000340938568, 'majority': 0.006739999633282423, 'minority': 0.002240000059828162, 'unique': 140.0, 'histogram': [[9.0, 17.0, 18.0, 15.0, 18.0, 22.0, 20.0, 12.0, 8.0, 5.0], [0.002240000059828162, 0.005616999696940184, 0.008993999101221561, 0.012370998971164227, 0.015747999772429466, 0.019124997779726982, 0.022501997649669647, 0.025878997519612312, 0.029255997389554977, 0.03263299912214279, 0.03600999712944031]], 'valid_percent': 100.0, 'masked_pixels': 0.0, 'valid_pixels': 144.0, 'percentile_2': 0.0042070000944659115, 'percentile_98': 0.0339680004864931}}}}
+{'type': 'Feature', 'geometry': {'type': 'Polygon', 'coordinates': [[[-95.0, 29.0], [-95.0, 33.0], [-104.0, 33.0], [-104.0, 29.0], [-95.0, 29.0]]]}, 'properties': {'statistics': {'b1': {'min': 0.002300000051036477, 'max': 0.05869000032544136, 'mean': 0.02855062484741211, 'count': 144.0, 'sum': 4.111289978027344, 'std': 0.014482030360392674, 'median': 0.02925499901175499, 'majority': 0.006829999852925539, 'minority': 0.002300000051036477, 'unique': 140.0, 'histogram': [[11.0, 16.0, 16.0, 20.0, 14.0, 23.0, 15.0, 7.0, 16.0, 6.0], [0.002300000051036477, 0.007938999682664871, 0.013578000478446484, 0.019216999411582947, 0.024855999276041985, 0.03049500100314617, 0.03613400086760521, 0.0417729988694191, 0.047412000596523285, 0.05305099859833717, 0.05869000032544136]], 'valid_percent': 100.0, 'masked_pixels': 0.0, 'valid_pixels': 144.0, 'percentile_2': 0.004698399710468947, 'percentile_98': 0.05447900183498857}}}}
+{'type': 'Feature', 'geometry': {'type': 'Polygon', 'coordinates': [[[-95.0, 29.0], [-95.0, 33.0], [-104.0, 33.0], [-104.0, 29.0], [-95.0, 29.0]]]}, 'properties': {'statistics': {'b1': {'min': 0.002630000002682209, 'max': 0.055490002036094666, 'mean': 0.028798056973351374, 'count': 144.0, 'sum': 4.146920204162598, 'std': 0.014318562186085588, 'median': 0.029680000618100166, 'majority': 0.007949999533593655, 'minority': 0.002630000002682209, 'unique': 142.0, 'histogram': [[10.0, 19.0, 15.0, 11.0, 12.0, 16.0, 23.0, 16.0, 13.0, 9.0], [0.002630000002682209, 0.007915999740362167, 0.0132020004093647, 0.018488001078367233, 0.023774001747369766, 0.02906000055372715, 0.034345999360084534, 0.03963200002908707, 0.0449180006980896, 0.05020400136709213, 0.055490002036094666]], 'valid_percent': 100.0, 'masked_pixels': 0.0, 'valid_pixels': 144.0, 'percentile_2': 0.005487800328992307, 'percentile_98': 0.052172000408172596}}}}
+{'type': 'Feature', 'geometry': {'type': 'Polygon', 'coordinates': [[[-95.0, 29.0], [-95.0, 33.0], [-104.0, 33.0], [-104.0, 29.0], [-95.0, 29.0]]]}, 'properties': {'statistics': {'b1': {'min': 0.0012499999720603228, 'max': 0.11406999826431274, 'mean': 0.03576430678367615, 'count': 144.0, 'sum': 5.150060176849365, 'std': 0.028336925661150394, 'median': 0.029224999248981476, 'majority': 0.002689999993890524, 'minority': 0.0012499999720603228, 'unique': 142.0, 'histogram': [[37.0, 28.0, 15.0, 17.0, 13.0, 11.0, 10.0, 7.0, 5.0, 1.0], [0.0012499999720603228, 0.012531999498605728, 0.023814000189304352, 0.035096000880002975, 0.0463779978454113, 0.057659998536109924, 0.06894199550151825, 0.08022399991750717, 0.0915059968829155, 0.10278800129890442, 0.11406999826431274]], 'valid_percent': 100.0, 'masked_pixels': 0.0, 'valid_pixels': 144.0, 'percentile_2': 0.002263000067323446, 'percentile_98': 0.09514620065689086}}}}
+{'type': 'Feature', 'geometry': {'type': 'Polygon', 'coordinates': [[[-95.0, 29.0], [-95.0, 33.0], [-104.0, 33.0], [-104.0, 29.0], [-95.0, 29.0]]]}, 'properties': {'statistics': {'b1': {'min': 0.005760000087320805, 'max': 0.11022000014781952, 'mean': 0.042702707979414195, 'count': 144.0, 'sum': 6.1491899490356445, 'std': 0.024249860652088628, 'median': 0.03666999936103821, 'majority': 0.03655000030994415, 'minority': 0.005760000087320805, 'unique': 143.0, 'histogram': [[15.0, 31.0, 28.0, 21.0, 13.0, 9.0, 12.0, 7.0, 7.0, 1.0], [0.005760000087320805, 0.01620600000023842, 0.026652000844478607, 0.037098001688718796, 0.047543998807668686, 0.057989999651908875, 0.06843599677085876, 0.07888200134038925, 0.08932799845933914, 0.09977400302886963, 0.11022000014781952]], 'valid_percent': 100.0, 'masked_pixels': 0.0, 'valid_pixels': 144.0, 'percentile_2': 0.006465000128373504, 'percentile_98': 0.09848020091652869}}}}
+{'type': 'Feature', 'geometry': {'type': 'Polygon', 'coordinates': [[[-95.0, 29.0], [-95.0, 33.0], [-104.0, 33.0], [-104.0, 29.0], [-95.0, 29.0]]]}, 'properties': {'statistics': {'b1': {'min': 0.0021600001491606236, 'max': 0.08387000113725662, 'mean': 0.022104097737206355, 'count': 144.0, 'sum': 3.182990074157715, 'std': 0.015252032446335198, 'median': 0.019749999046325684, 'majority': 0.02362999878823757, 'minority': 0.0021600001491606236, 'unique': 143.0, 'histogram': [[35.0, 26.0, 49.0, 14.0, 6.0, 3.0, 5.0, 3.0, 1.0, 2.0], [0.0021600001491606236, 0.010331000201404095, 0.018502000719308853, 0.026673000305891037, 0.03484399989247322, 0.043014999479055405, 0.05118599906563759, 0.05935700237751007, 0.06752800196409225, 0.07569900155067444, 0.08387000113725662]], 'valid_percent': 100.0, 'masked_pixels': 0.0, 'valid_pixels': 144.0, 'percentile_2': 0.0046513998508453365, 'percentile_98': 0.06626740097999567}}}}
+{'type': 'Feature', 'geometry': {'type': 'Polygon', 'coordinates': [[[-95.0, 29.0], [-95.0, 33.0], [-104.0, 33.0], [-104.0, 29.0], [-95.0, 29.0]]]}, 'properties': {'statistics': {'b1': {'min': 0.002139999996870756, 'max': 0.13747000694274902, 'mean': 0.032433542940351695, 'count': 144.0, 'sum': 4.6704301834106445, 'std': 0.033704097074771094, 'median': 0.020235000178217888, 'majority': 0.010370000265538692, 'minority': 0.002139999996870756, 'unique': 143.0, 'histogram': [[61.0, 39.0, 10.0, 6.0, 2.0, 4.0, 11.0, 5.0, 5.0, 1.0], [0.002139999996870756, 0.015673000365495682, 0.02920600213110447, 0.04273900389671326, 0.056272003799676895, 0.06980500370264053, 0.08333800733089447, 0.09687100350856781, 0.11040400713682175, 0.12393700331449509, 0.13747000694274902]], 'valid_percent': 100.0, 'masked_pixels': 0.0, 'valid_pixels': 144.0, 'percentile_2': 0.0029260001145303247, 'percentile_98': 0.11257839530706394}}}}
+{'type': 'Feature', 'geometry': {'type': 'Polygon', 'coordinates': [[[-95.0, 29.0], [-95.0, 33.0], [-104.0, 33.0], [-104.0, 29.0], [-95.0, 29.0]]]}, 'properties': {'statistics': {'b1': {'min': 0.001509999972768128, 'max': 0.1218399927020073, 'mean': 0.04721277952194214, 'count': 144.0, 'sum': 6.798640251159668, 'std': 0.03391779695562746, 'median': 0.042295001447200775, 'majority': 0.001509999972768128, 'minority': 0.001509999972768128, 'unique': 144.0, 'histogram': [[30.0, 23.0, 13.0, 15.0, 16.0, 8.0, 12.0, 13.0, 9.0, 5.0], [0.001509999972768128, 0.013542999513447285, 0.025575999170541763, 0.03760899603366852, 0.04964199662208557, 0.061674997210502625, 0.07370799779891968, 0.08574099838733673, 0.09777399152517319, 0.10980699211359024, 0.1218399927020073]], 'valid_percent': 100.0, 'masked_pixels': 0.0, 'valid_pixels': 144.0, 'percentile_2': 0.0033997999457642436, 'percentile_98': 0.1173514027893543}}}}
+{'type': 'Feature', 'geometry': {'type': 'Polygon', 'coordinates': [[[-95.0, 29.0], [-95.0, 33.0], [-104.0, 33.0], [-104.0, 29.0], [-95.0, 29.0]]]}, 'properties': {'statistics': {'b1': {'min': 0.0008399999933317304, 'max': 0.08898000419139862, 'mean': 0.04224645429187351, 'count': 144.0, 'sum': 6.083489418029785, 'std': 0.025578651720975187, 'median': 0.04938500002026558, 'majority': 0.004879999905824661, 'minority': 0.0008399999933317304, 'unique': 142.0, 'histogram': [[23.0, 17.0, 11.0, 5.0, 6.0, 30.0, 21.0, 10.0, 10.0, 11.0], [0.0008399999933317304, 0.009654000401496887, 0.01846799999475479, 0.027282001450657845, 0.0360960029065609, 0.0449100024998188, 0.053724002093076706, 0.06253800541162491, 0.07135200500488281, 0.08016600459814072, 0.08898000419139862]], 'valid_percent': 100.0, 'masked_pixels': 0.0, 'valid_pixels': 144.0, 'percentile_2': 0.0025497999927029014, 'percentile_98': 0.08576679974794384}}}}
+{'type': 'Feature', 'geometry': {'type': 'Polygon', 'coordinates': [[[-95.0, 29.0], [-95.0, 33.0], [-104.0, 33.0], [-104.0, 29.0], [-95.0, 29.0]]]}, 'properties': {'statistics': {'b1': {'min': 0.0012700000079348683, 'max': 0.08636000007390976, 'mean': 0.03487381670210096, 'count': 144.0, 'sum': 5.021829605102539, 'std': 0.02733238333253937, 'median': 0.03348999843001366, 'majority': 0.004639999940991402, 'minority': 0.0012700000079348683, 'unique': 141.0, 'histogram': [[47.0, 15.0, 6.0, 5.0, 6.0, 16.0, 18.0, 11.0, 13.0, 7.0], [0.0012700000079348683, 0.009778999723494053, 0.01828799955546856, 0.02679700031876564, 0.03530599921941757, 0.0438150018453598, 0.052324000746011734, 0.060832999646663666, 0.0693420022726059, 0.07785099744796753, 0.08636000007390976]], 'valid_percent': 100.0, 'masked_pixels': 0.0, 'valid_pixels': 144.0, 'percentile_2': 0.0016257999720983207, 'percentile_98': 0.0833825995028019}}}}
+{'type': 'Feature', 'geometry': {'type': 'Polygon', 'coordinates': [[[-95.0, 29.0], [-95.0, 33.0], [-104.0, 33.0], [-104.0, 29.0], [-95.0, 29.0]]]}, 'properties': {'statistics': {'b1': {'min': 0.0009899999713525176, 'max': 0.06938999891281128, 'mean': 0.03229666749636332, 'count': 144.0, 'sum': 4.650720119476318, 'std': 0.020620703056761728, 'median': 0.038874998688697815, 'majority': 0.001610000035725534, 'minority': 0.0009899999713525176, 'unique': 142.0, 'histogram': [[32.0, 15.0, 4.0, 5.0, 8.0, 17.0, 24.0, 23.0, 12.0, 4.0], [0.0009899999713525176, 0.007829999551177025, 0.014669999480247498, 0.02150999940931797, 0.028349999338388443, 0.035190001130104065, 0.04202999919652939, 0.04887000098824501, 0.055709999054670334, 0.06255000084638596, 0.06938999891281128]], 'valid_percent': 100.0, 'masked_pixels': 0.0, 'valid_pixels': 144.0, 'percentile_2': 0.0015129999443888665, 'percentile_98': 0.06484099939465522}}}}
+{'type': 'Feature', 'geometry': {'type': 'Polygon', 'coordinates': [[[-95.0, 29.0], [-95.0, 33.0], [-104.0, 33.0], [-104.0, 29.0], [-95.0, 29.0]]]}, 'properties': {'statistics': {'b1': {'min': 0.0031799999997019768, 'max': 0.05682000145316124, 'mean': 0.026617570055855647, 'count': 144.0, 'sum': 3.832930088043213, 'std': 0.013703097379403397, 'median': 0.029559999704360962, 'majority': 0.029260000213980675, 'minority': 0.0031799999997019768, 'unique': 143.0, 'histogram': [[21.0, 16.0, 10.0, 10.0, 17.0, 28.0, 21.0, 12.0, 6.0, 3.0], [0.0031799999997019768, 0.00854399986565113, 0.01390800066292286, 0.01927199959754944, 0.024636000394821167, 0.030000001192092896, 0.035364001989364624, 0.04072800278663635, 0.04609199985861778, 0.05145600065588951, 0.05682000145316124]], 'valid_percent': 100.0, 'masked_pixels': 0.0, 'valid_pixels': 144.0, 'percentile_2': 0.0035585998883470894, 'percentile_98': 0.050719201564788784}}}}
+{'type': 'Feature', 'geometry': {'type': 'Polygon', 'coordinates': [[[-95.0, 29.0], [-95.0, 33.0], [-104.0, 33.0], [-104.0, 29.0], [-95.0, 29.0]]]}, 'properties': {'statistics': {'b1': {'min': 0.0032500000670552254, 'max': 0.04454999789595604, 'mean': 0.021480417913860746, 'count': 144.0, 'sum': 3.0931801795959473, 'std': 0.008844062364720604, 'median': 0.02228499948978424, 'majority': 0.015170000493526459, 'minority': 0.0032500000670552254, 'unique': 140.0, 'histogram': [[8.0, 12.0, 19.0, 16.0, 34.0, 28.0, 10.0, 9.0, 5.0, 3.0], [0.0032500000670552254, 0.007379999849945307, 0.011509999632835388, 0.015639999881386757, 0.019770000129938126, 0.023899998515844345, 0.028029998764395714, 0.03215999901294708, 0.0362899973988533, 0.04041999951004982, 0.04454999789595604]], 'valid_percent': 100.0, 'masked_pixels': 0.0, 'valid_pixels': 144.0, 'percentile_2': 0.0035905998945236204, 'percentile_98': 0.04035919927060603}}}}
+{'type': 'Feature', 'geometry': {'type': 'Polygon', 'coordinates': [[[-95.0, 29.0], [-95.0, 33.0], [-104.0, 33.0], [-104.0, 29.0], [-95.0, 29.0]]]}, 'properties': {'statistics': {'b1': {'min': 0.0030999998562037945, 'max': 0.043869998306035995, 'mean': 0.018528612123595342, 'count': 144.0, 'sum': 2.6681201457977295, 'std': 0.007814603679506415, 'median': 0.017239999026060104, 'majority': 0.01039000041782856, 'minority': 0.0030999998562037945, 'unique': 138.0, 'histogram': [[6.0, 16.0, 30.0, 39.0, 19.0, 15.0, 7.0, 7.0, 3.0, 2.0], [0.0030999998562037945, 0.007176999934017658, 0.011253999546170235, 0.015330999158322811, 0.019407998770475388, 0.02348499931395054, 0.02756199985742569, 0.03163899853825569, 0.03571599721908569, 0.039792999625205994, 0.043869998306035995]], 'valid_percent': 100.0, 'masked_pixels': 0.0, 'valid_pixels': 144.0, 'percentile_2': 0.005734600247815251, 'percentile_98': 0.03684840075671671}}}}
+{'type': 'Feature', 'geometry': {'type': 'Polygon', 'coordinates': [[[-95.0, 29.0], [-95.0, 33.0], [-104.0, 33.0], [-104.0, 29.0], [-95.0, 29.0]]]}, 'properties': {'statistics': {'b1': {'min': 0.0011599999852478504, 'max': 0.054110001772642136, 'mean': 0.025374513533380296, 'count': 144.0, 'sum': 3.6539299488067627, 'std': 0.01256210409402226, 'median': 0.025929998606443405, 'majority': 0.008559999987483025, 'minority': 0.0011599999852478504, 'unique': 140.0, 'histogram': [[7.0, 18.0, 19.0, 20.0, 12.0, 21.0, 23.0, 15.0, 5.0, 4.0], [0.0011599999852478504, 0.006455000024288893, 0.011750000528991222, 0.017045000568032265, 0.02234000153839588, 0.02763500064611435, 0.032930001616477966, 0.03822500258684158, 0.0435199998319149, 0.04881500080227852, 0.054110001772642136]], 'valid_percent': 100.0, 'masked_pixels': 0.0, 'valid_pixels': 144.0, 'percentile_2': 0.0033652000175788998, 'percentile_98': 0.04953080177307128}}}}
+{'type': 'Feature', 'geometry': {'type': 'Polygon', 'coordinates': [[[-95.0, 29.0], [-95.0, 33.0], [-104.0, 33.0], [-104.0, 29.0], [-95.0, 29.0]]]}, 'properties': {'statistics': {'b1': {'min': 0.0010999999940395355, 'max': 0.08714000135660172, 'mean': 0.04227187567287021, 'count': 144.0, 'sum': 6.0871500968933105, 'std': 0.02656306485474341, 'median': 0.0445299968123436, 'majority': 0.006020000204443932, 'minority': 0.0010999999940395355, 'unique': 138.0, 'histogram': [[21.0, 19.0, 14.0, 11.0, 6.0, 10.0, 14.0, 24.0, 14.0, 11.0], [0.0010999999940395355, 0.009704000316560268, 0.018308000639081, 0.02691200003027916, 0.03551600128412247, 0.044119998812675476, 0.052724000066518784, 0.06132800132036209, 0.0699319988489151, 0.0785360038280487, 0.08714000135660172]], 'valid_percent': 100.0, 'masked_pixels': 0.0, 'valid_pixels': 144.0, 'percentile_2': 0.0029122000117786226, 'percentile_98': 0.08611799895763397}}}}
+{'type': 'Feature', 'geometry': {'type': 'Polygon', 'coordinates': [[[-95.0, 29.0], [-95.0, 33.0], [-104.0, 33.0], [-104.0, 29.0], [-95.0, 29.0]]]}, 'properties': {'statistics': {'b1': {'min': 0.0028099999763071537, 'max': 0.1394299864768982, 'mean': 0.05164069599575467, 'count': 144.0, 'sum': 7.436260223388672, 'std': 0.034027486680013055, 'median': 0.049149997532367706, 'majority': 0.009930000640451908, 'minority': 0.0028099999763071537, 'unique': 142.0, 'histogram': [[32.0, 17.0, 16.0, 16.0, 17.0, 14.0, 17.0, 12.0, 2.0, 1.0], [0.0028099999763071537, 0.016471998766064644, 0.03013399802148342, 0.04379599541425705, 0.05745799466967583, 0.0711199939250946, 0.08478198945522308, 0.09844399243593216, 0.11210598796606064, 0.12576799094676971, 0.1394299864768982]], 'valid_percent': 100.0, 'masked_pixels': 0.0, 'valid_pixels': 144.0, 'percentile_2': 0.005951600060798227, 'percentile_98': 0.11276940196752537}}}}
+{'type': 'Feature', 'geometry': {'type': 'Polygon', 'coordinates': [[[-95.0, 29.0], [-95.0, 33.0], [-104.0, 33.0], [-104.0, 29.0], [-95.0, 29.0]]]}, 'properties': {'statistics': {'b1': {'min': 0.0013000000035390258, 'max': 0.07037999480962753, 'mean': 0.017468957437409297, 'count': 144.0, 'sum': 2.5155298709869385, 'std': 0.011211827947833224, 'median': 0.01723499968647957, 'majority': 0.006560000125318766, 'minority': 0.0013000000035390258, 'unique': 138.0, 'histogram': [[39.0, 27.0, 32.0, 28.0, 9.0, 6.0, 1.0, 1.0, 0.0, 1.0], [0.0013000000035390258, 0.008207999169826508, 0.015115998685359955, 0.022023998200893402, 0.02893199771642685, 0.0358399972319603, 0.042747996747493744, 0.04965599626302719, 0.05656399577856064, 0.06347199529409409, 0.07037999480962753]], 'valid_percent': 100.0, 'masked_pixels': 0.0, 'valid_pixels': 144.0, 'percentile_2': 0.0030199999292381107, 'percentile_98': 0.0417735984921455}}}}
+{'type': 'Feature', 'geometry': {'type': 'Polygon', 'coordinates': [[[-95.0, 29.0], [-95.0, 33.0], [-104.0, 33.0], [-104.0, 29.0], [-95.0, 29.0]]]}, 'properties': {'statistics': {'b1': {'min': 0.003640000009909272, 'max': 0.07465000450611115, 'mean': 0.031765487458970815, 'count': 144.0, 'sum': 4.574230194091797, 'std': 0.017760920229403572, 'median': 0.030755000188946724, 'majority': 0.012740000151097775, 'minority': 0.003640000009909272, 'unique': 141.0, 'histogram': [[16.0, 30.0, 15.0, 16.0, 13.0, 22.0, 14.0, 8.0, 6.0, 4.0], [0.003640000009909272, 0.010741000063717365, 0.017842000350356102, 0.024943001568317413, 0.032044000923633575, 0.039145004004240036, 0.0462460033595562, 0.05334700271487236, 0.06044800207018852, 0.06754900515079498, 0.07465000450611115]], 'valid_percent': 100.0, 'masked_pixels': 0.0, 'valid_pixels': 144.0, 'percentile_2': 0.005530800111591815, 'percentile_98': 0.06837299555540084}}}}
+{'type': 'Feature', 'geometry': {'type': 'Polygon', 'coordinates': [[[-95.0, 29.0], [-95.0, 33.0], [-104.0, 33.0], [-104.0, 29.0], [-95.0, 29.0]]]}, 'properties': {'statistics': {'b1': {'min': 0.0017300000181421638, 'max': 0.12176000326871872, 'mean': 0.038299997647603355, 'count': 144.0, 'sum': 5.515199661254883, 'std': 0.03171667683046926, 'median': 0.02938000112771988, 'majority': 0.02712000161409378, 'minority': 0.0017300000181421638, 'unique': 142.0, 'histogram': [[38.0, 24.0, 28.0, 20.0, 7.0, 4.0, 2.0, 8.0, 9.0, 4.0], [0.0017300000181421638, 0.013733000494539738, 0.025736000388860703, 0.03773900121450424, 0.04974200204014778, 0.06174500286579132, 0.07374799996614456, 0.0857510045170784, 0.09775400161743164, 0.10975700616836548, 0.12176000326871872]], 'valid_percent': 100.0, 'masked_pixels': 0.0, 'valid_pixels': 144.0, 'percentile_2': 0.0035645999992266297, 'percentile_98': 0.11068359777331346}}}}
+{'type': 'Feature', 'geometry': {'type': 'Polygon', 'coordinates': [[[-95.0, 29.0], [-95.0, 33.0], [-104.0, 33.0], [-104.0, 29.0], [-95.0, 29.0]]]}, 'properties': {'statistics': {'b1': {'min': 0.0012199999764561653, 'max': 0.09319999814033508, 'mean': 0.0399548610051473, 'count': 144.0, 'sum': 5.753499984741211, 'std': 0.025237834194716684, 'median': 0.04462999850511551, 'majority': 0.008729999884963036, 'minority': 0.0012199999764561653, 'unique': 142.0, 'histogram': [[29.0, 16.0, 11.0, 9.0, 11.0, 26.0, 12.0, 19.0, 9.0, 2.0], [0.0012199999764561653, 0.0104179996997118, 0.01961600035429001, 0.028813999146223068, 0.03801199793815613, 0.047210000455379486, 0.056407999247312546, 0.0656059980392456, 0.07480400055646896, 0.08400199562311172, 0.09319999814033508]], 'valid_percent': 100.0, 'masked_pixels': 0.0, 'valid_pixels': 144.0, 'percentile_2': 0.0024543999903835355, 'percentile_98': 0.0827514037489891}}}}
+{'type': 'Feature', 'geometry': {'type': 'Polygon', 'coordinates': [[[-95.0, 29.0], [-95.0, 33.0], [-104.0, 33.0], [-104.0, 29.0], [-95.0, 29.0]]]}, 'properties': {'statistics': {'b1': {'min': 0.0006300000241026282, 'max': 0.08393999934196472, 'mean': 0.034866525067223444, 'count': 144.0, 'sum': 5.020779609680176, 'std': 0.025446084952560868, 'median': 0.043095000088214874, 'majority': 0.0023599998094141483, 'minority': 0.0006300000241026282, 'unique': 141.0, 'histogram': [[41.0, 12.0, 7.0, 5.0, 6.0, 25.0, 15.0, 19.0, 13.0, 1.0], [0.0006300000241026282, 0.008960999548435211, 0.017292000353336334, 0.025622999295592308, 0.03395399823784828, 0.042284999042749405, 0.05061599984765053, 0.05894700065255165, 0.06727799773216248, 0.0756089985370636, 0.08393999934196472]], 'valid_percent': 100.0, 'masked_pixels': 0.0, 'valid_pixels': 144.0, 'percentile_2': 0.0014689999038819223, 'percentile_98': 0.07387260034680365}}}}
+{'type': 'Feature', 'geometry': {'type': 'Polygon', 'coordinates': [[[-95.0, 29.0], [-95.0, 33.0], [-104.0, 33.0], [-104.0, 29.0], [-95.0, 29.0]]]}, 'properties': {'statistics': {'b1': {'min': 0.0009800000116229057, 'max': 0.07805000245571136, 'mean': 0.03362729152043661, 'count': 144.0, 'sum': 4.842329978942871, 'std': 0.02043000063613914, 'median': 0.03711999952793121, 'majority': 0.0009800000116229057, 'minority': 0.0009800000116229057, 'unique': 144.0, 'histogram': [[17.0, 29.0, 12.0, 8.0, 7.0, 24.0, 18.0, 23.0, 5.0, 1.0], [0.0009800000116229057, 0.008687000721693039, 0.016394000500440598, 0.024101000279188156, 0.031808000057935715, 0.03951499983668327, 0.04722200334072113, 0.05492900311946869, 0.06263600289821625, 0.0703430026769638, 0.07805000245571136]], 'valid_percent': 100.0, 'masked_pixels': 0.0, 'valid_pixels': 144.0, 'percentile_2': 0.002963799932040274, 'percentile_98': 0.066608605235815}}}}
+{'type': 'Feature', 'geometry': {'type': 'Polygon', 'coordinates': [[[-95.0, 29.0], [-95.0, 33.0], [-104.0, 33.0], [-104.0, 29.0], [-95.0, 29.0]]]}, 'properties': {'statistics': {'b1': {'min': 0.003630000166594982, 'max': 0.06836000084877014, 'mean': 0.035070968998803034, 'count': 144.0, 'sum': 5.050219535827637, 'std': 0.016168849300735626, 'median': 0.03740999847650528, 'majority': 0.046799998730421066, 'minority': 0.003630000166594982, 'unique': 143.0, 'histogram': [[8.0, 20.0, 15.0, 8.0, 17.0, 23.0, 15.0, 24.0, 11.0, 3.0], [0.003630000166594982, 0.010103000327944756, 0.016575999557971954, 0.023049000650644302, 0.0295219998806715, 0.0359949991106987, 0.04246800020337105, 0.048941001296043396, 0.055414002388715744, 0.061886999756097794, 0.06836000084877014]], 'valid_percent': 100.0, 'masked_pixels': 0.0, 'valid_pixels': 144.0, 'percentile_2': 0.006721200225874782, 'percentile_98': 0.06150679945945737}}}}
+{'type': 'Feature', 'geometry': {'type': 'Polygon', 'coordinates': [[[-95.0, 29.0], [-95.0, 33.0], [-104.0, 33.0], [-104.0, 29.0], [-95.0, 29.0]]]}, 'properties': {'statistics': {'b1': {'min': 0.0033900002017617226, 'max': 0.06582000106573105, 'mean': 0.03203625149197049, 'count': 144.0, 'sum': 4.61322021484375, 'std': 0.015169880532206302, 'median': 0.03405499830842018, 'majority': 0.05047000199556351, 'minority': 0.0033900002017617226, 'unique': 143.0, 'histogram': [[9.0, 20.0, 18.0, 12.0, 14.0, 23.0, 21.0, 18.0, 7.0, 2.0], [0.0033900002017617226, 0.009633000008761883, 0.015876000747084618, 0.022119000554084778, 0.028362000361084938, 0.0346050001680851, 0.04084800183773041, 0.04709099978208542, 0.05333400145173073, 0.05957699939608574, 0.06582000106573105]], 'valid_percent': 100.0, 'masked_pixels': 0.0, 'valid_pixels': 144.0, 'percentile_2': 0.005876999893225729, 'percentile_98': 0.05778700105845927}}}}
+{'type': 'Feature', 'geometry': {'type': 'Polygon', 'coordinates': [[[-95.0, 29.0], [-95.0, 33.0], [-104.0, 33.0], [-104.0, 29.0], [-95.0, 29.0]]]}, 'properties': {'statistics': {'b1': {'min': 0.0006900000153109431, 'max': 0.08062999695539474, 'mean': 0.024725417296091717, 'count': 144.0, 'sum': 3.560460090637207, 'std': 0.02109118238469527, 'median': 0.016495000571012497, 'majority': 0.003800000064074993, 'minority': 0.0006900000153109431, 'unique': 140.0, 'histogram': [[54.0, 19.0, 12.0, 6.0, 5.0, 23.0, 13.0, 8.0, 3.0, 1.0], [0.0006900000153109431, 0.008684000000357628, 0.01667799986898899, 0.024671999737620354, 0.03266599774360657, 0.04065999761223793, 0.04865399748086929, 0.056647997349500656, 0.06464199721813202, 0.07263600081205368, 0.08062999695539474]], 'valid_percent': 100.0, 'masked_pixels': 0.0, 'valid_pixels': 144.0, 'percentile_2': 0.0010431999329011887, 'percentile_98': 0.06567899912595748}}}}
+{'type': 'Feature', 'geometry': {'type': 'Polygon', 'coordinates': [[[-95.0, 29.0], [-95.0, 33.0], [-104.0, 33.0], [-104.0, 29.0], [-95.0, 29.0]]]}, 'properties': {'statistics': {'b1': {'min': 0.0007399999885819852, 'max': 0.07248000055551529, 'mean': 0.013771458632416196, 'count': 144.0, 'sum': 1.9830900430679321, 'std': 0.015894902729989526, 'median': 0.007939999923110008, 'majority': 0.0007399999885819852, 'minority': 0.0008699999889358878, 'unique': 130.0, 'histogram': [[72.0, 39.0, 8.0, 5.0, 2.0, 6.0, 5.0, 1.0, 4.0, 2.0], [0.0007399999885819852, 0.007914000190794468, 0.01508800033479929, 0.022261999547481537, 0.02943599969148636, 0.03660999983549118, 0.043783999979496, 0.050958000123500824, 0.058132000267505646, 0.06530600041151047, 0.07248000055551529]], 'valid_percent': 100.0, 'masked_pixels': 0.0, 'valid_pixels': 144.0, 'percentile_2': 0.0012999999593012034, 'percentile_98': 0.06147520072758192}}}}
+{'type': 'Feature', 'geometry': {'type': 'Polygon', 'coordinates': [[[-95.0, 29.0], [-95.0, 33.0], [-104.0, 33.0], [-104.0, 29.0], [-95.0, 29.0]]]}, 'properties': {'statistics': {'b1': {'min': 0.0007599999662488699, 'max': 0.08240000158548355, 'mean': 0.02072986298137241, 'count': 144.0, 'sum': 2.985100269317627, 'std': 0.0169932096863655, 'median': 0.019705001264810562, 'majority': 0.0022100000642240047, 'minority': 0.0007599999662488699, 'unique': 141.0, 'histogram': [[51.0, 15.0, 25.0, 27.0, 13.0, 6.0, 0.0, 2.0, 2.0, 3.0], [0.0007599999662488699, 0.008923999965190887, 0.01708799973130226, 0.025252001360058784, 0.03341599926352501, 0.04157999902963638, 0.049744002521038055, 0.05790800228714943, 0.0660720020532608, 0.07423599809408188, 0.08240000158548355]], 'valid_percent': 100.0, 'masked_pixels': 0.0, 'valid_pixels': 144.0, 'percentile_2': 0.0016380000486969947, 'percentile_98': 0.0685442011058329}}}}
+{'type': 'Feature', 'geometry': {'type': 'Polygon', 'coordinates': [[[-95.0, 29.0], [-95.0, 33.0], [-104.0, 33.0], [-104.0, 29.0], [-95.0, 29.0]]]}, 'properties': {'statistics': {'b1': {'min': 0.004089999943971634, 'max': 0.11225000023841858, 'mean': 0.054194652371936373, 'count': 144.0, 'sum': 7.804029941558838, 'std': 0.027579150688860292, 'median': 0.062014997005462646, 'majority': 0.06908999383449554, 'minority': 0.004089999943971634, 'unique': 143.0, 'histogram': [[15.0, 20.0, 11.0, 7.0, 10.0, 24.0, 28.0, 20.0, 6.0, 3.0], [0.004089999943971634, 0.014906000345945358, 0.025722000747919083, 0.03653800114989281, 0.04735400155186653, 0.05816999822854996, 0.06898599863052368, 0.0798019990324974, 0.09061799943447113, 0.10143399983644485, 0.11225000023841858]], 'valid_percent': 100.0, 'masked_pixels': 0.0, 'valid_pixels': 144.0, 'percentile_2': 0.00743480016477406, 'percentile_98': 0.1009246003627777}}}}
+{'type': 'Feature', 'geometry': {'type': 'Polygon', 'coordinates': [[[-95.0, 29.0], [-95.0, 33.0], [-104.0, 33.0], [-104.0, 29.0], [-95.0, 29.0]]]}, 'properties': {'statistics': {'b1': {'min': 0.0022499999031424522, 'max': 0.09562000632286072, 'mean': 0.025773402717378404, 'count': 144.0, 'sum': 3.7113699913024902, 'std': 0.01594486093363827, 'median': 0.026829998940229416, 'majority': 0.0088900001719594, 'minority': 0.0022499999031424522, 'unique': 140.0, 'histogram': [[41.0, 15.0, 34.0, 32.0, 13.0, 5.0, 1.0, 2.0, 0.0, 1.0], [0.0022499999031424522, 0.011587000451982021, 0.020924001932144165, 0.030261002480983734, 0.0395980030298233, 0.04893500357866287, 0.05827200412750244, 0.06760900467634201, 0.07694600522518158, 0.08628300577402115, 0.09562000632286072]], 'valid_percent': 100.0, 'masked_pixels': 0.0, 'valid_pixels': 144.0, 'percentile_2': 0.004088600133545697, 'percentile_98': 0.060209000483155105}}}}
+{'type': 'Feature', 'geometry': {'type': 'Polygon', 'coordinates': [[[-95.0, 29.0], [-95.0, 33.0], [-104.0, 33.0], [-104.0, 29.0], [-95.0, 29.0]]]}, 'properties': {'statistics': {'b1': {'min': 0.003220000071451068, 'max': 0.1088000014424324, 'mean': 0.034327291780047946, 'count': 144.0, 'sum': 4.943130016326904, 'std': 0.02475216958565321, 'median': 0.028024999424815178, 'majority': 0.00558000011369586, 'minority': 0.003220000071451068, 'unique': 140.0, 'histogram': [[41.0, 24.0, 17.0, 14.0, 17.0, 15.0, 6.0, 6.0, 3.0, 1.0], [0.003220000071451068, 0.013778000138700008, 0.02433600090444088, 0.03489400073885918, 0.04545200243592262, 0.05601000040769577, 0.06656800210475922, 0.07712600380182266, 0.08768399804830551, 0.09824199974536896, 0.1088000014424324]], 'valid_percent': 100.0, 'masked_pixels': 0.0, 'valid_pixels': 144.0, 'percentile_2': 0.005179200251586735, 'percentile_98': 0.09029680132865901}}}}
+{'type': 'Feature', 'geometry': {'type': 'Polygon', 'coordinates': [[[-95.0, 29.0], [-95.0, 33.0], [-104.0, 33.0], [-104.0, 29.0], [-95.0, 29.0]]]}, 'properties': {'statistics': {'b1': {'min': 0.0010900000343099236, 'max': 0.1356399953365326, 'mean': 0.03695340289009942, 'count': 144.0, 'sum': 5.321290016174316, 'std': 0.03426483412632796, 'median': 0.03116000071167946, 'majority': 0.0027699999045580626, 'minority': 0.0010900000343099236, 'unique': 143.0, 'histogram': [[60.0, 9.0, 17.0, 18.0, 15.0, 6.0, 6.0, 5.0, 6.0, 2.0], [0.0010900000343099236, 0.014544999226927757, 0.0279999990016222, 0.041454996913671494, 0.054909996688365936, 0.06836500018835068, 0.08181999623775482, 0.09527499973773956, 0.10872999578714371, 0.12218499928712845, 0.1356399953365326]], 'valid_percent': 100.0, 'masked_pixels': 0.0, 'valid_pixels': 144.0, 'percentile_2': 0.002195999966934323, 'percentile_98': 0.11718439951539038}}}}
+{'type': 'Feature', 'geometry': {'type': 'Polygon', 'coordinates': [[[-95.0, 29.0], [-95.0, 33.0], [-104.0, 33.0], [-104.0, 29.0], [-95.0, 29.0]]]}, 'properties': {'statistics': {'b1': {'min': 0.0026199999265372753, 'max': 0.10020999610424042, 'mean': 0.04122159878412882, 'count': 144.0, 'sum': 5.935910224914551, 'std': 0.023754701555130556, 'median': 0.03896000236272812, 'majority': 0.0294599998742342, 'minority': 0.0026199999265372753, 'unique': 143.0, 'histogram': [[16.0, 27.0, 11.0, 23.0, 22.0, 10.0, 13.0, 15.0, 5.0, 2.0], [0.0026199999265372753, 0.012378999963402748, 0.022137999534606934, 0.03189699724316597, 0.041655998677015305, 0.05141499638557434, 0.061173997819423676, 0.07093299925327301, 0.08069199323654175, 0.09045099467039108, 0.10020999610424042]], 'valid_percent': 100.0, 'masked_pixels': 0.0, 'valid_pixels': 144.0, 'percentile_2': 0.005606800033710896, 'percentile_98': 0.0855128002166748}}}}
+{'type': 'Feature', 'geometry': {'type': 'Polygon', 'coordinates': [[[-95.0, 29.0], [-95.0, 33.0], [-104.0, 33.0], [-104.0, 29.0], [-95.0, 29.0]]]}, 'properties': {'statistics': {'b1': {'min': 0.0009899999713525176, 'max': 0.09062999486923218, 'mean': 0.03776631752649943, 'count': 144.0, 'sum': 5.438349723815918, 'std': 0.02433310845672775, 'median': 0.04198000207543373, 'majority': 0.07426999509334564, 'minority': 0.0009899999713525176, 'unique': 143.0, 'histogram': [[31.0, 17.0, 5.0, 10.0, 16.0, 29.0, 9.0, 15.0, 11.0, 1.0], [0.0009899999713525176, 0.009953999891877174, 0.018917998299002647, 0.02788199856877327, 0.03684599697589874, 0.045809999108314514, 0.05477399751543999, 0.06373799592256546, 0.07270199805498123, 0.0816659927368164, 0.09062999486923218]], 'valid_percent': 100.0, 'masked_pixels': 0.0, 'valid_pixels': 144.0, 'percentile_2': 0.0022817999543622135, 'percentile_98': 0.07872560366988182}}}}
+{'type': 'Feature', 'geometry': {'type': 'Polygon', 'coordinates': [[[-95.0, 29.0], [-95.0, 33.0], [-104.0, 33.0], [-104.0, 29.0], [-95.0, 29.0]]]}, 'properties': {'statistics': {'b1': {'min': 0.001029999926686287, 'max': 0.08705000579357147, 'mean': 0.036414653062820435, 'count': 144.0, 'sum': 5.243710041046143, 'std': 0.01981269165295118, 'median': 0.037505000829696655, 'majority': 0.036490000784397125, 'minority': 0.001029999926686287, 'unique': 142.0, 'histogram': [[14.0, 18.0, 16.0, 20.0, 26.0, 19.0, 14.0, 10.0, 5.0, 2.0], [0.001029999926686287, 0.00963200069963932, 0.018234001472592354, 0.026836002245545387, 0.03543800115585327, 0.044040001928806305, 0.05264200270175934, 0.06124400347471237, 0.0698460042476654, 0.07844800502061844, 0.08705000579357147]], 'valid_percent': 100.0, 'masked_pixels': 0.0, 'valid_pixels': 144.0, 'percentile_2': 0.0024290000880137085, 'percentile_98': 0.07265299931168553}}}}
+{'type': 'Feature', 'geometry': {'type': 'Polygon', 'coordinates': [[[-95.0, 29.0], [-95.0, 33.0], [-104.0, 33.0], [-104.0, 29.0], [-95.0, 29.0]]]}, 'properties': {'statistics': {'b1': {'min': 0.003289999905973673, 'max': 0.06038999930024147, 'mean': 0.028210136625501845, 'count': 144.0, 'sum': 4.062259674072266, 'std': 0.012668439974693649, 'median': 0.02775999903678894, 'majority': 0.021560000255703926, 'minority': 0.003289999905973673, 'unique': 140.0, 'histogram': [[4.0, 19.0, 24.0, 21.0, 23.0, 16.0, 18.0, 9.0, 7.0, 3.0], [0.003289999905973673, 0.008999999612569809, 0.014709999784827232, 0.020419999957084656, 0.02613000012934208, 0.0318400003015995, 0.03754999861121178, 0.04326000064611435, 0.048969998955726624, 0.054680000990629196, 0.06038999930024147]], 'valid_percent': 100.0, 'masked_pixels': 0.0, 'valid_pixels': 144.0, 'percentile_2': 0.0060774000082165, 'percentile_98': 0.05282359905540936}}}}
+{'type': 'Feature', 'geometry': {'type': 'Polygon', 'coordinates': [[[-95.0, 29.0], [-95.0, 33.0], [-104.0, 33.0], [-104.0, 29.0], [-95.0, 29.0]]]}, 'properties': {'statistics': {'b1': {'min': 0.0034100001212209463, 'max': 0.06472000479698181, 'mean': 0.027916249301698472, 'count': 144.0, 'sum': 4.01993989944458, 'std': 0.012651072375580679, 'median': 0.025550000369548798, 'majority': 0.022619999945163727, 'minority': 0.0034100001212209463, 'unique': 142.0, 'histogram': [[7.0, 13.0, 35.0, 26.0, 18.0, 16.0, 16.0, 9.0, 3.0, 1.0], [0.0034100001212209463, 0.009541000239551067, 0.015672001987695694, 0.021803000941872597, 0.02793400175869465, 0.03406500071287155, 0.040196001529693604, 0.046327002346515656, 0.05245800316333771, 0.05858900398015976, 0.06472000479698181]], 'valid_percent': 100.0, 'masked_pixels': 0.0, 'valid_pixels': 144.0, 'percentile_2': 0.004150400133803487, 'percentile_98': 0.05379179857671259}}}}
+{'type': 'Feature', 'geometry': {'type': 'Polygon', 'coordinates': [[[-95.0, 29.0], [-95.0, 33.0], [-104.0, 33.0], [-104.0, 29.0], [-95.0, 29.0]]]}, 'properties': {'statistics': {'b1': {'min': 0.0034600000362843275, 'max': 0.05894999951124191, 'mean': 0.024461527665456135, 'count': 144.0, 'sum': 3.5224599838256836, 'std': 0.011800634595548873, 'median': 0.02166999876499176, 'majority': 0.019280001521110535, 'minority': 0.0034600000362843275, 'unique': 141.0, 'histogram': [[8.0, 17.0, 39.0, 26.0, 14.0, 10.0, 17.0, 9.0, 1.0, 3.0], [0.0034600000362843275, 0.009008999913930893, 0.014557999558746815, 0.020106999203562737, 0.025655999779701233, 0.03120500035583973, 0.036754000931978226, 0.04230299964547157, 0.04785199835896492, 0.053401000797748566, 0.05894999951124191]], 'valid_percent': 100.0, 'masked_pixels': 0.0, 'valid_pixels': 144.0, 'percentile_2': 0.00484319981187582, 'percentile_98': 0.05003140129148954}}}}
+{'type': 'Feature', 'geometry': {'type': 'Polygon', 'coordinates': [[[-95.0, 29.0], [-95.0, 33.0], [-104.0, 33.0], [-104.0, 29.0], [-95.0, 29.0]]]}, 'properties': {'statistics': {'b1': {'min': 0.0005899999523535371, 'max': 0.07569000124931335, 'mean': 0.032467779186036855, 'count': 144.0, 'sum': 4.675360202789307, 'std': 0.023005044061699398, 'median': 0.035669997334480286, 'majority': 0.002410000190138817, 'minority': 0.0005899999523535371, 'unique': 142.0, 'histogram': [[39.0, 13.0, 5.0, 8.0, 13.0, 16.0, 18.0, 9.0, 16.0, 7.0], [0.0005899999523535371, 0.008100000210106373, 0.015610000118613243, 0.023120000958442688, 0.030629999935626984, 0.03813999891281128, 0.04565000161528587, 0.05316000059247017, 0.060669999569654465, 0.06818000227212906, 0.07569000124931335]], 'valid_percent': 100.0, 'masked_pixels': 0.0, 'valid_pixels': 144.0, 'percentile_2': 0.0015968000493012367, 'percentile_98': 0.06969039946794506}}}}
+{'type': 'Feature', 'geometry': {'type': 'Polygon', 'coordinates': [[[-95.0, 29.0], [-95.0, 33.0], [-104.0, 33.0], [-104.0, 29.0], [-95.0, 29.0]]]}, 'properties': {'statistics': {'b1': {'min': 0.001069999998435378, 'max': 0.0826600044965744, 'mean': 0.043535970979266696, 'count': 144.0, 'sum': 6.269179821014404, 'std': 0.024172022908763847, 'median': 0.05163499712944031, 'majority': 0.001069999998435378, 'minority': 0.001069999998435378, 'unique': 144.0, 'histogram': [[20.0, 13.0, 11.0, 7.0, 8.0, 10.0, 22.0, 22.0, 25.0, 6.0], [0.001069999998435378, 0.00922900065779686, 0.017388001084327698, 0.025547001510858536, 0.033706001937389374, 0.04186500236392021, 0.05002400279045105, 0.05818300321698189, 0.06634200364351273, 0.07450100034475327, 0.0826600044965744]], 'valid_percent': 100.0, 'masked_pixels': 0.0, 'valid_pixels': 144.0, 'percentile_2': 0.002916400011163205, 'percentile_98': 0.07625219941139218}}}}
+{'type': 'Feature', 'geometry': {'type': 'Polygon', 'coordinates': [[[-95.0, 29.0], [-95.0, 33.0], [-104.0, 33.0], [-104.0, 29.0], [-95.0, 29.0]]]}, 'properties': {'statistics': {'b1': {'min': 0.002469999948516488, 'max': 0.05834000185132027, 'mean': 0.022202223539352417, 'count': 144.0, 'sum': 3.197120189666748, 'std': 0.011729098623150396, 'median': 0.022830000147223473, 'majority': 0.0059899999760091305, 'minority': 0.002469999948516488, 'unique': 140.0, 'histogram': [[15.0, 36.0, 11.0, 22.0, 26.0, 14.0, 14.0, 2.0, 3.0, 1.0], [0.002469999948516488, 0.008057000115513802, 0.013644000515341759, 0.019231000915169716, 0.024818001314997673, 0.03040500171482563, 0.03599200025200844, 0.041579000651836395, 0.04716600105166435, 0.05275300145149231, 0.05834000185132027]], 'valid_percent': 100.0, 'masked_pixels': 0.0, 'valid_pixels': 144.0, 'percentile_2': 0.004908199869096279, 'percentile_98': 0.04769879922270773}}}}
+{'type': 'Feature', 'geometry': {'type': 'Polygon', 'coordinates': [[[-95.0, 29.0], [-95.0, 33.0], [-104.0, 33.0], [-104.0, 29.0], [-95.0, 29.0]]]}, 'properties': {'statistics': {'b1': {'min': 0.0019500000635161996, 'max': 0.03334999829530716, 'mean': 0.015819304519229464, 'count': 144.0, 'sum': 2.277979850769043, 'std': 0.006657391615849966, 'median': 0.015769999474287033, 'majority': 0.013500000350177288, 'minority': 0.0019500000635161996, 'unique': 140.0, 'histogram': [[8.0, 16.0, 14.0, 20.0, 32.0, 22.0, 14.0, 11.0, 5.0, 2.0], [0.0019500000635161996, 0.005090000107884407, 0.008229999803006649, 0.011369999498128891, 0.014509999193251133, 0.017649998888373375, 0.02078999951481819, 0.02392999827861786, 0.027069998905062675, 0.030209997668862343, 0.03334999829530716]], 'valid_percent': 100.0, 'masked_pixels': 0.0, 'valid_pixels': 144.0, 'percentile_2': 0.0035329999262467024, 'percentile_98': 0.029592400155961512}}}}
+{'type': 'Feature', 'geometry': {'type': 'Polygon', 'coordinates': [[[-95.0, 29.0], [-95.0, 33.0], [-104.0, 33.0], [-104.0, 29.0], [-95.0, 29.0]]]}, 'properties': {'statistics': {'b1': {'min': 0.0017300000181421638, 'max': 0.053540002554655075, 'mean': 0.012871319221125709, 'count': 144.0, 'sum': 1.853469967842102, 'std': 0.008577541644672329, 'median': 0.010830000042915344, 'majority': 0.0049600000493228436, 'minority': 0.0017300000181421638, 'unique': 140.0, 'histogram': [[35.0, 48.0, 33.0, 15.0, 4.0, 3.0, 2.0, 1.0, 2.0, 1.0], [0.0017300000181421638, 0.006911000236868858, 0.012092000804841518, 0.01727300137281418, 0.022454001009464264, 0.02763500064611435, 0.032816000282764435, 0.03799700364470482, 0.043178003281354904, 0.04835900291800499, 0.053540002554655075]], 'valid_percent': 100.0, 'masked_pixels': 0.0, 'valid_pixels': 144.0, 'percentile_2': 0.003402999867685139, 'percentile_98': 0.042117201462387996}}}}
+{'type': 'Feature', 'geometry': {'type': 'Polygon', 'coordinates': [[[-95.0, 29.0], [-95.0, 33.0], [-104.0, 33.0], [-104.0, 29.0], [-95.0, 29.0]]]}, 'properties': {'statistics': {'b1': {'min': 0.0011699999449774623, 'max': 0.09276000410318375, 'mean': 0.018143471744325426, 'count': 144.0, 'sum': 2.6126599311828613, 'std': 0.015530311815402473, 'median': 0.013129999861121178, 'majority': 0.005499999970197678, 'minority': 0.0011699999449774623, 'unique': 140.0, 'histogram': [[51.0, 45.0, 21.0, 17.0, 4.0, 1.0, 2.0, 0.0, 1.0, 2.0], [0.0011699999449774623, 0.010329000651836395, 0.019488001242280006, 0.028647001832723618, 0.03780600056052208, 0.04696500301361084, 0.0561240017414093, 0.06528300046920776, 0.07444200664758682, 0.08360100537538528, 0.09276000410318375]], 'valid_percent': 100.0, 'masked_pixels': 0.0, 'valid_pixels': 144.0, 'percentile_2': 0.0020041999500244856, 'percentile_98': 0.06294620022177676}}}}
+{'type': 'Feature', 'geometry': {'type': 'Polygon', 'coordinates': [[[-95.0, 29.0], [-95.0, 33.0], [-104.0, 33.0], [-104.0, 29.0], [-95.0, 29.0]]]}, 'properties': {'statistics': {'b1': {'min': 0.000800000037997961, 'max': 0.09199000149965286, 'mean': 0.025938401619593304, 'count': 144.0, 'sum': 3.7351298332214355, 'std': 0.021107230191376187, 'median': 0.022739998996257782, 'majority': 0.004459999967366457, 'minority': 0.000800000037997961, 'unique': 141.0, 'histogram': [[44.0, 20.0, 18.0, 29.0, 12.0, 8.0, 4.0, 1.0, 4.0, 4.0], [0.000800000037997961, 0.00991899985820055, 0.019038001075387, 0.028157001361250877, 0.037275999784469604, 0.04639500007033348, 0.05551400035619736, 0.06463300436735153, 0.07375200092792511, 0.08287100493907928, 0.09199000149965286]], 'valid_percent': 100.0, 'masked_pixels': 0.0, 'valid_pixels': 144.0, 'percentile_2': 0.002035599995870143, 'percentile_98': 0.08392360299825666}}}}
+{'type': 'Feature', 'geometry': {'type': 'Polygon', 'coordinates': [[[-95.0, 29.0], [-95.0, 33.0], [-104.0, 33.0], [-104.0, 29.0], [-95.0, 29.0]]]}, 'properties': {'statistics': {'b1': {'min': 0.000750000006519258, 'max': 0.10034999996423721, 'mean': 0.026215208901299372, 'count': 144.0, 'sum': 3.7749900817871094, 'std': 0.02698276925169348, 'median': 0.01481500081717968, 'majority': 0.004309999756515026, 'minority': 0.000750000006519258, 'unique': 141.0, 'histogram': [[59.0, 27.0, 15.0, 12.0, 2.0, 6.0, 6.0, 5.0, 9.0, 3.0], [0.000750000006519258, 0.010710000060498714, 0.020670000463724136, 0.030629999935626984, 0.04058999940752983, 0.05054999887943268, 0.060509998351335526, 0.07046999782323837, 0.08043000102043152, 0.09038999676704407, 0.10034999996423721]], 'valid_percent': 100.0, 'masked_pixels': 0.0, 'valid_pixels': 144.0, 'percentile_2': 0.0015843999618664383, 'percentile_98': 0.09049039393663402}}}}
+{'type': 'Feature', 'geometry': {'type': 'Polygon', 'coordinates': [[[-95.0, 29.0], [-95.0, 33.0], [-104.0, 33.0], [-104.0, 29.0], [-95.0, 29.0]]]}, 'properties': {'statistics': {'b1': {'min': 0.0006399999838322401, 'max': 0.0828000009059906, 'mean': 0.033941043747795954, 'count': 144.0, 'sum': 4.887510299682617, 'std': 0.027965032776281634, 'median': 0.031165000051259995, 'majority': 0.003719999920576811, 'minority': 0.0006399999838322401, 'unique': 143.0, 'histogram': [[54.0, 8.0, 5.0, 6.0, 3.0, 5.0, 23.0, 17.0, 14.0, 9.0], [0.0006399999838322401, 0.008856000378727913, 0.017071999609470367, 0.02528800070285797, 0.033504001796245575, 0.04171999916434288, 0.049936000257730484, 0.05815200135111809, 0.0663679987192154, 0.074583999812603, 0.0828000009059906]], 'valid_percent': 100.0, 'masked_pixels': 0.0, 'valid_pixels': 144.0, 'percentile_2': 0.0012454000033903867, 'percentile_98': 0.0788980036973953}}}}
+{'type': 'Feature', 'geometry': {'type': 'Polygon', 'coordinates': [[[-95.0, 29.0], [-95.0, 33.0], [-104.0, 33.0], [-104.0, 29.0], [-95.0, 29.0]]]}, 'properties': {'statistics': {'b1': {'min': 0.0006399999838322401, 'max': 0.06011999770998955, 'mean': 0.0298623608218299, 'count': 144.0, 'sum': 4.300179958343506, 'std': 0.017955985508292582, 'median': 0.03508000075817108, 'majority': 0.003229999914765358, 'minority': 0.0006399999838322401, 'unique': 141.0, 'histogram': [[29.0, 10.0, 7.0, 6.0, 12.0, 11.0, 27.0, 20.0, 13.0, 9.0], [0.0006399999838322401, 0.006587999872863293, 0.012535999529063702, 0.018484000116586685, 0.024431999772787094, 0.030379999428987503, 0.03632799908518791, 0.04227599874138832, 0.04822399839758873, 0.05417199805378914, 0.06011999770998955]], 'valid_percent': 100.0, 'masked_pixels': 0.0, 'valid_pixels': 144.0, 'percentile_2': 0.0015168000827543437, 'percentile_98': 0.05778899781405923}}}}
+{'type': 'Feature', 'geometry': {'type': 'Polygon', 'coordinates': [[[-95.0, 29.0], [-95.0, 33.0], [-104.0, 33.0], [-104.0, 29.0], [-95.0, 29.0]]]}, 'properties': {'statistics': {'b1': {'min': 0.0005099999834783375, 'max': 0.05245999991893768, 'mean': 0.02360833353466458, 'count': 144.0, 'sum': 3.399600028991699, 'std': 0.014349119703565791, 'median': 0.025894999504089355, 'majority': 0.0005099999834783375, 'minority': 0.0005099999834783375, 'unique': 144.0, 'histogram': [[30.0, 9.0, 5.0, 12.0, 19.0, 25.0, 19.0, 9.0, 11.0, 5.0], [0.0005099999834783375, 0.005704999901354313, 0.010900000110268593, 0.016094999387860298, 0.021290000528097153, 0.026484999805688858, 0.03167999908328056, 0.03687499836087227, 0.04207000136375427, 0.04726500064134598, 0.05245999991893768]], 'valid_percent': 100.0, 'masked_pixels': 0.0, 'valid_pixels': 144.0, 'percentile_2': 0.00115680001094006, 'percentile_98': 0.04872760154306886}}}}
+{'type': 'Feature', 'geometry': {'type': 'Polygon', 'coordinates': [[[-95.0, 29.0], [-95.0, 33.0], [-104.0, 33.0], [-104.0, 29.0], [-95.0, 29.0]]]}, 'properties': {'statistics': {'b1': {'min': 0.00044999999227002263, 'max': 0.06350000202655792, 'mean': 0.02868180473645528, 'count': 144.0, 'sum': 4.1301798820495605, 'std': 0.019799423845692627, 'median': 0.03423000127077103, 'majority': 0.036890000104904175, 'minority': 0.00044999999227002263, 'unique': 142.0, 'histogram': [[38.0, 10.0, 5.0, 6.0, 12.0, 11.0, 26.0, 14.0, 14.0, 8.0], [0.00044999999227002263, 0.006754999980330467, 0.013060000725090504, 0.01936500146985054, 0.025670001283288002, 0.031975001096725464, 0.038280002772808075, 0.04458500072360039, 0.050890002399683, 0.05719500035047531, 0.06350000202655792]], 'valid_percent': 100.0, 'masked_pixels': 0.0, 'valid_pixels': 144.0, 'percentile_2': 0.0009596000064630061, 'percentile_98': 0.059223800003528594}}}}
+{'type': 'Feature', 'geometry': {'type': 'Polygon', 'coordinates': [[[-95.0, 29.0], [-95.0, 33.0], [-104.0, 33.0], [-104.0, 29.0], [-95.0, 29.0]]]}, 'properties': {'statistics': {'b1': {'min': 0.0003499999875202775, 'max': 0.06820999830961227, 'mean': 0.021534514096048143, 'count': 144.0, 'sum': 3.1009700298309326, 'std': 0.021654428199535794, 'median': 0.01027500070631504, 'majority': 0.001289999927394092, 'minority': 0.0003499999875202775, 'unique': 138.0, 'histogram': [[62.0, 15.0, 9.0, 10.0, 7.0, 8.0, 7.0, 7.0, 9.0, 10.0], [0.0003499999875202775, 0.007135999854654074, 0.013921999372541904, 0.020708000287413597, 0.027493998408317566, 0.034279998391866684, 0.0410659983754158, 0.04785199835896492, 0.05463799834251404, 0.061423998326063156, 0.06820999830961227]], 'valid_percent': 100.0, 'masked_pixels': 0.0, 'valid_pixels': 144.0, 'percentile_2': 0.0008035999932326376, 'percentile_98': 0.06674920171499252}}}}
+{'type': 'Feature', 'geometry': {'type': 'Polygon', 'coordinates': [[[-95.0, 29.0], [-95.0, 33.0], [-104.0, 33.0], [-104.0, 29.0], [-95.0, 29.0]]]}, 'properties': {'statistics': {'b1': {'min': 0.0005099999834783375, 'max': 0.09895999729633331, 'mean': 0.02412215206358168, 'count': 144.0, 'sum': 3.4735898971557617, 'std': 0.020670032510214934, 'median': 0.016529999673366547, 'majority': 0.0005099999834783375, 'minority': 0.0005099999834783375, 'unique': 144.0, 'histogram': [[54.0, 27.0, 14.0, 10.0, 19.0, 12.0, 6.0, 1.0, 0.0, 1.0], [0.0005099999834783375, 0.010354999452829361, 0.02019999921321869, 0.030044998973608017, 0.039889998733997345, 0.04973499849438667, 0.059579998254776, 0.06942500174045563, 0.07926999777555466, 0.08911500126123428, 0.09895999729633331]], 'valid_percent': 100.0, 'masked_pixels': 0.0, 'valid_pixels': 144.0, 'percentile_2': 0.0009122000134084373, 'percentile_98': 0.06876980185508727}}}}
+{'type': 'Feature', 'geometry': {'type': 'Polygon', 'coordinates': [[[-95.0, 29.0], [-95.0, 33.0], [-104.0, 33.0], [-104.0, 29.0], [-95.0, 29.0]]]}, 'properties': {'statistics': {'b1': {'min': 0.0018300000810995698, 'max': 0.10617999732494354, 'mean': 0.05160611205630832, 'count': 144.0, 'sum': 7.431280136108398, 'std': 0.03203389628587658, 'median': 0.05623500049114227, 'majority': 0.009850000031292439, 'minority': 0.0018300000810995698, 'unique': 143.0, 'histogram': [[28.0, 15.0, 8.0, 7.0, 12.0, 12.0, 16.0, 19.0, 21.0, 6.0], [0.0018300000810995698, 0.012264999561011791, 0.022699998691678047, 0.03313500061631203, 0.04357000067830086, 0.05400499701499939, 0.06443999707698822, 0.07487499713897705, 0.08530999720096588, 0.09574499726295471, 0.10617999732494354]], 'valid_percent': 100.0, 'masked_pixels': 0.0, 'valid_pixels': 144.0, 'percentile_2': 0.003757800171151757, 'percentile_98': 0.10087680146098137}}}}
+{'type': 'Feature', 'geometry': {'type': 'Polygon', 'coordinates': [[[-95.0, 29.0], [-95.0, 33.0], [-104.0, 33.0], [-104.0, 29.0], [-95.0, 29.0]]]}, 'properties': {'statistics': {'b1': {'min': 0.002369999885559082, 'max': 0.07151000201702118, 'mean': 0.016471528344684176, 'count': 144.0, 'sum': 2.3719000816345215, 'std': 0.009541546583855915, 'median': 0.014949999749660492, 'majority': 0.006590000353753567, 'minority': 0.002369999885559082, 'unique': 141.0, 'histogram': [[31.0, 54.0, 36.0, 8.0, 10.0, 4.0, 0.0, 0.0, 0.0, 1.0], [0.002369999885559082, 0.009283999912440777, 0.01619799993932247, 0.02311200089752674, 0.03002599999308586, 0.03694000095129013, 0.0438540019094944, 0.05076800286769867, 0.05768200010061264, 0.06459600478410721, 0.07151000201702118]], 'valid_percent': 100.0, 'masked_pixels': 0.0, 'valid_pixels': 144.0, 'percentile_2': 0.003849800024181604, 'percentile_98': 0.03991279974579808}}}}
+{'type': 'Feature', 'geometry': {'type': 'Polygon', 'coordinates': [[[-95.0, 29.0], [-95.0, 33.0], [-104.0, 33.0], [-104.0, 29.0], [-95.0, 29.0]]]}, 'properties': {'statistics': {'b1': {'min': 0.006169999949634075, 'max': 0.1248600035905838, 'mean': 0.04798742797639635, 'count': 144.0, 'sum': 6.910189628601074, 'std': 0.02285128843480237, 'median': 0.04802499711513519, 'majority': 0.051169998943805695, 'minority': 0.006169999949634075, 'unique': 143.0, 'histogram': [[16.0, 20.0, 14.0, 40.0, 25.0, 17.0, 4.0, 5.0, 2.0, 1.0], [0.006169999949634075, 0.018039001151919365, 0.02990800142288208, 0.041776999831199646, 0.05364600196480751, 0.06551500409841537, 0.07738400250673294, 0.0892530009150505, 0.10112199932336807, 0.11299100518226624, 0.1248600035905838]], 'valid_percent': 100.0, 'masked_pixels': 0.0, 'valid_pixels': 144.0, 'percentile_2': 0.007187200244516134, 'percentile_98': 0.09761440321803076}}}}
+{'type': 'Feature', 'geometry': {'type': 'Polygon', 'coordinates': [[[-95.0, 29.0], [-95.0, 33.0], [-104.0, 33.0], [-104.0, 29.0], [-95.0, 29.0]]]}, 'properties': {'statistics': {'b1': {'min': 0.0024999999441206455, 'max': 0.12665000557899475, 'mean': 0.05014666583802965, 'count': 144.0, 'sum': 7.2211198806762695, 'std': 0.035589100985650435, 'median': 0.04425499588251114, 'majority': 0.04408999904990196, 'minority': 0.0024999999441206455, 'unique': 141.0, 'histogram': [[36.0, 14.0, 13.0, 18.0, 15.0, 8.0, 10.0, 15.0, 12.0, 3.0], [0.0024999999441206455, 0.014915000647306442, 0.027330001816153526, 0.03974500298500061, 0.052160002291202545, 0.06457500159740448, 0.07699000090360641, 0.08940500020980835, 0.10182000696659088, 0.11423500627279282, 0.12665000557899475]], 'valid_percent': 100.0, 'masked_pixels': 0.0, 'valid_pixels': 144.0, 'percentile_2': 0.004100200198590755, 'percentile_98': 0.11446159914135927}}}}
+{'type': 'Feature', 'geometry': {'type': 'Polygon', 'coordinates': [[[-95.0, 29.0], [-95.0, 33.0], [-104.0, 33.0], [-104.0, 29.0], [-95.0, 29.0]]]}, 'properties': {'statistics': {'b1': {'min': 0.001019999966956675, 'max': 0.11183999478816986, 'mean': 0.04936291774113973, 'count': 144.0, 'sum': 7.108260154724121, 'std': 0.02755438749117158, 'median': 0.053314998745918274, 'majority': 0.001019999966956675, 'minority': 0.001019999966956675, 'unique': 144.0, 'histogram': [[20.0, 11.0, 14.0, 16.0, 19.0, 31.0, 9.0, 11.0, 11.0, 2.0], [0.001019999966956675, 0.01210199948400259, 0.023183999583125114, 0.034265998750925064, 0.045347996056079865, 0.05642999708652496, 0.06751199811697006, 0.07859399914741516, 0.08967599272727966, 0.10075799375772476, 0.11183999478816986]], 'valid_percent': 100.0, 'masked_pixels': 0.0, 'valid_pixels': 144.0, 'percentile_2': 0.002303400095552206, 'percentile_98': 0.09827120184898376}}}}
+{'type': 'Feature', 'geometry': {'type': 'Polygon', 'coordinates': [[[-95.0, 29.0], [-95.0, 33.0], [-104.0, 33.0], [-104.0, 29.0], [-95.0, 29.0]]]}, 'properties': {'statistics': {'b1': {'min': 0.0030399998649954796, 'max': 0.10005000233650208, 'mean': 0.04663847221268548, 'count': 144.0, 'sum': 6.715939998626709, 'std': 0.02281030026461982, 'median': 0.051009997725486755, 'majority': 0.06070999801158905, 'minority': 0.0030399998649954796, 'unique': 143.0, 'histogram': [[11.0, 20.0, 13.0, 16.0, 14.0, 27.0, 22.0, 11.0, 9.0, 1.0], [0.0030399998649954796, 0.012741000391542912, 0.02244199998676777, 0.0321430005133152, 0.041843999177217484, 0.051545001566410065, 0.06124600023031235, 0.07094699889421463, 0.08064800500869751, 0.09034900367259979, 0.10005000233650208]], 'valid_percent': 100.0, 'masked_pixels': 0.0, 'valid_pixels': 144.0, 'percentile_2': 0.004834999945014715, 'percentile_98': 0.08613879933953285}}}}
+{'type': 'Feature', 'geometry': {'type': 'Polygon', 'coordinates': [[[-95.0, 29.0], [-95.0, 33.0], [-104.0, 33.0], [-104.0, 29.0], [-95.0, 29.0]]]}, 'properties': {'statistics': {'b1': {'min': 0.003539999946951866, 'max': 0.06630000472068787, 'mean': 0.03604437245262994, 'count': 144.0, 'sum': 5.190389633178711, 'std': 0.015380890629253019, 'median': 0.03953000158071518, 'majority': 0.05186999961733818, 'minority': 0.003539999946951866, 'unique': 143.0, 'histogram': [[7.0, 11.0, 22.0, 7.0, 13.0, 20.0, 23.0, 27.0, 9.0, 5.0], [0.003539999946951866, 0.009816000238060951, 0.016092000529170036, 0.02236800082027912, 0.028644001111388206, 0.03492000326514244, 0.041196003556251526, 0.04747200384736061, 0.053748004138469696, 0.06002400442957878, 0.06630000472068787]], 'valid_percent': 100.0, 'masked_pixels': 0.0, 'valid_pixels': 144.0, 'percentile_2': 0.005950199970975518, 'percentile_98': 0.06287239894270893}}}}
+{'type': 'Feature', 'geometry': {'type': 'Polygon', 'coordinates': [[[-95.0, 29.0], [-95.0, 33.0], [-104.0, 33.0], [-104.0, 29.0], [-95.0, 29.0]]]}, 'properties': {'statistics': {'b1': {'min': 0.002630000002682209, 'max': 0.03600999712944031, 'mean': 0.018233262830310397, 'count': 144.0, 'sum': 2.6255898475646973, 'std': 0.006711239182570007, 'median': 0.01903500035405159, 'majority': 0.00914000067859888, 'minority': 0.002630000002682209, 'unique': 140.0, 'histogram': [[4.0, 13.0, 17.0, 15.0, 26.0, 29.0, 21.0, 16.0, 1.0, 2.0], [0.002630000002682209, 0.005967999808490276, 0.009305999614298344, 0.012643999420106411, 0.015981998294591904, 0.01931999810039997, 0.02265799790620804, 0.025995997712016106, 0.029333997517824173, 0.03267199918627739, 0.03600999712944031]], 'valid_percent': 100.0, 'masked_pixels': 0.0, 'valid_pixels': 144.0, 'percentile_2': 0.00547880018595606, 'percentile_98': 0.028869600333273387}}}}
+{'type': 'Feature', 'geometry': {'type': 'Polygon', 'coordinates': [[[-95.0, 29.0], [-95.0, 33.0], [-104.0, 33.0], [-104.0, 29.0], [-95.0, 29.0]]]}, 'properties': {'statistics': {'b1': {'min': 0.0026099998503923416, 'max': 0.034279998391866684, 'mean': 0.01869847211572859, 'count': 144.0, 'sum': 2.692579984664917, 'std': 0.006458098263735763, 'median': 0.019269999116659164, 'majority': 0.010180000215768814, 'minority': 0.0026099998503923416, 'unique': 136.0, 'histogram': [[3.0, 5.0, 13.0, 25.0, 20.0, 30.0, 23.0, 15.0, 7.0, 3.0], [0.0026099998503923416, 0.005776999518275261, 0.00894399918615818, 0.012110999785363674, 0.015277999453246593, 0.018445000052452087, 0.021611999720335007, 0.024778999388217926, 0.027945999056100845, 0.031112998723983765, 0.034279998391866684]], 'valid_percent': 100.0, 'masked_pixels': 0.0, 'valid_pixels': 144.0, 'percentile_2': 0.00559779992327094, 'percentile_98': 0.030397601313889015}}}}
+{'type': 'Feature', 'geometry': {'type': 'Polygon', 'coordinates': [[[-95.0, 29.0], [-95.0, 33.0], [-104.0, 33.0], [-104.0, 29.0], [-95.0, 29.0]]]}, 'properties': {'statistics': {'b1': {'min': 0.002579999854788184, 'max': 0.03281000256538391, 'mean': 0.016673680808809068, 'count': 144.0, 'sum': 2.401010036468506, 'std': 0.005632423154747148, 'median': 0.016174999997019768, 'majority': 0.013120000250637531, 'minority': 0.002579999854788184, 'unique': 142.0, 'histogram': [[3.0, 7.0, 10.0, 38.0, 27.0, 23.0, 16.0, 15.0, 3.0, 2.0], [0.002579999854788184, 0.005603000055998564, 0.0086260000243783, 0.011649000458419323, 0.014672000892460346, 0.017695000395178795, 0.020718000829219818, 0.02374100126326084, 0.026764001697301865, 0.029787002131342888, 0.03281000256538391]], 'valid_percent': 100.0, 'masked_pixels': 0.0, 'valid_pixels': 144.0, 'percentile_2': 0.0053015998005867, 'percentile_98': 0.02809419993311166}}}}
+{'type': 'Feature', 'geometry': {'type': 'Polygon', 'coordinates': [[[-95.0, 29.0], [-95.0, 33.0], [-104.0, 33.0], [-104.0, 29.0], [-95.0, 29.0]]]}, 'properties': {'statistics': {'b1': {'min': 0.0009399999980814755, 'max': 0.06468000262975693, 'mean': 0.027205624514155917, 'count': 144.0, 'sum': 3.917609930038452, 'std': 0.0177905158557085, 'median': 0.03164000064134598, 'majority': 0.004600000102072954, 'minority': 0.0009399999980814755, 'unique': 141.0, 'histogram': [[38.0, 9.0, 5.0, 11.0, 15.0, 27.0, 12.0, 15.0, 11.0, 1.0], [0.0009399999980814755, 0.007314000278711319, 0.013688000850379467, 0.020062001422047615, 0.02643600106239319, 0.03281000256538391, 0.039184000343084335, 0.04555800184607506, 0.05193200334906578, 0.058306001126766205, 0.06468000262975693]], 'valid_percent': 100.0, 'masked_pixels': 0.0, 'valid_pixels': 144.0, 'percentile_2': 0.00226300016278401, 'percentile_98': 0.05513160094618795}}}}
+{'type': 'Feature', 'geometry': {'type': 'Polygon', 'coordinates': [[[-95.0, 29.0], [-95.0, 33.0], [-104.0, 33.0], [-104.0, 29.0], [-95.0, 29.0]]]}, 'properties': {'statistics': {'b1': {'min': 0.002319999970495701, 'max': 0.0853700041770935, 'mean': 0.041119373506969877, 'count': 144.0, 'sum': 5.921189785003662, 'std': 0.0225071651532353, 'median': 0.044234998524188995, 'majority': 0.03156999871134758, 'minority': 0.002319999970495701, 'unique': 141.0, 'histogram': [[14.0, 25.0, 8.0, 10.0, 13.0, 25.0, 17.0, 14.0, 11.0, 7.0], [0.002319999970495701, 0.010625000111758709, 0.01893000118434429, 0.0272350013256073, 0.03554000332951546, 0.043845001608133316, 0.05215000361204147, 0.06045500189065933, 0.06876000016927719, 0.07706500589847565, 0.0853700041770935]], 'valid_percent': 100.0, 'masked_pixels': 0.0, 'valid_pixels': 144.0, 'percentile_2': 0.004549200111068785, 'percentile_98': 0.08105359867215153}}}}
+{'type': 'Feature', 'geometry': {'type': 'Polygon', 'coordinates': [[[-95.0, 29.0], [-95.0, 33.0], [-104.0, 33.0], [-104.0, 29.0], [-95.0, 29.0]]]}, 'properties': {'statistics': {'b1': {'min': 0.0019299999112263322, 'max': 0.10966000705957413, 'mean': 0.05281763606601291, 'count': 144.0, 'sum': 7.605739593505859, 'std': 0.0337227422807641, 'median': 0.05963499844074249, 'majority': 0.05588999763131142, 'minority': 0.0019299999112263322, 'unique': 143.0, 'histogram': [[28.0, 18.0, 8.0, 6.0, 9.0, 15.0, 13.0, 22.0, 15.0, 10.0], [0.0019299999112263322, 0.01270300056785345, 0.023476000875234604, 0.03424900025129318, 0.04502200335264206, 0.05579500272870064, 0.06656800210475922, 0.0773410052061081, 0.08811400830745697, 0.09888700395822525, 0.10966000705957413]], 'valid_percent': 100.0, 'masked_pixels': 0.0, 'valid_pixels': 144.0, 'percentile_2': 0.0036516000190749765, 'percentile_98': 0.10260079741477966}}}}
+{'type': 'Feature', 'geometry': {'type': 'Polygon', 'coordinates': [[[-95.0, 29.0], [-95.0, 33.0], [-104.0, 33.0], [-104.0, 29.0], [-95.0, 29.0]]]}, 'properties': {'statistics': {'b1': {'min': 0.001820000004954636, 'max': 0.09993000328540802, 'mean': 0.021668889456325106, 'count': 144.0, 'sum': 3.1203200817108154, 'std': 0.01555983072635541, 'median': 0.020080000162124634, 'majority': 0.001820000004954636, 'minority': 0.001820000004954636, 'unique': 144.0, 'histogram': [[46.0, 32.0, 39.0, 6.0, 16.0, 2.0, 2.0, 0.0, 0.0, 1.0], [0.001820000004954636, 0.01163100078701973, 0.021441999822854996, 0.03125300258398056, 0.041064001619815826, 0.05087500065565109, 0.06068600341677666, 0.07049699872732162, 0.08030800521373749, 0.09011900424957275, 0.09993000328540802]], 'valid_percent': 100.0, 'masked_pixels': 0.0, 'valid_pixels': 144.0, 'percentile_2': 0.0036872001364827156, 'percentile_98': 0.05949099801480767}}}}
+{'type': 'Feature', 'geometry': {'type': 'Polygon', 'coordinates': [[[-95.0, 29.0], [-95.0, 33.0], [-104.0, 33.0], [-104.0, 29.0], [-95.0, 29.0]]]}, 'properties': {'statistics': {'b1': {'min': 0.0034100001212209463, 'max': 0.09335000067949295, 'mean': 0.02927048669921027, 'count': 144.0, 'sum': 4.214950084686279, 'std': 0.017102901109045124, 'median': 0.028429999947547913, 'majority': 0.005780000239610672, 'minority': 0.0034100001212209463, 'unique': 140.0, 'histogram': [[27.0, 21.0, 35.0, 26.0, 22.0, 4.0, 3.0, 3.0, 2.0, 1.0], [0.0034100001212209463, 0.012404000386595726, 0.021398000419139862, 0.030392000451683998, 0.039386000484228134, 0.04837999865412712, 0.057374000549316406, 0.0663679987192154, 0.07536199688911438, 0.08435600250959396, 0.09335000067949295]], 'valid_percent': 100.0, 'masked_pixels': 0.0, 'valid_pixels': 144.0, 'percentile_2': 0.004644999774172902, 'percentile_98': 0.07227740436792368}}}}
+{'type': 'Feature', 'geometry': {'type': 'Polygon', 'coordinates': [[[-95.0, 29.0], [-95.0, 33.0], [-104.0, 33.0], [-104.0, 29.0], [-95.0, 29.0]]]}, 'properties': {'statistics': {'b1': {'min': 0.003809999907389283, 'max': 0.10579000413417816, 'mean': 0.03000201450453864, 'count': 144.0, 'sum': 4.3202900886535645, 'std': 0.02076751005583409, 'median': 0.023150000721216202, 'majority': 0.021900000050663948, 'minority': 0.003809999907389283, 'unique': 142.0, 'histogram': [[18.0, 63.0, 31.0, 6.0, 10.0, 2.0, 5.0, 5.0, 1.0, 3.0], [0.003809999907389283, 0.014008000493049622, 0.024206001311540604, 0.034404002130031586, 0.04460200294852257, 0.05480000376701355, 0.06499800086021423, 0.07519600540399551, 0.0853940024971962, 0.09559200704097748, 0.10579000413417816]], 'valid_percent': 100.0, 'masked_pixels': 0.0, 'valid_pixels': 144.0, 'percentile_2': 0.007683799928054213, 'percentile_98': 0.09532680213451376}}}}
+{'type': 'Feature', 'geometry': {'type': 'Polygon', 'coordinates': [[[-95.0, 29.0], [-95.0, 33.0], [-104.0, 33.0], [-104.0, 29.0], [-95.0, 29.0]]]}, 'properties': {'statistics': {'b1': {'min': 0.0022100000642240047, 'max': 0.09685999900102615, 'mean': 0.040873958004845515, 'count': 144.0, 'sum': 5.885849952697754, 'std': 0.026410484338448167, 'median': 0.042855001986026764, 'majority': 0.012550000101327896, 'minority': 0.0022100000642240047, 'unique': 141.0, 'histogram': [[25.0, 26.0, 10.0, 9.0, 9.0, 27.0, 13.0, 11.0, 8.0, 6.0], [0.0022100000642240047, 0.011675000190734863, 0.021139999851584435, 0.030604999512434006, 0.040070001035928726, 0.04953499883413315, 0.05900000035762787, 0.06846500188112259, 0.07792999595403671, 0.08739499747753143, 0.09685999900102615]], 'valid_percent': 100.0, 'masked_pixels': 0.0, 'valid_pixels': 144.0, 'percentile_2': 0.004842800223268568, 'percentile_98': 0.09040980264544488}}}}
+{'type': 'Feature', 'geometry': {'type': 'Polygon', 'coordinates': [[[-95.0, 29.0], [-95.0, 33.0], [-104.0, 33.0], [-104.0, 29.0], [-95.0, 29.0]]]}, 'properties': {'statistics': {'b1': {'min': 0.0008200000156648457, 'max': 0.08980999886989594, 'mean': 0.04154916604359945, 'count': 144.0, 'sum': 5.98307991027832, 'std': 0.02437026434052482, 'median': 0.04786999896168709, 'majority': 0.06106000021100044, 'minority': 0.0008200000156648457, 'unique': 143.0, 'histogram': [[24.0, 13.0, 11.0, 8.0, 9.0, 30.0, 16.0, 17.0, 14.0, 2.0], [0.0008200000156648457, 0.009719000197947025, 0.01861800067126751, 0.02751700021326542, 0.03641599789261818, 0.04531500115990639, 0.0542140007019043, 0.06311299651861191, 0.07201199978590012, 0.08091099560260773, 0.08980999886989594]], 'valid_percent': 100.0, 'masked_pixels': 0.0, 'valid_pixels': 144.0, 'percentile_2': 0.0018856000620871781, 'percentile_98': 0.07965839967131615}}}}
+{'type': 'Feature', 'geometry': {'type': 'Polygon', 'coordinates': [[[-95.0, 29.0], [-95.0, 33.0], [-104.0, 33.0], [-104.0, 29.0], [-95.0, 29.0]]]}, 'properties': {'statistics': {'b1': {'min': 0.0011399999493733048, 'max': 0.08340000361204147, 'mean': 0.04241389036178589, 'count': 144.0, 'sum': 6.107600212097168, 'std': 0.02240873888324255, 'median': 0.048489999026060104, 'majority': 0.05087999999523163, 'minority': 0.0011399999493733048, 'unique': 143.0, 'histogram': [[19.0, 12.0, 10.0, 7.0, 9.0, 22.0, 27.0, 22.0, 13.0, 3.0], [0.0011399999493733048, 0.009366000071167946, 0.01759199984371662, 0.025818001478910446, 0.03404400125145912, 0.0422700010240078, 0.05049600079655647, 0.05872200429439545, 0.06694800406694412, 0.0751740038394928, 0.08340000361204147]], 'valid_percent': 100.0, 'masked_pixels': 0.0, 'valid_pixels': 144.0, 'percentile_2': 0.0034153998317196965, 'percentile_98': 0.07546940401196477}}}}
+{'type': 'Feature', 'geometry': {'type': 'Polygon', 'coordinates': [[[-95.0, 29.0], [-95.0, 33.0], [-104.0, 33.0], [-104.0, 29.0], [-95.0, 29.0]]]}, 'properties': {'statistics': {'b1': {'min': 0.0008899999666027725, 'max': 0.0769599974155426, 'mean': 0.02968874904844496, 'count': 144.0, 'sum': 4.275179862976074, 'std': 0.020985132114404413, 'median': 0.024879999458789825, 'majority': 0.01834000088274479, 'minority': 0.0008899999666027725, 'unique': 143.0, 'histogram': [[30.0, 18.0, 20.0, 18.0, 10.0, 9.0, 15.0, 9.0, 11.0, 4.0], [0.0008899999666027725, 0.008496999740600586, 0.016103999689221382, 0.02371099963784218, 0.031317997723817825, 0.03892499953508377, 0.04653199762105942, 0.05413899943232536, 0.06174599751830101, 0.06935299932956696, 0.0769599974155426]], 'valid_percent': 100.0, 'masked_pixels': 0.0, 'valid_pixels': 144.0, 'percentile_2': 0.0019578000181354584, 'percentile_98': 0.0707826006412506}}}}
+{'type': 'Feature', 'geometry': {'type': 'Polygon', 'coordinates': [[[-95.0, 29.0], [-95.0, 33.0], [-104.0, 33.0], [-104.0, 29.0], [-95.0, 29.0]]]}, 'properties': {'statistics': {'b1': {'min': 0.00041000000783242285, 'max': 0.06890000402927399, 'mean': 0.025463958581288654, 'count': 144.0, 'sum': 3.6668100357055664, 'std': 0.01949929483778321, 'median': 0.024404998868703842, 'majority': 0.003280000062659383, 'minority': 0.00041000000783242285, 'unique': 140.0, 'histogram': [[45.0, 15.0, 7.0, 8.0, 8.0, 18.0, 22.0, 17.0, 3.0, 1.0], [0.00041000000783242285, 0.007259000558406115, 0.014108001254498959, 0.02095700055360794, 0.027806000784039497, 0.034655001014471054, 0.04150400310754776, 0.04835300147533417, 0.05520200356841087, 0.06205100193619728, 0.06890000402927399]], 'valid_percent': 100.0, 'masked_pixels': 0.0, 'valid_pixels': 144.0, 'percentile_2': 0.0008794000209309161, 'percentile_98': 0.0554283968359232}}}}
+{'type': 'Feature', 'geometry': {'type': 'Polygon', 'coordinates': [[[-95.0, 29.0], [-95.0, 33.0], [-104.0, 33.0], [-104.0, 29.0], [-95.0, 29.0]]]}, 'properties': {'statistics': {'b1': {'min': 0.0008299999753944576, 'max': 0.0681999996304512, 'mean': 0.022371109988954332, 'count': 144.0, 'sum': 3.221439838409424, 'std': 0.017863631671940067, 'median': 0.0167899988591671, 'majority': 0.004389999900013208, 'minority': 0.0008299999753944576, 'unique': 141.0, 'histogram': [[45.0, 23.0, 12.0, 14.0, 9.0, 6.0, 16.0, 16.0, 2.0, 1.0], [0.0008299999753944576, 0.007567000109702349, 0.014303999952971935, 0.02104100026190281, 0.02777799963951111, 0.03451500087976456, 0.04125199839472771, 0.047988999634981155, 0.054726000875234604, 0.061462998390197754, 0.0681999996304512]], 'valid_percent': 100.0, 'masked_pixels': 0.0, 'valid_pixels': 144.0, 'percentile_2': 0.0015910000167787075, 'percentile_98': 0.05307540014386174}}}}
+{'type': 'Feature', 'geometry': {'type': 'Polygon', 'coordinates': [[[-95.0, 29.0], [-95.0, 33.0], [-104.0, 33.0], [-104.0, 29.0], [-95.0, 29.0]]]}, 'properties': {'statistics': {'b1': {'min': 0.0004000000189989805, 'max': 0.07231999933719635, 'mean': 0.022868749168184068, 'count': 144.0, 'sum': 3.293099880218506, 'std': 0.021657205889275697, 'median': 0.012490000575780869, 'majority': 0.0011699999449774623, 'minority': 0.0004000000189989805, 'unique': 139.0, 'histogram': [[52.0, 26.0, 12.0, 5.0, 3.0, 9.0, 12.0, 14.0, 8.0, 3.0], [0.0004000000189989805, 0.007592000067234039, 0.014783999882638454, 0.02197599969804287, 0.02916800044476986, 0.0363599993288517, 0.04355200007557869, 0.05074400082230568, 0.05793599784374237, 0.06512799859046936, 0.07231999933719635]], 'valid_percent': 100.0, 'masked_pixels': 0.0, 'valid_pixels': 144.0, 'percentile_2': 0.0007034000300336629, 'percentile_98': 0.06480439454317093}}}}
+{'type': 'Feature', 'geometry': {'type': 'Polygon', 'coordinates': [[[-95.0, 29.0], [-95.0, 33.0], [-104.0, 33.0], [-104.0, 29.0], [-95.0, 29.0]]]}, 'properties': {'statistics': {'b1': {'min': 0.0019199999514967203, 'max': 0.09312000125646591, 'mean': 0.03440770837995741, 'count': 144.0, 'sum': 4.954710006713867, 'std': 0.022984301249731533, 'median': 0.0330049991607666, 'majority': 0.012470000423491001, 'minority': 0.0019199999514967203, 'unique': 143.0, 'histogram': [[31.0, 21.0, 18.0, 9.0, 14.0, 22.0, 15.0, 10.0, 2.0, 2.0], [0.0019199999514967203, 0.01104000024497509, 0.020160000771284103, 0.029279999434947968, 0.03840000182390213, 0.047520000487565994, 0.05663999915122986, 0.06576000154018402, 0.07488000392913818, 0.08399999886751175, 0.09312000125646591]], 'valid_percent': 100.0, 'masked_pixels': 0.0, 'valid_pixels': 144.0, 'percentile_2': 0.002968600019812584, 'percentile_98': 0.07670259743928906}}}}
+{'type': 'Feature', 'geometry': {'type': 'Polygon', 'coordinates': [[[-95.0, 29.0], [-95.0, 33.0], [-104.0, 33.0], [-104.0, 29.0], [-95.0, 29.0]]]}, 'properties': {'statistics': {'b1': {'min': 0.004769999999552965, 'max': 0.1303200125694275, 'mean': 0.03602277901437548, 'count': 144.0, 'sum': 5.187280178070068, 'std': 0.026614172273240123, 'median': 0.027665000408887863, 'majority': 0.01672999933362007, 'minority': 0.004769999999552965, 'unique': 141.0, 'histogram': [[31.0, 50.0, 29.0, 12.0, 1.0, 7.0, 1.0, 8.0, 4.0, 1.0], [0.004769999999552965, 0.01732500083744526, 0.02988000214099884, 0.04243500530719757, 0.054990004748106, 0.06754500418901443, 0.08010000735521317, 0.0926550105214119, 0.10521001368761063, 0.11776500940322876, 0.1303200125694275]], 'valid_percent': 100.0, 'masked_pixels': 0.0, 'valid_pixels': 144.0, 'percentile_2': 0.008495200108736754, 'percentile_98': 0.10628880515694618}}}}
+{'type': 'Feature', 'geometry': {'type': 'Polygon', 'coordinates': [[[-95.0, 29.0], [-95.0, 33.0], [-104.0, 33.0], [-104.0, 29.0], [-95.0, 29.0]]]}, 'properties': {'statistics': {'b1': {'min': 0.003329999977722764, 'max': 0.1302899867296219, 'mean': 0.05509416924582587, 'count': 144.0, 'sum': 7.933560371398926, 'std': 0.03125600060749086, 'median': 0.05770999938249588, 'majority': 0.003329999977722764, 'minority': 0.003329999977722764, 'unique': 144.0, 'histogram': [[23.0, 15.0, 9.0, 17.0, 28.0, 28.0, 7.0, 4.0, 8.0, 5.0], [0.003329999977722764, 0.016025999560952187, 0.028721997514367104, 0.04141799733042717, 0.05411399528384209, 0.0668099969625473, 0.07950599491596222, 0.09220199286937714, 0.10489799082279205, 0.11759398877620697, 0.1302899867296219]], 'valid_percent': 100.0, 'masked_pixels': 0.0, 'valid_pixels': 144.0, 'percentile_2': 0.006275399690493941, 'percentile_98': 0.12054900005459784}}}}
+{'type': 'Feature', 'geometry': {'type': 'Polygon', 'coordinates': [[[-95.0, 29.0], [-95.0, 33.0], [-104.0, 33.0], [-104.0, 29.0], [-95.0, 29.0]]]}, 'properties': {'statistics': {'b1': {'min': 0.004030000418424606, 'max': 0.06895999610424042, 'mean': 0.025675000415907964, 'count': 144.0, 'sum': 3.697200059890747, 'std': 0.017037163967966614, 'median': 0.019620001316070557, 'majority': 0.009729999117553234, 'minority': 0.004030000418424606, 'unique': 141.0, 'histogram': [[31.0, 21.0, 36.0, 13.0, 7.0, 9.0, 10.0, 5.0, 7.0, 5.0], [0.004030000418424606, 0.010522999800741673, 0.01701599918305874, 0.02350899949669838, 0.03000199794769287, 0.03649500012397766, 0.04298799857497215, 0.049480997025966644, 0.055973995476961136, 0.062466997653245926, 0.06895999610424042]], 'valid_percent': 100.0, 'masked_pixels': 0.0, 'valid_pixels': 144.0, 'percentile_2': 0.004977800380438566, 'percentile_98': 0.06806939870119094}}}}
+{'type': 'Feature', 'geometry': {'type': 'Polygon', 'coordinates': [[[-95.0, 29.0], [-95.0, 33.0], [-104.0, 33.0], [-104.0, 29.0], [-95.0, 29.0]]]}, 'properties': {'statistics': {'b1': {'min': 0.0029700000304728746, 'max': 0.13330000638961792, 'mean': 0.03626805543899536, 'count': 144.0, 'sum': 5.222599983215332, 'std': 0.0315023436962121, 'median': 0.0235849991440773, 'majority': 0.0029700000304728746, 'minority': 0.0029700000304728746, 'unique': 144.0, 'histogram': [[43.0, 41.0, 21.0, 10.0, 5.0, 4.0, 6.0, 6.0, 6.0, 2.0], [0.0029700000304728746, 0.016003001481294632, 0.02903600037097931, 0.042069002985954285, 0.05510200187563896, 0.06813500076532364, 0.08116800338029861, 0.09420100599527359, 0.10723400861024857, 0.12026700377464294, 0.13330000638961792]], 'valid_percent': 100.0, 'masked_pixels': 0.0, 'valid_pixels': 144.0, 'percentile_2': 0.0040098002227023245, 'percentile_98': 0.11665299937129016}}}}
+{'type': 'Feature', 'geometry': {'type': 'Polygon', 'coordinates': [[[-95.0, 29.0], [-95.0, 33.0], [-104.0, 33.0], [-104.0, 29.0], [-95.0, 29.0]]]}, 'properties': {'statistics': {'b1': {'min': 0.0014299999456852674, 'max': 0.08912000060081482, 'mean': 0.036439445283677846, 'count': 144.0, 'sum': 5.247280120849609, 'std': 0.02562576104259141, 'median': 0.03230000287294388, 'majority': 0.008440000005066395, 'minority': 0.0014299999456852674, 'unique': 142.0, 'histogram': [[33.0, 17.0, 15.0, 16.0, 7.0, 16.0, 16.0, 5.0, 8.0, 11.0], [0.0014299999456852674, 0.010199000127613544, 0.018968001008033752, 0.027737000957131386, 0.03650600090622902, 0.0452749989926815, 0.054044000804424286, 0.06281299889087677, 0.07158199697732925, 0.08035100251436234, 0.08912000060081482]], 'valid_percent': 100.0, 'masked_pixels': 0.0, 'valid_pixels': 144.0, 'percentile_2': 0.0033543999306857586, 'percentile_98': 0.08678139850497245}}}}
+{'type': 'Feature', 'geometry': {'type': 'Polygon', 'coordinates': [[[-95.0, 29.0], [-95.0, 33.0], [-104.0, 33.0], [-104.0, 29.0], [-95.0, 29.0]]]}, 'properties': {'statistics': {'b1': {'min': 0.0006799999973736703, 'max': 0.08167999982833862, 'mean': 0.037000139554341636, 'count': 144.0, 'sum': 5.328020095825195, 'std': 0.02529753832608661, 'median': 0.0421300008893013, 'majority': 0.04325999692082405, 'minority': 0.0006799999973736703, 'unique': 142.0, 'histogram': [[35.0, 13.0, 6.0, 3.0, 14.0, 18.0, 20.0, 11.0, 13.0, 11.0], [0.0006799999973736703, 0.008779999800026417, 0.01688000001013279, 0.024979999288916588, 0.033080000430345535, 0.041179999709129333, 0.04927999898791313, 0.05737999826669693, 0.06548000127077103, 0.07357999682426453, 0.08167999982833862]], 'valid_percent': 100.0, 'masked_pixels': 0.0, 'valid_pixels': 144.0, 'percentile_2': 0.0012651999644003808, 'percentile_98': 0.07621219798922538}}}}
+{'type': 'Feature', 'geometry': {'type': 'Polygon', 'coordinates': [[[-95.0, 29.0], [-95.0, 33.0], [-104.0, 33.0], [-104.0, 29.0], [-95.0, 29.0]]]}, 'properties': {'statistics': {'b1': {'min': 0.000910000002477318, 'max': 0.07229000329971313, 'mean': 0.03755201233757867, 'count': 144.0, 'sum': 5.407489776611328, 'std': 0.02075292316013256, 'median': 0.04190000146627426, 'majority': 0.05422000214457512, 'minority': 0.000910000002477318, 'unique': 142.0, 'histogram': [[24.0, 6.0, 11.0, 5.0, 12.0, 17.0, 23.0, 16.0, 25.0, 5.0], [0.000910000002477318, 0.008048000745475292, 0.015186000615358353, 0.022324001416563988, 0.029462002217769623, 0.03660000115633011, 0.04373800382018089, 0.05087600275874138, 0.058014001697301865, 0.06515200436115265, 0.07229000329971313]], 'valid_percent': 100.0, 'masked_pixels': 0.0, 'valid_pixels': 144.0, 'percentile_2': 0.00219059998402372, 'percentile_98': 0.06612580105662341}}}}
+{'type': 'Feature', 'geometry': {'type': 'Polygon', 'coordinates': [[[-95.0, 29.0], [-95.0, 33.0], [-104.0, 33.0], [-104.0, 29.0], [-95.0, 29.0]]]}, 'properties': {'statistics': {'b1': {'min': 0.0005099999834783375, 'max': 0.06543999910354614, 'mean': 0.027601598037613764, 'count': 144.0, 'sum': 3.974630117416382, 'std': 0.020428861632417597, 'median': 0.02649500034749508, 'majority': 0.0029299999587237835, 'minority': 0.0005099999834783375, 'unique': 141.0, 'histogram': [[39.0, 14.0, 14.0, 5.0, 4.0, 13.0, 16.0, 23.0, 10.0, 6.0], [0.0005099999834783375, 0.007003000006079674, 0.01349599938839674, 0.019989000633358955, 0.026481999084353447, 0.03297499939799309, 0.03946799784898758, 0.04596100002527237, 0.05245399847626686, 0.05894700065255165, 0.06543999910354614]], 'valid_percent': 100.0, 'masked_pixels': 0.0, 'valid_pixels': 144.0, 'percentile_2': 0.001012600001413375, 'percentile_98': 0.060627802684903115}}}}
+{'type': 'Feature', 'geometry': {'type': 'Polygon', 'coordinates': [[[-95.0, 29.0], [-95.0, 33.0], [-104.0, 33.0], [-104.0, 29.0], [-95.0, 29.0]]]}, 'properties': {'statistics': {'b1': {'min': 0.0012100000167265534, 'max': 0.05505000054836273, 'mean': 0.026319305102030437, 'count': 144.0, 'sum': 3.789979934692383, 'std': 0.013440598461690881, 'median': 0.02747499942779541, 'majority': 0.025280000641942024, 'minority': 0.0012100000167265534, 'unique': 142.0, 'histogram': [[9.0, 20.0, 18.0, 12.0, 15.0, 15.0, 27.0, 16.0, 9.0, 3.0], [0.0012100000167265534, 0.006593999918550253, 0.011978000402450562, 0.017362000420689583, 0.022746000438928604, 0.028130000457167625, 0.03351400047540665, 0.03889799863100052, 0.04428200051188469, 0.04966599866747856, 0.05505000054836273]], 'valid_percent': 100.0, 'masked_pixels': 0.0, 'valid_pixels': 144.0, 'percentile_2': 0.0045397999230772255, 'percentile_98': 0.04963900074362754}}}}
+{'type': 'Feature', 'geometry': {'type': 'Polygon', 'coordinates': [[[-95.0, 29.0], [-95.0, 33.0], [-104.0, 33.0], [-104.0, 29.0], [-95.0, 29.0]]]}, 'properties': {'statistics': {'b1': {'min': 0.0015199999324977398, 'max': 0.06154000014066696, 'mean': 0.030167847871780396, 'count': 144.0, 'sum': 4.344170093536377, 'std': 0.01714125476931571, 'median': 0.030195001512765884, 'majority': 0.06154000014066696, 'minority': 0.0015199999324977398, 'unique': 143.0, 'histogram': [[19.0, 12.0, 17.0, 16.0, 10.0, 9.0, 22.0, 18.0, 14.0, 7.0], [0.0015199999324977398, 0.007521999999880791, 0.013523999601602554, 0.019525999203324318, 0.02552800066769123, 0.031530000269412994, 0.03753200173377991, 0.04353399947285652, 0.049536000937223434, 0.05553799867630005, 0.06154000014066696]], 'valid_percent': 100.0, 'masked_pixels': 0.0, 'valid_pixels': 144.0, 'percentile_2': 0.001838600046467036, 'percentile_98': 0.058965199142694436}}}}
+{'type': 'Feature', 'geometry': {'type': 'Polygon', 'coordinates': [[[-95.0, 29.0], [-95.0, 33.0], [-104.0, 33.0], [-104.0, 29.0], [-95.0, 29.0]]]}, 'properties': {'statistics': {'b1': {'min': 0.0013000000035390258, 'max': 0.06469999998807907, 'mean': 0.030900971757041082, 'count': 144.0, 'sum': 4.449739933013916, 'std': 0.017743625955065612, 'median': 0.032944999635219574, 'majority': 0.007089999970048666, 'minority': 0.0013000000035390258, 'unique': 142.0, 'histogram': [[17.0, 19.0, 15.0, 10.0, 11.0, 16.0, 25.0, 11.0, 10.0, 10.0], [0.0013000000035390258, 0.007639999967068434, 0.013980000279843807, 0.020320000126957893, 0.026660000905394554, 0.032999999821186066, 0.039340000599622726, 0.04568000137805939, 0.05201999843120575, 0.05835999920964241, 0.06469999998807907]], 'valid_percent': 100.0, 'masked_pixels': 0.0, 'valid_pixels': 144.0, 'percentile_2': 0.0034123999439179898, 'percentile_98': 0.06376399904489517}}}}
+{'type': 'Feature', 'geometry': {'type': 'Polygon', 'coordinates': [[[-95.0, 29.0], [-95.0, 33.0], [-104.0, 33.0], [-104.0, 29.0], [-95.0, 29.0]]]}, 'properties': {'statistics': {'b1': {'min': 0.0008800000068731606, 'max': 0.08261000365018845, 'mean': 0.0309713880221049, 'count': 144.0, 'sum': 4.4598798751831055, 'std': 0.02434011632793326, 'median': 0.03172500059008598, 'majority': 0.03352000191807747, 'minority': 0.0008800000068731606, 'unique': 143.0, 'histogram': [[44.0, 16.0, 9.0, 9.0, 14.0, 11.0, 18.0, 8.0, 11.0, 4.0], [0.0008800000068731606, 0.009053000248968601, 0.017226001247763634, 0.02539900131523609, 0.0335720032453537, 0.04174500331282616, 0.049918003380298615, 0.05809100344777107, 0.06626400351524353, 0.07443699985742569, 0.08261000365018845]], 'valid_percent': 100.0, 'masked_pixels': 0.0, 'valid_pixels': 144.0, 'percentile_2': 0.0016151999682188034, 'percentile_98': 0.07593280017375943}}}}
+{'type': 'Feature', 'geometry': {'type': 'Polygon', 'coordinates': [[[-95.0, 29.0], [-95.0, 33.0], [-104.0, 33.0], [-104.0, 29.0], [-95.0, 29.0]]]}, 'properties': {'statistics': {'b1': {'min': 0.0035099999513477087, 'max': 0.10826000571250916, 'mean': 0.041090276506212026, 'count': 144.0, 'sum': 5.916999816894531, 'std': 0.026203931860786758, 'median': 0.04425999894738197, 'majority': 0.0035099999513477087, 'minority': 0.0035099999513477087, 'unique': 144.0, 'histogram': [[31.0, 25.0, 9.0, 11.0, 22.0, 18.0, 11.0, 12.0, 4.0, 1.0], [0.0035099999513477087, 0.013985000550746918, 0.024460000917315483, 0.03493500128388405, 0.04541000351309776, 0.05588500201702118, 0.0663600042462349, 0.07683500647544861, 0.08731000125408173, 0.09778500348329544, 0.10826000571250916]], 'valid_percent': 100.0, 'masked_pixels': 0.0, 'valid_pixels': 144.0, 'percentile_2': 0.00439560002181679, 'percentile_98': 0.08983099922537803}}}}
+{'type': 'Feature', 'geometry': {'type': 'Polygon', 'coordinates': [[[-95.0, 29.0], [-95.0, 33.0], [-104.0, 33.0], [-104.0, 29.0], [-95.0, 29.0]]]}, 'properties': {'statistics': {'b1': {'min': 0.0033699998166412115, 'max': 0.1256200075149536, 'mean': 0.05368326438797845, 'count': 144.0, 'sum': 7.7303900718688965, 'std': 0.03435350146921652, 'median': 0.05951499938964844, 'majority': 0.0033699998166412115, 'minority': 0.0033699998166412115, 'unique': 144.0, 'histogram': [[33.0, 13.0, 9.0, 13.0, 15.0, 19.0, 12.0, 18.0, 8.0, 4.0], [0.0033699998166412115, 0.015595000237226486, 0.027820002287626266, 0.04004500061273575, 0.05227000266313553, 0.06449500471353531, 0.07672000676393509, 0.08894500881433487, 0.10117000341415405, 0.11339500546455383, 0.1256200075149536]], 'valid_percent': 100.0, 'masked_pixels': 0.0, 'valid_pixels': 144.0, 'percentile_2': 0.004726400072686374, 'percentile_98': 0.11474060222506516}}}}
+{'type': 'Feature', 'geometry': {'type': 'Polygon', 'coordinates': [[[-95.0, 29.0], [-95.0, 33.0], [-104.0, 33.0], [-104.0, 29.0], [-95.0, 29.0]]]}, 'properties': {'statistics': {'b1': {'min': 0.0030999998562037945, 'max': 0.12296000123023987, 'mean': 0.05277166763941447, 'count': 144.0, 'sum': 7.599120140075684, 'std': 0.03290996936717011, 'median': 0.05769500136375427, 'majority': 0.0030999998562037945, 'minority': 0.0030999998562037945, 'unique': 144.0, 'histogram': [[31.0, 14.0, 13.0, 10.0, 12.0, 21.0, 18.0, 14.0, 8.0, 3.0], [0.0030999998562037945, 0.015085999853909016, 0.02707199938595295, 0.03905799984931946, 0.051044002175331116, 0.06302999705076218, 0.07501599937677383, 0.08700200170278549, 0.09898800402879715, 0.11097399890422821, 0.12296000123023987]], 'valid_percent': 100.0, 'masked_pixels': 0.0, 'valid_pixels': 144.0, 'percentile_2': 0.0054016000404953956, 'percentile_98': 0.11022040203213687}}}}
+{'type': 'Feature', 'geometry': {'type': 'Polygon', 'coordinates': [[[-95.0, 29.0], [-95.0, 33.0], [-104.0, 33.0], [-104.0, 29.0], [-95.0, 29.0]]]}, 'properties': {'statistics': {'b1': {'min': 0.0016199999954551458, 'max': 0.12429000437259674, 'mean': 0.05671909782621595, 'count': 144.0, 'sum': 8.167550086975098, 'std': 0.033826433456837654, 'median': 0.058274999260902405, 'majority': 0.0016199999954551458, 'minority': 0.0016199999954551458, 'unique': 144.0, 'histogram': [[19.0, 21.0, 11.0, 15.0, 9.0, 13.0, 26.0, 15.0, 10.0, 5.0], [0.0016199999954551458, 0.013887000270187855, 0.02615400031208992, 0.03842100128531456, 0.0506880022585392, 0.06295499950647354, 0.07522200047969818, 0.08748900145292282, 0.09975600242614746, 0.1120230033993721, 0.12429000437259674]], 'valid_percent': 100.0, 'masked_pixels': 0.0, 'valid_pixels': 144.0, 'percentile_2': 0.003872199743054807, 'percentile_98': 0.11901980504393576}}}}
+{'type': 'Feature', 'geometry': {'type': 'Polygon', 'coordinates': [[[-95.0, 29.0], [-95.0, 33.0], [-104.0, 33.0], [-104.0, 29.0], [-95.0, 29.0]]]}, 'properties': {'statistics': {'b1': {'min': 0.003289999905973673, 'max': 0.08941000699996948, 'mean': 0.04341152641508314, 'count': 144.0, 'sum': 6.251259803771973, 'std': 0.021684316216095897, 'median': 0.04526500031352043, 'majority': 0.040470000356435776, 'minority': 0.003289999905973673, 'unique': 143.0, 'histogram': [[11.0, 19.0, 13.0, 13.0, 23.0, 21.0, 14.0, 12.0, 12.0, 6.0], [0.003289999905973673, 0.01190200075507164, 0.020514002069830894, 0.029126001521945, 0.037738002836704254, 0.04635000228881836, 0.05496200546622276, 0.06357400119304657, 0.07218600809574127, 0.08079800754785538, 0.08941000699996948]], 'valid_percent': 100.0, 'masked_pixels': 0.0, 'valid_pixels': 144.0, 'percentile_2': 0.005066999923437834, 'percentile_98': 0.08341620311141013}}}}
+{'type': 'Feature', 'geometry': {'type': 'Polygon', 'coordinates': [[[-95.0, 29.0], [-95.0, 33.0], [-104.0, 33.0], [-104.0, 29.0], [-95.0, 29.0]]]}, 'properties': {'statistics': {'b1': {'min': 0.0028199998196214437, 'max': 0.07919000089168549, 'mean': 0.03965784774886237, 'count': 144.0, 'sum': 5.710730075836182, 'std': 0.019139302806487873, 'median': 0.04143499955534935, 'majority': 0.02118000015616417, 'minority': 0.0028199998196214437, 'unique': 142.0, 'histogram': [[11.0, 16.0, 16.0, 7.0, 19.0, 26.0, 16.0, 16.0, 11.0, 6.0], [0.0028199998196214437, 0.010456999763846397, 0.018093999475240707, 0.025731001049280167, 0.03336799889802933, 0.04100500047206879, 0.048642002046108246, 0.05627899989485741, 0.06391599774360657, 0.07155299931764603, 0.07919000089168549]], 'valid_percent': 100.0, 'masked_pixels': 0.0, 'valid_pixels': 144.0, 'percentile_2': 0.004490400264039636, 'percentile_98': 0.07510759890079496}}}}
+{'type': 'Feature', 'geometry': {'type': 'Polygon', 'coordinates': [[[-95.0, 29.0], [-95.0, 33.0], [-104.0, 33.0], [-104.0, 29.0], [-95.0, 29.0]]]}, 'properties': {'statistics': {'b1': {'min': 0.004110000096261501, 'max': 0.08804000169038773, 'mean': 0.041197081406911217, 'count': 144.0, 'sum': 5.932379722595215, 'std': 0.01879179414062522, 'median': 0.043699998408555984, 'majority': 0.019850000739097595, 'minority': 0.004110000096261501, 'unique': 140.0, 'histogram': [[10.0, 19.0, 14.0, 11.0, 28.0, 26.0, 18.0, 10.0, 4.0, 4.0], [0.004110000096261501, 0.012502999976277351, 0.020896000787615776, 0.02928899973630905, 0.037682000547647476, 0.0460750013589859, 0.054468002170324326, 0.06286100298166275, 0.07125400006771088, 0.0796470046043396, 0.08804000169038773]], 'valid_percent': 100.0, 'masked_pixels': 0.0, 'valid_pixels': 144.0, 'percentile_2': 0.0071611998602747915, 'percentile_98': 0.0802540013194084}}}}
+{'type': 'Feature', 'geometry': {'type': 'Polygon', 'coordinates': [[[-95.0, 29.0], [-95.0, 33.0], [-104.0, 33.0], [-104.0, 29.0], [-95.0, 29.0]]]}, 'properties': {'statistics': {'b1': {'min': 0.0035899998620152473, 'max': 0.05665000155568123, 'mean': 0.029730416006512113, 'count': 144.0, 'sum': 4.281179904937744, 'std': 0.011805242214961915, 'median': 0.030980000272393227, 'majority': 0.01948999986052513, 'minority': 0.0035899998620152473, 'unique': 140.0, 'histogram': [[5.0, 11.0, 22.0, 9.0, 14.0, 33.0, 28.0, 11.0, 9.0, 2.0], [0.0035899998620152473, 0.008895999751985073, 0.014202000573277473, 0.0195080004632473, 0.024814000353217125, 0.03012000024318695, 0.035426001995801926, 0.0407320000231266, 0.04603800177574158, 0.051343999803066254, 0.05665000155568123]], 'valid_percent': 100.0, 'masked_pixels': 0.0, 'valid_pixels': 144.0, 'percentile_2': 0.00705319975502789, 'percentile_98': 0.051236998587846756}}}}
+{'type': 'Feature', 'geometry': {'type': 'Polygon', 'coordinates': [[[-95.0, 29.0], [-95.0, 33.0], [-104.0, 33.0], [-104.0, 29.0], [-95.0, 29.0]]]}, 'properties': {'statistics': {'b1': {'min': 0.0024500000290572643, 'max': 0.04495999962091446, 'mean': 0.018525277574857075, 'count': 144.0, 'sum': 2.667639970779419, 'std': 0.008500921744163073, 'median': 0.018164999783039093, 'majority': 0.017340000718832016, 'minority': 0.0024500000290572643, 'unique': 141.0, 'histogram': [[11.0, 23.0, 16.0, 29.0, 26.0, 18.0, 12.0, 7.0, 1.0, 1.0], [0.0024500000290572643, 0.0067010000348091125, 0.010951999574899673, 0.015203000046312809, 0.019454000517725945, 0.023705000057816505, 0.027955999597907066, 0.032207001000642776, 0.03645800054073334, 0.0407090000808239, 0.04495999962091446]], 'valid_percent': 100.0, 'masked_pixels': 0.0, 'valid_pixels': 144.0, 'percentile_2': 0.004939999808557331, 'percentile_98': 0.034176799207925795}}}}
+{'type': 'Feature', 'geometry': {'type': 'Polygon', 'coordinates': [[[-95.0, 29.0], [-95.0, 33.0], [-104.0, 33.0], [-104.0, 29.0], [-95.0, 29.0]]]}, 'properties': {'statistics': {'b1': {'min': 0.0032500000670552254, 'max': 0.05620000138878822, 'mean': 0.0279063880443573, 'count': 144.0, 'sum': 4.018519878387451, 'std': 0.01145399011516125, 'median': 0.028939999639987946, 'majority': 0.03423000127077103, 'minority': 0.0032500000670552254, 'unique': 143.0, 'histogram': [[4.0, 15.0, 21.0, 10.0, 31.0, 26.0, 17.0, 12.0, 4.0, 4.0], [0.0032500000670552254, 0.008545000106096268, 0.01384000014513731, 0.019135000184178352, 0.02443000115454197, 0.029725000262260437, 0.035020001232624054, 0.04031500220298767, 0.04560999944806099, 0.050905000418424606, 0.05620000138878822]], 'valid_percent': 100.0, 'masked_pixels': 0.0, 'valid_pixels': 144.0, 'percentile_2': 0.007080600117333233, 'percentile_98': 0.051711199805140495}}}}
+{'type': 'Feature', 'geometry': {'type': 'Polygon', 'coordinates': [[[-95.0, 29.0], [-95.0, 33.0], [-104.0, 33.0], [-104.0, 29.0], [-95.0, 29.0]]]}, 'properties': {'statistics': {'b1': {'min': 0.00044999999227002263, 'max': 0.06366999447345734, 'mean': 0.024565832482443914, 'count': 144.0, 'sum': 3.537479877471924, 'std': 0.019948518326606705, 'median': 0.018720000982284546, 'majority': 0.002420000033453107, 'minority': 0.00044999999227002263, 'unique': 142.0, 'histogram': [[46.0, 11.0, 17.0, 6.0, 3.0, 8.0, 21.0, 17.0, 11.0, 4.0], [0.00044999999227002263, 0.0067719994112849236, 0.013093998655676842, 0.019415998831391335, 0.025737997144460678, 0.03205999732017517, 0.038381997495889664, 0.044703997671604156, 0.05102599412202835, 0.057347994297742844, 0.06366999447345734]], 'valid_percent': 100.0, 'masked_pixels': 0.0, 'valid_pixels': 144.0, 'percentile_2': 0.0009212000120896846, 'percentile_98': 0.05928640037775038}}}}
+{'type': 'Feature', 'geometry': {'type': 'Polygon', 'coordinates': [[[-95.0, 29.0], [-95.0, 33.0], [-104.0, 33.0], [-104.0, 29.0], [-95.0, 29.0]]]}, 'properties': {'statistics': {'b1': {'min': 0.002689999993890524, 'max': 0.10057999938726425, 'mean': 0.04430617888768514, 'count': 144.0, 'sum': 6.38008975982666, 'std': 0.027293283548946976, 'median': 0.04820000007748604, 'majority': 0.06807000190019608, 'minority': 0.002689999993890524, 'unique': 143.0, 'histogram': [[28.0, 17.0, 11.0, 12.0, 6.0, 17.0, 24.0, 20.0, 6.0, 3.0], [0.002689999993890524, 0.01247899979352951, 0.02226799912750721, 0.03205699846148491, 0.04184599965810776, 0.051635000854730606, 0.061423998326063156, 0.071212999522686, 0.08100199699401855, 0.0907910019159317, 0.10057999938726425]], 'valid_percent': 100.0, 'masked_pixels': 0.0, 'valid_pixels': 144.0, 'percentile_2': 0.003435800117440522, 'percentile_98': 0.09049020215868948}}}}
+{'type': 'Feature', 'geometry': {'type': 'Polygon', 'coordinates': [[[-95.0, 29.0], [-95.0, 33.0], [-104.0, 33.0], [-104.0, 29.0], [-95.0, 29.0]]]}, 'properties': {'statistics': {'b1': {'min': 0.0030999998562037945, 'max': 0.09476999938488007, 'mean': 0.040627360343933105, 'count': 144.0, 'sum': 5.850339889526367, 'std': 0.022703661324726548, 'median': 0.042494997382164, 'majority': 0.05456000193953514, 'minority': 0.0030999998562037945, 'unique': 143.0, 'histogram': [[21.0, 21.0, 10.0, 15.0, 16.0, 25.0, 22.0, 8.0, 3.0, 3.0], [0.0030999998562037945, 0.012267000041902065, 0.02143399976193905, 0.030601000413298607, 0.039767999202013016, 0.048934999853372574, 0.05810200050473213, 0.06726899743080139, 0.07643599808216095, 0.08560299873352051, 0.09476999938488007]], 'valid_percent': 100.0, 'masked_pixels': 0.0, 'valid_pixels': 144.0, 'percentile_2': 0.004277999983169138, 'percentile_98': 0.08465279519557947}}}}
+{'type': 'Feature', 'geometry': {'type': 'Polygon', 'coordinates': [[[-95.0, 29.0], [-95.0, 33.0], [-104.0, 33.0], [-104.0, 29.0], [-95.0, 29.0]]]}, 'properties': {'statistics': {'b1': {'min': 0.005369999911636114, 'max': 0.12027999758720398, 'mean': 0.02596465415424771, 'count': 144.0, 'sum': 3.73891019821167, 'std': 0.015291376258601112, 'median': 0.023079998791217804, 'majority': 0.0147299999371171, 'minority': 0.005369999911636114, 'unique': 142.0, 'histogram': [[27.0, 80.0, 26.0, 4.0, 4.0, 1.0, 0.0, 0.0, 0.0, 2.0], [0.005369999911636114, 0.016860999166965485, 0.028351999819278717, 0.03984300047159195, 0.05133399739861488, 0.06282500177621841, 0.07431599497795105, 0.08580699563026428, 0.09729799628257751, 0.10878899693489075, 0.12027999758720398]], 'valid_percent': 100.0, 'masked_pixels': 0.0, 'valid_pixels': 144.0, 'percentile_2': 0.008400599788874388, 'percentile_98': 0.06287260219454754}}}}
+{'type': 'Feature', 'geometry': {'type': 'Polygon', 'coordinates': [[[-95.0, 29.0], [-95.0, 33.0], [-104.0, 33.0], [-104.0, 29.0], [-95.0, 29.0]]]}, 'properties': {'statistics': {'b1': {'min': 0.00279000005684793, 'max': 0.11008000373840332, 'mean': 0.024345417817433674, 'count': 144.0, 'sum': 3.505740165710449, 'std': 0.023211572679445656, 'median': 0.016589999198913574, 'majority': 0.0106800002977252, 'minority': 0.00279000005684793, 'unique': 143.0, 'histogram': [[59.0, 42.0, 13.0, 8.0, 7.0, 3.0, 4.0, 4.0, 1.0, 3.0], [0.00279000005684793, 0.013519000262022018, 0.024248000234365463, 0.03497700020670891, 0.04570600017905235, 0.0564350001513958, 0.06716400384902954, 0.07789300382137299, 0.08862200379371643, 0.09935100376605988, 0.11008000373840332]], 'valid_percent': 100.0, 'masked_pixels': 0.0, 'valid_pixels': 144.0, 'percentile_2': 0.004025000231340527, 'percentile_98': 0.0915871956944464}}}}
+{'type': 'Feature', 'geometry': {'type': 'Polygon', 'coordinates': [[[-95.0, 29.0], [-95.0, 33.0], [-104.0, 33.0], [-104.0, 29.0], [-95.0, 29.0]]]}, 'properties': {'statistics': {'b1': {'min': 0.0017600000137463212, 'max': 0.09205999970436096, 'mean': 0.026307917303509183, 'count': 144.0, 'sum': 3.7883400917053223, 'std': 0.022221185553908937, 'median': 0.021140001714229584, 'majority': 0.006440000142902136, 'minority': 0.0017600000137463212, 'unique': 142.0, 'histogram': [[43.0, 24.0, 39.0, 7.0, 5.0, 8.0, 3.0, 5.0, 6.0, 4.0], [0.0017600000137463212, 0.01078999973833561, 0.019819999113678932, 0.028850000351667404, 0.03787999972701073, 0.04690999910235405, 0.05593999847769737, 0.064970001578331, 0.07400000095367432, 0.08303000032901764, 0.09205999970436096]], 'valid_percent': 100.0, 'masked_pixels': 0.0, 'valid_pixels': 144.0, 'percentile_2': 0.002627599970437586, 'percentile_98': 0.08361080422997473}}}}
+{'type': 'Feature', 'geometry': {'type': 'Polygon', 'coordinates': [[[-95.0, 29.0], [-95.0, 33.0], [-104.0, 33.0], [-104.0, 29.0], [-95.0, 29.0]]]}, 'properties': {'statistics': {'b1': {'min': 0.0008999999845400453, 'max': 0.09112999588251114, 'mean': 0.03559562232759264, 'count': 144.0, 'sum': 5.12576961517334, 'std': 0.026430877649113758, 'median': 0.03622499853372574, 'majority': 0.004469999577850103, 'minority': 0.0008999999845400453, 'unique': 142.0, 'histogram': [[41.0, 13.0, 11.0, 8.0, 8.0, 27.0, 15.0, 4.0, 10.0, 7.0], [0.0008999999845400453, 0.009922999888658524, 0.018945999443531036, 0.02796899899840355, 0.03699199855327606, 0.046014998108148575, 0.05503799766302109, 0.0640609934926033, 0.07308399677276611, 0.08210699260234833, 0.09112999588251114]], 'valid_percent': 100.0, 'masked_pixels': 0.0, 'valid_pixels': 144.0, 'percentile_2': 0.0019529999303631483, 'percentile_98': 0.0890952034294605}}}}
+{'type': 'Feature', 'geometry': {'type': 'Polygon', 'coordinates': [[[-95.0, 29.0], [-95.0, 33.0], [-104.0, 33.0], [-104.0, 29.0], [-95.0, 29.0]]]}, 'properties': {'statistics': {'b1': {'min': 0.0007799999439157546, 'max': 0.08858999609947205, 'mean': 0.03718868229124281, 'count': 144.0, 'sum': 5.355170249938965, 'std': 0.027129384239557432, 'median': 0.03639500215649605, 'majority': 0.0007799999439157546, 'minority': 0.0007799999439157546, 'unique': 144.0, 'histogram': [[37.0, 16.0, 10.0, 8.0, 7.0, 13.0, 23.0, 10.0, 13.0, 7.0], [0.0007799999439157546, 0.00956099946051836, 0.018341999500989914, 0.027122998610138893, 0.03590399771928787, 0.044684998691082, 0.05346599593758583, 0.06224699690937996, 0.07102799415588379, 0.07980899512767792, 0.08858999609947205]], 'valid_percent': 100.0, 'masked_pixels': 0.0, 'valid_pixels': 144.0, 'percentile_2': 0.0018957999441772699, 'percentile_98': 0.08532879754900931}}}}
+{'type': 'Feature', 'geometry': {'type': 'Polygon', 'coordinates': [[[-95.0, 29.0], [-95.0, 33.0], [-104.0, 33.0], [-104.0, 29.0], [-95.0, 29.0]]]}, 'properties': {'statistics': {'b1': {'min': 0.0016900000628083944, 'max': 0.07927999645471573, 'mean': 0.03884173764122857, 'count': 144.0, 'sum': 5.593210220336914, 'std': 0.022450057761942248, 'median': 0.04303500056266785, 'majority': 0.01809000037610531, 'minority': 0.0016900000628083944, 'unique': 141.0, 'histogram': [[24.0, 13.0, 12.0, 8.0, 13.0, 8.0, 23.0, 22.0, 17.0, 4.0], [0.0016900000628083944, 0.009448999539017677, 0.017207998782396317, 0.024966999888420105, 0.032725997269153595, 0.04048499837517738, 0.04824399948120117, 0.05600299686193466, 0.06376199424266815, 0.07152099907398224, 0.07927999645471573]], 'valid_percent': 100.0, 'masked_pixels': 0.0, 'valid_pixels': 144.0, 'percentile_2': 0.0024596000276505946, 'percentile_98': 0.07269859790802001}}}}
+{'type': 'Feature', 'geometry': {'type': 'Polygon', 'coordinates': [[[-95.0, 29.0], [-95.0, 33.0], [-104.0, 33.0], [-104.0, 29.0], [-95.0, 29.0]]]}, 'properties': {'statistics': {'b1': {'min': 0.0021100000012665987, 'max': 0.06109999865293503, 'mean': 0.030846390459272597, 'count': 144.0, 'sum': 4.441880226135254, 'std': 0.016037287799816346, 'median': 0.03548000007867813, 'majority': 0.008899999782443047, 'minority': 0.0021100000012665987, 'unique': 141.0, 'histogram': [[16.0, 18.0, 11.0, 8.0, 10.0, 16.0, 25.0, 28.0, 7.0, 5.0], [0.0021100000012665987, 0.00800899975001812, 0.013907999731600285, 0.01980699971318245, 0.02570599876344204, 0.03160499781370163, 0.03750399872660637, 0.04340299963951111, 0.04930200055241585, 0.05520099774003029, 0.06109999865293503]], 'valid_percent': 100.0, 'masked_pixels': 0.0, 'valid_pixels': 144.0, 'percentile_2': 0.0030635998724028468, 'percentile_98': 0.05628279842436314}}}}
+{'type': 'Feature', 'geometry': {'type': 'Polygon', 'coordinates': [[[-95.0, 29.0], [-95.0, 33.0], [-104.0, 33.0], [-104.0, 29.0], [-95.0, 29.0]]]}, 'properties': {'statistics': {'b1': {'min': 0.0004799999878741801, 'max': 0.07212000340223312, 'mean': 0.03568402926127116, 'count': 144.0, 'sum': 5.138500213623047, 'std': 0.021499407190121077, 'median': 0.04049000144004822, 'majority': 0.0029700000304728746, 'minority': 0.0004799999878741801, 'unique': 142.0, 'histogram': [[25.0, 8.0, 14.0, 11.0, 9.0, 8.0, 17.0, 23.0, 26.0, 3.0], [0.0004799999878741801, 0.0076440004631876945, 0.01480800099670887, 0.02197200059890747, 0.02913600206375122, 0.03630000352859497, 0.04346400126814842, 0.05062800273299217, 0.05779200419783592, 0.06495600193738937, 0.07212000340223312]], 'valid_percent': 100.0, 'masked_pixels': 0.0, 'valid_pixels': 144.0, 'percentile_2': 0.001780399966519326, 'percentile_98': 0.06461060047149655}}}}
+{'type': 'Feature', 'geometry': {'type': 'Polygon', 'coordinates': [[[-95.0, 29.0], [-95.0, 33.0], [-104.0, 33.0], [-104.0, 29.0], [-95.0, 29.0]]]}, 'properties': {'statistics': {'b1': {'min': 0.0013000000035390258, 'max': 0.05904000252485275, 'mean': 0.023294654157426622, 'count': 144.0, 'sum': 3.3544301986694336, 'std': 0.015200583054176308, 'median': 0.018479999154806137, 'majority': 0.007519999984651804, 'minority': 0.0013000000035390258, 'unique': 141.0, 'histogram': [[18.0, 21.0, 33.0, 21.0, 10.0, 5.0, 10.0, 7.0, 16.0, 3.0], [0.0013000000035390258, 0.007074000313878059, 0.012848000973463058, 0.018622001633048058, 0.024396000429987907, 0.030170001089572906, 0.035943999886512756, 0.041718002408742905, 0.047492001205682755, 0.0532660037279129, 0.05904000252485275]], 'valid_percent': 100.0, 'masked_pixels': 0.0, 'valid_pixels': 144.0, 'percentile_2': 0.003224800038151443, 'percentile_98': 0.05274720042943951}}}}
+{'type': 'Feature', 'geometry': {'type': 'Polygon', 'coordinates': [[[-95.0, 29.0], [-95.0, 33.0], [-104.0, 33.0], [-104.0, 29.0], [-95.0, 29.0]]]}, 'properties': {'statistics': {'b1': {'min': 0.000910000002477318, 'max': 0.07355000078678131, 'mean': 0.025642499327659607, 'count': 144.0, 'sum': 3.6925199031829834, 'std': 0.01724505404930817, 'median': 0.02246999926865101, 'majority': 0.002259999979287386, 'minority': 0.000910000002477318, 'unique': 141.0, 'histogram': [[18.0, 22.0, 32.0, 30.0, 16.0, 6.0, 5.0, 5.0, 4.0, 6.0], [0.000910000002477318, 0.008174000307917595, 0.015437999740242958, 0.02270200103521347, 0.029966000467538834, 0.0372299998998642, 0.04449399933218956, 0.05175799876451492, 0.059022001922130585, 0.06628599762916565, 0.07355000078678131]], 'valid_percent': 100.0, 'masked_pixels': 0.0, 'valid_pixels': 144.0, 'percentile_2': 0.0015076000010594726, 'percentile_98': 0.07165260195732115}}}}
+{'type': 'Feature', 'geometry': {'type': 'Polygon', 'coordinates': [[[-95.0, 29.0], [-95.0, 33.0], [-104.0, 33.0], [-104.0, 29.0], [-95.0, 29.0]]]}, 'properties': {'statistics': {'b1': {'min': 0.004480000119656324, 'max': 0.09279000014066696, 'mean': 0.037540694077809654, 'count': 144.0, 'sum': 5.40585994720459, 'std': 0.018541268363815526, 'median': 0.03734999895095825, 'majority': 0.004480000119656324, 'minority': 0.004480000119656324, 'unique': 144.0, 'histogram': [[12.0, 19.0, 24.0, 29.0, 24.0, 18.0, 6.0, 7.0, 2.0, 3.0], [0.004480000119656324, 0.013311000540852547, 0.02214200049638748, 0.030973000451922417, 0.03980400040745735, 0.04863499850034714, 0.05746600031852722, 0.0662970021367073, 0.0751279965043068, 0.08395899832248688, 0.09279000014066696]], 'valid_percent': 100.0, 'masked_pixels': 0.0, 'valid_pixels': 144.0, 'percentile_2': 0.007962000109255313, 'percentile_98': 0.08210959836840617}}}}
+{'type': 'Feature', 'geometry': {'type': 'Polygon', 'coordinates': [[[-95.0, 29.0], [-95.0, 33.0], [-104.0, 33.0], [-104.0, 29.0], [-95.0, 29.0]]]}, 'properties': {'statistics': {'b1': {'min': 0.002329999813809991, 'max': 0.07774999737739563, 'mean': 0.02007236083348592, 'count': 144.0, 'sum': 2.8904199600219727, 'std': 0.01627358378072606, 'median': 0.01680999994277954, 'majority': 0.005309999920427799, 'minority': 0.002329999813809991, 'unique': 141.0, 'histogram': [[47.0, 26.0, 30.0, 18.0, 7.0, 4.0, 6.0, 1.0, 2.0, 3.0], [0.002329999813809991, 0.009871999733150005, 0.017413999885320663, 0.024955999106168747, 0.03249799832701683, 0.040039997547864914, 0.047581996768713, 0.05512399971485138, 0.06266599893569946, 0.07020799815654755, 0.07774999737739563]], 'valid_percent': 100.0, 'masked_pixels': 0.0, 'valid_pixels': 144.0, 'percentile_2': 0.0027435999969020485, 'percentile_98': 0.06720599934458722}}}}
+{'type': 'Feature', 'geometry': {'type': 'Polygon', 'coordinates': [[[-95.0, 29.0], [-95.0, 33.0], [-104.0, 33.0], [-104.0, 29.0], [-95.0, 29.0]]]}, 'properties': {'statistics': {'b1': {'min': 0.004230000078678131, 'max': 0.08630000054836273, 'mean': 0.04253194729487101, 'count': 144.0, 'sum': 6.124600410461426, 'std': 0.021705496615563747, 'median': 0.04095499962568283, 'majority': 0.044360000640153885, 'minority': 0.004230000078678131, 'unique': 143.0, 'histogram': [[13.0, 19.0, 12.0, 14.0, 22.0, 12.0, 19.0, 15.0, 13.0, 5.0], [0.004230000078678131, 0.012436999939382076, 0.02064399980008602, 0.02885100059211254, 0.03705799952149391, 0.04526500031352043, 0.05347200110554695, 0.06167900189757347, 0.06988599896430969, 0.07809299975633621, 0.08630000054836273]], 'valid_percent': 100.0, 'masked_pixels': 0.0, 'valid_pixels': 144.0, 'percentile_2': 0.006000199774280191, 'percentile_98': 0.08124720305204389}}}}
+{'type': 'Feature', 'geometry': {'type': 'Polygon', 'coordinates': [[[-95.0, 29.0], [-95.0, 33.0], [-104.0, 33.0], [-104.0, 29.0], [-95.0, 29.0]]]}, 'properties': {'statistics': {'b1': {'min': 0.0029899999499320984, 'max': 0.10474999994039536, 'mean': 0.031103750069936115, 'count': 144.0, 'sum': 4.478940010070801, 'std': 0.020532103663019885, 'median': 0.027180001139640808, 'majority': 0.02645999938249588, 'minority': 0.0029899999499320984, 'unique': 143.0, 'histogram': [[31.0, 28.0, 33.0, 20.0, 10.0, 9.0, 9.0, 2.0, 0.0, 2.0], [0.0029899999499320984, 0.013166000135242939, 0.02334200032055378, 0.033518001437187195, 0.04369400069117546, 0.05386999994516373, 0.06404600292444229, 0.07422199845314026, 0.08439800143241882, 0.09457399696111679, 0.10474999994039536]], 'valid_percent': 100.0, 'masked_pixels': 0.0, 'valid_pixels': 144.0, 'percentile_2': 0.0043899999558925625, 'percentile_98': 0.07929019749164574}}}}
+{'type': 'Feature', 'geometry': {'type': 'Polygon', 'coordinates': [[[-95.0, 29.0], [-95.0, 33.0], [-104.0, 33.0], [-104.0, 29.0], [-95.0, 29.0]]]}, 'properties': {'statistics': {'b1': {'min': 0.0019500000635161996, 'max': 0.09567999839782715, 'mean': 0.03748777839872572, 'count': 144.0, 'sum': 5.398240089416504, 'std': 0.026188584301631367, 'median': 0.030935000628232956, 'majority': 0.0019500000635161996, 'minority': 0.0019500000635161996, 'unique': 144.0, 'histogram': [[32.0, 14.0, 22.0, 15.0, 15.0, 6.0, 11.0, 17.0, 8.0, 4.0], [0.0019500000635161996, 0.011323000304400921, 0.020695999264717102, 0.030068999156355858, 0.039441999047994614, 0.04881500080227852, 0.058187998831272125, 0.06756100058555603, 0.07693400233983994, 0.08630699664354324, 0.09567999839782715]], 'valid_percent': 100.0, 'masked_pixels': 0.0, 'valid_pixels': 144.0, 'percentile_2': 0.002474600113928318, 'percentile_98': 0.08726740047335621}}}}
+{'type': 'Feature', 'geometry': {'type': 'Polygon', 'coordinates': [[[-95.0, 29.0], [-95.0, 33.0], [-104.0, 33.0], [-104.0, 29.0], [-95.0, 29.0]]]}, 'properties': {'statistics': {'b1': {'min': 0.0029200001154094934, 'max': 0.0968799963593483, 'mean': 0.04769895805252923, 'count': 144.0, 'sum': 6.868649959564209, 'std': 0.024366003789831635, 'median': 0.05101500079035759, 'majority': 0.05066999793052673, 'minority': 0.0029200001154094934, 'unique': 142.0, 'histogram': [[11.0, 17.0, 17.0, 14.0, 10.0, 27.0, 15.0, 14.0, 14.0, 5.0], [0.0029200001154094934, 0.01231599971652031, 0.02171199955046177, 0.03110799938440323, 0.04050399735569954, 0.04989999905228615, 0.05929599702358246, 0.06869199872016907, 0.07808800041675568, 0.08748399466276169, 0.0968799963593483]], 'valid_percent': 100.0, 'masked_pixels': 0.0, 'valid_pixels': 144.0, 'percentile_2': 0.0048998001031577585, 'percentile_98': 0.08831180214881894}}}}
+{'type': 'Feature', 'geometry': {'type': 'Polygon', 'coordinates': [[[-95.0, 29.0], [-95.0, 33.0], [-104.0, 33.0], [-104.0, 29.0], [-95.0, 29.0]]]}, 'properties': {'statistics': {'b1': {'min': 0.003339999821037054, 'max': 0.08669999986886978, 'mean': 0.046185347768995494, 'count': 144.0, 'sum': 6.650690078735352, 'std': 0.0224757176301599, 'median': 0.051545001566410065, 'majority': 0.003339999821037054, 'minority': 0.003339999821037054, 'unique': 144.0, 'histogram': [[10.0, 16.0, 16.0, 8.0, 12.0, 16.0, 24.0, 18.0, 16.0, 8.0], [0.003339999821037054, 0.011675999499857426, 0.02001200057566166, 0.028348000720143318, 0.03668399900197983, 0.04501999914646149, 0.053355999290943146, 0.061691999435424805, 0.07002799957990646, 0.07836399972438812, 0.08669999986886978]], 'valid_percent': 100.0, 'masked_pixels': 0.0, 'valid_pixels': 144.0, 'percentile_2': 0.004448200291953981, 'percentile_98': 0.07962159886956213}}}}
+{'type': 'Feature', 'geometry': {'type': 'Polygon', 'coordinates': [[[-95.0, 29.0], [-95.0, 33.0], [-104.0, 33.0], [-104.0, 29.0], [-95.0, 29.0]]]}, 'properties': {'statistics': {'b1': {'min': 0.0028199998196214437, 'max': 0.07129000127315521, 'mean': 0.03930485910839505, 'count': 144.0, 'sum': 5.659899711608887, 'std': 0.01825327903146533, 'median': 0.04340999945998192, 'majority': 0.0471000000834465, 'minority': 0.0028199998196214437, 'unique': 142.0, 'histogram': [[7.0, 17.0, 16.0, 7.0, 12.0, 15.0, 26.0, 18.0, 17.0, 9.0], [0.0028199998196214437, 0.00966699980199337, 0.016513999551534653, 0.023361001163721085, 0.030208000913262367, 0.03705500066280365, 0.04390200227499008, 0.050749000161886215, 0.05759600177407265, 0.06444299966096878, 0.07129000127315521]], 'valid_percent': 100.0, 'masked_pixels': 0.0, 'valid_pixels': 144.0, 'percentile_2': 0.0063736001215875145, 'percentile_98': 0.06938820123672486}}}}
+{'type': 'Feature', 'geometry': {'type': 'Polygon', 'coordinates': [[[-95.0, 29.0], [-95.0, 33.0], [-104.0, 33.0], [-104.0, 29.0], [-95.0, 29.0]]]}, 'properties': {'statistics': {'b1': {'min': 0.00203999993391335, 'max': 0.0631600022315979, 'mean': 0.032681667142444186, 'count': 144.0, 'sum': 4.706160068511963, 'std': 0.0154042376842744, 'median': 0.03631500154733658, 'majority': 0.009080000221729279, 'minority': 0.00203999993391335, 'unique': 141.0, 'histogram': [[8.0, 19.0, 15.0, 10.0, 9.0, 18.0, 29.0, 23.0, 11.0, 2.0], [0.00203999993391335, 0.008152000606060028, 0.014264000579714775, 0.020376000553369522, 0.02648800052702427, 0.032600000500679016, 0.03871200233697891, 0.04482400044798851, 0.050936002284288406, 0.057048000395298004, 0.0631600022315979]], 'valid_percent': 100.0, 'masked_pixels': 0.0, 'valid_pixels': 144.0, 'percentile_2': 0.005710200117900967, 'percentile_98': 0.05662180036306381}}}}
+{'type': 'Feature', 'geometry': {'type': 'Polygon', 'coordinates': [[[-95.0, 29.0], [-95.0, 33.0], [-104.0, 33.0], [-104.0, 29.0], [-95.0, 29.0]]]}, 'properties': {'statistics': {'b1': {'min': 0.0022100000642240047, 'max': 0.055740002542734146, 'mean': 0.028897013929155137, 'count': 144.0, 'sum': 4.16117000579834, 'std': 0.012913142451414235, 'median': 0.03076000139117241, 'majority': 0.015930000692605972, 'minority': 0.0022100000642240047, 'unique': 143.0, 'histogram': [[5.0, 17.0, 19.0, 12.0, 10.0, 23.0, 25.0, 19.0, 12.0, 2.0], [0.0022100000642240047, 0.0075630005449056625, 0.012916000559926033, 0.018269000574946404, 0.023622000589966774, 0.028975000604987144, 0.034328002482652664, 0.039681002497673035, 0.045034002512693405, 0.050387002527713776, 0.055740002542734146]], 'valid_percent': 100.0, 'masked_pixels': 0.0, 'valid_pixels': 144.0, 'percentile_2': 0.005246599875390529, 'percentile_98': 0.04983559884130954}}}}
+{'type': 'Feature', 'geometry': {'type': 'Polygon', 'coordinates': [[[-95.0, 29.0], [-95.0, 33.0], [-104.0, 33.0], [-104.0, 29.0], [-95.0, 29.0]]]}, 'properties': {'statistics': {'b1': {'min': 0.0016599999507889152, 'max': 0.043949998915195465, 'mean': 0.01897493004798889, 'count': 144.0, 'sum': 2.7323899269104004, 'std': 0.01057707606682913, 'median': 0.019634999334812164, 'majority': 0.007969999685883522, 'minority': 0.0016599999507889152, 'unique': 142.0, 'histogram': [[17.0, 22.0, 17.0, 13.0, 22.0, 13.0, 22.0, 10.0, 5.0, 3.0], [0.0016599999507889152, 0.005888999905437231, 0.010118000209331512, 0.014347000047564507, 0.0185759998857975, 0.022804999724030495, 0.02703399956226349, 0.031262997537851334, 0.03549199923872948, 0.03972099721431732, 0.043949998915195465]], 'valid_percent': 100.0, 'masked_pixels': 0.0, 'valid_pixels': 144.0, 'percentile_2': 0.0027435999969020485, 'percentile_98': 0.0394056000560522}}}}
+{'type': 'Feature', 'geometry': {'type': 'Polygon', 'coordinates': [[[-95.0, 29.0], [-95.0, 33.0], [-104.0, 33.0], [-104.0, 29.0], [-95.0, 29.0]]]}, 'properties': {'statistics': {'b1': {'min': 0.0019500000635161996, 'max': 0.0709499940276146, 'mean': 0.030600415335761175, 'count': 144.0, 'sum': 4.406459808349609, 'std': 0.017468413426338997, 'median': 0.0308150015771389, 'majority': 0.014779999852180481, 'minority': 0.0019500000635161996, 'unique': 141.0, 'histogram': [[16.0, 23.0, 21.0, 11.0, 14.0, 18.0, 18.0, 14.0, 7.0, 2.0], [0.0019500000635161996, 0.008849999867379665, 0.01574999839067459, 0.02264999784529209, 0.02954999729990959, 0.03644999861717224, 0.04334999620914459, 0.05024999752640724, 0.05714999511837959, 0.06404999643564224, 0.0709499940276146]], 'valid_percent': 100.0, 'masked_pixels': 0.0, 'valid_pixels': 144.0, 'percentile_2': 0.003624799968674779, 'percentile_98': 0.060461200326681126}}}}
+{'type': 'Feature', 'geometry': {'type': 'Polygon', 'coordinates': [[[-95.0, 29.0], [-95.0, 33.0], [-104.0, 33.0], [-104.0, 29.0], [-95.0, 29.0]]]}, 'properties': {'statistics': {'b1': {'min': 0.0032599999103695154, 'max': 0.11281999945640564, 'mean': 0.050182223320007324, 'count': 144.0, 'sum': 7.226240158081055, 'std': 0.02989560145882491, 'median': 0.05178000032901764, 'majority': 0.006020000204443932, 'minority': 0.0032599999103695154, 'unique': 142.0, 'histogram': [[25.0, 18.0, 12.0, 10.0, 14.0, 19.0, 17.0, 18.0, 8.0, 3.0], [0.0032599999103695154, 0.014216000214219093, 0.025171998888254166, 0.03612799942493439, 0.04708399996161461, 0.05804000049829483, 0.06899599730968475, 0.07995200157165527, 0.0909079983830452, 0.10186400264501572, 0.11281999945640564]], 'valid_percent': 100.0, 'masked_pixels': 0.0, 'valid_pixels': 144.0, 'percentile_2': 0.004616800155490637, 'percentile_98': 0.10152059882879254}}}}
+{'type': 'Feature', 'geometry': {'type': 'Polygon', 'coordinates': [[[-95.0, 29.0], [-95.0, 33.0], [-104.0, 33.0], [-104.0, 29.0], [-95.0, 29.0]]]}, 'properties': {'statistics': {'b1': {'min': 0.004900000058114529, 'max': 0.06498999893665314, 'mean': 0.026742918623818293, 'count': 144.0, 'sum': 3.850980281829834, 'std': 0.010027023796084816, 'median': 0.02634499967098236, 'majority': 0.020360000431537628, 'minority': 0.004900000058114529, 'unique': 141.0, 'histogram': [[5.0, 17.0, 34.0, 35.0, 25.0, 16.0, 9.0, 2.0, 0.0, 1.0], [0.004900000058114529, 0.010909000411629677, 0.01691799983382225, 0.022926999256014824, 0.028935998678207397, 0.03494499996304512, 0.04095400124788284, 0.04696299880743027, 0.05297200009226799, 0.058980997651815414, 0.06498999893665314]], 'valid_percent': 100.0, 'masked_pixels': 0.0, 'valid_pixels': 144.0, 'percentile_2': 0.0076062000170350075, 'percentile_98': 0.04709779791533944}}}}
+{'type': 'Feature', 'geometry': {'type': 'Polygon', 'coordinates': [[[-95.0, 29.0], [-95.0, 33.0], [-104.0, 33.0], [-104.0, 29.0], [-95.0, 29.0]]]}, 'properties': {'statistics': {'b1': {'min': 0.004130000248551369, 'max': 0.10435999929904938, 'mean': 0.04507527748743693, 'count': 144.0, 'sum': 6.490839958190918, 'std': 0.02515187514707962, 'median': 0.046629998832941055, 'majority': 0.07158000022172928, 'minority': 0.004130000248551369, 'unique': 143.0, 'histogram': [[22.0, 17.0, 12.0, 13.0, 28.0, 25.0, 9.0, 4.0, 9.0, 5.0], [0.004130000248551369, 0.014152999967336655, 0.02417599968612194, 0.03419899940490723, 0.04422200098633766, 0.0542449988424778, 0.06426800042390823, 0.07429099828004837, 0.08431399613618851, 0.09433700144290924, 0.10435999929904938]], 'valid_percent': 100.0, 'masked_pixels': 0.0, 'valid_pixels': 144.0, 'percentile_2': 0.005559399928897619, 'percentile_98': 0.09843579709529872}}}}
+{'type': 'Feature', 'geometry': {'type': 'Polygon', 'coordinates': [[[-95.0, 29.0], [-95.0, 33.0], [-104.0, 33.0], [-104.0, 29.0], [-95.0, 29.0]]]}, 'properties': {'statistics': {'b1': {'min': 0.0034799999557435513, 'max': 0.13313999772071838, 'mean': 0.053249233298831515, 'count': 144.0, 'sum': 7.667889595031738, 'std': 0.036959196652268794, 'median': 0.04733999818563461, 'majority': 0.013890000060200691, 'minority': 0.0034799999557435513, 'unique': 143.0, 'histogram': [[32.0, 29.0, 9.0, 4.0, 8.0, 19.0, 18.0, 13.0, 9.0, 3.0], [0.0034799999557435513, 0.016445999965071678, 0.029411999508738518, 0.04237800091505051, 0.055344000458717346, 0.06831000000238419, 0.08127599954605103, 0.09424199908971786, 0.1072079986333847, 0.12017399817705154, 0.13313999772071838]], 'valid_percent': 100.0, 'masked_pixels': 0.0, 'valid_pixels': 144.0, 'percentile_2': 0.005496999714523554, 'percentile_98': 0.11627219691872581}}}}
+{'type': 'Feature', 'geometry': {'type': 'Polygon', 'coordinates': [[[-95.0, 29.0], [-95.0, 33.0], [-104.0, 33.0], [-104.0, 29.0], [-95.0, 29.0]]]}, 'properties': {'statistics': {'b1': {'min': 0.0018599999602884054, 'max': 0.11883000284433365, 'mean': 0.05321451359324985, 'count': 144.0, 'sum': 7.6628899574279785, 'std': 0.03444915496096943, 'median': 0.05283500254154205, 'majority': 0.0018599999602884054, 'minority': 0.0018599999602884054, 'unique': 144.0, 'histogram': [[28.0, 19.0, 7.0, 12.0, 12.0, 10.0, 18.0, 22.0, 12.0, 4.0], [0.0018599999602884054, 0.01355700008571148, 0.02525399997830391, 0.03695100173354149, 0.04864799976348877, 0.06034500151872635, 0.07204200327396393, 0.08373900502920151, 0.09543599933385849, 0.10713300108909607, 0.11883000284433365]], 'valid_percent': 100.0, 'masked_pixels': 0.0, 'valid_pixels': 144.0, 'percentile_2': 0.003578200074844062, 'percentile_98': 0.11195479452610012}}}}
+{'type': 'Feature', 'geometry': {'type': 'Polygon', 'coordinates': [[[-95.0, 29.0], [-95.0, 33.0], [-104.0, 33.0], [-104.0, 29.0], [-95.0, 29.0]]]}, 'properties': {'statistics': {'b1': {'min': 0.0012700000079348683, 'max': 0.09498000144958496, 'mean': 0.04383604062928094, 'count': 144.0, 'sum': 6.312389850616455, 'std': 0.02683307318265766, 'median': 0.04803499951958656, 'majority': 0.07098999619483948, 'minority': 0.0012700000079348683, 'unique': 143.0, 'histogram': [[24.0, 16.0, 8.0, 7.0, 18.0, 23.0, 18.0, 7.0, 13.0, 10.0], [0.0012700000079348683, 0.010641000233590603, 0.02001200057566166, 0.02938299998641014, 0.03875400125980377, 0.0481250025331974, 0.057496000081300735, 0.06686700135469437, 0.0762379989027977, 0.08560900390148163, 0.09498000144958496]], 'valid_percent': 100.0, 'masked_pixels': 0.0, 'valid_pixels': 144.0, 'percentile_2': 0.002155400055926293, 'percentile_98': 0.09119139999151228}}}}
+{'type': 'Feature', 'geometry': {'type': 'Polygon', 'coordinates': [[[-95.0, 29.0], [-95.0, 33.0], [-104.0, 33.0], [-104.0, 29.0], [-95.0, 29.0]]]}, 'properties': {'statistics': {'b1': {'min': 0.0031199997756630182, 'max': 0.08562999963760376, 'mean': 0.0423827071984609, 'count': 144.0, 'sum': 6.103109836578369, 'std': 0.021491516055638666, 'median': 0.043954998254776, 'majority': 0.043480001389980316, 'minority': 0.0031199997756630182, 'unique': 142.0, 'histogram': [[11.0, 19.0, 12.0, 16.0, 14.0, 25.0, 16.0, 10.0, 13.0, 8.0], [0.0031199997756630182, 0.011370999738574028, 0.01962199993431568, 0.027873000130057335, 0.03612399846315384, 0.04437499865889549, 0.052625998854637146, 0.0608769990503788, 0.06912799924612045, 0.0773790031671524, 0.08562999963760376]], 'valid_percent': 100.0, 'masked_pixels': 0.0, 'valid_pixels': 144.0, 'percentile_2': 0.0060454000905156135, 'percentile_98': 0.08324719682335852}}}}
+{'type': 'Feature', 'geometry': {'type': 'Polygon', 'coordinates': [[[-95.0, 29.0], [-95.0, 33.0], [-104.0, 33.0], [-104.0, 29.0], [-95.0, 29.0]]]}, 'properties': {'statistics': {'b1': {'min': 0.0031199997756630182, 'max': 0.09251999855041504, 'mean': 0.044212917486826576, 'count': 144.0, 'sum': 6.366660118103027, 'std': 0.022198982333314056, 'median': 0.04652000218629837, 'majority': 0.019579999148845673, 'minority': 0.0031199997756630182, 'unique': 143.0, 'histogram': [[11.0, 20.0, 13.0, 17.0, 13.0, 24.0, 16.0, 17.0, 10.0, 3.0], [0.0031199997756630182, 0.012059999629855156, 0.020999999716877937, 0.02993999980390072, 0.03887999802827835, 0.04781999811530113, 0.056759998202323914, 0.065700002014637, 0.07463999837636948, 0.08358000218868256, 0.09251999855041504]], 'valid_percent': 100.0, 'masked_pixels': 0.0, 'valid_pixels': 144.0, 'percentile_2': 0.006731399912387132, 'percentile_98': 0.08420620173215859}}}}
+{'type': 'Feature', 'geometry': {'type': 'Polygon', 'coordinates': [[[-95.0, 29.0], [-95.0, 33.0], [-104.0, 33.0], [-104.0, 29.0], [-95.0, 29.0]]]}, 'properties': {'statistics': {'b1': {'min': 0.002190000144764781, 'max': 0.05490000173449516, 'mean': 0.0260893056790034, 'count': 144.0, 'sum': 3.7568600177764893, 'std': 0.011225081591809651, 'median': 0.026519998908042908, 'majority': 0.016520000994205475, 'minority': 0.002190000144764781, 'unique': 143.0, 'histogram': [[6.0, 13.0, 21.0, 14.0, 32.0, 27.0, 9.0, 12.0, 8.0, 2.0], [0.002190000144764781, 0.007461000233888626, 0.012732000090181828, 0.01800299994647503, 0.023274000734090805, 0.02854500152170658, 0.03381600230932236, 0.039087001234292984, 0.04435800015926361, 0.049629002809524536, 0.05490000173449516]], 'valid_percent': 100.0, 'masked_pixels': 0.0, 'valid_pixels': 144.0, 'percentile_2': 0.005583000080659985, 'percentile_98': 0.04759120009839535}}}}
+{'type': 'Feature', 'geometry': {'type': 'Polygon', 'coordinates': [[[-95.0, 29.0], [-95.0, 33.0], [-104.0, 33.0], [-104.0, 29.0], [-95.0, 29.0]]]}, 'properties': {'statistics': {'b1': {'min': 0.0025100000202655792, 'max': 0.055959999561309814, 'mean': 0.030692083968056574, 'count': 144.0, 'sum': 4.4196600914001465, 'std': 0.013379320800777465, 'median': 0.032475002110004425, 'majority': 0.038919996470212936, 'minority': 0.0025100000202655792, 'unique': 140.0, 'histogram': [[6.0, 14.0, 13.0, 12.0, 19.0, 12.0, 26.0, 23.0, 13.0, 6.0], [0.0025100000202655792, 0.007854999974370003, 0.013199999928474426, 0.01854499988257885, 0.023889999836683273, 0.029234999790787697, 0.03457999974489212, 0.03992500156164169, 0.04526999965310097, 0.05061499774456024, 0.055959999561309814]], 'valid_percent': 100.0, 'masked_pixels': 0.0, 'valid_pixels': 144.0, 'percentile_2': 0.005497799981385469, 'percentile_98': 0.05199739806354045}}}}
+{'type': 'Feature', 'geometry': {'type': 'Polygon', 'coordinates': [[[-95.0, 29.0], [-95.0, 33.0], [-104.0, 33.0], [-104.0, 29.0], [-95.0, 29.0]]]}, 'properties': {'statistics': {'b1': {'min': 0.0002899999963119626, 'max': 0.060669999569654465, 'mean': 0.02474159664577908, 'count': 144.0, 'sum': 3.5627899169921875, 'std': 0.01799680171642661, 'median': 0.028704999014735222, 'majority': 0.0016599999507889152, 'minority': 0.0002899999963119626, 'unique': 143.0, 'histogram': [[41.0, 12.0, 9.0, 3.0, 11.0, 13.0, 29.0, 15.0, 10.0, 1.0], [0.0002899999963119626, 0.006327999755740166, 0.01236599963158369, 0.018403999507427216, 0.024442000314593315, 0.030479999259114265, 0.036518000066280365, 0.042555999010801315, 0.048593997955322266, 0.054632000625133514, 0.060669999569654465]], 'valid_percent': 100.0, 'masked_pixels': 0.0, 'valid_pixels': 144.0, 'percentile_2': 0.0008383999881334602, 'percentile_98': 0.05127940125763415}}}}
+{'type': 'Feature', 'geometry': {'type': 'Polygon', 'coordinates': [[[-95.0, 29.0], [-95.0, 33.0], [-104.0, 33.0], [-104.0, 29.0], [-95.0, 29.0]]]}, 'properties': {'statistics': {'b1': {'min': 0.0010400000028312206, 'max': 0.08469999581575394, 'mean': 0.03127937846713596, 'count': 144.0, 'sum': 4.504230499267578, 'std': 0.01834563358661271, 'median': 0.0305899977684021, 'majority': 0.00925000011920929, 'minority': 0.0010400000028312206, 'unique': 142.0, 'histogram': [[23.0, 17.0, 19.0, 24.0, 27.0, 13.0, 9.0, 8.0, 3.0, 1.0], [0.0010400000028312206, 0.009405999444425106, 0.017771998420357704, 0.026137998327612877, 0.0345040000975132, 0.04286999627947807, 0.051235996186733246, 0.05960199609398842, 0.06796799600124359, 0.07633399963378906, 0.08469999581575394]], 'valid_percent': 100.0, 'masked_pixels': 0.0, 'valid_pixels': 144.0, 'percentile_2': 0.0024726000148802994, 'percentile_98': 0.0684960040450096}}}}
+{'type': 'Feature', 'geometry': {'type': 'Polygon', 'coordinates': [[[-95.0, 29.0], [-95.0, 33.0], [-104.0, 33.0], [-104.0, 29.0], [-95.0, 29.0]]]}, 'properties': {'statistics': {'b1': {'min': 0.00394000019878149, 'max': 0.07862000167369843, 'mean': 0.041329026222229004, 'count': 144.0, 'sum': 5.951379776000977, 'std': 0.02077212844230324, 'median': 0.044484999030828476, 'majority': 0.00394000019878149, 'minority': 0.00394000019878149, 'unique': 144.0, 'histogram': [[16.0, 15.0, 12.0, 11.0, 12.0, 16.0, 17.0, 21.0, 20.0, 4.0], [0.00394000019878149, 0.011408000253140926, 0.018876001238822937, 0.026344001293182373, 0.03381200134754181, 0.041280001401901245, 0.04874800145626068, 0.05621600151062012, 0.06368400156497955, 0.07115200161933899, 0.07862000167369843]], 'valid_percent': 100.0, 'masked_pixels': 0.0, 'valid_pixels': 144.0, 'percentile_2': 0.005407600039616227, 'percentile_98': 0.073801202327013}}}}
+{'type': 'Feature', 'geometry': {'type': 'Polygon', 'coordinates': [[[-95.0, 29.0], [-95.0, 33.0], [-104.0, 33.0], [-104.0, 29.0], [-95.0, 29.0]]]}, 'properties': {'statistics': {'b1': {'min': 0.0013500000350177288, 'max': 0.10216999799013138, 'mean': 0.049925416707992554, 'count': 144.0, 'sum': 7.189260005950928, 'std': 0.030990763971114128, 'median': 0.05990000069141388, 'majority': 0.05990000069141388, 'minority': 0.0013500000350177288, 'unique': 143.0, 'histogram': [[28.0, 14.0, 9.0, 8.0, 6.0, 9.0, 23.0, 24.0, 18.0, 5.0], [0.0013500000350177288, 0.011431999504566193, 0.02151400037109852, 0.031596001237630844, 0.04167800024151802, 0.0517599992454052, 0.061841998249292374, 0.07192400097846985, 0.08200599998235703, 0.0920879989862442, 0.10216999799013138]], 'valid_percent': 100.0, 'masked_pixels': 0.0, 'valid_pixels': 144.0, 'percentile_2': 0.003140400005504489, 'percentile_98': 0.09795260310173033}}}}
+{'type': 'Feature', 'geometry': {'type': 'Polygon', 'coordinates': [[[-95.0, 29.0], [-95.0, 33.0], [-104.0, 33.0], [-104.0, 29.0], [-95.0, 29.0]]]}, 'properties': {'statistics': {'b1': {'min': 0.00139999995008111, 'max': 0.084989994764328, 'mean': 0.025671250290340848, 'count': 144.0, 'sum': 3.696660041809082, 'std': 0.015559532108854792, 'median': 0.025834999978542328, 'majority': 0.010579999536275864, 'minority': 0.00139999995008111, 'unique': 143.0, 'histogram': [[27.0, 23.0, 25.0, 30.0, 24.0, 8.0, 2.0, 3.0, 1.0, 1.0], [0.00139999995008111, 0.009758999571204185, 0.01811799965798855, 0.026476997882127762, 0.034835997968912125, 0.04319499805569649, 0.05155399814248085, 0.059912994503974915, 0.06827199459075928, 0.07663099467754364, 0.084989994764328]], 'valid_percent': 100.0, 'masked_pixels': 0.0, 'valid_pixels': 144.0, 'percentile_2': 0.003628999856300652, 'percentile_98': 0.06457839861512182}}}}
+{'type': 'Feature', 'geometry': {'type': 'Polygon', 'coordinates': [[[-95.0, 29.0], [-95.0, 33.0], [-104.0, 33.0], [-104.0, 29.0], [-95.0, 29.0]]]}, 'properties': {'statistics': {'b1': {'min': 0.0016900000628083944, 'max': 0.10486000031232834, 'mean': 0.03022159801589118, 'count': 144.0, 'sum': 4.35191011428833, 'std': 0.0238466630264251, 'median': 0.02398499846458435, 'majority': 0.005219999700784683, 'minority': 0.0016900000628083944, 'unique': 141.0, 'histogram': [[40.0, 30.0, 24.0, 12.0, 9.0, 14.0, 6.0, 5.0, 2.0, 2.0], [0.0016900000628083944, 0.012006999924778938, 0.02232399955391884, 0.03264100104570389, 0.04295799881219864, 0.05327500030398369, 0.06359200179576874, 0.07390899956226349, 0.08422599732875824, 0.09454300254583359, 0.10486000031232834]], 'valid_percent': 100.0, 'masked_pixels': 0.0, 'valid_pixels': 144.0, 'percentile_2': 0.0030530001409351825, 'percentile_98': 0.08600920066237445}}}}
+{'type': 'Feature', 'geometry': {'type': 'Polygon', 'coordinates': [[[-95.0, 29.0], [-95.0, 33.0], [-104.0, 33.0], [-104.0, 29.0], [-95.0, 29.0]]]}, 'properties': {'statistics': {'b1': {'min': 0.0015499999281018972, 'max': 0.12323000282049179, 'mean': 0.0502009027534061, 'count': 144.0, 'sum': 7.2289299964904785, 'std': 0.03210830357895344, 'median': 0.05444499850273132, 'majority': 0.050509996712207794, 'minority': 0.0015499999281018972, 'unique': 143.0, 'histogram': [[29.0, 16.0, 10.0, 11.0, 23.0, 24.0, 13.0, 8.0, 5.0, 5.0], [0.0015499999281018972, 0.01371800061315298, 0.02588600106537342, 0.038054000586271286, 0.0502220019698143, 0.06238999962806702, 0.07455800473690033, 0.08672600239515305, 0.09889400005340576, 0.11106200516223907, 0.12323000282049179]], 'valid_percent': 100.0, 'masked_pixels': 0.0, 'valid_pixels': 144.0, 'percentile_2': 0.00343039988540113, 'percentile_98': 0.11542940571904177}}}}
+{'type': 'Feature', 'geometry': {'type': 'Polygon', 'coordinates': [[[-95.0, 29.0], [-95.0, 33.0], [-104.0, 33.0], [-104.0, 29.0], [-95.0, 29.0]]]}, 'properties': {'statistics': {'b1': {'min': 0.0009299999801442027, 'max': 0.10660000145435333, 'mean': 0.03652916683091058, 'count': 144.0, 'sum': 5.260200023651123, 'std': 0.027996289895227556, 'median': 0.026884999126195908, 'majority': 0.023120000958442688, 'minority': 0.0009299999801442027, 'unique': 142.0, 'histogram': [[35.0, 25.0, 20.0, 8.0, 15.0, 14.0, 8.0, 10.0, 4.0, 5.0], [0.0009299999801442027, 0.011497000232338905, 0.022064000368118286, 0.03263099864125252, 0.04319800063967705, 0.05376499891281128, 0.06433200091123581, 0.07489900290966034, 0.08546599745750427, 0.0960329994559288, 0.10660000145435333]], 'valid_percent': 100.0, 'masked_pixels': 0.0, 'valid_pixels': 144.0, 'percentile_2': 0.0023437999561429024, 'percentile_98': 0.09923380047082901}}}}
+{'type': 'Feature', 'geometry': {'type': 'Polygon', 'coordinates': [[[-95.0, 29.0], [-95.0, 33.0], [-104.0, 33.0], [-104.0, 29.0], [-95.0, 29.0]]]}, 'properties': {'statistics': {'b1': {'min': 0.0004799999878741801, 'max': 0.09493999928236008, 'mean': 0.04227527644899157, 'count': 144.0, 'sum': 6.087639808654785, 'std': 0.02646254630165413, 'median': 0.048100002110004425, 'majority': 0.05290000140666962, 'minority': 0.0004799999878741801, 'unique': 142.0, 'histogram': [[29.0, 12.0, 8.0, 10.0, 12.0, 24.0, 16.0, 18.0, 12.0, 3.0], [0.0004799999878741801, 0.00992599967867136, 0.0193719994276762, 0.028818000108003616, 0.03826399892568588, 0.04771000146865845, 0.057156000286340714, 0.06660199910402298, 0.07604800164699554, 0.08549399673938751, 0.09493999928236008]], 'valid_percent': 100.0, 'masked_pixels': 0.0, 'valid_pixels': 144.0, 'percentile_2': 0.0013987999223172664, 'percentile_98': 0.08443980172276494}}}}
+{'type': 'Feature', 'geometry': {'type': 'Polygon', 'coordinates': [[[-95.0, 29.0], [-95.0, 33.0], [-104.0, 33.0], [-104.0, 29.0], [-95.0, 29.0]]]}, 'properties': {'statistics': {'b1': {'min': 0.002300000051036477, 'max': 0.07605000585317612, 'mean': 0.03749214940600925, 'count': 144.0, 'sum': 5.398869514465332, 'std': 0.01917998570604722, 'median': 0.04084999859333038, 'majority': 0.04556000232696533, 'minority': 0.002300000051036477, 'unique': 142.0, 'histogram': [[13.0, 22.0, 8.0, 11.0, 14.0, 22.0, 21.0, 18.0, 10.0, 5.0], [0.002300000051036477, 0.009675000794231892, 0.01705000177025795, 0.024425001814961433, 0.03180000185966492, 0.03917500376701355, 0.046550001949071884, 0.05392500385642052, 0.06130000576376915, 0.06867500394582748, 0.07605000585317612]], 'valid_percent': 100.0, 'masked_pixels': 0.0, 'valid_pixels': 144.0, 'percentile_2': 0.002783599835820496, 'percentile_98': 0.07004700466990467}}}}
+{'type': 'Feature', 'geometry': {'type': 'Polygon', 'coordinates': [[[-95.0, 29.0], [-95.0, 33.0], [-104.0, 33.0], [-104.0, 29.0], [-95.0, 29.0]]]}, 'properties': {'statistics': {'b1': {'min': 0.0029700000304728746, 'max': 0.056460000574588776, 'mean': 0.02411576443248325, 'count': 144.0, 'sum': 3.472670078277588, 'std': 0.010822587201026575, 'median': 0.024925000965595245, 'majority': 0.009239999577403069, 'minority': 0.0029700000304728746, 'unique': 140.0, 'histogram': [[10.0, 21.0, 14.0, 25.0, 29.0, 24.0, 10.0, 8.0, 2.0, 1.0], [0.0029700000304728746, 0.008318999782204628, 0.013667999766767025, 0.019016999751329422, 0.024366000667214394, 0.029714999720454216, 0.03506400063633919, 0.04041299968957901, 0.04576199874281883, 0.05111100152134895, 0.056460000574588776]], 'valid_percent': 100.0, 'masked_pixels': 0.0, 'valid_pixels': 144.0, 'percentile_2': 0.005730599970556795, 'percentile_98': 0.04602779909968372}}}}
+{'type': 'Feature', 'geometry': {'type': 'Polygon', 'coordinates': [[[-95.0, 29.0], [-95.0, 33.0], [-104.0, 33.0], [-104.0, 29.0], [-95.0, 29.0]]]}, 'properties': {'statistics': {'b1': {'min': 0.0024500000290572643, 'max': 0.04360999912023544, 'mean': 0.01983034610748291, 'count': 144.0, 'sum': 2.855569839477539, 'std': 0.00884776600671007, 'median': 0.02083500102162361, 'majority': 0.02677999995648861, 'minority': 0.0024500000290572643, 'unique': 139.0, 'histogram': [[10.0, 21.0, 15.0, 17.0, 23.0, 29.0, 18.0, 4.0, 5.0, 2.0], [0.0024500000290572643, 0.006566000171005726, 0.0106819998472929, 0.014797999523580074, 0.01891399919986725, 0.023029999807476997, 0.027146000415086746, 0.031261999160051346, 0.035377997905015945, 0.039494000375270844, 0.04360999912023544]], 'valid_percent': 100.0, 'masked_pixels': 0.0, 'valid_pixels': 144.0, 'percentile_2': 0.0033903999580070375, 'percentile_98': 0.03763499952852726}}}}
+CPU times: user 4.89 s, sys: 620 ms, total: 5.51 s
+Wall time: 1min 23s
+
+
+
+
+
+
{'statistics': {'b1': {'min': 0.0032399999909102917,
+ 'max': 0.052889999002218246,
+ 'mean': 0.02876812219619751,
+ 'count': 144.0,
+ 'sum': 4.142609596252441,
+ 'std': 0.012291292235868848,
+ 'median': 0.031109999865293503,
+ 'majority': 0.012779999524354935,
+ 'minority': 0.0032399999909102917,
+ 'unique': 141.0,
+ 'histogram': [[9.0, 12.0, 16.0, 8.0, 17.0, 16.0, 28.0, 23.0, 13.0, 2.0],
+ [0.0032399999909102917,
+ 0.008205000311136246,
+ 0.013170000165700912,
+ 0.01813500002026558,
+ 0.023099999874830246,
+ 0.028064999729394913,
+ 0.03302999958395958,
+ 0.037994999438524246,
+ 0.04295999929308891,
+ 0.04792499914765358,
+ 0.052889999002218246]],
+ 'valid_percent': 100.0,
+ 'masked_pixels': 0.0,
+ 'valid_pixels': 144.0,
+ 'percentile_2': 0.005100000007078051,
+ 'percentile_98': 0.047526400610804556}},
+ 'start_datetime': '2017-12-01T00:00:00+00:00'}
+
+
+
+
import pandas as pd
+
+
+def clean_stats(stats_json) -> pd.DataFrame:
+ df = pd.json_normalize(stats_json)
+ df.columns = [col.replace("statistics.b1." , "" ) for col in df.columns]
+ df["date" ] = pd.to_datetime(df["start_datetime" ])
+ return df
+
+
+ df = clean_stats(stats)
+ df.head(5 )
+
+
+
+
+
+
+
+
+
+
+0
+2017-12-01T00:00:00+00:00
+0.00324
+0.05289
+0.028768
+144.0
+4.14261
+0.012291
+0.031110
+0.01278
+0.00324
+141.0
+[[9.0, 12.0, 16.0, 8.0, 17.0, 16.0, 28.0, 23.0...
+100.0
+0.0
+144.0
+0.005100
+0.047526
+2017-12-01 00:00:00+00:00
+
+
+1
+2017-11-01T00:00:00+00:00
+0.00098
+0.09017
+0.027965
+144.0
+4.02701
+0.022134
+0.022250
+0.00098
+0.00098
+144.0
+[[44.0, 17.0, 22.0, 14.0, 9.0, 17.0, 6.0, 10.0...
+100.0
+0.0
+144.0
+0.001280
+0.072617
+2017-11-01 00:00:00+00:00
+
+
+2
+2017-10-01T00:00:00+00:00
+0.00159
+0.08781
+0.029585
+144.0
+4.26017
+0.024205
+0.022425
+0.00590
+0.00159
+140.0
+[[43.0, 22.0, 16.0, 12.0, 13.0, 10.0, 7.0, 8.0...
+100.0
+0.0
+144.0
+0.002036
+0.081956
+2017-10-01 00:00:00+00:00
+
+
+3
+2017-09-01T00:00:00+00:00
+0.00441
+0.10616
+0.044723
+144.0
+6.44008
+0.026253
+0.041475
+0.00441
+0.00441
+144.0
+[[17.0, 24.0, 20.0, 19.0, 17.0, 17.0, 4.0, 12....
+100.0
+0.0
+144.0
+0.005008
+0.096060
+2017-09-01 00:00:00+00:00
+
+
+4
+2017-08-01T00:00:00+00:00
+0.00360
+0.10769
+0.044001
+144.0
+6.33618
+0.028638
+0.039525
+0.00723
+0.00360
+141.0
+[[28.0, 24.0, 11.0, 19.0, 11.0, 15.0, 10.0, 12...
+100.0
+0.0
+144.0
+0.004591
+0.100820
+2017-08-01 00:00:00+00:00
+
+
+
+
-
-
-
import pandas as pd
-
-
-def clean_stats(stats_json) -> pd.DataFrame:
- df = pd.json_normalize(stats_json)
- df.columns = [col.replace("statistics.b1." , "" ) for col in df.columns]
- df["date" ] = pd.to_datetime(df["start_datetime" ])
- return df
-
-
- df = clean_stats(stats)
- df.head(5 )
Visualizing the Data as a Time Series
We can now explore the Heterotrophic Respiration time series (January 2017 -December 2017) available for the Dallas, Texas area of the U.S. We can plot the data set using the code below:
-
-
import matplotlib.pyplot as plt
-
- fig = plt.figure(figsize= (20 , 10 ))
-
-
- plt.plot(
- df["date" ],
- df["max" ],
- color= "red" ,
- linestyle= "-" ,
- linewidth= 0.5 ,
- label= "Max monthly Carbon emissions" ,
- )
-
- plt.legend()
- plt.xlabel("Years" )
- plt.ylabel("kg Carbon/m2/month" )
- plt.title("Heterotrophic Respiration Values for Texas, Dallas (2003-2017)" )
+
+
import matplotlib.pyplot as plt
+
+ fig = plt.figure(figsize= (20 , 10 ))
+
+
+ plt.plot(
+ df["date" ],
+ df["max" ],
+ color= "red" ,
+ linestyle= "-" ,
+ linewidth= 0.5 ,
+ label= "Max monthly Carbon emissions" ,
+ )
+
+ plt.legend()
+ plt.xlabel("Years" )
+ plt.ylabel("kg Carbon/m2/month" )
+ plt.title("Heterotrophic Respiration Values for Texas, Dallas (2003-2017)" )
+
+
Text(0.5, 1.0, 'Heterotrophic Respiration Values for Texas, Dallas (2003-2017)')
+
+
+
+
+
+
+
print (items[2 ]["properties" ]["start_datetime" ])
+
+
2017-10-01T00:00:00+00:00
+
-
-
print (items[2 ]["properties" ]["start_datetime" ])
+
+
october_tile = requests.get(
+ f" { RASTER_API_URL} /stac/tilejson.json?collection= { items[2 ]['collection' ]} &item= { items[2 ]['id' ]} "
+ f"&assets= { asset_name} "
+ f"&color_formula=gamma+r+1.05&colormap_name= { color_map} "
+ f"&rescale= { rescale_values['min' ]} , { rescale_values['max' ]} " ,
+ ).json()
+ october_tile
+
+
{'tilejson': '2.2.0',
+ 'version': '1.0.0',
+ 'scheme': 'xyz',
+ 'tiles': ['https://ghg.center/api/raster/stac/tiles/WebMercatorQuad/{z}/{x}/{y}@1x?collection=casagfed-carbonflux-monthgrid-v3&item=casagfed-carbonflux-monthgrid-v3-201710&assets=rh&color_formula=gamma+r+1.05&colormap_name=purd&rescale=0.0%2C0.6039900183677673'],
+ 'minzoom': 0,
+ 'maxzoom': 24,
+ 'bounds': [-180.0, -90.0, 180.0, 90.0],
+ 'center': [0.0, 0.0, 0]}
-
-
october_tile = requests.get(
- f" { RASTER_API_URL} /stac/tilejson.json?collection= { items[2 ]['collection' ]} &item= { items[2 ]['id' ]} "
- f"&assets= { asset_name} "
- f"&color_formula=gamma+r+1.05&colormap_name= { color_map} "
- f"&rescale= { rescale_values['min' ]} , { rescale_values['max' ]} " ,
- ).json()
- october_tile
-
-
# Use bbox initial zoom and map
-# Set up a map located w/in event bounds
-import folium
-
- aoi_map_bbox = Map(
- tiles= "OpenStreetMap" ,
- location= [
- - 22.421460 ,
- 14.268801 ,
- ],
- zoom_start= 8 ,
- )
-
- map_layer = TileLayer(
- tiles= october_tile["tiles" ][0 ],
- attr= "GHG" , opacity = 0.8
- )
-
- map_layer.add_to(aoi_map_bbox)
-
- aoi_map_bbox
+
+
# Use bbox initial zoom and map
+# Set up a map located w/in event bounds
+import folium
+
+ aoi_map_bbox = Map(
+ tiles= "OpenStreetMap" ,
+ location= [
+ - 22.421460 ,
+ 14.268801 ,
+ ],
+ zoom_start= 8 ,
+ )
+
+ map_layer = TileLayer(
+ tiles= october_tile["tiles" ][0 ],
+ attr= "GHG" , opacity = 0.8
+ )
+
+ map_layer.add_to(aoi_map_bbox)
+
+ aoi_map_bbox
+
+
Make this Notebook Trusted to load map: File -> Trust Notebook
+
diff --git a/pr-preview/pr-51/user_data_notebooks/casagfed-carbonflux-monthgrid-v3_User_Notebook_files/figure-html/cell-23-output-2.png b/pr-preview/pr-51/user_data_notebooks/casagfed-carbonflux-monthgrid-v3_User_Notebook_files/figure-html/cell-23-output-2.png
new file mode 100644
index 00000000..1c9c3123
Binary files /dev/null and b/pr-preview/pr-51/user_data_notebooks/casagfed-carbonflux-monthgrid-v3_User_Notebook_files/figure-html/cell-23-output-2.png differ
diff --git a/pr-preview/pr-51/user_data_notebooks/eccodarwin-co2flux-monthgrid-v5_User_Notebook.html b/pr-preview/pr-51/user_data_notebooks/eccodarwin-co2flux-monthgrid-v5_User_Notebook.html
index 27870126..4c7463f3 100644
--- a/pr-preview/pr-51/user_data_notebooks/eccodarwin-co2flux-monthgrid-v5_User_Notebook.html
+++ b/pr-preview/pr-51/user_data_notebooks/eccodarwin-co2flux-monthgrid-v5_User_Notebook.html
@@ -99,6 +99,9 @@
"search-label": "Search"
}
}
+
+
+
@@ -581,279 +584,1073 @@ About the Data
Installing the required libraries
Please run the cell below to install the libraries required to run this notebook.
-
+
% pip install requests
% pip install folium
% pip install pystac_client
+
+
Requirement already satisfied: requests in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (2.31.0)
+Requirement already satisfied: charset-normalizer<4,>=2 in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from requests) (3.1.0)
+Requirement already satisfied: certifi>=2017.4.17 in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from requests) (2023.7.22)
+Requirement already satisfied: urllib3<3,>=1.21.1 in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from requests) (1.26.16)
+Requirement already satisfied: idna<4,>=2.5 in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from requests) (3.4)
+Note: you may need to restart the kernel to use updated packages.
+Requirement already satisfied: folium in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (0.14.0)
+Requirement already satisfied: numpy in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from folium) (1.24.3)
+Requirement already satisfied: jinja2>=2.9 in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from folium) (3.1.2)
+Requirement already satisfied: branca>=0.6.0 in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from folium) (0.6.0)
+Requirement already satisfied: requests in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from folium) (2.31.0)
+Requirement already satisfied: MarkupSafe>=2.0 in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from jinja2>=2.9->folium) (2.1.3)
+Requirement already satisfied: idna<4,>=2.5 in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from requests->folium) (3.4)
+Requirement already satisfied: certifi>=2017.4.17 in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from requests->folium) (2023.7.22)
+Requirement already satisfied: urllib3<3,>=1.21.1 in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from requests->folium) (1.26.16)
+Requirement already satisfied: charset-normalizer<4,>=2 in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from requests->folium) (3.1.0)
+Note: you may need to restart the kernel to use updated packages.
+Requirement already satisfied: pystac_client in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (0.7.2)
+Requirement already satisfied: pystac[validation]>=1.7.2 in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from pystac_client) (1.7.3)
+Requirement already satisfied: requests>=2.28.2 in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from pystac_client) (2.31.0)
+Requirement already satisfied: python-dateutil>=2.8.2 in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from pystac_client) (2.8.2)
+Requirement already satisfied: jsonschema>=4.0.1 in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from pystac[validation]>=1.7.2->pystac_client) (4.17.3)
+Requirement already satisfied: six>=1.5 in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from python-dateutil>=2.8.2->pystac_client) (1.16.0)
+Requirement already satisfied: certifi>=2017.4.17 in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from requests>=2.28.2->pystac_client) (2023.7.22)
+Requirement already satisfied: idna<4,>=2.5 in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from requests>=2.28.2->pystac_client) (3.4)
+Requirement already satisfied: charset-normalizer<4,>=2 in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from requests>=2.28.2->pystac_client) (3.1.0)
+Requirement already satisfied: urllib3<3,>=1.21.1 in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from requests>=2.28.2->pystac_client) (1.26.16)
+Requirement already satisfied: attrs>=17.4.0 in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from jsonschema>=4.0.1->pystac[validation]>=1.7.2->pystac_client) (22.2.0)
+Requirement already satisfied: pyrsistent!=0.17.0,!=0.17.1,!=0.17.2,>=0.14.0 in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from jsonschema>=4.0.1->pystac[validation]>=1.7.2->pystac_client) (0.19.3)
+Note: you may need to restart the kernel to use updated packages.
+
Querying the STAC API
-
-
import requests
-from folium import Map, TileLayer
-from pystac_client import Client
+
+
import requests
+from folium import Map, TileLayer
+from pystac_client import Client
+
+
+
# Provide STAC and RASTER API endpoints
+ STAC_API_URL = "http://ghg.center/api/stac"
+ RASTER_API_URL = "https://ghg.center/api/raster"
+
+# Please use the collection name similar to the one used in STAC collection.
+# Name of the collection for Ecco Darwin CO₂ flux dataset.
+ collection_name = "eccodarwin-co2flux-monthgrid-v5"
-
-
# Provide STAC and RASTER API endpoints
- STAC_API_URL = "http://ghg.center/api/stac"
- RASTER_API_URL = "https://ghg.center/api/raster"
-
-# Please use the collection name similar to the one used in STAC collection.
-# Name of the collection for Ecco Darwin CO₂ flux dataset.
- collection_name = "eccodarwin-co2flux-monthgrid-v5"
+
+
# Fetching the collection from STAC collections using appropriate endpoint.
+ collection = requests.get(f" { STAC_API_URL} /collections/ { collection_name} " ).json()
+ collection
+
+
{'id': 'eccodarwin-co2flux-monthgrid-v5',
+ 'type': 'Collection',
+ 'links': [{'rel': 'items',
+ 'type': 'application/geo+json',
+ 'href': 'https://ghg.center/api/stac/collections/eccodarwin-co2flux-monthgrid-v5/items'},
+ {'rel': 'parent',
+ 'type': 'application/json',
+ 'href': 'https://ghg.center/api/stac/'},
+ {'rel': 'root',
+ 'type': 'application/json',
+ 'href': 'https://ghg.center/api/stac/'},
+ {'rel': 'self',
+ 'type': 'application/json',
+ 'href': 'https://ghg.center/api/stac/collections/eccodarwin-co2flux-monthgrid-v5'}],
+ 'title': 'Air-Sea CO2 Flux, ECCO-Darwin Model v5',
+ 'assets': None,
+ 'extent': {'spatial': {'bbox': [[-180.125,
+ -90.12483215332031,
+ 179.875,
+ 89.87517547607422]]},
+ 'temporal': {'interval': [['2020-01-01T00:00:00+00:00',
+ '2022-12-31T00:00:00+00:00']]}},
+ 'license': 'CC-BY-4.0',
+ 'keywords': None,
+ 'providers': None,
+ 'summaries': {'datetime': ['2020-01-01T00:00:00Z', '2022-12-31T00:00:00Z']},
+ 'description': 'Global, monthly average air-sea CO2 flux at ~1/3° resolution from 2020 to 2022',
+ 'item_assets': {'co2': {'type': 'image/tiff; application=geotiff; profile=cloud-optimized',
+ 'roles': ['data', 'layer'],
+ 'title': 'Air-Sea CO2 Flux',
+ 'description': 'Monthly mean air-sea CO2 Flux (negative into ocean)'}},
+ 'stac_version': '1.0.0',
+ 'stac_extensions': None,
+ 'dashboard:is_periodic': True,
+ 'dashboard:time_density': 'month'}
-
-
# Fetching the collection from STAC collections using appropriate endpoint.
- collection = requests.get(f" { STAC_API_URL} /collections/ { collection_name} " ).json()
- collection
Examining the contents of our collection
under the temporal
variable, we see that the data is available from January 2020 to December 2022. By looking at the dashboard:time density
, we observe that the data is periodic with monthly time density.
-
-
def get_item_count(collection_id):
- count = 0
- items_url = f" { STAC_API_URL} /collections/ { collection_id} /items"
-
- while True :
- response = requests.get(items_url)
-
- if not response.ok:
- print ("error getting items" )
- exit()
-
- stac = response.json()
- count += int (stac["context" ].get("returned" , 0 ))
- next = [link for link in stac["links" ] if link["rel" ] == "next" ]
-
- if not next :
- break
- items_url = next [0 ]["href" ]
-
- return count
+
+
def get_item_count(collection_id):
+ count = 0
+ items_url = f" { STAC_API_URL} /collections/ { collection_id} /items"
+
+ while True :
+ response = requests.get(items_url)
+
+ if not response.ok:
+ print ("error getting items" )
+ exit()
+
+ stac = response.json()
+ count += int (stac["context" ].get("returned" , 0 ))
+ next = [link for link in stac["links" ] if link["rel" ] == "next" ]
+
+ if not next :
+ break
+ items_url = next [0 ]["href" ]
+
+ return count
+
+
+
# Check total number of items available
+ number_of_items = get_item_count(collection_name)
+ items = requests.get(f" { STAC_API_URL} /collections/ { collection_name} /items?limit= { number_of_items} " ).json()["features" ]
+print (f"Found { len (items)} items" )
+
-
-
# Check total number of items available
- number_of_items = get_item_count(collection_name)
- items = requests.get(f" { STAC_API_URL} /collections/ { collection_name} /items?limit= { number_of_items} " ).json()["features" ]
-print (f"Found { len (items)} items" )
-
-
# Examining the first item in the collection
- items[0 ]
+
+
# Examining the first item in the collection
+ items[0 ]
+
+
{'id': 'eccodarwin-co2flux-monthgrid-v5-202212',
+ 'bbox': [-180.125, -90.124826629681, 179.875, 89.875173370319],
+ 'type': 'Feature',
+ 'links': [{'rel': 'collection',
+ 'type': 'application/json',
+ 'href': 'https://ghg.center/api/stac/collections/eccodarwin-co2flux-monthgrid-v5'},
+ {'rel': 'parent',
+ 'type': 'application/json',
+ 'href': 'https://ghg.center/api/stac/collections/eccodarwin-co2flux-monthgrid-v5'},
+ {'rel': 'root',
+ 'type': 'application/json',
+ 'href': 'https://ghg.center/api/stac/'},
+ {'rel': 'self',
+ 'type': 'application/geo+json',
+ 'href': 'https://ghg.center/api/stac/collections/eccodarwin-co2flux-monthgrid-v5/items/eccodarwin-co2flux-monthgrid-v5-202212'}],
+ 'assets': {'co2': {'href': 's3://ghgc-data-store/eccodarwin-co2flux-monthgrid-v5/ECCO-Darwin_CO2_flux_202212.tif',
+ 'type': 'image/tiff; application=geotiff',
+ 'roles': ['data', 'layer'],
+ 'title': 'Air-Sea CO2 Flux',
+ 'proj:bbox': [-180.125, -90.124826629681, 179.875, 89.875173370319],
+ 'proj:epsg': 4326.0,
+ 'proj:shape': [721.0, 1440.0],
+ 'description': 'Monthly mean air-sea CO2 Flux (negative into ocean)',
+ 'raster:bands': [{'scale': 1.0,
+ 'offset': 0.0,
+ 'sampling': 'area',
+ 'data_type': 'float64',
+ 'histogram': {'max': 1e+20,
+ 'min': -0.0560546528687938,
+ 'count': 11.0,
+ 'buckets': [338606.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 186706.0]},
+ 'statistics': {'mean': 3.554192556042885e+19,
+ 'stddev': 4.786401658343999e+19,
+ 'maximum': 1e+20,
+ 'minimum': -0.0560546528687938,
+ 'valid_percent': 0.0001903630604288499}}],
+ 'proj:geometry': {'type': 'Polygon',
+ 'coordinates': [[[-180.125, -90.124826629681],
+ [179.875, -90.124826629681],
+ [179.875, 89.875173370319],
+ [-180.125, 89.875173370319],
+ [-180.125, -90.124826629681]]]},
+ 'proj:projjson': {'id': {'code': 4326.0, 'authority': 'EPSG'},
+ 'name': 'WGS 84',
+ 'type': 'GeographicCRS',
+ 'datum': {'name': 'World Geodetic System 1984',
+ 'type': 'GeodeticReferenceFrame',
+ 'ellipsoid': {'name': 'WGS 84',
+ 'semi_major_axis': 6378137.0,
+ 'inverse_flattening': 298.257223563}},
+ '$schema': 'https://proj.org/schemas/v0.4/projjson.schema.json',
+ 'coordinate_system': {'axis': [{'name': 'Geodetic latitude',
+ 'unit': 'degree',
+ 'direction': 'north',
+ 'abbreviation': 'Lat'},
+ {'name': 'Geodetic longitude',
+ 'unit': 'degree',
+ 'direction': 'east',
+ 'abbreviation': 'Lon'}],
+ 'subtype': 'ellipsoidal'}},
+ 'proj:transform': [0.25,
+ 0.0,
+ -180.125,
+ 0.0,
+ -0.24965325936199723,
+ 89.875173370319,
+ 0.0,
+ 0.0,
+ 1.0]}},
+ 'geometry': {'type': 'Polygon',
+ 'coordinates': [[[-180.125, -90.124826629681],
+ [179.875, -90.124826629681],
+ [179.875, 89.875173370319],
+ [-180.125, 89.875173370319],
+ [-180.125, -90.124826629681]]]},
+ 'collection': 'eccodarwin-co2flux-monthgrid-v5',
+ 'properties': {'end_datetime': '2022-12-31T00:00:00+00:00',
+ 'start_datetime': '2022-12-01T00:00:00+00:00'},
+ 'stac_version': '1.0.0',
+ 'stac_extensions': ['https://stac-extensions.github.io/raster/v1.1.0/schema.json',
+ 'https://stac-extensions.github.io/projection/v1.1.0/schema.json']}
+
Below, we are entering the minimum and maximum values to provide our upper and lower bounds in rescale_values
.
Exploring Changes in CO₂ Levels Using the Raster API
In this notebook, we will explore the global changes of CO₂ flux over time in urban regions. We will visualize the outputs on a map using folium.
-
-
# to access the year value from each item more easily, this will let us query more explicity by year and month (e.g., 2020-02)
- items = {item["properties" ]["start_datetime" ]: item for item in items}
- asset_name = "co2"
+
+
# to access the year value from each item more easily, this will let us query more explicity by year and month (e.g., 2020-02)
+ items = {item["properties" ]["start_datetime" ]: item for item in items}
+ asset_name = "co2"
-
-
# Fetching the min and max values for a specific item
- rescale_values = {"max" :0.05544506255821962 , "min" :- 0.0560546997598733 }
+
+
# Fetching the min and max values for a specific item
+ rescale_values = {"max" :0.05544506255821962 , "min" :- 0.0560546997598733 }
Now, we will pass the item id, collection name, and rescaling_factor
to the Raster API
endpoint. We will do this twice so that we can visualize each event independently.
-
-
color_map = "magma"
- co2_flux_1 = requests.get(
- f" { RASTER_API_URL} /stac/tilejson.json?collection= { items[list (items.keys())[0 ]]['collection' ]} &item= { items[list (items.keys())[0 ]]['id' ]} "
- f"&assets= { asset_name} "
- f"&color_formula=gamma+r+1.05&colormap_name= { color_map} "
- f"&rescale= { rescale_values['min' ]} , { rescale_values['max' ]} " ,
- ).json()
- co2_flux_1
+
+
color_map = "magma"
+ co2_flux_1 = requests.get(
+ f" { RASTER_API_URL} /stac/tilejson.json?collection= { items[list (items.keys())[0 ]]['collection' ]} &item= { items[list (items.keys())[0 ]]['id' ]} "
+ f"&assets= { asset_name} "
+ f"&color_formula=gamma+r+1.05&colormap_name= { color_map} "
+ f"&rescale= { rescale_values['min' ]} , { rescale_values['max' ]} " ,
+ ).json()
+ co2_flux_1
+
+
{'tilejson': '2.2.0',
+ 'version': '1.0.0',
+ 'scheme': 'xyz',
+ 'tiles': ['https://ghg.center/api/raster/stac/tiles/WebMercatorQuad/{z}/{x}/{y}@1x?collection=eccodarwin-co2flux-monthgrid-v5&item=eccodarwin-co2flux-monthgrid-v5-202212&assets=co2&color_formula=gamma+r+1.05&colormap_name=magma&rescale=-0.0560546997598733%2C0.05544506255821962'],
+ 'minzoom': 0,
+ 'maxzoom': 24,
+ 'bounds': [-180.125, -90.124826629681, 179.875, 89.875173370319],
+ 'center': [-0.125, -0.1248266296809959, 0]}
+
+
+
+
co2_flux_2 = requests.get(
+ f" { RASTER_API_URL} /stac/tilejson.json?collection= { items[list (items.keys())[20 ]]['collection' ]} &item= { items[list (items.keys())[20 ]]['id' ]} "
+ f"&assets= { asset_name} "
+ f"&color_formula=gamma+r+1.05&colormap_name= { color_map} "
+ f"&rescale= { rescale_values['min' ]} , { rescale_values['max' ]} " ,
+ ).json()
+ co2_flux_2
+
+
{'tilejson': '2.2.0',
+ 'version': '1.0.0',
+ 'scheme': 'xyz',
+ 'tiles': ['https://ghg.center/api/raster/stac/tiles/WebMercatorQuad/{z}/{x}/{y}@1x?collection=eccodarwin-co2flux-monthgrid-v5&item=eccodarwin-co2flux-monthgrid-v5-202104&assets=co2&color_formula=gamma+r+1.05&colormap_name=magma&rescale=-0.0560546997598733%2C0.05544506255821962'],
+ 'minzoom': 0,
+ 'maxzoom': 24,
+ 'bounds': [-180.125, -90.124826629681, 179.875, 89.875173370319],
+ 'center': [-0.125, -0.1248266296809959, 0]}
-
-
co2_flux_2 = requests.get(
- f" { RASTER_API_URL} /stac/tilejson.json?collection= { items[list (items.keys())[20 ]]['collection' ]} &item= { items[list (items.keys())[20 ]]['id' ]} "
- f"&assets= { asset_name} "
- f"&color_formula=gamma+r+1.05&colormap_name= { color_map} "
- f"&rescale= { rescale_values['min' ]} , { rescale_values['max' ]} " ,
- ).json()
- co2_flux_2
Visualizing CO₂ flux Emissions
-
-
# We'll import folium to map and folium.plugins to allow mapping side-by-side
-import folium
-import folium.plugins
-
-# Set initial zoom and center of map for CO₂ Layer
-# Centre of map [latitude,longitude]
- map_ = folium.plugins.DualMap(location= (34 , - 118 ), zoom_start= 6 )
-
-
- map_layer_1 = TileLayer(
- tiles= co2_flux_1["tiles" ][0 ],
- attr= "GHG" ,
- opacity= 0.8 ,
- )
- map_layer_1.add_to(map_.m1)
-
- map_layer_2 = TileLayer(
- tiles= co2_flux_2["tiles" ][0 ],
- attr= "GHG" ,
- opacity= 0.8 ,
- )
- map_layer_2.add_to(map_.m2)
-
-# visualising the map
- map_
-
+
+
# We'll import folium to map and folium.plugins to allow mapping side-by-side
+import folium
+import folium.plugins
+
+# Set initial zoom and center of map for CO₂ Layer
+# Centre of map [latitude,longitude]
+ map_ = folium.plugins.DualMap(location= (34 , - 118 ), zoom_start= 6 )
+
+
+ map_layer_1 = TileLayer(
+ tiles= co2_flux_1["tiles" ][0 ],
+ attr= "GHG" ,
+ opacity= 0.8 ,
+ )
+ map_layer_1.add_to(map_.m1)
+
+ map_layer_2 = TileLayer(
+ tiles= co2_flux_2["tiles" ][0 ],
+ attr= "GHG" ,
+ opacity= 0.8 ,
+ )
+ map_layer_2.add_to(map_.m2)
+
+# visualising the map
+ map_
+
+
+
Make this Notebook Trusted to load map: File -> Trust Notebook
+
Calculating Zonal Statistics
To perform zonal statistics, first we need to create a polygon. In this use case we are creating a polygon in Texas (USA).
-
-
# Texas, USA
- gulf_mexico_aoi = {
- "type" : "Feature" ,
- "properties" : {},
- "geometry" : {
- "coordinates" : [
- [
- [- 94 , 27 ],
- [- 84 , 27 ],
- [- 85 , 23 ],
- [- 94 ,23 ],
- [- 94 , 27 ]
- ]
- ],
- "type" : "Polygon" ,
- },
- }
+
+
# Gulf mexico
+ gulf_mexico_aoi = {
+ "type" : "Feature" ,
+ "properties" : {},
+ "geometry" : {
+ "coordinates" : [
+ [
+ [- 94 , 27 ],
+ [- 84 , 27 ],
+ [- 85 , 23 ],
+ [- 94 ,23 ],
+ [- 94 , 27 ]
+ ]
+ ],
+ "type" : "Polygon" ,
+ },
+ }
+
+
+
# We'll plug in the coordinates for a location
+# central to the study area and a reasonable zoom level
+
+import folium
+
+ aoi_map = Map(
+ tiles= "OpenStreetMap" ,
+ location= [
+ 25 ,- 90
+ ],
+ zoom_start= 6 ,
+ )
+
+ folium.GeoJson(gulf_mexico_aoi, name= "Gulf of Mexico" ).add_to(aoi_map)
+ aoi_map
+
+
Make this Notebook Trusted to load map: File -> Trust Notebook
-
-
# We'll plug in the coordinates for a location
-# central to the study area and a reasonable zoom level
-
-import folium
-
- aoi_map = Map(
- tiles= "OpenStreetMap" ,
- location= [
- 25 ,- 90
- ],
- zoom_start= 6 ,
- )
-
- folium.GeoJson(gulf_mexico_aoi, name= "Gulf of Mexico" ).add_to(aoi_map)
- aoi_map
-
-
# Check total number of items available
- items = requests.get(
- f" { STAC_API_URL} /collections/ { collection_name} /items?limit=600"
- ).json()["features" ]
-print (f"Found { len (items)} items" )
+
+
# Check total number of items available
+ items = requests.get(
+ f" { STAC_API_URL} /collections/ { collection_name} /items?limit=600"
+ ).json()["features" ]
+print (f"Found { len (items)} items" )
+
-
-
# Explore the first item
- items[0 ]
-
-
# The bounding box should be passed to the geojson param as a geojson Feature or FeatureCollection
-def generate_stats(item, geojson):
- result = requests.post(
- f" { RASTER_API_URL} /cog/statistics" ,
- params= {"url" : item["assets" ][asset_name]["href" ]},
- json= geojson,
- ).json()
- print (result)
- return {
- ** result["properties" ],
- "datetime" : item["properties" ]["start_datetime" ],
- }
+
+
# Explore the first item
+ items[0 ]
+
+
{'id': 'eccodarwin-co2flux-monthgrid-v5-202212',
+ 'bbox': [-180.125, -90.124826629681, 179.875, 89.875173370319],
+ 'type': 'Feature',
+ 'links': [{'rel': 'collection',
+ 'type': 'application/json',
+ 'href': 'https://ghg.center/api/stac/collections/eccodarwin-co2flux-monthgrid-v5'},
+ {'rel': 'parent',
+ 'type': 'application/json',
+ 'href': 'https://ghg.center/api/stac/collections/eccodarwin-co2flux-monthgrid-v5'},
+ {'rel': 'root',
+ 'type': 'application/json',
+ 'href': 'https://ghg.center/api/stac/'},
+ {'rel': 'self',
+ 'type': 'application/geo+json',
+ 'href': 'https://ghg.center/api/stac/collections/eccodarwin-co2flux-monthgrid-v5/items/eccodarwin-co2flux-monthgrid-v5-202212'}],
+ 'assets': {'co2': {'href': 's3://ghgc-data-store/eccodarwin-co2flux-monthgrid-v5/ECCO-Darwin_CO2_flux_202212.tif',
+ 'type': 'image/tiff; application=geotiff',
+ 'roles': ['data', 'layer'],
+ 'title': 'Air-Sea CO2 Flux',
+ 'proj:bbox': [-180.125, -90.124826629681, 179.875, 89.875173370319],
+ 'proj:epsg': 4326.0,
+ 'proj:shape': [721.0, 1440.0],
+ 'description': 'Monthly mean air-sea CO2 Flux (negative into ocean)',
+ 'raster:bands': [{'scale': 1.0,
+ 'offset': 0.0,
+ 'sampling': 'area',
+ 'data_type': 'float64',
+ 'histogram': {'max': 1e+20,
+ 'min': -0.0560546528687938,
+ 'count': 11.0,
+ 'buckets': [338606.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 186706.0]},
+ 'statistics': {'mean': 3.554192556042885e+19,
+ 'stddev': 4.786401658343999e+19,
+ 'maximum': 1e+20,
+ 'minimum': -0.0560546528687938,
+ 'valid_percent': 0.0001903630604288499}}],
+ 'proj:geometry': {'type': 'Polygon',
+ 'coordinates': [[[-180.125, -90.124826629681],
+ [179.875, -90.124826629681],
+ [179.875, 89.875173370319],
+ [-180.125, 89.875173370319],
+ [-180.125, -90.124826629681]]]},
+ 'proj:projjson': {'id': {'code': 4326.0, 'authority': 'EPSG'},
+ 'name': 'WGS 84',
+ 'type': 'GeographicCRS',
+ 'datum': {'name': 'World Geodetic System 1984',
+ 'type': 'GeodeticReferenceFrame',
+ 'ellipsoid': {'name': 'WGS 84',
+ 'semi_major_axis': 6378137.0,
+ 'inverse_flattening': 298.257223563}},
+ '$schema': 'https://proj.org/schemas/v0.4/projjson.schema.json',
+ 'coordinate_system': {'axis': [{'name': 'Geodetic latitude',
+ 'unit': 'degree',
+ 'direction': 'north',
+ 'abbreviation': 'Lat'},
+ {'name': 'Geodetic longitude',
+ 'unit': 'degree',
+ 'direction': 'east',
+ 'abbreviation': 'Lon'}],
+ 'subtype': 'ellipsoidal'}},
+ 'proj:transform': [0.25,
+ 0.0,
+ -180.125,
+ 0.0,
+ -0.24965325936199723,
+ 89.875173370319,
+ 0.0,
+ 0.0,
+ 1.0]}},
+ 'geometry': {'type': 'Polygon',
+ 'coordinates': [[[-180.125, -90.124826629681],
+ [179.875, -90.124826629681],
+ [179.875, 89.875173370319],
+ [-180.125, 89.875173370319],
+ [-180.125, -90.124826629681]]]},
+ 'collection': 'eccodarwin-co2flux-monthgrid-v5',
+ 'properties': {'end_datetime': '2022-12-31T00:00:00+00:00',
+ 'start_datetime': '2022-12-01T00:00:00+00:00'},
+ 'stac_version': '1.0.0',
+ 'stac_extensions': ['https://stac-extensions.github.io/raster/v1.1.0/schema.json',
+ 'https://stac-extensions.github.io/projection/v1.1.0/schema.json']}
+
+
+
+
# The bounding box should be passed to the geojson param as a geojson Feature or FeatureCollection
+def generate_stats(item, geojson):
+ result = requests.post(
+ f" { RASTER_API_URL} /cog/statistics" ,
+ params= {"url" : item["assets" ][asset_name]["href" ]},
+ json= geojson,
+ ).json()
+ print (result)
+ return {
+ ** result["properties" ],
+ "datetime" : item["properties" ]["start_datetime" ],
+ }
+
+
+
for item in items:
+ print (item["properties" ]["start_datetime" ])
+ break
+
+
2022-12-01T00:00:00+00:00
-
-
for item in items:
- print (item["properties" ]["start_datetime" ])
- break
With the function above we can generate the statistics for the AOI.
-
-
%% time
- stats = [generate_stats(item, texas_aoi) for item in items]
+
+
%% time
+ stats = [generate_stats(item, gulf_mexico_aoi) for item in items]
+
+
{'type': 'Feature', 'geometry': {'type': 'Polygon', 'coordinates': [[[-94.0, 27.0], [-84.0, 27.0], [-85.0, 23.0], [-94.0, 23.0], [-94.0, 27.0]]]}, 'properties': {'statistics': {'b1': {'min': -3.432180631595723e-05, 'max': 2.3301704633944816e-05, 'mean': 2.9837907378513794e-06, 'count': 608.7999877929688, 'sum': 0.0018469664667300038, 'std': 1.5043210707780694e-05, 'median': 6.984856325983938e-06, 'majority': -3.432180631595723e-05, 'minority': -3.432180631595723e-05, 'unique': 619.0, 'histogram': [[27.0, 22.0, 30.0, 44.0, 47.0, 58.0, 64.0, 86.0, 133.0, 108.0], [-3.432180631595723e-05, -2.8559455220967027e-05, -2.279710412597682e-05, -1.703475303098662e-05, -1.1272401935996415e-05, -5.5100508410062094e-06, 2.523002539839923e-07, 6.014651348974201e-06, 1.1777002443964403e-05, 1.7539353538954604e-05, 2.3301704633944816e-05]], 'valid_percent': 96.72, 'masked_pixels': 21.0, 'valid_pixels': 619.0, 'percentile_2': -3.1588106589646895e-05, 'percentile_98': 2.1694713234986116e-05}}}}
+{'type': 'Feature', 'geometry': {'type': 'Polygon', 'coordinates': [[[-94.0, 27.0], [-84.0, 27.0], [-85.0, 23.0], [-94.0, 23.0], [-94.0, 27.0]]]}, 'properties': {'statistics': {'b1': {'min': 1.331436740388273e-05, 'max': 3.639152718601344e-05, 'mean': 2.4430021614309553e-05, 'count': 608.7999877929688, 'sum': 0.015122183379257614, 'std': 5.120396105182123e-06, 'median': 2.435068983955229e-05, 'majority': 1.331436740388273e-05, 'minority': 1.331436740388273e-05, 'unique': 619.0, 'histogram': [[22.0, 20.0, 19.0, 82.0, 198.0, 138.0, 57.0, 33.0, 22.0, 28.0], [1.331436740388273e-05, 1.56220833820958e-05, 1.7929799360308872e-05, 2.0237515338521944e-05, 2.2545231316735015e-05, 2.4852947294948086e-05, 2.7160663273161157e-05, 2.946837925137423e-05, 3.17760952295873e-05, 3.4083811207800374e-05, 3.639152718601344e-05]], 'valid_percent': 96.72, 'masked_pixels': 21.0, 'valid_pixels': 619.0, 'percentile_2': 1.4437869932115516e-05, 'percentile_98': 3.513476326456787e-05}}}}
+{'type': 'Feature', 'geometry': {'type': 'Polygon', 'coordinates': [[[-94.0, 27.0], [-84.0, 27.0], [-85.0, 23.0], [-94.0, 23.0], [-94.0, 27.0]]]}, 'properties': {'statistics': {'b1': {'min': 3.441201477699895e-05, 'max': 5.864596386286034e-05, 'mean': 4.4424710537913974e-05, 'count': 608.7999877929688, 'sum': 0.02749889582296875, 'std': 6.073480019224751e-06, 'median': 4.452405506514439e-05, 'majority': 3.441201477699895e-05, 'minority': 3.441201477699895e-05, 'unique': 619.0, 'histogram': [[6.0, 43.0, 67.0, 145.0, 151.0, 99.0, 55.0, 20.0, 13.0, 20.0], [3.441201477699895e-05, 3.683540968558509e-05, 3.9258804594171226e-05, 4.1682199502757364e-05, 4.410559441134351e-05, 4.652898931992965e-05, 4.8952384228515786e-05, 5.1375779137101925e-05, 5.379917404568806e-05, 5.62225689542742e-05, 5.864596386286034e-05]], 'valid_percent': 96.72, 'masked_pixels': 21.0, 'valid_pixels': 619.0, 'percentile_2': 3.8009470410264176e-05, 'percentile_98': 5.718596479884155e-05}}}}
+{'type': 'Feature', 'geometry': {'type': 'Polygon', 'coordinates': [[[-94.0, 27.0], [-84.0, 27.0], [-85.0, 23.0], [-94.0, 23.0], [-94.0, 27.0]]]}, 'properties': {'statistics': {'b1': {'min': 2.496720735062941e-05, 'max': 5.182953197394151e-05, 'mean': 3.5013506569645584e-05, 'count': 608.7999877929688, 'sum': 0.021673360566610615, 'std': 7.419209666150217e-06, 'median': 3.393558395443455e-05, 'majority': 2.496720735062941e-05, 'minority': 2.496720735062941e-05, 'unique': 619.0, 'histogram': [[34.0, 121.0, 105.0, 92.0, 67.0, 69.0, 46.0, 33.0, 32.0, 20.0], [2.496720735062941e-05, 2.765343981296062e-05, 3.033967227529183e-05, 3.302590473762304e-05, 3.571213719995425e-05, 3.839836966228546e-05, 4.108460212461667e-05, 4.377083458694788e-05, 4.6457067049279085e-05, 4.91432995116103e-05, 5.182953197394151e-05]], 'valid_percent': 96.72, 'masked_pixels': 21.0, 'valid_pixels': 619.0, 'percentile_2': 2.624591199345222e-05, 'percentile_98': 4.978726109761375e-05}}}}
+{'type': 'Feature', 'geometry': {'type': 'Polygon', 'coordinates': [[[-94.0, 27.0], [-84.0, 27.0], [-85.0, 23.0], [-94.0, 23.0], [-94.0, 27.0]]]}, 'properties': {'statistics': {'b1': {'min': 3.0550022934403614e-05, 'max': 5.545280000399081e-05, 'mean': 4.0077301580092404e-05, 'count': 608.7999877929688, 'sum': 0.0248078496780772, 'std': 7.322973931805168e-06, 'median': 3.887170649209315e-05, 'majority': 3.0550022934403614e-05, 'minority': 3.0550022934403614e-05, 'unique': 619.0, 'histogram': [[35.0, 69.0, 152.0, 100.0, 70.0, 53.0, 44.0, 38.0, 37.0, 21.0], [3.0550022934403614e-05, 3.304030064136233e-05, 3.553057834832105e-05, 3.802085605527977e-05, 4.0511133762238494e-05, 4.300141146919721e-05, 4.549168917615593e-05, 4.7981966883114656e-05, 5.0472244590073375e-05, 5.296252229703209e-05, 5.545280000399081e-05]], 'valid_percent': 96.72, 'masked_pixels': 21.0, 'valid_pixels': 619.0, 'percentile_2': 3.150971863359842e-05, 'percentile_98': 5.456874812634226e-05}}}}
+{'type': 'Feature', 'geometry': {'type': 'Polygon', 'coordinates': [[[-94.0, 27.0], [-84.0, 27.0], [-85.0, 23.0], [-94.0, 23.0], [-94.0, 27.0]]]}, 'properties': {'statistics': {'b1': {'min': 1.793449134746241e-05, 'max': 4.6493927121610525e-05, 'mean': 2.8793756723236048e-05, 'count': 608.7999877929688, 'sum': 0.017823335411683114, 'std': 9.039963131002573e-06, 'median': 2.7012520006098858e-05, 'majority': 1.793449134746241e-05, 'minority': 1.793449134746241e-05, 'unique': 619.0, 'histogram': [[138.0, 77.0, 87.0, 47.0, 42.0, 45.0, 50.0, 52.0, 56.0, 25.0], [1.793449134746241e-05, 2.0790434924877223e-05, 2.3646378502292033e-05, 2.6502322079706843e-05, 2.9358265657121656e-05, 3.221420923453647e-05, 3.507015281195128e-05, 3.7926096389366096e-05, 4.0782039966780906e-05, 4.3637983544195715e-05, 4.6493927121610525e-05]], 'valid_percent': 96.72, 'masked_pixels': 21.0, 'valid_pixels': 619.0, 'percentile_2': 1.8422715762199423e-05, 'percentile_98': 4.4632804361053454e-05}}}}
+{'type': 'Feature', 'geometry': {'type': 'Polygon', 'coordinates': [[[-94.0, 27.0], [-84.0, 27.0], [-85.0, 23.0], [-94.0, 23.0], [-94.0, 27.0]]]}, 'properties': {'statistics': {'b1': {'min': 6.666067719379552e-06, 'max': 3.1437153163571355e-05, 'mean': 1.7933082513176412e-05, 'count': 608.7999877929688, 'sum': 0.0111005780756562, 'std': 6.115975987705678e-06, 'median': 1.7298308991966002e-05, 'majority': 6.666067719379552e-06, 'minority': 6.666067719379552e-06, 'unique': 619.0, 'histogram': [[20.0, 60.0, 104.0, 101.0, 74.0, 67.0, 75.0, 59.0, 42.0, 17.0], [6.666067719379552e-06, 9.143176263798732e-06, 1.1620284808217912e-05, 1.4097393352637091e-05, 1.657450189705627e-05, 1.9051610441475452e-05, 2.1528718985894633e-05, 2.4005827530313813e-05, 2.6482936074732994e-05, 2.8960044619152174e-05, 3.1437153163571355e-05]], 'valid_percent': 96.72, 'masked_pixels': 21.0, 'valid_pixels': 619.0, 'percentile_2': 8.78630910019895e-06, 'percentile_98': 2.937603980757211e-05}}}}
+{'type': 'Feature', 'geometry': {'type': 'Polygon', 'coordinates': [[[-94.0, 27.0], [-84.0, 27.0], [-85.0, 23.0], [-94.0, 23.0], [-94.0, 27.0]]]}, 'properties': {'statistics': {'b1': {'min': -7.255057696975473e-05, 'max': 1.423957862960839e-05, 'mean': -2.5421113267675976e-05, 'count': 608.7999877929688, 'sum': -0.01573566911269143, 'std': 2.323273334924832e-05, 'median': -2.3290219827821726e-05, 'majority': -7.255057696975473e-05, 'minority': -7.255057696975473e-05, 'unique': 619.0, 'histogram': [[31.0, 47.0, 64.0, 64.0, 66.0, 74.0, 89.0, 42.0, 77.0, 65.0], [-7.255057696975473e-05, -6.387156140981841e-05, -5.519254584988211e-05, -4.651353028994579e-05, -3.783451473000948e-05, -2.915549917007317e-05, -2.0476483610136853e-05, -1.1797468050200542e-05, -3.118452490264231e-06, 5.560563069672086e-06, 1.423957862960839e-05]], 'valid_percent': 96.72, 'masked_pixels': 21.0, 'valid_pixels': 619.0, 'percentile_2': -6.806046305986292e-05, 'percentile_98': 1.1133362882081285e-05}}}}
+{'type': 'Feature', 'geometry': {'type': 'Polygon', 'coordinates': [[[-94.0, 27.0], [-84.0, 27.0], [-85.0, 23.0], [-94.0, 23.0], [-94.0, 27.0]]]}, 'properties': {'statistics': {'b1': {'min': -0.00010402577200079265, 'max': 4.356280671427835e-06, 'mean': -4.669426456943307e-05, 'count': 608.7999877929688, 'sum': -0.02890374976847907, 'std': 2.835483860563303e-05, 'median': -4.502207052284503e-05, 'majority': -0.00010402577200079265, 'minority': -0.00010402577200079265, 'unique': 619.0, 'histogram': [[33.0, 41.0, 73.0, 68.0, 72.0, 74.0, 95.0, 47.0, 65.0, 51.0], [-0.00010402577200079265, -9.31875667335706e-05, -8.234936146634856e-05, -7.151115619912651e-05, -6.067295093190446e-05, -4.983474566468241e-05, -3.899654039746037e-05, -2.8158335130238322e-05, -1.7320129863016272e-05, -6.481924595794222e-06, 4.356280671427835e-06]], 'valid_percent': 96.72, 'masked_pixels': 21.0, 'valid_pixels': 619.0, 'percentile_2': -9.930357369853212e-05, 'percentile_98': 1.0654820366519755e-06}}}}
+{'type': 'Feature', 'geometry': {'type': 'Polygon', 'coordinates': [[[-94.0, 27.0], [-84.0, 27.0], [-85.0, 23.0], [-94.0, 23.0], [-94.0, 27.0]]]}, 'properties': {'statistics': {'b1': {'min': -0.00010688239692871392, 'max': -7.166182475169512e-06, 'mean': -6.024484000806681e-05, 'count': 608.7999877929688, 'sum': -0.03729155596499335, 'std': 2.7616007546719388e-05, 'median': -6.169004201155102e-05, 'majority': -0.00010688239692871392, 'minority': -0.00010688239692871392, 'unique': 619.0, 'histogram': [[40.0, 95.0, 97.0, 61.0, 52.0, 65.0, 70.0, 50.0, 50.0, 39.0], [-0.00010688239692871392, -9.691077548335949e-05, -8.693915403800504e-05, -7.69675325926506e-05, -6.699591114729615e-05, -5.702428970194172e-05, -4.705266825658728e-05, -3.7081046811232834e-05, -2.71094253658784e-05, -1.7137803920523964e-05, -7.166182475169512e-06]], 'valid_percent': 96.72, 'masked_pixels': 21.0, 'valid_pixels': 619.0, 'percentile_2': -0.00010298696929708474, 'percentile_98': -1.1066776771806965e-05}}}}
+{'type': 'Feature', 'geometry': {'type': 'Polygon', 'coordinates': [[[-94.0, 27.0], [-84.0, 27.0], [-85.0, 23.0], [-94.0, 23.0], [-94.0, 27.0]]]}, 'properties': {'statistics': {'b1': {'min': -9.318066279905835e-05, 'max': 1.0004882652601927e-06, 'mean': -4.115742004457602e-05, 'count': 608.7999877929688, 'sum': -0.025476443007592556, 'std': 2.672260586031435e-05, 'median': -3.7494982607431176e-05, 'majority': -9.318066279905835e-05, 'minority': -9.318066279905835e-05, 'unique': 619.0, 'histogram': [[32.0, 63.0, 59.0, 60.0, 54.0, 52.0, 66.0, 102.0, 58.0, 73.0], [-9.318066279905835e-05, -8.37625476926265e-05, -7.434443258619464e-05, -6.492631747976278e-05, -5.5508202373330934e-05, -4.609008726689908e-05, -3.667197216046723e-05, -2.725385705403537e-05, -1.7835741947603515e-05, -8.417626841171659e-06, 1.0004882652601927e-06]], 'valid_percent': 96.72, 'masked_pixels': 21.0, 'valid_pixels': 619.0, 'percentile_2': -8.867190947577104e-05, 'percentile_98': -8.591175557221548e-07}}}}
+{'type': 'Feature', 'geometry': {'type': 'Polygon', 'coordinates': [[[-94.0, 27.0], [-84.0, 27.0], [-85.0, 23.0], [-94.0, 23.0], [-94.0, 27.0]]]}, 'properties': {'statistics': {'b1': {'min': -0.0001422482051579125, 'max': 1.492159917898947e-05, 'mean': -4.80184021063379e-05, 'count': 608.7999877929688, 'sum': -0.029723390903823158, 'std': 4.155083363619667e-05, 'median': -3.81206159637642e-05, 'majority': -0.0001422482051579125, 'minority': -0.0001422482051579125, 'unique': 619.0, 'histogram': [[36.0, 35.0, 34.0, 43.0, 51.0, 64.0, 78.0, 121.0, 89.0, 68.0], [-0.0001422482051579125, -0.00012653122472422232, -0.00011081424429053211, -9.509726385684191e-05, -7.938028342315172e-05, -6.366330298946153e-05, -4.794632255577132e-05, -3.222934212208112e-05, -1.6512361688390928e-05, -7.953812547007377e-07, 1.492159917898947e-05]], 'valid_percent': 96.72, 'masked_pixels': 21.0, 'valid_pixels': 619.0, 'percentile_2': -0.0001352714243218134, 'percentile_98': 8.816979622823016e-06}}}}
+{'type': 'Feature', 'geometry': {'type': 'Polygon', 'coordinates': [[[-94.0, 27.0], [-84.0, 27.0], [-85.0, 23.0], [-94.0, 23.0], [-94.0, 27.0]]]}, 'properties': {'statistics': {'b1': {'min': -5.063979979934458e-05, 'max': 8.225613196297052e-06, 'mean': -1.8632930525584216e-05, 'count': 608.7999877929688, 'sum': -0.01153378399533663, 'std': 1.586927481516088e-05, 'median': -1.569174533053401e-05, 'majority': -5.063979979934458e-05, 'minority': -5.063979979934458e-05, 'unique': 619.0, 'histogram': [[44.0, 47.0, 50.0, 62.0, 65.0, 54.0, 67.0, 121.0, 65.0, 44.0], [-5.063979979934458e-05, -4.4753258499780416e-05, -3.886671720021625e-05, -3.298017590065209e-05, -2.7093634601087926e-05, -2.1207093301523763e-05, -1.53205520019596e-05, -9.434010702395436e-06, -3.547469402831273e-06, 2.33907189673289e-06, 8.225613196297052e-06]], 'valid_percent': 96.72, 'masked_pixels': 21.0, 'valid_pixels': 619.0, 'percentile_2': -4.8140325987095136e-05, 'percentile_98': 5.825116736277731e-06}}}}
+{'type': 'Feature', 'geometry': {'type': 'Polygon', 'coordinates': [[[-94.0, 27.0], [-84.0, 27.0], [-85.0, 23.0], [-94.0, 23.0], [-94.0, 27.0]]]}, 'properties': {'statistics': {'b1': {'min': -2.5059659940954886e-05, 'max': 2.412303046264687e-05, 'mean': -2.549927887402253e-06, 'count': 608.7999877929688, 'sum': -0.0015784053623019946, 'std': 1.3737906428813414e-05, 'median': -2.30124058711614e-06, 'majority': -2.5059659940954886e-05, 'minority': -2.5059659940954886e-05, 'unique': 619.0, 'histogram': [[86.0, 67.0, 62.0, 57.0, 57.0, 58.0, 101.0, 52.0, 38.0, 41.0], [-2.5059659940954886e-05, -2.0141390900594712e-05, -1.5223121860234536e-05, -1.0304852819874361e-05, -5.386583779514186e-06, -4.683147391540097e-07, 4.4499543012061635e-06, 9.368223341566337e-06, 1.4286492381926513e-05, 1.920476142228669e-05, 2.412303046264687e-05]], 'valid_percent': 96.72, 'masked_pixels': 21.0, 'valid_pixels': 619.0, 'percentile_2': -2.450167682873838e-05, 'percentile_98': 2.235153810869192e-05}}}}
+{'type': 'Feature', 'geometry': {'type': 'Polygon', 'coordinates': [[[-94.0, 27.0], [-84.0, 27.0], [-85.0, 23.0], [-94.0, 23.0], [-94.0, 27.0]]]}, 'properties': {'statistics': {'b1': {'min': 1.316864166070086e-05, 'max': 4.352050006066525e-05, 'mean': 2.8915745720128423e-05, 'count': 608.7999877929688, 'sum': 0.017898846600759494, 'std': 7.625669881875488e-06, 'median': 2.972441819970186e-05, 'majority': 1.316864166070086e-05, 'minority': 1.316864166070086e-05, 'unique': 619.0, 'histogram': [[20.0, 39.0, 51.0, 69.0, 74.0, 88.0, 117.0, 80.0, 45.0, 36.0], [1.316864166070086e-05, 1.62038275006973e-05, 1.923901334069374e-05, 2.2274199180690178e-05, 2.5309385020686616e-05, 2.8344570860683054e-05, 3.137975670067949e-05, 3.441494254067593e-05, 3.7450128380672374e-05, 4.048531422066881e-05, 4.352050006066525e-05]], 'valid_percent': 96.72, 'masked_pixels': 21.0, 'valid_pixels': 619.0, 'percentile_2': 1.5821817904888033e-05, 'percentile_98': 4.202142015619444e-05}}}}
+{'type': 'Feature', 'geometry': {'type': 'Polygon', 'coordinates': [[[-94.0, 27.0], [-84.0, 27.0], [-85.0, 23.0], [-94.0, 23.0], [-94.0, 27.0]]]}, 'properties': {'statistics': {'b1': {'min': 1.994435479924689e-05, 'max': 5.132601294539204e-05, 'mean': 3.406619889965258e-05, 'count': 608.7999877929688, 'sum': 0.02108697711888495, 'std': 9.587985234339733e-06, 'median': 3.4353170304581975e-05, 'majority': 1.994435479924689e-05, 'minority': 1.994435479924689e-05, 'unique': 619.0, 'histogram': [[76.0, 63.0, 81.0, 58.0, 57.0, 56.0, 58.0, 103.0, 33.0, 34.0], [1.994435479924689e-05, 2.3082520613861405e-05, 2.6220686428475922e-05, 2.9358852243090436e-05, 3.249701805770495e-05, 3.563518387231946e-05, 3.877334968693398e-05, 4.19115155015485e-05, 4.5049681316163014e-05, 4.8187847130777525e-05, 5.132601294539204e-05]], 'valid_percent': 96.72, 'masked_pixels': 21.0, 'valid_pixels': 619.0, 'percentile_2': 2.03703596872219e-05, 'percentile_98': 5.0264548627916384e-05}}}}
+{'type': 'Feature', 'geometry': {'type': 'Polygon', 'coordinates': [[[-94.0, 27.0], [-84.0, 27.0], [-85.0, 23.0], [-94.0, 23.0], [-94.0, 27.0]]]}, 'properties': {'statistics': {'b1': {'min': 3.7606162649931215e-05, 'max': 6.673531781570583e-05, 'mean': 4.8911990808087925e-05, 'count': 608.7999877929688, 'sum': 0.030276522310206427, 'std': 8.016426683934655e-06, 'median': 4.929369935597558e-05, 'majority': 3.7606162649931215e-05, 'minority': 3.7606162649931215e-05, 'unique': 619.0, 'histogram': [[38.0, 95.0, 79.0, 81.0, 83.0, 81.0, 92.0, 43.0, 19.0, 8.0], [3.7606162649931215e-05, 4.0519078166508676e-05, 4.343199368308614e-05, 4.63449091996636e-05, 4.9257824716241065e-05, 5.217074023281852e-05, 5.508365574939599e-05, 5.799657126597345e-05, 6.090948678255091e-05, 6.382240229912836e-05, 6.673531781570583e-05]], 'valid_percent': 96.72, 'masked_pixels': 21.0, 'valid_pixels': 619.0, 'percentile_2': 3.967350084032923e-05, 'percentile_98': 6.251337596428504e-05}}}}
+{'type': 'Feature', 'geometry': {'type': 'Polygon', 'coordinates': [[[-94.0, 27.0], [-84.0, 27.0], [-85.0, 23.0], [-94.0, 23.0], [-94.0, 27.0]]]}, 'properties': {'statistics': {'b1': {'min': 2.0867983154120963e-05, 'max': 4.1377684084333106e-05, 'mean': 2.9212259711973187e-05, 'count': 608.7999877929688, 'sum': 0.018082388761711404, 'std': 6.051824198848501e-06, 'median': 2.9414836501036218e-05, 'majority': 2.0867983154120963e-05, 'minority': 2.0867983154120963e-05, 'unique': 619.0, 'histogram': [[61.0, 79.0, 83.0, 65.0, 86.0, 67.0, 69.0, 50.0, 40.0, 19.0], [2.0867983154120963e-05, 2.2918953247142178e-05, 2.4969923340163393e-05, 2.7020893433184604e-05, 2.907186352620582e-05, 3.112283361922704e-05, 3.3173803712248246e-05, 3.522477380526946e-05, 3.7275743898290676e-05, 3.932671399131189e-05, 4.1377684084333106e-05]], 'valid_percent': 96.72, 'masked_pixels': 21.0, 'valid_pixels': 619.0, 'percentile_2': 2.1221282420116663e-05, 'percentile_98': 3.9893154742292655e-05}}}}
+{'type': 'Feature', 'geometry': {'type': 'Polygon', 'coordinates': [[[-94.0, 27.0], [-84.0, 27.0], [-85.0, 23.0], [-94.0, 23.0], [-94.0, 27.0]]]}, 'properties': {'statistics': {'b1': {'min': 2.0207583915470194e-05, 'max': 4.4336061829772724e-05, 'mean': 3.1592771256298096e-05, 'count': 608.7999877929688, 'sum': 0.01955592540764852, 'std': 7.061785170403612e-06, 'median': 3.23420572993567e-05, 'majority': 2.0207583915470194e-05, 'minority': 2.0207583915470194e-05, 'unique': 619.0, 'histogram': [[53.0, 51.0, 50.0, 84.0, 69.0, 69.0, 95.0, 89.0, 34.0, 25.0], [2.0207583915470194e-05, 2.2620431706900446e-05, 2.5033279498330698e-05, 2.7446127289760954e-05, 2.9858975081191206e-05, 3.227182287262146e-05, 3.4684670664051714e-05, 3.709751845548197e-05, 3.951036624691222e-05, 4.192321403834247e-05, 4.4336061829772724e-05]], 'valid_percent': 96.72, 'masked_pixels': 21.0, 'valid_pixels': 619.0, 'percentile_2': 2.0847401937436187e-05, 'percentile_98': 4.2970800658677816e-05}}}}
+{'type': 'Feature', 'geometry': {'type': 'Polygon', 'coordinates': [[[-94.0, 27.0], [-84.0, 27.0], [-85.0, 23.0], [-94.0, 23.0], [-94.0, 27.0]]]}, 'properties': {'statistics': {'b1': {'min': -5.78650960773985e-06, 'max': 3.157763426337388e-05, 'mean': 1.4480010798288284e-05, 'count': 608.7999877929688, 'sum': 0.008963126684140447, 'std': 9.792925062170146e-06, 'median': 1.5313859086466225e-05, 'majority': -5.78650960773985e-06, 'minority': -5.78650960773985e-06, 'unique': 619.0, 'histogram': [[18.0, 52.0, 71.0, 69.0, 53.0, 66.0, 67.0, 89.0, 93.0, 41.0], [-5.78650960773985e-06, -2.0500952206284765e-06, 1.6863191664828966e-06, 5.4227335535942705e-06, 9.159147940705644e-06, 1.2895562327817016e-05, 1.663197671492839e-05, 2.0368391102039764e-05, 2.4104805489151136e-05, 2.784121987626251e-05, 3.157763426337388e-05]], 'valid_percent': 96.72, 'masked_pixels': 21.0, 'valid_pixels': 619.0, 'percentile_2': -3.2434097333742172e-06, 'percentile_98': 2.9249433748542906e-05}}}}
+{'type': 'Feature', 'geometry': {'type': 'Polygon', 'coordinates': [[[-94.0, 27.0], [-84.0, 27.0], [-85.0, 23.0], [-94.0, 23.0], [-94.0, 27.0]]]}, 'properties': {'statistics': {'b1': {'min': -6.430113542620799e-05, 'max': 7.195314753127538e-06, 'mean': -2.4672871399195352e-05, 'count': 608.7999877929688, 'sum': -0.015272507396101923, 'std': 1.7093216656621673e-05, 'median': -2.3583630370275196e-05, 'majority': -6.430113542620799e-05, 'minority': -6.430113542620799e-05, 'unique': 619.0, 'histogram': [[24.0, 31.0, 42.0, 79.0, 78.0, 91.0, 105.0, 65.0, 61.0, 43.0], [-6.430113542620799e-05, -5.715149040827444e-05, -5.0001845390340886e-05, -4.285220037240733e-05, -3.570255535447378e-05, -2.8552910336540227e-05, -2.140326531860667e-05, -1.4253620300673118e-05, -7.103975282739567e-06, 4.566973519398352e-08, 7.195314753127538e-06]], 'valid_percent': 96.72, 'masked_pixels': 21.0, 'valid_pixels': 619.0, 'percentile_2': -6.0207201920792825e-05, 'percentile_98': 4.348678369240984e-06}}}}
+{'type': 'Feature', 'geometry': {'type': 'Polygon', 'coordinates': [[[-94.0, 27.0], [-84.0, 27.0], [-85.0, 23.0], [-94.0, 23.0], [-94.0, 27.0]]]}, 'properties': {'statistics': {'b1': {'min': -9.717767856752042e-05, 'max': -1.2708854765543403e-05, 'mean': -5.648346327305667e-05, 'count': 608.7999877929688, 'sum': -0.03496326376602208, 'std': 2.2731350191968654e-05, 'median': -5.684413928965937e-05, 'majority': -9.717767856752042e-05, 'minority': -9.717767856752042e-05, 'unique': 619.0, 'histogram': [[43.0, 61.0, 85.0, 71.0, 77.0, 108.0, 37.0, 36.0, 59.0, 42.0], [-9.717767856752042e-05, -8.873079618732272e-05, -8.028391380712502e-05, -7.183703142692731e-05, -6.339014904672962e-05, -5.494326666653192e-05, -4.6496384286334216e-05, -3.804950190613651e-05, -2.9602619525938815e-05, -2.115573714574112e-05, -1.2708854765543403e-05]], 'valid_percent': 96.72, 'masked_pixels': 21.0, 'valid_pixels': 619.0, 'percentile_2': -9.346739699818799e-05, 'percentile_98': -1.5999064022779354e-05}}}}
+{'type': 'Feature', 'geometry': {'type': 'Polygon', 'coordinates': [[[-94.0, 27.0], [-84.0, 27.0], [-85.0, 23.0], [-94.0, 23.0], [-94.0, 27.0]]]}, 'properties': {'statistics': {'b1': {'min': -0.00010827484318077406, 'max': -1.8299923855515085e-05, 'mean': -6.215035433352368e-05, 'count': 608.7999877929688, 'sum': -0.03847106933245116, 'std': 2.3740140924105376e-05, 'median': -6.220146959628384e-05, 'majority': -0.00010827484318077406, 'minority': -0.00010827484318077406, 'unique': 619.0, 'histogram': [[20.0, 74.0, 80.0, 67.0, 65.0, 74.0, 91.0, 52.0, 54.0, 42.0], [-0.00010827484318077406, -9.927735124824817e-05, -9.027985931572227e-05, -8.128236738319637e-05, -7.228487545067047e-05, -6.328738351814458e-05, -5.428989158561868e-05, -4.529239965309278e-05, -3.6294907720566886e-05, -2.7297415788040994e-05, -1.8299923855515085e-05]], 'valid_percent': 96.72, 'masked_pixels': 21.0, 'valid_pixels': 619.0, 'percentile_2': -0.00010050626478409599, 'percentile_98': -2.1641725302424787e-05}}}}
+{'type': 'Feature', 'geometry': {'type': 'Polygon', 'coordinates': [[[-94.0, 27.0], [-84.0, 27.0], [-85.0, 23.0], [-94.0, 23.0], [-94.0, 27.0]]]}, 'properties': {'statistics': {'b1': {'min': -9.92620215161861e-05, 'max': -2.2248864596414117e-05, 'mean': -5.60195743559873e-05, 'count': 608.7999877929688, 'sum': -0.03467611652635614, 'std': 1.7921652338359224e-05, 'median': -5.613722460727431e-05, 'majority': -9.92620215161861e-05, 'minority': -9.92620215161861e-05, 'unique': 619.0, 'histogram': [[8.0, 15.0, 51.0, 112.0, 85.0, 76.0, 98.0, 86.0, 40.0, 48.0], [-9.92620215161861e-05, -9.15607058242089e-05, -8.385939013223171e-05, -7.615807444025451e-05, -6.845675874827731e-05, -6.0755443056300114e-05, -5.3054127364322916e-05, -4.535281167234572e-05, -3.765149598036852e-05, -2.9950180288391322e-05, -2.2248864596414117e-05]], 'valid_percent': 96.72, 'masked_pixels': 21.0, 'valid_pixels': 619.0, 'percentile_2': -8.862274142535779e-05, 'percentile_98': -2.539949073924052e-05}}}}
+{'type': 'Feature', 'geometry': {'type': 'Polygon', 'coordinates': [[[-94.0, 27.0], [-84.0, 27.0], [-85.0, 23.0], [-94.0, 23.0], [-94.0, 27.0]]]}, 'properties': {'statistics': {'b1': {'min': -7.885539277237652e-05, 'max': -1.4046228209583328e-05, 'mean': -4.0585354800609836e-05, 'count': 608.7999877929688, 'sum': -0.025122334621577487, 'std': 1.6883184747241513e-05, 'median': -3.8374908984569766e-05, 'majority': -7.885539277237652e-05, 'minority': -7.885539277237652e-05, 'unique': 619.0, 'histogram': [[15.0, 26.0, 74.0, 70.0, 61.0, 53.0, 75.0, 84.0, 109.0, 52.0], [-7.885539277237652e-05, -7.23744763160972e-05, -6.589355985981788e-05, -5.941264340353856e-05, -5.2931726947259243e-05, -4.6450810490979924e-05, -3.996989403470061e-05, -3.348897757842129e-05, -2.700806112214197e-05, -2.052714466586265e-05, -1.4046228209583328e-05]], 'valid_percent': 96.72, 'masked_pixels': 21.0, 'valid_pixels': 619.0, 'percentile_2': -7.372101227537506e-05, 'percentile_98': -1.5949860387221954e-05}}}}
+{'type': 'Feature', 'geometry': {'type': 'Polygon', 'coordinates': [[[-94.0, 27.0], [-84.0, 27.0], [-85.0, 23.0], [-94.0, 23.0], [-94.0, 27.0]]]}, 'properties': {'statistics': {'b1': {'min': -3.353270152446263e-05, 'max': 3.4953422010845556e-05, 'mean': -4.735804251910216e-06, 'count': 608.7999877929688, 'sum': -0.002931462831932424, 'std': 1.7526242132609594e-05, 'median': -4.361180453388619e-06, 'majority': -3.353270152446263e-05, 'minority': -3.353270152446263e-05, 'unique': 619.0, 'histogram': [[76.0, 86.0, 72.0, 64.0, 66.0, 88.0, 72.0, 44.0, 27.0, 24.0], [-3.353270152446263e-05, -2.6684089170931812e-05, -1.983547681740099e-05, -1.2986864463870171e-05, -6.138252110339354e-06, 7.103602431914632e-07, 7.558972596722287e-06, 1.4407584950253104e-05, 2.125619730378392e-05, 2.8104809657314745e-05, 3.4953422010845556e-05]], 'valid_percent': 96.72, 'masked_pixels': 21.0, 'valid_pixels': 619.0, 'percentile_2': -3.162456524554327e-05, 'percentile_98': 3.182003383264205e-05}}}}
+{'type': 'Feature', 'geometry': {'type': 'Polygon', 'coordinates': [[[-94.0, 27.0], [-84.0, 27.0], [-85.0, 23.0], [-94.0, 23.0], [-94.0, 27.0]]]}, 'properties': {'statistics': {'b1': {'min': 6.469128915199668e-06, 'max': 6.885748048418978e-05, 'mean': 3.918405840226046e-05, 'count': 608.7999877929688, 'sum': 0.024254932150999227, 'std': 1.7899196884845035e-05, 'median': 3.874930083126464e-05, 'majority': 6.469128915199668e-06, 'minority': 6.469128915199668e-06, 'unique': 619.0, 'histogram': [[44.0, 50.0, 57.0, 59.0, 71.0, 71.0, 62.0, 60.0, 71.0, 74.0], [6.469128915199668e-06, 1.2707964072098681e-05, 1.8946799228997692e-05, 2.5185634385896706e-05, 3.142446954279572e-05, 3.766330469969473e-05, 4.390213985659375e-05, 5.014097501349276e-05, 5.637981017039177e-05, 6.261864532729078e-05, 6.885748048418978e-05]], 'valid_percent': 96.72, 'masked_pixels': 21.0, 'valid_pixels': 619.0, 'percentile_2': 7.95205482967914e-06, 'percentile_98': 6.652739228887438e-05}}}}
+{'type': 'Feature', 'geometry': {'type': 'Polygon', 'coordinates': [[[-94.0, 27.0], [-84.0, 27.0], [-85.0, 23.0], [-94.0, 23.0], [-94.0, 27.0]]]}, 'properties': {'statistics': {'b1': {'min': 3.761520894947776e-05, 'max': 5.955634535330163e-05, 'mean': 4.528865822670517e-05, 'count': 608.7999877929688, 'sum': 0.028033679442330497, 'std': 6.496549271327865e-06, 'median': 4.551849263398211e-05, 'majority': 3.761520894947776e-05, 'minority': 3.761520894947776e-05, 'unique': 619.0, 'histogram': [[25.0, 76.0, 126.0, 137.0, 96.0, 75.0, 44.0, 20.0, 15.0, 5.0], [3.761520894947776e-05, 3.980932258986015e-05, 4.200343623024253e-05, 4.419754987062492e-05, 4.639166351100731e-05, 4.858577715138969e-05, 5.077989079177208e-05, 5.297400443215447e-05, 5.516811807253685e-05, 5.736223171291924e-05, 5.955634535330163e-05]], 'valid_percent': 96.72, 'masked_pixels': 21.0, 'valid_pixels': 619.0, 'percentile_2': 3.922620656781445e-05, 'percentile_98': 5.6162919224573475e-05}}}}
+{'type': 'Feature', 'geometry': {'type': 'Polygon', 'coordinates': [[[-94.0, 27.0], [-84.0, 27.0], [-85.0, 23.0], [-94.0, 23.0], [-94.0, 27.0]]]}, 'properties': {'statistics': {'b1': {'min': 3.2313986746042745e-05, 'max': 5.329126175271288e-05, 'mean': 4.2756974959884414e-05, 'count': 608.7999877929688, 'sum': 0.02646656750016845, 'std': 6.138926057304236e-06, 'median': 4.313465079693175e-05, 'majority': 3.2313986746042745e-05, 'minority': 3.2313986746042745e-05, 'unique': 619.0, 'histogram': [[11.0, 12.0, 20.0, 124.0, 120.0, 118.0, 94.0, 58.0, 37.0, 25.0], [3.2313986746042745e-05, 3.441171424670976e-05, 3.650944174737677e-05, 3.860716924804378e-05, 4.07048967487108e-05, 4.280262424937781e-05, 4.490035175004482e-05, 4.6998079250711834e-05, 4.909580675137885e-05, 5.1193534252045865e-05, 5.329126175271288e-05]], 'valid_percent': 96.72, 'masked_pixels': 21.0, 'valid_pixels': 619.0, 'percentile_2': 3.482474228636712e-05, 'percentile_98': 5.1838928102583855e-05}}}}
+{'type': 'Feature', 'geometry': {'type': 'Polygon', 'coordinates': [[[-94.0, 27.0], [-84.0, 27.0], [-85.0, 23.0], [-94.0, 23.0], [-94.0, 27.0]]]}, 'properties': {'statistics': {'b1': {'min': 3.4334151000503605e-05, 'max': 5.3393410642218494e-05, 'mean': 4.0700435335494155e-05, 'count': 608.7999877929688, 'sum': 0.02519356947267088, 'std': 6.682531699975243e-06, 'median': 3.97282039231459e-05, 'majority': 3.4334151000503605e-05, 'minority': 3.4334151000503605e-05, 'unique': 619.0, 'histogram': [[107.0, 115.0, 85.0, 60.0, 47.0, 55.0, 46.0, 43.0, 49.0, 12.0], [3.4334151000503605e-05, 3.62400769646751e-05, 3.814600292884658e-05, 4.005192889301807e-05, 4.195785485718956e-05, 4.386378082136105e-05, 4.576970678553254e-05, 4.7675632749704026e-05, 4.958155871387552e-05, 5.148748467804701e-05, 5.3393410642218494e-05]], 'valid_percent': 96.72, 'masked_pixels': 21.0, 'valid_pixels': 619.0, 'percentile_2': 3.4688929146044206e-05, 'percentile_98': 5.1433577905900137e-05}}}}
+{'type': 'Feature', 'geometry': {'type': 'Polygon', 'coordinates': [[[-94.0, 27.0], [-84.0, 27.0], [-85.0, 23.0], [-94.0, 23.0], [-94.0, 27.0]]]}, 'properties': {'statistics': {'b1': {'min': 1.3046732118252856e-05, 'max': 4.69918575601015e-05, 'mean': 3.2395928197003725e-05, 'count': 608.7999877929688, 'sum': 0.020053079553945308, 'std': 9.558525820408142e-06, 'median': 3.439666778741405e-05, 'majority': 1.3046732118252856e-05, 'minority': 1.3046732118252856e-05, 'unique': 619.0, 'histogram': [[29.0, 46.0, 46.0, 46.0, 46.0, 69.0, 86.0, 92.0, 110.0, 49.0], [1.3046732118252856e-05, 1.644124466243772e-05, 1.9835757206622584e-05, 2.323026975080745e-05, 2.6624782294992313e-05, 3.0019294839177177e-05, 3.3413807383362044e-05, 3.68083199275469e-05, 4.020283247173177e-05, 4.359734501591663e-05, 4.69918575601015e-05]], 'valid_percent': 96.72, 'masked_pixels': 21.0, 'valid_pixels': 619.0, 'percentile_2': 1.5275436163782438e-05, 'percentile_98': 4.585582534017002e-05}}}}
+{'type': 'Feature', 'geometry': {'type': 'Polygon', 'coordinates': [[[-94.0, 27.0], [-84.0, 27.0], [-85.0, 23.0], [-94.0, 23.0], [-94.0, 27.0]]]}, 'properties': {'statistics': {'b1': {'min': -8.139985841438919e-06, 'max': 2.973476406140739e-05, 'mean': 1.0325142499662181e-05, 'count': 608.7999877929688, 'sum': 0.0063912632072908905, 'std': 9.571587193673986e-06, 'median': 1.1173438163617432e-05, 'majority': -8.139985841438919e-06, 'minority': -8.139985841438919e-06, 'unique': 619.0, 'histogram': [[38.0, 69.0, 78.0, 51.0, 63.0, 77.0, 83.0, 83.0, 63.0, 14.0], [-8.139985841438919e-06, -4.352510851154288e-06, -5.650358608696578e-07, 3.2224391294149723e-06, 7.009914119699603e-06, 1.0797389109984234e-05, 1.4584864100268863e-05, 1.8372339090553494e-05, 2.2159814080838123e-05, 2.594728907112276e-05, 2.973476406140739e-05]], 'valid_percent': 96.72, 'masked_pixels': 21.0, 'valid_pixels': 619.0, 'percentile_2': -5.818214950441399e-06, 'percentile_98': 2.5985971012309624e-05}}}}
+{'type': 'Feature', 'geometry': {'type': 'Polygon', 'coordinates': [[[-94.0, 27.0], [-84.0, 27.0], [-85.0, 23.0], [-94.0, 23.0], [-94.0, 27.0]]]}, 'properties': {'statistics': {'b1': {'min': -3.1012526700140845e-05, 'max': 1.8262199019635504e-05, 'mean': -1.1401819078112475e-06, 'count': 608.7999877929688, 'sum': -0.0007057726009351622, 'std': 1.1837109914666185e-05, 'median': 1.6378357812606576e-06, 'majority': -3.1012526700140845e-05, 'minority': -3.1012526700140845e-05, 'unique': 619.0, 'histogram': [[20.0, 34.0, 37.0, 46.0, 58.0, 62.0, 78.0, 152.0, 86.0, 46.0], [-3.1012526700140845e-05, -2.608505412816321e-05, -2.1157581556185574e-05, -1.6230108984207942e-05, -1.1302636412230306e-05, -6.3751638402526704e-06, -1.4476912682750382e-06, 3.479781303702601e-06, 8.407253875680233e-06, 1.3334726447657865e-05, 1.8262199019635504e-05]], 'valid_percent': 96.72, 'masked_pixels': 21.0, 'valid_pixels': 619.0, 'percentile_2': -2.6774948273123854e-05, 'percentile_98': 1.6342775883263637e-05}}}}
+{'type': 'Feature', 'geometry': {'type': 'Polygon', 'coordinates': [[[-94.0, 27.0], [-84.0, 27.0], [-85.0, 23.0], [-94.0, 23.0], [-94.0, 27.0]]]}, 'properties': {'statistics': {'b1': {'min': -7.997852596560675e-05, 'max': -8.269624106640244e-06, 'mean': -4.793461961689403e-05, 'count': 608.7999877929688, 'sum': -0.029671529542857407, 'std': 1.9989055951189148e-05, 'median': -4.891792698319347e-05, 'majority': -7.997852596560675e-05, 'minority': -7.997852596560675e-05, 'unique': 619.0, 'histogram': [[80.0, 61.0, 67.0, 87.0, 121.0, 48.0, 31.0, 30.0, 46.0, 48.0], [-7.997852596560675e-05, -7.28076357797101e-05, -6.563674559381345e-05, -5.846585540791679e-05, -5.129496522202014e-05, -4.4124075036123494e-05, -3.695318485022684e-05, -2.9782294664330188e-05, -2.261140447843354e-05, -1.544051429253689e-05, -8.269624106640244e-06]], 'valid_percent': 96.72, 'masked_pixels': 21.0, 'valid_pixels': 619.0, 'percentile_2': -7.803000965376537e-05, 'percentile_98': -1.033555551211828e-05}}}}
+{'type': 'Feature', 'geometry': {'type': 'Polygon', 'coordinates': [[[-94.0, 27.0], [-84.0, 27.0], [-85.0, 23.0], [-94.0, 23.0], [-94.0, 27.0]]]}, 'properties': {'statistics': {'b1': {'min': -0.00011146956360639423, 'max': -7.571998619056863e-06, 'mean': -6.317081964114835e-05, 'count': 608.7999877929688, 'sum': -0.03910273735787083, 'std': 2.8116364733872533e-05, 'median': -6.171586726662852e-05, 'majority': -0.00011146956360639423, 'minority': -0.00011146956360639423, 'unique': 619.0, 'histogram': [[51.0, 89.0, 74.0, 55.0, 60.0, 95.0, 82.0, 33.0, 41.0, 39.0], [-0.00011146956360639423, -0.0001010798071076605, -9.069005060892676e-05, -8.030029411019301e-05, -6.991053761145928e-05, -5.9520781112725546e-05, -4.913102461399181e-05, -3.874126811525808e-05, -2.8351511616524333e-05, -1.796175511779059e-05, -7.571998619056863e-06]], 'valid_percent': 96.72, 'masked_pixels': 21.0, 'valid_pixels': 619.0, 'percentile_2': -0.00010717370899643795, 'percentile_98': -1.1217420558344485e-05}}}}
+{'type': 'Feature', 'geometry': {'type': 'Polygon', 'coordinates': [[[-94.0, 27.0], [-84.0, 27.0], [-85.0, 23.0], [-94.0, 23.0], [-94.0, 27.0]]]}, 'properties': {'statistics': {'b1': {'min': -9.466197533351959e-05, 'max': -9.61733885294746e-06, 'mean': -4.8259057714546494e-05, 'count': 608.7999877929688, 'sum': -0.029872356725304278, 'std': 2.3438613300768743e-05, 'median': -4.393898330523922e-05, 'majority': -9.466197533351959e-05, 'minority': -9.466197533351959e-05, 'unique': 619.0, 'histogram': [[19.0, 71.0, 84.0, 56.0, 46.0, 45.0, 68.0, 112.0, 68.0, 50.0], [-9.466197533351959e-05, -8.615751168546237e-05, -7.765304803740517e-05, -6.914858438934796e-05, -6.064412074129074e-05, -5.213965709323353e-05, -4.363519344517632e-05, -3.513072979711911e-05, -2.6626266149061895e-05, -1.812180250100468e-05, -9.61733885294746e-06]], 'valid_percent': 96.72, 'masked_pixels': 21.0, 'valid_pixels': 619.0, 'percentile_2': -8.807461078928826e-05, 'percentile_98': -1.2667326672290707e-05}}}}
+CPU times: user 921 ms, sys: 116 ms, total: 1.04 s
+Wall time: 26.7 s
+
+
+
+
+
+
{'statistics': {'b1': {'min': -3.432180631595723e-05,
+ 'max': 2.3301704633944816e-05,
+ 'mean': 2.9837907378513794e-06,
+ 'count': 608.7999877929688,
+ 'sum': 0.0018469664667300038,
+ 'std': 1.5043210707780694e-05,
+ 'median': 6.984856325983938e-06,
+ 'majority': -3.432180631595723e-05,
+ 'minority': -3.432180631595723e-05,
+ 'unique': 619.0,
+ 'histogram': [[27.0,
+ 22.0,
+ 30.0,
+ 44.0,
+ 47.0,
+ 58.0,
+ 64.0,
+ 86.0,
+ 133.0,
+ 108.0],
+ [-3.432180631595723e-05,
+ -2.8559455220967027e-05,
+ -2.279710412597682e-05,
+ -1.703475303098662e-05,
+ -1.1272401935996415e-05,
+ -5.5100508410062094e-06,
+ 2.523002539839923e-07,
+ 6.014651348974201e-06,
+ 1.1777002443964403e-05,
+ 1.7539353538954604e-05,
+ 2.3301704633944816e-05]],
+ 'valid_percent': 96.72,
+ 'masked_pixels': 21.0,
+ 'valid_pixels': 619.0,
+ 'percentile_2': -3.1588106589646895e-05,
+ 'percentile_98': 2.1694713234986116e-05}},
+ 'datetime': '2022-12-01T00:00:00+00:00'}
+
+
+
+
import pandas as pd
+
+
+def clean_stats(stats_json) -> pd.DataFrame:
+ df = pd.json_normalize(stats_json)
+ df.columns = [col.replace("statistics.b1." , "" ) for col in df.columns]
+ df["date" ] = pd.to_datetime(df["datetime" ])
+ return df
+
+
+ df = clean_stats(stats)
+ df.head(5 )
+
+
+
+
+
+
+
+
+
+
+0
+2022-12-01T00:00:00+00:00
+-0.000034
+0.000023
+0.000003
+608.799988
+0.001847
+0.000015
+0.000007
+-0.000034
+-0.000034
+619.0
+[[27.0, 22.0, 30.0, 44.0, 47.0, 58.0, 64.0, 86...
+96.72
+21.0
+619.0
+-0.000032
+0.000022
+2022-12-01 00:00:00+00:00
+
+
+1
+2022-11-01T00:00:00+00:00
+0.000013
+0.000036
+0.000024
+608.799988
+0.015122
+0.000005
+0.000024
+0.000013
+0.000013
+619.0
+[[22.0, 20.0, 19.0, 82.0, 198.0, 138.0, 57.0, ...
+96.72
+21.0
+619.0
+0.000014
+0.000035
+2022-11-01 00:00:00+00:00
+
+
+2
+2022-10-01T00:00:00+00:00
+0.000034
+0.000059
+0.000044
+608.799988
+0.027499
+0.000006
+0.000045
+0.000034
+0.000034
+619.0
+[[6.0, 43.0, 67.0, 145.0, 151.0, 99.0, 55.0, 2...
+96.72
+21.0
+619.0
+0.000038
+0.000057
+2022-10-01 00:00:00+00:00
+
+
+3
+2022-09-01T00:00:00+00:00
+0.000025
+0.000052
+0.000035
+608.799988
+0.021673
+0.000007
+0.000034
+0.000025
+0.000025
+619.0
+[[34.0, 121.0, 105.0, 92.0, 67.0, 69.0, 46.0, ...
+96.72
+21.0
+619.0
+0.000026
+0.000050
+2022-09-01 00:00:00+00:00
+
+
+4
+2022-08-01T00:00:00+00:00
+0.000031
+0.000055
+0.000040
+608.799988
+0.024808
+0.000007
+0.000039
+0.000031
+0.000031
+619.0
+[[35.0, 69.0, 152.0, 100.0, 70.0, 53.0, 44.0, ...
+96.72
+21.0
+619.0
+0.000032
+0.000055
+2022-08-01 00:00:00+00:00
+
+
+
+
-
-
-
import pandas as pd
-
-
-def clean_stats(stats_json) -> pd.DataFrame:
- df = pd.json_normalize(stats_json)
- df.columns = [col.replace("statistics.b1." , "" ) for col in df.columns]
- df["date" ] = pd.to_datetime(df["datetime" ])
- return df
-
-
- df = clean_stats(stats)
- df.head(5 )
Visualizing the Data as a Time Series
We can now explore the fossil fuel emission time series (January 2020 -December 2022) available for the Dallas, Texas area of the U.S. We can plot the data set using the code below:
-
-
import matplotlib.pyplot as plt
-
- fig = plt.figure(figsize= (20 , 10 ))
-
-
- plt.plot(
- df["datetime" ],
- df["max" ],
- color= "red" ,
- linestyle= "-" ,
- linewidth= 0.5 ,
- label= "CO2 emissions" ,
- )
-
- plt.legend()
- plt.xlabel("Years" )
- plt.ylabel("CO2 emissions mmol m²/s" )
- plt.title("CO2 emission Values for Gulf of Mexico (2020-2022)" )
+
+
import matplotlib.pyplot as plt
+
+ fig = plt.figure(figsize= (20 , 10 ))
+
+
+ plt.plot(
+ df["datetime" ],
+ df["max" ],
+ color= "red" ,
+ linestyle= "-" ,
+ linewidth= 0.5 ,
+ label= "CO2 emissions" ,
+ )
+
+ plt.legend()
+ plt.xlabel("Years" )
+ plt.ylabel("CO2 emissions mmol m²/s" )
+ plt.title("CO2 emission Values for Gulf of Mexico (2020-2022)" )
+
+
Text(0.5, 1.0, 'CO2 emission Values for Gulf of Mexico (2020-2022)')
+
+
+
+
+
+
+
print (items[2 ]["properties" ]["start_datetime" ])
+
+
2022-10-01T00:00:00+00:00
+
-
-
print (items[2 ]["properties" ]["start_datetime" ])
+
+
co2_flux_3 = requests.get(
+ f" { RASTER_API_URL} /stac/tilejson.json?collection= { items[2 ]['collection' ]} &item= { items[2 ]['id' ]} "
+ f"&assets= { asset_name} "
+ f"&color_formula=gamma+r+1.05&colormap_name= { color_map} "
+ f"&rescale= { rescale_values['min' ]} , { rescale_values['max' ]} " ,
+ ).json()
+ co2_flux_3
+
+
{'tilejson': '2.2.0',
+ 'version': '1.0.0',
+ 'scheme': 'xyz',
+ 'tiles': ['https://ghg.center/api/raster/stac/tiles/WebMercatorQuad/{z}/{x}/{y}@1x?collection=eccodarwin-co2flux-monthgrid-v5&item=eccodarwin-co2flux-monthgrid-v5-202210&assets=co2&color_formula=gamma+r+1.05&colormap_name=magma&rescale=-0.0560546997598733%2C0.05544506255821962'],
+ 'minzoom': 0,
+ 'maxzoom': 24,
+ 'bounds': [-180.125, -90.124826629681, 179.875, 89.875173370319],
+ 'center': [-0.125, -0.1248266296809959, 0]}
-
-
co2_flux_3 = requests.get(
- f" { RASTER_API_URL} /stac/tilejson.json?collection= { items[2 ]['collection' ]} &item= { items[2 ]['id' ]} "
- f"&assets= { asset_name} "
- f"&color_formula=gamma+r+1.05&colormap_name= { color_map} "
- f"&rescale= { rescale_values['min' ]} , { rescale_values['max' ]} " ,
- ).json()
- co2_flux_3
-
-
# Use bbox initial zoom and map
-# Set up a map located w/in event bounds
-import folium
-
- aoi_map_bbox = Map(
- tiles= "OpenStreetMap" ,
- location= [
- 30 ,- 100
- ],
- zoom_start= 6.8 ,
- )
-
- map_layer = TileLayer(
- tiles= co2_flux_3["tiles" ][0 ],
- attr= "GHG" , opacity = 0.7
- )
-
- map_layer.add_to(aoi_map_bbox)
-
- aoi_map_bbox
+
+
# Use bbox initial zoom and map
+# Set up a map located w/in event bounds
+import folium
+
+ aoi_map_bbox = Map(
+ tiles= "OpenStreetMap" ,
+ location= [
+ 30 ,- 100
+ ],
+ zoom_start= 6.8 ,
+ )
+
+ map_layer = TileLayer(
+ tiles= co2_flux_3["tiles" ][0 ],
+ attr= "GHG" , opacity = 0.7
+ )
+
+ map_layer.add_to(aoi_map_bbox)
+
+ aoi_map_bbox
+
+
Make this Notebook Trusted to load map: File -> Trust Notebook
+
diff --git a/pr-preview/pr-51/user_data_notebooks/eccodarwin-co2flux-monthgrid-v5_User_Notebook_files/figure-html/cell-23-output-2.png b/pr-preview/pr-51/user_data_notebooks/eccodarwin-co2flux-monthgrid-v5_User_Notebook_files/figure-html/cell-23-output-2.png
new file mode 100644
index 00000000..a9f2c77e
Binary files /dev/null and b/pr-preview/pr-51/user_data_notebooks/eccodarwin-co2flux-monthgrid-v5_User_Notebook_files/figure-html/cell-23-output-2.png differ
diff --git a/pr-preview/pr-51/user_data_notebooks/emit-ch4plume-v1_User_Notebook.html b/pr-preview/pr-51/user_data_notebooks/emit-ch4plume-v1_User_Notebook.html
index 94db9c98..d344abe9 100644
--- a/pr-preview/pr-51/user_data_notebooks/emit-ch4plume-v1_User_Notebook.html
+++ b/pr-preview/pr-51/user_data_notebooks/emit-ch4plume-v1_User_Notebook.html
@@ -577,7 +577,7 @@ About the Data
Installing the Required Libraries
Please run the next cell to install all the required libraries to run the notebook.
-
+
% pip install requests
% pip install folium
% pip install rasterstats
@@ -585,63 +585,63 @@ Installing the Required Libraries
Requirement already satisfied: requests in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (2.31.0)
Requirement already satisfied: urllib3<3,>=1.21.1 in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from requests) (1.26.16)
-Requirement already satisfied: idna<4,>=2.5 in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from requests) (3.4)
Requirement already satisfied: charset-normalizer<4,>=2 in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from requests) (3.1.0)
+Requirement already satisfied: idna<4,>=2.5 in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from requests) (3.4)
Requirement already satisfied: certifi>=2017.4.17 in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from requests) (2023.7.22)
Note: you may need to restart the kernel to use updated packages.
Requirement already satisfied: folium in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (0.14.0)
Requirement already satisfied: branca>=0.6.0 in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from folium) (0.6.0)
-Requirement already satisfied: requests in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from folium) (2.31.0)
-Requirement already satisfied: jinja2>=2.9 in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from folium) (3.1.2)
Requirement already satisfied: numpy in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from folium) (1.24.3)
+Requirement already satisfied: jinja2>=2.9 in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from folium) (3.1.2)
+Requirement already satisfied: requests in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from folium) (2.31.0)
Requirement already satisfied: MarkupSafe>=2.0 in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from jinja2>=2.9->folium) (2.1.3)
+Requirement already satisfied: idna<4,>=2.5 in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from requests->folium) (3.4)
Requirement already satisfied: urllib3<3,>=1.21.1 in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from requests->folium) (1.26.16)
Requirement already satisfied: certifi>=2017.4.17 in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from requests->folium) (2023.7.22)
Requirement already satisfied: charset-normalizer<4,>=2 in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from requests->folium) (3.1.0)
-Requirement already satisfied: idna<4,>=2.5 in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from requests->folium) (3.4)
Note: you may need to restart the kernel to use updated packages.
Requirement already satisfied: rasterstats in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (0.19.0)
-Requirement already satisfied: shapely in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from rasterstats) (2.0.1)
-Requirement already satisfied: simplejson in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from rasterstats) (3.19.1)
Requirement already satisfied: numpy>=1.9 in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from rasterstats) (1.24.3)
-Requirement already satisfied: rasterio>=1.0 in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from rasterstats) (1.3.6)
Requirement already satisfied: cligj>=0.4 in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from rasterstats) (0.7.2)
Requirement already satisfied: affine in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from rasterstats) (2.4.0)
-Requirement already satisfied: fiona in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from rasterstats) (1.9.4.post1)
Requirement already satisfied: click>7.1 in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from rasterstats) (8.1.3)
+Requirement already satisfied: rasterio>=1.0 in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from rasterstats) (1.3.6)
+Requirement already satisfied: shapely in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from rasterstats) (2.0.1)
+Requirement already satisfied: simplejson in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from rasterstats) (3.19.1)
+Requirement already satisfied: fiona in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from rasterstats) (1.9.4.post1)
+Requirement already satisfied: certifi in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from rasterio>=1.0->rasterstats) (2023.7.22)
Requirement already satisfied: setuptools in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from rasterio>=1.0->rasterstats) (66.0.0)
-Requirement already satisfied: attrs in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from rasterio>=1.0->rasterstats) (22.2.0)
Requirement already satisfied: click-plugins in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from rasterio>=1.0->rasterstats) (1.1.1)
Requirement already satisfied: snuggs>=1.4.1 in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from rasterio>=1.0->rasterstats) (1.4.7)
-Requirement already satisfied: certifi in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from rasterio>=1.0->rasterstats) (2023.7.22)
-Requirement already satisfied: six in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from fiona->rasterstats) (1.16.0)
+Requirement already satisfied: attrs in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from rasterio>=1.0->rasterstats) (22.2.0)
Requirement already satisfied: importlib-metadata in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from fiona->rasterstats) (6.0.0)
+Requirement already satisfied: six in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from fiona->rasterstats) (1.16.0)
Requirement already satisfied: pyparsing>=2.1.6 in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from snuggs>=1.4.1->rasterio>=1.0->rasterstats) (3.0.9)
Requirement already satisfied: zipp>=0.5 in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from importlib-metadata->fiona->rasterstats) (3.15.0)
Note: you may need to restart the kernel to use updated packages.
Requirement already satisfied: pystac_client in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (0.7.2)
+Requirement already satisfied: pystac[validation]>=1.7.2 in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from pystac_client) (1.7.3)
Requirement already satisfied: python-dateutil>=2.8.2 in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from pystac_client) (2.8.2)
Requirement already satisfied: requests>=2.28.2 in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from pystac_client) (2.31.0)
-Requirement already satisfied: pystac[validation]>=1.7.2 in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from pystac_client) (1.7.3)
Requirement already satisfied: jsonschema>=4.0.1 in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from pystac[validation]>=1.7.2->pystac_client) (4.17.3)
Requirement already satisfied: six>=1.5 in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from python-dateutil>=2.8.2->pystac_client) (1.16.0)
-Requirement already satisfied: idna<4,>=2.5 in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from requests>=2.28.2->pystac_client) (3.4)
-Requirement already satisfied: urllib3<3,>=1.21.1 in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from requests>=2.28.2->pystac_client) (1.26.16)
Requirement already satisfied: charset-normalizer<4,>=2 in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from requests>=2.28.2->pystac_client) (3.1.0)
Requirement already satisfied: certifi>=2017.4.17 in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from requests>=2.28.2->pystac_client) (2023.7.22)
-Requirement already satisfied: attrs>=17.4.0 in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from jsonschema>=4.0.1->pystac[validation]>=1.7.2->pystac_client) (22.2.0)
+Requirement already satisfied: urllib3<3,>=1.21.1 in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from requests>=2.28.2->pystac_client) (1.26.16)
+Requirement already satisfied: idna<4,>=2.5 in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from requests>=2.28.2->pystac_client) (3.4)
Requirement already satisfied: pyrsistent!=0.17.0,!=0.17.1,!=0.17.2,>=0.14.0 in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from jsonschema>=4.0.1->pystac[validation]>=1.7.2->pystac_client) (0.19.3)
+Requirement already satisfied: attrs>=17.4.0 in /Users/vgaur/miniconda3/envs/cmip6/lib/python3.9/site-packages (from jsonschema>=4.0.1->pystac[validation]>=1.7.2->pystac_client) (22.2.0)
Note: you may need to restart the kernel to use updated packages.
Querying the STAC API
-
+
import requests
from folium import Map, TileLayer
from pystac_client import Client
-
+
# Provide STAC and RASTER API endpoints
STAC_API_URL = "http://ghg.center/api/stac"
RASTER_API_URL = "https://ghg.center/api/raster"
@@ -651,33 +651,33 @@ Querying the STAC AP
# Name of the collection for methane emission plumes.
collection_name = "emit-ch4plume-v1"
-
+
# Fetching the collection from STAC collections using appropriate endpoint.
collection = requests.get(f" { STAC_API_URL} /collections/ { collection_name} " ).json()
collection
-
+
{'id': 'emit-ch4plume-v1',
'type': 'Collection',
'links': [{'rel': 'items',
'type': 'application/geo+json',
- 'href': 'https://e6v7j4ejp6.execute-api.us-west-2.amazonaws.com/api/stac/collections/emit-ch4plume-v1/items'},
+ 'href': 'https://ghg.center/api/stac/collections/emit-ch4plume-v1/items'},
{'rel': 'parent',
'type': 'application/json',
- 'href': 'https://e6v7j4ejp6.execute-api.us-west-2.amazonaws.com/api/stac/'},
+ 'href': 'https://ghg.center/api/stac/'},
{'rel': 'root',
'type': 'application/json',
- 'href': 'https://e6v7j4ejp6.execute-api.us-west-2.amazonaws.com/api/stac/'},
+ 'href': 'https://ghg.center/api/stac/'},
{'rel': 'self',
'type': 'application/json',
- 'href': 'https://e6v7j4ejp6.execute-api.us-west-2.amazonaws.com/api/stac/collections/emit-ch4plume-v1'}],
+ 'href': 'https://ghg.center/api/stac/collections/emit-ch4plume-v1'}],
'title': 'Methane Point Source Plume Complexes',
'assets': None,
- 'extent': {'spatial': {'bbox': [[-118.65756225585938,
- -38.788387298583984,
+ 'extent': {'spatial': {'bbox': [[-121.90662384033203,
+ -39.21891784667969,
151.0906524658203,
- 50.24619674682617]]},
+ 50.372535705566406]]},
'temporal': {'interval': [['2022-08-10T06:49:57+00:00',
- '2023-07-29T10:06:30+00:00']]}},
+ '2023-10-08T16:11:15+00:00']]}},
'license': 'CC0-1.0',
'keywords': None,
'providers': None,
@@ -930,8 +930,15 @@ Querying the STAC AP
'2023-05-27T13:32:35Z',
'2023-05-29T11:57:40Z',
'2023-05-30T09:37:28Z',
+ '2023-05-30T18:57:54Z',
+ '2023-05-31T10:23:16Z',
+ '2023-05-31T10:24:39Z',
+ '2023-06-01T09:36:23Z',
+ '2023-06-02T07:19:17Z',
+ '2023-06-03T07:59:14Z',
'2023-06-03T07:59:26Z',
'2023-06-03T08:03:27Z',
+ '2023-06-03T09:32:09Z',
'2023-06-04T07:06:41Z',
'2023-06-04T18:02:05Z',
'2023-06-04T18:02:17Z',
@@ -941,6 +948,10 @@ Querying the STAC AP
'2023-06-06T10:14:59Z',
'2023-06-07T09:26:29Z',
'2023-06-07T09:26:41Z',
+ '2023-06-08T05:31:35Z',
+ '2023-06-08T16:23:22Z',
+ '2023-06-08T16:23:34Z',
+ '2023-06-08T16:23:46Z',
'2023-06-09T04:51:06Z',
'2023-06-09T07:50:16Z',
'2023-06-09T17:10:10Z',
@@ -951,6 +962,9 @@ Querying the STAC AP
'2023-06-11T04:44:27Z',
'2023-06-11T04:45:26Z',
'2023-06-11T06:16:38Z',
+ '2023-06-12T02:24:18Z',
+ '2023-06-12T05:32:53Z',
+ '2023-06-12T16:21:03Z',
'2023-06-13T04:43:14Z',
'2023-06-13T11:13:48Z',
'2023-06-14T10:24:03Z',
@@ -958,15 +972,26 @@ Querying the STAC AP
'2023-06-14T10:24:39Z',
'2023-06-14T10:24:51Z',
'2023-06-14T19:37:06Z',
+ '2023-06-16T11:59:49Z',
+ '2023-06-16T21:14:19Z',
+ '2023-06-16T21:14:31Z',
+ '2023-06-17T11:00:03Z',
+ '2023-06-19T08:03:47Z',
+ '2023-06-19T11:07:48Z',
'2023-06-20T08:44:14Z',
'2023-06-20T08:44:26Z',
'2023-06-22T11:50:37Z',
+ '2023-06-22T19:32:01Z',
+ '2023-06-22T19:32:13Z',
'2023-06-24T05:29:00Z',
'2023-06-24T05:30:36Z',
+ '2023-06-25T03:13:55Z',
'2023-06-25T06:16:49Z',
'2023-06-25T06:18:46Z',
+ '2023-06-25T07:52:48Z',
'2023-06-26T08:40:04Z',
'2023-06-26T10:12:32Z',
+ '2023-06-26T10:13:43Z',
'2023-06-27T03:08:22Z',
'2023-06-27T04:42:31Z',
'2023-06-27T07:52:01Z',
@@ -975,15 +1000,122 @@ Querying the STAC AP
'2023-06-28T05:33:24Z',
'2023-06-28T16:19:24Z',
'2023-06-29T01:34:53Z',
+ '2023-06-29T01:35:16Z',
'2023-06-29T04:40:14Z',
+ '2023-06-29T04:40:50Z',
+ '2023-06-29T04:41:01Z',
'2023-06-29T06:14:16Z',
'2023-06-29T06:15:03Z',
'2023-06-29T06:16:26Z',
'2023-06-29T06:16:38Z',
'2023-06-29T06:16:50Z',
+ '2023-06-29T06:17:27Z',
+ '2023-06-29T06:18:50Z',
'2023-06-29T15:40:42Z',
'2023-06-30T07:06:49Z',
- '2023-07-29T10:06:30Z']},
+ '2023-06-30T10:23:58Z',
+ '2023-06-30T16:17:28Z',
+ '2023-07-25T10:05:32Z',
+ '2023-07-25T11:39:04Z',
+ '2023-07-25T11:39:27Z',
+ '2023-07-29T10:02:52Z',
+ '2023-07-29T10:06:30Z',
+ '2023-07-29T13:08:54Z',
+ '2023-07-29T13:10:41Z',
+ '2023-07-29T20:53:42Z',
+ '2023-07-30T09:14:51Z',
+ '2023-07-30T10:48:00Z',
+ '2023-07-30T12:20:47Z',
+ '2023-07-31T06:58:04Z',
+ '2023-07-31T13:07:06Z',
+ '2023-07-31T19:18:10Z',
+ '2023-07-31T19:18:22Z',
+ '2023-07-31T19:18:34Z',
+ '2023-07-31T19:18:46Z',
+ '2023-08-01T09:16:36Z',
+ '2023-08-01T09:16:48Z',
+ '2023-08-02T08:25:47Z',
+ '2023-08-02T08:26:10Z',
+ '2023-08-02T08:29:53Z',
+ '2023-08-02T11:34:11Z',
+ '2023-08-03T09:21:03Z',
+ '2023-08-04T05:22:23Z',
+ '2023-08-04T08:25:59Z',
+ '2023-08-04T08:29:48Z',
+ '2023-08-04T11:31:11Z',
+ '2023-08-04T17:41:29Z',
+ '2023-08-04T17:41:41Z',
+ '2023-08-05T06:08:27Z',
+ '2023-08-05T07:38:38Z',
+ '2023-08-05T07:40:37Z',
+ '2023-08-05T09:08:52Z',
+ '2023-08-05T09:09:04Z',
+ '2023-08-05T09:09:15Z',
+ '2023-08-06T03:46:59Z',
+ '2023-08-06T03:48:03Z',
+ '2023-08-06T06:52:31Z',
+ '2023-08-07T07:35:11Z',
+ '2023-08-07T07:36:22Z',
+ '2023-08-07T09:06:55Z',
+ '2023-08-09T04:30:25Z',
+ '2023-08-09T06:01:51Z',
+ '2023-08-09T06:03:49Z',
+ '2023-08-09T07:32:00Z',
+ '2023-08-09T07:32:12Z',
+ '2023-08-09T16:50:40Z',
+ '2023-08-10T05:15:16Z',
+ '2023-08-10T05:15:28Z',
+ '2023-08-10T05:15:52Z',
+ '2023-08-10T06:51:40Z',
+ '2023-08-14T10:08:19Z',
+ '2023-08-14T14:51:26Z',
+ '2023-08-14T14:52:25Z',
+ '2023-08-15T09:20:26Z',
+ '2023-08-16T10:10:38Z',
+ '2023-08-16T10:10:50Z',
+ '2023-08-16T11:48:56Z',
+ '2023-08-17T09:24:16Z',
+ '2023-08-17T10:58:03Z',
+ '2023-08-17T20:15:10Z',
+ '2023-08-18T21:00:19Z',
+ '2023-08-23T09:17:47Z',
+ '2023-08-23T09:23:49Z',
+ '2023-08-23T10:56:29Z',
+ '2023-08-23T17:06:09Z',
+ '2023-08-24T07:00:37Z',
+ '2023-08-24T07:00:49Z',
+ '2023-08-24T07:01:01Z',
+ '2023-08-24T08:39:07Z',
+ '2023-08-24T08:39:31Z',
+ '2023-08-24T17:53:37Z',
+ '2023-08-24T17:54:01Z',
+ '2023-08-25T06:13:13Z',
+ '2023-08-25T07:47:43Z',
+ '2023-08-25T07:50:05Z',
+ '2023-08-25T17:05:57Z',
+ '2023-08-25T17:06:09Z',
+ '2023-08-26T08:35:22Z',
+ '2023-08-26T08:35:46Z',
+ '2023-08-26T10:06:04Z',
+ '2023-08-26T10:07:35Z',
+ '2023-08-26T10:08:34Z',
+ '2023-08-28T07:02:35Z',
+ '2023-08-28T07:03:10Z',
+ '2023-08-28T08:34:21Z',
+ '2023-09-08T14:10:43Z',
+ '2023-09-24T11:42:53Z',
+ '2023-09-24T11:44:13Z',
+ '2023-09-25T14:01:34Z',
+ '2023-10-03T07:42:03Z',
+ '2023-10-03T07:46:41Z',
+ '2023-10-03T07:47:04Z',
+ '2023-10-03T07:47:16Z',
+ '2023-10-04T17:47:32Z',
+ '2023-10-04T17:47:44Z',
+ '2023-10-06T06:55:57Z',
+ '2023-10-06T08:27:35Z',
+ '2023-10-06T10:02:06Z',
+ '2023-10-08T16:11:15Z']},
'description': 'Methane plume complexes from point source emitters',
'item_assets': {'ch4-plume-emissions': {'type': 'image/tiff; application=geotiff; profile=cloud-optimized',
'roles': ['data', 'layer'],
@@ -996,7 +1128,7 @@ Querying the STAC AP
Examining the contents of our collection
under the temporal
variable, we note that data is available from August 2022 to May 2023. By looking at the dashboard: time density
, we can see that observations are conducted daily and non-periodically (i.e., there are plumes emissions for multiple places on the same dates).
-
+
def get_item_count(collection_id):
count = 0
items_url = f" { STAC_API_URL} /collections/ { collection_id} /items"
@@ -1018,68 +1150,68 @@ Querying the STAC AP
return count
-
+
# Check total number of items available
number_of_items = get_item_count(collection_name)
items = requests.get(f" { STAC_API_URL} /collections/ { collection_name} /items?limit= { number_of_items} " ).json()["features" ]
print (f"Found { len (items)} items" )
-
Found 505 items
+
Found 752 items
-
+
# Examining the first item in the collection
items[0 ]
-
-
{'id': 'EMIT_L2B_CH4PLM_001_20230729T100630_000234',
- 'bbox': [61.67975744168143,
- 39.96112852373608,
- 61.690059859566304,
- 39.97739549934377],
+
+
{'id': 'EMIT_L2B_CH4PLM_001_20231008T161115_001520',
+ 'bbox': [-103.94950373078798,
+ 31.803782488999254,
+ -103.9419124755044,
+ 31.811373744282843],
'type': 'Feature',
'links': [{'rel': 'collection',
'type': 'application/json',
- 'href': 'https://e6v7j4ejp6.execute-api.us-west-2.amazonaws.com/api/stac/collections/emit-ch4plume-v1'},
+ 'href': 'https://ghg.center/api/stac/collections/emit-ch4plume-v1'},
{'rel': 'parent',
'type': 'application/json',
- 'href': 'https://e6v7j4ejp6.execute-api.us-west-2.amazonaws.com/api/stac/collections/emit-ch4plume-v1'},
+ 'href': 'https://ghg.center/api/stac/collections/emit-ch4plume-v1'},
{'rel': 'root',
'type': 'application/json',
- 'href': 'https://e6v7j4ejp6.execute-api.us-west-2.amazonaws.com/api/stac/'},
+ 'href': 'https://ghg.center/api/stac/'},
{'rel': 'self',
'type': 'application/geo+json',
- 'href': 'https://e6v7j4ejp6.execute-api.us-west-2.amazonaws.com/api/stac/collections/emit-ch4plume-v1/items/EMIT_L2B_CH4PLM_001_20230729T100630_000234'}],
- 'assets': {'ch4-plume-emissions': {'href': 's3://lp-prod-protected/EMITL2BCH4PLM.001/EMIT_L2B_CH4PLM_001_20230729T100630_000234/EMIT_L2B_CH4PLM_001_20230729T100630_000234.tif',
+ 'href': 'https://ghg.center/api/stac/collections/emit-ch4plume-v1/items/EMIT_L2B_CH4PLM_001_20231008T161115_001520'}],
+ 'assets': {'ch4-plume-emissions': {'href': 's3://lp-prod-protected/EMITL2BCH4PLM.001/EMIT_L2B_CH4PLM_001_20231008T161115_001520/EMIT_L2B_CH4PLM_001_20231008T161115_001520.tif',
'type': 'image/tiff; application=geotiff; profile=cloud-optimized',
'roles': ['data', 'layer'],
'title': 'Methane Plume Complex',
- 'proj:bbox': [61.67975744168143,
- 39.96112852373608,
- 61.690059859566304,
- 39.97739549934377],
+ 'proj:bbox': [-103.94950373078798,
+ 31.803782488999254,
+ -103.9419124755044,
+ 31.811373744282843],
'proj:epsg': 4326.0,
- 'proj:shape': [30.0, 19.0],
+ 'proj:shape': [14.0, 14.0],
'description': 'Methane plume complexes from point source emitters.',
'raster:bands': [{'scale': 1.0,
'nodata': -9999.0,
'offset': 0.0,
'sampling': 'area',
'data_type': 'float32',
- 'histogram': {'max': 1693.932861328125,
- 'min': -394.7409973144531,
+ 'histogram': {'max': 2034.2767333984375,
+ 'min': -638.1588745117188,
'count': 11.0,
- 'buckets': [27.0, 61.0, 97.0, 86.0, 48.0, 38.0, 15.0, 1.0, 3.0, 2.0]},
- 'statistics': {'mean': 280.35348462301585,
- 'stddev': 345.7089519227557,
- 'maximum': 1693.932861328125,
- 'minimum': -394.7409973144531,
- 'valid_percent': 66.3157894736842}}],
+ 'buckets': [4.0, 17.0, 15.0, 18.0, 14.0, 13.0, 3.0, 8.0, 5.0, 3.0]},
+ 'statistics': {'mean': 469.7673828125,
+ 'stddev': 634.4945451235177,
+ 'maximum': 2034.2767333984375,
+ 'minimum': -638.1588745117188,
+ 'valid_percent': 51.02040816326531}}],
'proj:geometry': {'type': 'Polygon',
- 'coordinates': [[[61.67975744168143, 39.96112852373608],
- [61.690059859566304, 39.96112852373608],
- [61.690059859566304, 39.97739549934377],
- [61.67975744168143, 39.97739549934377],
- [61.67975744168143, 39.96112852373608]]]},
+ 'coordinates': [[[-103.94950373078798, 31.803782488999254],
+ [-103.9419124755044, 31.803782488999254],
+ [-103.9419124755044, 31.811373744282843],
+ [-103.94950373078798, 31.811373744282843],
+ [-103.94950373078798, 31.803782488999254]]]},
'proj:projjson': {'id': {'code': 4326.0, 'authority': 'EPSG'},
'name': 'WGS 84',
'type': 'GeographicCRS',
@@ -1088,7 +1220,7 @@ Querying the STAC AP
'ellipsoid': {'name': 'WGS 84',
'semi_major_axis': 6378137.0,
'inverse_flattening': 298.257223563}},
- '$schema': 'https://proj.org/schemas/v0.4/projjson.schema.json',
+ '$schema': 'https://proj.org/schemas/v0.7/projjson.schema.json',
'coordinate_system': {'axis': [{'name': 'Geodetic latitude',
'unit': 'degree',
'direction': 'north',
@@ -1100,21 +1232,21 @@ Querying the STAC AP
'subtype': 'ellipsoidal'}},
'proj:transform': [0.000542232520256367,
0.0,
- 61.67975744168143,
+ -103.94950373078798,
0.0,
-0.000542232520256367,
- 39.97739549934377,
+ 31.811373744282843,
0.0,
0.0,
1.0]}},
'geometry': {'type': 'Polygon',
- 'coordinates': [[[61.67975744168143, 39.96112852373608],
- [61.690059859566304, 39.96112852373608],
- [61.690059859566304, 39.97739549934377],
- [61.67975744168143, 39.97739549934377],
- [61.67975744168143, 39.96112852373608]]]},
+ 'coordinates': [[[-103.94950373078798, 31.803782488999254],
+ [-103.9419124755044, 31.803782488999254],
+ [-103.9419124755044, 31.811373744282843],
+ [-103.94950373078798, 31.811373744282843],
+ [-103.94950373078798, 31.803782488999254]]]},
'collection': 'emit-ch4plume-v1',
- 'properties': {'datetime': '2023-07-29T10:06:30+00:00'},
+ 'properties': {'datetime': '2023-10-08T16:11:15+00:00'},
'stac_version': '1.0.0',
'stac_extensions': []}
@@ -1124,17 +1256,17 @@ Querying the STAC AP
Exploring Methane Emission Plumes (CH₄) using the Raster API
In this notebook, we will explore global methane emission plumes from point sources. We will visualize the outputs on a map using folium.
-
+
# To access the year value from each item more easily, this will let us query more explicity by year and month (e.g., 2020-02)
items = {item["id" ][20 :]: item for item in items}
asset_name = "ch4-plume-emissions"
-
+
# Fetching the min and max values for a specific item
rescale_values = {"max" :items[list (items.keys())[0 ]]["assets" ][asset_name]["raster:bands" ][0 ]["histogram" ]["max" ], "min" :items[list (items.keys())[0 ]]["assets" ][asset_name]["raster:bands" ][0 ]["histogram" ]["min" ]}
Now we will pass the item id, collection name, and rescaling_factor
to the Raster API
endpoint. We will do this for only one item so that we can visualize the event.
-
+
# Select the item ID which you want to visualize. Item ID is in the format yyyymmdd followed by the timestamp. This ID can be extracted from the COG name as well.
item_id = "20230418T200118_000829"
color_map = "magma"
@@ -1145,11 +1277,11 @@ f"&rescale= { rescale_values['min' ]} , { rescale_values['max' ]} " ,
).json()
methane_plume_tile
-
+
{'tilejson': '2.2.0',
'version': '1.0.0',
'scheme': 'xyz',
- 'tiles': ['https://1w7hfngnp7.execute-api.us-west-2.amazonaws.com/api/raster/stac/tiles/WebMercatorQuad/{z}/{x}/{y}@1x?collection=emit-ch4plume-v1&item=EMIT_L2B_CH4PLM_001_20230418T200118_000829&assets=ch4-plume-emissions&color_formula=gamma+r+1.05&colormap_name=magma&rescale=-394.7409973144531%2C1693.932861328125'],
+ 'tiles': ['https://ghg.center/api/raster/stac/tiles/WebMercatorQuad/{z}/{x}/{y}@1x?collection=emit-ch4plume-v1&item=EMIT_L2B_CH4PLM_001_20230418T200118_000829&assets=ch4-plume-emissions&color_formula=gamma+r+1.05&colormap_name=magma&rescale=-638.1588745117188%2C2034.2767333984375'],
'minzoom': 0,
'maxzoom': 24,
'bounds': [-104.76285251117253,
@@ -1162,7 +1294,7 @@
Visualizing CH₄ Emission Plume
-
+
# We will import folium to map and folium.plugins to allow side-by-side mapping
import folium
import folium.plugins
@@ -1181,7 +1313,7 @@ Visualizi
# visualising the map
map_
-
+
Make this Notebook Trusted to load map: File -> Trust Notebook