Skip to content

Instantly share code, notes, and snippets.

@scottyhq
Created July 28, 2023 00:43
Show Gist options
  • Save scottyhq/8f7912c3648ac3c6c972de953f865570 to your computer and use it in GitHub Desktop.
Save scottyhq/8f7912c3648ac3c6c972de953f865570 to your computer and use it in GitHub Desktop.
icesat2 atl06 kerchunk
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"id": "08e0d5fd-fc4c-462d-8464-1cfa9666292a",
"metadata": {
"user_expressions": []
},
"source": [
"# Kerchunked! ATL06 v6 data\n",
"\n",
"Consider this granule ATL06_20181016104402_02720106_006_02.h5"
]
},
{
"cell_type": "code",
"execution_count": 1,
"id": "c9302f9c-951b-443e-8eb7-9bf6a1026d89",
"metadata": {
"tags": []
},
"outputs": [],
"source": [
"import earthaccess\n",
"import geopandas as gpd\n",
"import fsspec\n",
"import kerchunk.hdf\n",
"import xarray as xr\n",
"import ujson"
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "c58caa26-2ae4-41bd-ad00-a1527f8f7c79",
"metadata": {
"tags": []
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"fsspec : 2022.11.0\n",
"geopandas : 0.12.1\n",
"ujson : 5.7.0\n",
"xarray : 2023.5.0\n",
"earthaccess: 0.5.1\n",
"kerchunk : 0.1.2\n",
"\n"
]
}
],
"source": [
"%load_ext watermark\n",
"%watermark --iversions"
]
},
{
"cell_type": "markdown",
"id": "cea92d9e-be8c-4d9b-8a2d-d38aeabca66a",
"metadata": {
"user_expressions": []
},
"source": [
"## NASA Authentication"
]
},
{
"cell_type": "code",
"execution_count": 3,
"id": "14e16440-a04e-42b9-8a75-b570fb801520",
"metadata": {
"tags": []
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"EARTHDATA_USERNAME and EARTHDATA_PASSWORD are not set in the current environment, try setting them or use a different strategy (netrc, interactive)\n",
"You're now authenticated with NASA Earthdata Login\n",
"Using token with expiration date: 09/16/2023\n",
"Using .netrc file for EDL\n"
]
}
],
"source": [
"# ~/.netrc with NASA Earthdata Login\n",
"auth = earthaccess.login()"
]
},
{
"cell_type": "code",
"execution_count": 4,
"id": "d944e1f2-909f-40c2-aec0-e032586b51c7",
"metadata": {
"tags": []
},
"outputs": [],
"source": [
"# Temporary NASA AWS Credentials\n",
"s3fs = earthaccess.get_s3fs_session('NSIDC') # Default Cache settings"
]
},
{
"cell_type": "markdown",
"id": "9301ee62-d3ab-42c4-be4a-7213dfe35c38",
"metadata": {
"user_expressions": []
},
"source": [
"## Search for data"
]
},
{
"cell_type": "code",
"execution_count": 5,
"id": "9ba6fa78-e3c2-4710-afeb-6a9fffadee6f",
"metadata": {
"tags": []
},
"outputs": [],
"source": [
"gfa = gpd.read_file('https://raw.githubusercontent.com/ICESat2-SlideRule/sliderule-python/main/data/grandmesa.geojson')"
]
},
{
"cell_type": "code",
"execution_count": 6,
"id": "fd9d1295-d0c7-4ff7-b54f-1ddd51ee45ce",
"metadata": {
"tags": []
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Granules found: 4\n"
]
}
],
"source": [
"results = earthaccess.search_data(\n",
" short_name='ATL06',\n",
" version=\"006\",\n",
" cloud_hosted=True,\n",
" temporal=(\"2018-01\", \"2018-12\"),\n",
" polygon=[(x,y) for (x,y) in gfa.geometry[0].exterior.coords],\n",
")"
]
},
{
"cell_type": "code",
"execution_count": 7,
"id": "70f61454-da5d-4565-b392-5cc23c40d4e4",
"metadata": {
"tags": []
},
"outputs": [],
"source": [
"r = results[0]"
]
},
{
"cell_type": "code",
"execution_count": 8,
"id": "33363700-5cb8-417a-a9d0-9de6dddea036",
"metadata": {
"tags": []
},
"outputs": [
{
"data": {
"text/plain": [
"['https://data.nsidc.earthdatacloud.nasa.gov/nsidc-cumulus-prod-protected/ATLAS/ATL06/006/2018/10/16/ATL06_20181016104402_02720106_006_02.h5']"
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"r.data_links(access=\"on_prem\")"
]
},
{
"cell_type": "code",
"execution_count": 9,
"id": "b3ed918d-9cab-405f-bfe7-fc2275800752",
"metadata": {
"tags": []
},
"outputs": [
{
"data": {
"text/plain": [
"['s3://nsidc-cumulus-prod-protected/ATLAS/ATL06/006/2018/10/16/ATL06_20181016104402_02720106_006_02.h5']"
]
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"r.data_links(access=\"direct\")"
]
},
{
"cell_type": "code",
"execution_count": 10,
"id": "59665a98-ce7d-4e58-9e5e-0862c9af9285",
"metadata": {
"tags": []
},
"outputs": [],
"source": [
"s3object = r.data_links(access=\"direct\")[0]"
]
},
{
"cell_type": "markdown",
"id": "aa5fcf41-16a4-4ee9-852d-ee27f70c61ca",
"metadata": {
"user_expressions": []
},
"source": [
"## Read remote HDF with fsspec & Xarray"
]
},
{
"cell_type": "code",
"execution_count": 11,
"id": "93024627-514b-4e4d-b226-ba5d3ee08568",
"metadata": {
"tags": []
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"<xarray.DataArray 'h_li' ()>\n",
"array(1350.8412, dtype=float32)\n",
"CPU times: user 5.53 s, sys: 959 ms, total: 6.49 s\n",
"Wall time: 16.3 s\n"
]
}
],
"source": [
"%%time\n",
"\n",
"# NOTE this is possible but VERY SLOW b/c LOTS of GET requests\n",
"\n",
"fs = fsspec.filesystem('s3', **s3fs.storage_options)\n",
"\n",
"with fs.open(s3object) as f:\n",
" ds = xr.open_dataset(f, group='gt1l/land_ice_segments')\n",
" print(ds.h_li.mean())"
]
},
{
"cell_type": "code",
"execution_count": 12,
"id": "06d1395b-788f-4315-998e-aa8e03c02d5c",
"metadata": {
"tags": []
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"<xarray.DataArray 'h_li' ()>\n",
"array(1350.8412, dtype=float32)\n",
"CPU times: user 336 ms, sys: 126 ms, total: 462 ms\n",
"Wall time: 1.11 s\n"
]
}
],
"source": [
"%%time\n",
"\n",
"# Better: read the ENTIRE file in one go first to a local drive, then operate\n",
"# https://filesystem-spec.readthedocs.io/en/latest/features.html#caching-files-locally\n",
"\n",
"fs = fsspec.filesystem(\"simplecache\", \n",
" cache_storage='/tmp/files/',\n",
" same_names=True, \n",
" target_protocol='s3', \n",
" target_options=s3fs.storage_options #token credentials\n",
" )\n",
"\n",
"with fs.open(s3object) as f:\n",
" ds = xr.open_dataset(f.name, group='gt1l/land_ice_segments') #open f.name which points to /tmp/files/ATL06_20181016104402_02720106_006_02.h5\n",
" print(ds.h_li.mean())"
]
},
{
"cell_type": "code",
"execution_count": 13,
"id": "e2c30233-7567-4c52-a153-84614d2695de",
"metadata": {
"tags": []
},
"outputs": [
{
"data": {
"text/html": [
"<div><svg style=\"position: absolute; width: 0; height: 0; overflow: hidden\">\n",
"<defs>\n",
"<symbol id=\"icon-database\" viewBox=\"0 0 32 32\">\n",
"<path d=\"M16 0c-8.837 0-16 2.239-16 5v4c0 2.761 7.163 5 16 5s16-2.239 16-5v-4c0-2.761-7.163-5-16-5z\"></path>\n",
"<path d=\"M16 17c-8.837 0-16-2.239-16-5v6c0 2.761 7.163 5 16 5s16-2.239 16-5v-6c0 2.761-7.163 5-16 5z\"></path>\n",
"<path d=\"M16 26c-8.837 0-16-2.239-16-5v6c0 2.761 7.163 5 16 5s16-2.239 16-5v-6c0 2.761-7.163 5-16 5z\"></path>\n",
"</symbol>\n",
"<symbol id=\"icon-file-text2\" viewBox=\"0 0 32 32\">\n",
"<path d=\"M28.681 7.159c-0.694-0.947-1.662-2.053-2.724-3.116s-2.169-2.030-3.116-2.724c-1.612-1.182-2.393-1.319-2.841-1.319h-15.5c-1.378 0-2.5 1.121-2.5 2.5v27c0 1.378 1.122 2.5 2.5 2.5h23c1.378 0 2.5-1.122 2.5-2.5v-19.5c0-0.448-0.137-1.23-1.319-2.841zM24.543 5.457c0.959 0.959 1.712 1.825 2.268 2.543h-4.811v-4.811c0.718 0.556 1.584 1.309 2.543 2.268zM28 29.5c0 0.271-0.229 0.5-0.5 0.5h-23c-0.271 0-0.5-0.229-0.5-0.5v-27c0-0.271 0.229-0.5 0.5-0.5 0 0 15.499-0 15.5 0v7c0 0.552 0.448 1 1 1h7v19.5z\"></path>\n",
"<path d=\"M23 26h-14c-0.552 0-1-0.448-1-1s0.448-1 1-1h14c0.552 0 1 0.448 1 1s-0.448 1-1 1z\"></path>\n",
"<path d=\"M23 22h-14c-0.552 0-1-0.448-1-1s0.448-1 1-1h14c0.552 0 1 0.448 1 1s-0.448 1-1 1z\"></path>\n",
"<path d=\"M23 18h-14c-0.552 0-1-0.448-1-1s0.448-1 1-1h14c0.552 0 1 0.448 1 1s-0.448 1-1 1z\"></path>\n",
"</symbol>\n",
"</defs>\n",
"</svg>\n",
"<style>/* CSS stylesheet for displaying xarray objects in jupyterlab.\n",
" *\n",
" */\n",
"\n",
":root {\n",
" --xr-font-color0: var(--jp-content-font-color0, rgba(0, 0, 0, 1));\n",
" --xr-font-color2: var(--jp-content-font-color2, rgba(0, 0, 0, 0.54));\n",
" --xr-font-color3: var(--jp-content-font-color3, rgba(0, 0, 0, 0.38));\n",
" --xr-border-color: var(--jp-border-color2, #e0e0e0);\n",
" --xr-disabled-color: var(--jp-layout-color3, #bdbdbd);\n",
" --xr-background-color: var(--jp-layout-color0, white);\n",
" --xr-background-color-row-even: var(--jp-layout-color1, white);\n",
" --xr-background-color-row-odd: var(--jp-layout-color2, #eeeeee);\n",
"}\n",
"\n",
"html[theme=dark],\n",
"body[data-theme=dark],\n",
"body.vscode-dark {\n",
" --xr-font-color0: rgba(255, 255, 255, 1);\n",
" --xr-font-color2: rgba(255, 255, 255, 0.54);\n",
" --xr-font-color3: rgba(255, 255, 255, 0.38);\n",
" --xr-border-color: #1F1F1F;\n",
" --xr-disabled-color: #515151;\n",
" --xr-background-color: #111111;\n",
" --xr-background-color-row-even: #111111;\n",
" --xr-background-color-row-odd: #313131;\n",
"}\n",
"\n",
".xr-wrap {\n",
" display: block !important;\n",
" min-width: 300px;\n",
" max-width: 700px;\n",
"}\n",
"\n",
".xr-text-repr-fallback {\n",
" /* fallback to plain text repr when CSS is not injected (untrusted notebook) */\n",
" display: none;\n",
"}\n",
"\n",
".xr-header {\n",
" padding-top: 6px;\n",
" padding-bottom: 6px;\n",
" margin-bottom: 4px;\n",
" border-bottom: solid 1px var(--xr-border-color);\n",
"}\n",
"\n",
".xr-header > div,\n",
".xr-header > ul {\n",
" display: inline;\n",
" margin-top: 0;\n",
" margin-bottom: 0;\n",
"}\n",
"\n",
".xr-obj-type,\n",
".xr-array-name {\n",
" margin-left: 2px;\n",
" margin-right: 10px;\n",
"}\n",
"\n",
".xr-obj-type {\n",
" color: var(--xr-font-color2);\n",
"}\n",
"\n",
".xr-sections {\n",
" padding-left: 0 !important;\n",
" display: grid;\n",
" grid-template-columns: 150px auto auto 1fr 20px 20px;\n",
"}\n",
"\n",
".xr-section-item {\n",
" display: contents;\n",
"}\n",
"\n",
".xr-section-item input {\n",
" display: none;\n",
"}\n",
"\n",
".xr-section-item input + label {\n",
" color: var(--xr-disabled-color);\n",
"}\n",
"\n",
".xr-section-item input:enabled + label {\n",
" cursor: pointer;\n",
" color: var(--xr-font-color2);\n",
"}\n",
"\n",
".xr-section-item input:enabled + label:hover {\n",
" color: var(--xr-font-color0);\n",
"}\n",
"\n",
".xr-section-summary {\n",
" grid-column: 1;\n",
" color: var(--xr-font-color2);\n",
" font-weight: 500;\n",
"}\n",
"\n",
".xr-section-summary > span {\n",
" display: inline-block;\n",
" padding-left: 0.5em;\n",
"}\n",
"\n",
".xr-section-summary-in:disabled + label {\n",
" color: var(--xr-font-color2);\n",
"}\n",
"\n",
".xr-section-summary-in + label:before {\n",
" display: inline-block;\n",
" content: '►';\n",
" font-size: 11px;\n",
" width: 15px;\n",
" text-align: center;\n",
"}\n",
"\n",
".xr-section-summary-in:disabled + label:before {\n",
" color: var(--xr-disabled-color);\n",
"}\n",
"\n",
".xr-section-summary-in:checked + label:before {\n",
" content: '▼';\n",
"}\n",
"\n",
".xr-section-summary-in:checked + label > span {\n",
" display: none;\n",
"}\n",
"\n",
".xr-section-summary,\n",
".xr-section-inline-details {\n",
" padding-top: 4px;\n",
" padding-bottom: 4px;\n",
"}\n",
"\n",
".xr-section-inline-details {\n",
" grid-column: 2 / -1;\n",
"}\n",
"\n",
".xr-section-details {\n",
" display: none;\n",
" grid-column: 1 / -1;\n",
" margin-bottom: 5px;\n",
"}\n",
"\n",
".xr-section-summary-in:checked ~ .xr-section-details {\n",
" display: contents;\n",
"}\n",
"\n",
".xr-array-wrap {\n",
" grid-column: 1 / -1;\n",
" display: grid;\n",
" grid-template-columns: 20px auto;\n",
"}\n",
"\n",
".xr-array-wrap > label {\n",
" grid-column: 1;\n",
" vertical-align: top;\n",
"}\n",
"\n",
".xr-preview {\n",
" color: var(--xr-font-color3);\n",
"}\n",
"\n",
".xr-array-preview,\n",
".xr-array-data {\n",
" padding: 0 5px !important;\n",
" grid-column: 2;\n",
"}\n",
"\n",
".xr-array-data,\n",
".xr-array-in:checked ~ .xr-array-preview {\n",
" display: none;\n",
"}\n",
"\n",
".xr-array-in:checked ~ .xr-array-data,\n",
".xr-array-preview {\n",
" display: inline-block;\n",
"}\n",
"\n",
".xr-dim-list {\n",
" display: inline-block !important;\n",
" list-style: none;\n",
" padding: 0 !important;\n",
" margin: 0;\n",
"}\n",
"\n",
".xr-dim-list li {\n",
" display: inline-block;\n",
" padding: 0;\n",
" margin: 0;\n",
"}\n",
"\n",
".xr-dim-list:before {\n",
" content: '(';\n",
"}\n",
"\n",
".xr-dim-list:after {\n",
" content: ')';\n",
"}\n",
"\n",
".xr-dim-list li:not(:last-child):after {\n",
" content: ',';\n",
" padding-right: 5px;\n",
"}\n",
"\n",
".xr-has-index {\n",
" font-weight: bold;\n",
"}\n",
"\n",
".xr-var-list,\n",
".xr-var-item {\n",
" display: contents;\n",
"}\n",
"\n",
".xr-var-item > div,\n",
".xr-var-item label,\n",
".xr-var-item > .xr-var-name span {\n",
" background-color: var(--xr-background-color-row-even);\n",
" margin-bottom: 0;\n",
"}\n",
"\n",
".xr-var-item > .xr-var-name:hover span {\n",
" padding-right: 5px;\n",
"}\n",
"\n",
".xr-var-list > li:nth-child(odd) > div,\n",
".xr-var-list > li:nth-child(odd) > label,\n",
".xr-var-list > li:nth-child(odd) > .xr-var-name span {\n",
" background-color: var(--xr-background-color-row-odd);\n",
"}\n",
"\n",
".xr-var-name {\n",
" grid-column: 1;\n",
"}\n",
"\n",
".xr-var-dims {\n",
" grid-column: 2;\n",
"}\n",
"\n",
".xr-var-dtype {\n",
" grid-column: 3;\n",
" text-align: right;\n",
" color: var(--xr-font-color2);\n",
"}\n",
"\n",
".xr-var-preview {\n",
" grid-column: 4;\n",
"}\n",
"\n",
".xr-index-preview {\n",
" grid-column: 2 / 5;\n",
" color: var(--xr-font-color2);\n",
"}\n",
"\n",
".xr-var-name,\n",
".xr-var-dims,\n",
".xr-var-dtype,\n",
".xr-preview,\n",
".xr-attrs dt {\n",
" white-space: nowrap;\n",
" overflow: hidden;\n",
" text-overflow: ellipsis;\n",
" padding-right: 10px;\n",
"}\n",
"\n",
".xr-var-name:hover,\n",
".xr-var-dims:hover,\n",
".xr-var-dtype:hover,\n",
".xr-attrs dt:hover {\n",
" overflow: visible;\n",
" width: auto;\n",
" z-index: 1;\n",
"}\n",
"\n",
".xr-var-attrs,\n",
".xr-var-data,\n",
".xr-index-data {\n",
" display: none;\n",
" background-color: var(--xr-background-color) !important;\n",
" padding-bottom: 5px !important;\n",
"}\n",
"\n",
".xr-var-attrs-in:checked ~ .xr-var-attrs,\n",
".xr-var-data-in:checked ~ .xr-var-data,\n",
".xr-index-data-in:checked ~ .xr-index-data {\n",
" display: block;\n",
"}\n",
"\n",
".xr-var-data > table {\n",
" float: right;\n",
"}\n",
"\n",
".xr-var-name span,\n",
".xr-var-data,\n",
".xr-index-name div,\n",
".xr-index-data,\n",
".xr-attrs {\n",
" padding-left: 25px !important;\n",
"}\n",
"\n",
".xr-attrs,\n",
".xr-var-attrs,\n",
".xr-var-data,\n",
".xr-index-data {\n",
" grid-column: 1 / -1;\n",
"}\n",
"\n",
"dl.xr-attrs {\n",
" padding: 0;\n",
" margin: 0;\n",
" display: grid;\n",
" grid-template-columns: 125px auto;\n",
"}\n",
"\n",
".xr-attrs dt,\n",
".xr-attrs dd {\n",
" padding: 0;\n",
" margin: 0;\n",
" float: left;\n",
" padding-right: 10px;\n",
" width: auto;\n",
"}\n",
"\n",
".xr-attrs dt {\n",
" font-weight: normal;\n",
" grid-column: 1;\n",
"}\n",
"\n",
".xr-attrs dt:hover span {\n",
" display: inline-block;\n",
" background: var(--xr-background-color);\n",
" padding-right: 10px;\n",
"}\n",
"\n",
".xr-attrs dd {\n",
" grid-column: 2;\n",
" white-space: pre-wrap;\n",
" word-break: break-all;\n",
"}\n",
"\n",
".xr-icon-database,\n",
".xr-icon-file-text2,\n",
".xr-no-icon {\n",
" display: inline-block;\n",
" vertical-align: middle;\n",
" width: 1em;\n",
" height: 1.5em !important;\n",
" stroke-width: 0;\n",
" stroke: currentColor;\n",
" fill: currentColor;\n",
"}\n",
"</style><pre class='xr-text-repr-fallback'>&lt;xarray.Dataset&gt;\n",
"Dimensions: (delta_time: 86274)\n",
"Coordinates:\n",
" * delta_time (delta_time) datetime64[ns] 2018-10-16T10:43:59.93...\n",
" latitude (delta_time) float64 ...\n",
" longitude (delta_time) float64 ...\n",
"Data variables:\n",
" atl06_quality_summary (delta_time) int8 ...\n",
" h_li (delta_time) float32 376.6 375.0 ... -32.8 -33.06\n",
" h_li_sigma (delta_time) float32 ...\n",
" segment_id (delta_time) float64 ...\n",
" sigma_geo_h (delta_time) float32 ...\n",
"Attributes:\n",
" Description: The land_ice_height group contains the primary set of deriv...\n",
" data_rate: Data within this group are sparse. Data values are provide...</pre><div class='xr-wrap' style='display:none'><div class='xr-header'><div class='xr-obj-type'>xarray.Dataset</div></div><ul class='xr-sections'><li class='xr-section-item'><input id='section-dea9131c-84ce-497e-9131-83d5dc849d6b' class='xr-section-summary-in' type='checkbox' disabled ><label for='section-dea9131c-84ce-497e-9131-83d5dc849d6b' class='xr-section-summary' title='Expand/collapse section'>Dimensions:</label><div class='xr-section-inline-details'><ul class='xr-dim-list'><li><span class='xr-has-index'>delta_time</span>: 86274</li></ul></div><div class='xr-section-details'></div></li><li class='xr-section-item'><input id='section-7ecf9e0b-f14a-42e6-ae4b-d5785af646c1' class='xr-section-summary-in' type='checkbox' checked><label for='section-7ecf9e0b-f14a-42e6-ae4b-d5785af646c1' class='xr-section-summary' >Coordinates: <span>(3)</span></label><div class='xr-section-inline-details'></div><div class='xr-section-details'><ul class='xr-var-list'><li class='xr-var-item'><div class='xr-var-name'><span class='xr-has-index'>delta_time</span></div><div class='xr-var-dims'>(delta_time)</div><div class='xr-var-dtype'>datetime64[ns]</div><div class='xr-var-preview xr-preview'>2018-10-16T10:43:59.930434476 .....</div><input id='attrs-7681591d-4a98-43e2-81e2-f4ecff901283' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-7681591d-4a98-43e2-81e2-f4ecff901283' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-99457e3c-a2f4-4d7e-b932-7103af12bb46' class='xr-var-data-in' type='checkbox'><label for='data-99457e3c-a2f4-4d7e-b932-7103af12bb46' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'><dt><span>long_name :</span></dt><dd>Elapsed GPS seconds</dd><dt><span>standard_name :</span></dt><dd>time</dd><dt><span>source :</span></dt><dd>section 4.4</dd><dt><span>contentType :</span></dt><dd>referenceInformation</dd><dt><span>description :</span></dt><dd>Number of GPS seconds since the ATLAS SDP epoch. The ATLAS Standard Data Products (SDP) epoch offset is defined within /ancillary_data/atlas_sdp_gps_epoch as the number of GPS seconds between the GPS epoch (1980-01-06T00:00:00.000000Z UTC) and the ATLAS SDP epoch. By adding the offset contained within atlas_sdp_gps_epoch to delta time parameters, the time in gps_seconds relative to the GPS epoch can be computed.</dd></dl></div><div class='xr-var-data'><pre>array([&#x27;2018-10-16T10:43:59.930434476&#x27;, &#x27;2018-10-16T10:43:59.933083744&#x27;,\n",
" &#x27;2018-10-16T10:43:59.935732812&#x27;, ..., &#x27;2018-10-16T10:52:34.842195532&#x27;,\n",
" &#x27;2018-10-16T10:52:34.844885836&#x27;, &#x27;2018-10-16T10:52:34.847582736&#x27;],\n",
" dtype=&#x27;datetime64[ns]&#x27;)</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span>latitude</span></div><div class='xr-var-dims'>(delta_time)</div><div class='xr-var-dtype'>float64</div><div class='xr-var-preview xr-preview'>...</div><input id='attrs-0c9b4f35-a802-4183-a237-6b8abf81f739' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-0c9b4f35-a802-4183-a237-6b8abf81f739' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-1b058080-9ed9-4d7b-aded-70eaaa25ed36' class='xr-var-data-in' type='checkbox'><label for='data-1b058080-9ed9-4d7b-aded-70eaaa25ed36' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'><dt><span>long_name :</span></dt><dd>Latitude</dd><dt><span>standard_name :</span></dt><dd>latitude</dd><dt><span>units :</span></dt><dd>degrees_north</dd><dt><span>source :</span></dt><dd>section 3.10</dd><dt><span>valid_min :</span></dt><dd>-90.0</dd><dt><span>valid_max :</span></dt><dd>90.0</dd><dt><span>contentType :</span></dt><dd>physicalMeasurement</dd><dt><span>description :</span></dt><dd>Latitude of segment center, WGS84, North=+,</dd></dl></div><div class='xr-var-data'><pre>[86274 values with dtype=float64]</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span>longitude</span></div><div class='xr-var-dims'>(delta_time)</div><div class='xr-var-dtype'>float64</div><div class='xr-var-preview xr-preview'>...</div><input id='attrs-f95331bb-a647-4b85-8bad-a5d5bd87e587' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-f95331bb-a647-4b85-8bad-a5d5bd87e587' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-99528a63-0a96-43ae-9567-21cc67f2eab0' class='xr-var-data-in' type='checkbox'><label for='data-99528a63-0a96-43ae-9567-21cc67f2eab0' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'><dt><span>long_name :</span></dt><dd>Longitude</dd><dt><span>standard_name :</span></dt><dd>longitude</dd><dt><span>units :</span></dt><dd>degrees_east</dd><dt><span>source :</span></dt><dd>section 3.10</dd><dt><span>valid_min :</span></dt><dd>-180.0</dd><dt><span>valid_max :</span></dt><dd>180.0</dd><dt><span>contentType :</span></dt><dd>physicalMeasurement</dd><dt><span>description :</span></dt><dd>Longitude of segment center, , WGS84, East=+</dd></dl></div><div class='xr-var-data'><pre>[86274 values with dtype=float64]</pre></div></li></ul></div></li><li class='xr-section-item'><input id='section-7deb0d12-3909-4d63-868f-07b3368e6b2f' class='xr-section-summary-in' type='checkbox' checked><label for='section-7deb0d12-3909-4d63-868f-07b3368e6b2f' class='xr-section-summary' >Data variables: <span>(5)</span></label><div class='xr-section-inline-details'></div><div class='xr-section-details'><ul class='xr-var-list'><li class='xr-var-item'><div class='xr-var-name'><span>atl06_quality_summary</span></div><div class='xr-var-dims'>(delta_time)</div><div class='xr-var-dtype'>int8</div><div class='xr-var-preview xr-preview'>...</div><input id='attrs-90cdaa5f-19bd-4b5f-97cc-31ecc1a4edba' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-90cdaa5f-19bd-4b5f-97cc-31ecc1a4edba' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-cf81d8c0-d0ac-470e-afef-044ddaf6b0ac' class='xr-var-data-in' type='checkbox'><label for='data-cf81d8c0-d0ac-470e-afef-044ddaf6b0ac' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'><dt><span>long_name :</span></dt><dd>ATL06_Quality_Summary</dd><dt><span>units :</span></dt><dd>1</dd><dt><span>source :</span></dt><dd>section 4.3</dd><dt><span>valid_min :</span></dt><dd>0</dd><dt><span>valid_max :</span></dt><dd>1</dd><dt><span>contentType :</span></dt><dd>qualityInformation</dd><dt><span>description :</span></dt><dd>The ATL06_quality_summary parameter indicates the best-quality subset of all ATL06 data. A zero in this parameter implies that no data-quality tests have found a problem with the segment, a one implies that some potential problem has been found. Users who select only segments with zero values for this flag can be relatively certain of obtaining high-quality data, but will likely miss a significant fraction of usable data, particularly in cloudy, rough, or low-surface-reflectance conditions.</dd><dt><span>flag_meanings :</span></dt><dd>best_quality potential_problem</dd><dt><span>flag_values :</span></dt><dd>[0 1]</dd></dl></div><div class='xr-var-data'><pre>[86274 values with dtype=int8]</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span>h_li</span></div><div class='xr-var-dims'>(delta_time)</div><div class='xr-var-dtype'>float32</div><div class='xr-var-preview xr-preview'>376.6 375.0 373.9 ... -32.8 -33.06</div><input id='attrs-38e88b34-d807-4564-9c0e-51d2000bdd49' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-38e88b34-d807-4564-9c0e-51d2000bdd49' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-09ba14d8-81cb-4623-a3ea-db4f39f6d837' class='xr-var-data-in' type='checkbox'><label for='data-09ba14d8-81cb-4623-a3ea-db4f39f6d837' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'><dt><span>long_name :</span></dt><dd>Land Ice height</dd><dt><span>units :</span></dt><dd>meters</dd><dt><span>source :</span></dt><dd>section 4.4</dd><dt><span>contentType :</span></dt><dd>physicalMeasurement</dd><dt><span>description :</span></dt><dd>Standard land-ice segment height determined by land ice algorithm, corrected for first-photon bias, representing the median- based height of the selected PEs</dd></dl></div><div class='xr-var-data'><pre>array([376.60635 , 375.02393 , 373.92545 , ..., -32.900402, -32.799793,\n",
" -33.058304], dtype=float32)</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span>h_li_sigma</span></div><div class='xr-var-dims'>(delta_time)</div><div class='xr-var-dtype'>float32</div><div class='xr-var-preview xr-preview'>...</div><input id='attrs-c52e75df-31e9-4b9f-8035-d52bbad4a5ff' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-c52e75df-31e9-4b9f-8035-d52bbad4a5ff' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-8d5c7319-9785-489a-b5d7-cc0d8c5b0d1d' class='xr-var-data-in' type='checkbox'><label for='data-8d5c7319-9785-489a-b5d7-cc0d8c5b0d1d' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'><dt><span>long_name :</span></dt><dd>Expected RMS segment misfit</dd><dt><span>units :</span></dt><dd>meters</dd><dt><span>source :</span></dt><dd>section 4.4</dd><dt><span>contentType :</span></dt><dd>qualityInformation</dd><dt><span>description :</span></dt><dd>Propagated error due to sampling error and FPB correction from the land ice algorithm</dd></dl></div><div class='xr-var-data'><pre>[86274 values with dtype=float32]</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span>segment_id</span></div><div class='xr-var-dims'>(delta_time)</div><div class='xr-var-dtype'>float64</div><div class='xr-var-preview xr-preview'>...</div><input id='attrs-25634439-cbb1-42cf-bd63-24dc60ded48c' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-25634439-cbb1-42cf-bd63-24dc60ded48c' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-c7552b8a-0fce-445c-b156-2a85ff01ba2a' class='xr-var-data-in' type='checkbox'><label for='data-c7552b8a-0fce-445c-b156-2a85ff01ba2a' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'><dt><span>long_name :</span></dt><dd>Reference Point, m</dd><dt><span>units :</span></dt><dd>1</dd><dt><span>source :</span></dt><dd>section 3.1.2.1</dd><dt><span>contentType :</span></dt><dd>referenceInformation</dd><dt><span>description :</span></dt><dd>Segment number, counting from the equator. Equal to the segment_id for the second of the two 20m ATL03 segments included in the 40m ATL06 segment</dd></dl></div><div class='xr-var-data'><pre>[86274 values with dtype=float64]</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span>sigma_geo_h</span></div><div class='xr-var-dims'>(delta_time)</div><div class='xr-var-dtype'>float32</div><div class='xr-var-preview xr-preview'>...</div><input id='attrs-81d247a0-0188-415c-aa03-2b3673ca2c5d' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-81d247a0-0188-415c-aa03-2b3673ca2c5d' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-7d601e88-442b-47a4-bd0a-e17b6a750203' class='xr-var-data-in' type='checkbox'><label for='data-7d601e88-442b-47a4-bd0a-e17b6a750203' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'><dt><span>long_name :</span></dt><dd>Vertical Geolocation Error</dd><dt><span>units :</span></dt><dd>meters</dd><dt><span>source :</span></dt><dd>ATBD Section 3.10</dd><dt><span>contentType :</span></dt><dd>qualityInformation</dd><dt><span>description :</span></dt><dd>Total vertical geolocation error due to PPD and POD, including the effects of horizontal geolocation error on the segment vertical error.</dd></dl></div><div class='xr-var-data'><pre>[86274 values with dtype=float32]</pre></div></li></ul></div></li><li class='xr-section-item'><input id='section-eddf932e-7a9a-4150-9250-b281f6eec220' class='xr-section-summary-in' type='checkbox' ><label for='section-eddf932e-7a9a-4150-9250-b281f6eec220' class='xr-section-summary' >Indexes: <span>(1)</span></label><div class='xr-section-inline-details'></div><div class='xr-section-details'><ul class='xr-var-list'><li class='xr-var-item'><div class='xr-index-name'><div>delta_time</div></div><div class='xr-index-preview'>PandasIndex</div><div></div><input id='index-14ee0768-831c-46f6-8fd0-6bfc59f783a2' class='xr-index-data-in' type='checkbox'/><label for='index-14ee0768-831c-46f6-8fd0-6bfc59f783a2' title='Show/Hide index repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-index-data'><pre>PandasIndex(DatetimeIndex([&#x27;2018-10-16 10:43:59.930434476&#x27;,\n",
" &#x27;2018-10-16 10:43:59.933083744&#x27;,\n",
" &#x27;2018-10-16 10:43:59.935732812&#x27;,\n",
" &#x27;2018-10-16 10:43:59.938381576&#x27;,\n",
" &#x27;2018-10-16 10:43:59.941030784&#x27;,\n",
" &#x27;2018-10-16 10:43:59.943680992&#x27;,\n",
" &#x27;2018-10-16 10:43:59.946331620&#x27;,\n",
" &#x27;2018-10-16 10:43:59.948982752&#x27;,\n",
" &#x27;2018-10-16 10:43:59.951635196&#x27;,\n",
" &#x27;2018-10-16 10:43:59.954289616&#x27;,\n",
" ...\n",
" &#x27;2018-10-16 10:52:34.823348632&#x27;,\n",
" &#x27;2018-10-16 10:52:34.826042472&#x27;,\n",
" &#x27;2018-10-16 10:52:34.828735048&#x27;,\n",
" &#x27;2018-10-16 10:52:34.831429268&#x27;,\n",
" &#x27;2018-10-16 10:52:34.834128680&#x27;,\n",
" &#x27;2018-10-16 10:52:34.836812376&#x27;,\n",
" &#x27;2018-10-16 10:52:34.839501008&#x27;,\n",
" &#x27;2018-10-16 10:52:34.842195532&#x27;,\n",
" &#x27;2018-10-16 10:52:34.844885836&#x27;,\n",
" &#x27;2018-10-16 10:52:34.847582736&#x27;],\n",
" dtype=&#x27;datetime64[ns]&#x27;, name=&#x27;delta_time&#x27;, length=86274, freq=None))</pre></div></li></ul></div></li><li class='xr-section-item'><input id='section-578abd05-5773-4711-ad0f-9dd19d2708c6' class='xr-section-summary-in' type='checkbox' checked><label for='section-578abd05-5773-4711-ad0f-9dd19d2708c6' class='xr-section-summary' >Attributes: <span>(2)</span></label><div class='xr-section-inline-details'></div><div class='xr-section-details'><dl class='xr-attrs'><dt><span>Description :</span></dt><dd>The land_ice_height group contains the primary set of derived ATL06 products. This includes geolocation, height, and standard error and quality measures for each segment. This group is sparse, meaning that parameters are provided only for pairs of segments for which at least one beam has a valid surface-height measurement.</dd><dt><span>data_rate :</span></dt><dd>Data within this group are sparse. Data values are provided only for those ICESat-2 20m segments where at least one beam has a valid land ice height measurement.</dd></dl></div></li></ul></div></div>"
],
"text/plain": [
"<xarray.Dataset>\n",
"Dimensions: (delta_time: 86274)\n",
"Coordinates:\n",
" * delta_time (delta_time) datetime64[ns] 2018-10-16T10:43:59.93...\n",
" latitude (delta_time) float64 ...\n",
" longitude (delta_time) float64 ...\n",
"Data variables:\n",
" atl06_quality_summary (delta_time) int8 ...\n",
" h_li (delta_time) float32 376.6 375.0 ... -32.8 -33.06\n",
" h_li_sigma (delta_time) float32 ...\n",
" segment_id (delta_time) float64 ...\n",
" sigma_geo_h (delta_time) float32 ...\n",
"Attributes:\n",
" Description: The land_ice_height group contains the primary set of deriv...\n",
" data_rate: Data within this group are sparse. Data values are provide..."
]
},
"execution_count": 13,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"ds"
]
},
{
"cell_type": "markdown",
"id": "fa40e312-7322-4b63-b8a9-abdb1dd039a5",
"metadata": {
"user_expressions": []
},
"source": [
"## Create local reference to remote file with kerchunk"
]
},
{
"cell_type": "code",
"execution_count": 14,
"id": "b5c6dfe2-7397-4ee2-af5b-b4ff7449915c",
"metadata": {
"tags": []
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"CPU times: user 2.26 s, sys: 290 µs, total: 2.26 s\n",
"Wall time: 2.26 s\n"
]
}
],
"source": [
"%%time\n",
"\n",
"with fs.open(s3object) as f:\n",
" h5chunks = kerchunk.hdf.SingleHdf5ToZarr(f, s3object)\n",
" reference_json = h5chunks.translate()"
]
},
{
"cell_type": "code",
"execution_count": 15,
"id": "06c4d3bd-b00d-4059-9722-f761c35a54c4",
"metadata": {
"tags": []
},
"outputs": [],
"source": [
"# Save kerchunked metadata to a local file \n",
"with open('ATL06_20181016104402_02720106_006_02.kerchunk', 'wb') as f:\n",
" f.write(ujson.dumps(reference_json).encode());"
]
},
{
"cell_type": "code",
"execution_count": 16,
"id": "21546405-7589-4ceb-9dc4-8eed1bba3e47",
"metadata": {
"tags": []
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"-rw-r--r-- 1 jovyan jovyan 1.4M Jul 28 00:40 ATL06_20181016104402_02720106_006_02.kerchunk\n"
]
}
],
"source": [
"!ls -lh ATL06_20181016104402_02720106_006_02.kerchunk"
]
},
{
"cell_type": "markdown",
"id": "99df7705-f655-40d9-9687-ebfc96aa4704",
"metadata": {
"user_expressions": []
},
"source": [
"## Open Kerchunked metadata pointing to remote S3://HDF"
]
},
{
"cell_type": "code",
"execution_count": 17,
"id": "a4561d40-efeb-40a1-bf79-85a3a78f01bf",
"metadata": {
"tags": []
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"CPU times: user 84.7 ms, sys: 16.3 ms, total: 101 ms\n",
"Wall time: 358 ms\n"
]
}
],
"source": [
"%%time\n",
"\n",
"# NOTE: s3 credentials form above\n",
"\n",
"ds = xr.open_dataset(\"reference://\", engine=\"zarr\", \n",
" backend_kwargs={\"consolidated\": False,\n",
" \"storage_options\": {\"fo\": 'ATL06_20181016104402_02720106_006_02.kerchunk', \n",
" \"remote_protocol\": \"s3\",\n",
" \"remote_options\": s3fs.storage_options}\n",
" },\n",
" group='gt1l/land_ice_segments',\n",
" )"
]
},
{
"cell_type": "code",
"execution_count": 18,
"id": "41ee347a-4ef2-4f90-a66b-4dd686079e91",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div><svg style=\"position: absolute; width: 0; height: 0; overflow: hidden\">\n",
"<defs>\n",
"<symbol id=\"icon-database\" viewBox=\"0 0 32 32\">\n",
"<path d=\"M16 0c-8.837 0-16 2.239-16 5v4c0 2.761 7.163 5 16 5s16-2.239 16-5v-4c0-2.761-7.163-5-16-5z\"></path>\n",
"<path d=\"M16 17c-8.837 0-16-2.239-16-5v6c0 2.761 7.163 5 16 5s16-2.239 16-5v-6c0 2.761-7.163 5-16 5z\"></path>\n",
"<path d=\"M16 26c-8.837 0-16-2.239-16-5v6c0 2.761 7.163 5 16 5s16-2.239 16-5v-6c0 2.761-7.163 5-16 5z\"></path>\n",
"</symbol>\n",
"<symbol id=\"icon-file-text2\" viewBox=\"0 0 32 32\">\n",
"<path d=\"M28.681 7.159c-0.694-0.947-1.662-2.053-2.724-3.116s-2.169-2.030-3.116-2.724c-1.612-1.182-2.393-1.319-2.841-1.319h-15.5c-1.378 0-2.5 1.121-2.5 2.5v27c0 1.378 1.122 2.5 2.5 2.5h23c1.378 0 2.5-1.122 2.5-2.5v-19.5c0-0.448-0.137-1.23-1.319-2.841zM24.543 5.457c0.959 0.959 1.712 1.825 2.268 2.543h-4.811v-4.811c0.718 0.556 1.584 1.309 2.543 2.268zM28 29.5c0 0.271-0.229 0.5-0.5 0.5h-23c-0.271 0-0.5-0.229-0.5-0.5v-27c0-0.271 0.229-0.5 0.5-0.5 0 0 15.499-0 15.5 0v7c0 0.552 0.448 1 1 1h7v19.5z\"></path>\n",
"<path d=\"M23 26h-14c-0.552 0-1-0.448-1-1s0.448-1 1-1h14c0.552 0 1 0.448 1 1s-0.448 1-1 1z\"></path>\n",
"<path d=\"M23 22h-14c-0.552 0-1-0.448-1-1s0.448-1 1-1h14c0.552 0 1 0.448 1 1s-0.448 1-1 1z\"></path>\n",
"<path d=\"M23 18h-14c-0.552 0-1-0.448-1-1s0.448-1 1-1h14c0.552 0 1 0.448 1 1s-0.448 1-1 1z\"></path>\n",
"</symbol>\n",
"</defs>\n",
"</svg>\n",
"<style>/* CSS stylesheet for displaying xarray objects in jupyterlab.\n",
" *\n",
" */\n",
"\n",
":root {\n",
" --xr-font-color0: var(--jp-content-font-color0, rgba(0, 0, 0, 1));\n",
" --xr-font-color2: var(--jp-content-font-color2, rgba(0, 0, 0, 0.54));\n",
" --xr-font-color3: var(--jp-content-font-color3, rgba(0, 0, 0, 0.38));\n",
" --xr-border-color: var(--jp-border-color2, #e0e0e0);\n",
" --xr-disabled-color: var(--jp-layout-color3, #bdbdbd);\n",
" --xr-background-color: var(--jp-layout-color0, white);\n",
" --xr-background-color-row-even: var(--jp-layout-color1, white);\n",
" --xr-background-color-row-odd: var(--jp-layout-color2, #eeeeee);\n",
"}\n",
"\n",
"html[theme=dark],\n",
"body[data-theme=dark],\n",
"body.vscode-dark {\n",
" --xr-font-color0: rgba(255, 255, 255, 1);\n",
" --xr-font-color2: rgba(255, 255, 255, 0.54);\n",
" --xr-font-color3: rgba(255, 255, 255, 0.38);\n",
" --xr-border-color: #1F1F1F;\n",
" --xr-disabled-color: #515151;\n",
" --xr-background-color: #111111;\n",
" --xr-background-color-row-even: #111111;\n",
" --xr-background-color-row-odd: #313131;\n",
"}\n",
"\n",
".xr-wrap {\n",
" display: block !important;\n",
" min-width: 300px;\n",
" max-width: 700px;\n",
"}\n",
"\n",
".xr-text-repr-fallback {\n",
" /* fallback to plain text repr when CSS is not injected (untrusted notebook) */\n",
" display: none;\n",
"}\n",
"\n",
".xr-header {\n",
" padding-top: 6px;\n",
" padding-bottom: 6px;\n",
" margin-bottom: 4px;\n",
" border-bottom: solid 1px var(--xr-border-color);\n",
"}\n",
"\n",
".xr-header > div,\n",
".xr-header > ul {\n",
" display: inline;\n",
" margin-top: 0;\n",
" margin-bottom: 0;\n",
"}\n",
"\n",
".xr-obj-type,\n",
".xr-array-name {\n",
" margin-left: 2px;\n",
" margin-right: 10px;\n",
"}\n",
"\n",
".xr-obj-type {\n",
" color: var(--xr-font-color2);\n",
"}\n",
"\n",
".xr-sections {\n",
" padding-left: 0 !important;\n",
" display: grid;\n",
" grid-template-columns: 150px auto auto 1fr 20px 20px;\n",
"}\n",
"\n",
".xr-section-item {\n",
" display: contents;\n",
"}\n",
"\n",
".xr-section-item input {\n",
" display: none;\n",
"}\n",
"\n",
".xr-section-item input + label {\n",
" color: var(--xr-disabled-color);\n",
"}\n",
"\n",
".xr-section-item input:enabled + label {\n",
" cursor: pointer;\n",
" color: var(--xr-font-color2);\n",
"}\n",
"\n",
".xr-section-item input:enabled + label:hover {\n",
" color: var(--xr-font-color0);\n",
"}\n",
"\n",
".xr-section-summary {\n",
" grid-column: 1;\n",
" color: var(--xr-font-color2);\n",
" font-weight: 500;\n",
"}\n",
"\n",
".xr-section-summary > span {\n",
" display: inline-block;\n",
" padding-left: 0.5em;\n",
"}\n",
"\n",
".xr-section-summary-in:disabled + label {\n",
" color: var(--xr-font-color2);\n",
"}\n",
"\n",
".xr-section-summary-in + label:before {\n",
" display: inline-block;\n",
" content: '►';\n",
" font-size: 11px;\n",
" width: 15px;\n",
" text-align: center;\n",
"}\n",
"\n",
".xr-section-summary-in:disabled + label:before {\n",
" color: var(--xr-disabled-color);\n",
"}\n",
"\n",
".xr-section-summary-in:checked + label:before {\n",
" content: '▼';\n",
"}\n",
"\n",
".xr-section-summary-in:checked + label > span {\n",
" display: none;\n",
"}\n",
"\n",
".xr-section-summary,\n",
".xr-section-inline-details {\n",
" padding-top: 4px;\n",
" padding-bottom: 4px;\n",
"}\n",
"\n",
".xr-section-inline-details {\n",
" grid-column: 2 / -1;\n",
"}\n",
"\n",
".xr-section-details {\n",
" display: none;\n",
" grid-column: 1 / -1;\n",
" margin-bottom: 5px;\n",
"}\n",
"\n",
".xr-section-summary-in:checked ~ .xr-section-details {\n",
" display: contents;\n",
"}\n",
"\n",
".xr-array-wrap {\n",
" grid-column: 1 / -1;\n",
" display: grid;\n",
" grid-template-columns: 20px auto;\n",
"}\n",
"\n",
".xr-array-wrap > label {\n",
" grid-column: 1;\n",
" vertical-align: top;\n",
"}\n",
"\n",
".xr-preview {\n",
" color: var(--xr-font-color3);\n",
"}\n",
"\n",
".xr-array-preview,\n",
".xr-array-data {\n",
" padding: 0 5px !important;\n",
" grid-column: 2;\n",
"}\n",
"\n",
".xr-array-data,\n",
".xr-array-in:checked ~ .xr-array-preview {\n",
" display: none;\n",
"}\n",
"\n",
".xr-array-in:checked ~ .xr-array-data,\n",
".xr-array-preview {\n",
" display: inline-block;\n",
"}\n",
"\n",
".xr-dim-list {\n",
" display: inline-block !important;\n",
" list-style: none;\n",
" padding: 0 !important;\n",
" margin: 0;\n",
"}\n",
"\n",
".xr-dim-list li {\n",
" display: inline-block;\n",
" padding: 0;\n",
" margin: 0;\n",
"}\n",
"\n",
".xr-dim-list:before {\n",
" content: '(';\n",
"}\n",
"\n",
".xr-dim-list:after {\n",
" content: ')';\n",
"}\n",
"\n",
".xr-dim-list li:not(:last-child):after {\n",
" content: ',';\n",
" padding-right: 5px;\n",
"}\n",
"\n",
".xr-has-index {\n",
" font-weight: bold;\n",
"}\n",
"\n",
".xr-var-list,\n",
".xr-var-item {\n",
" display: contents;\n",
"}\n",
"\n",
".xr-var-item > div,\n",
".xr-var-item label,\n",
".xr-var-item > .xr-var-name span {\n",
" background-color: var(--xr-background-color-row-even);\n",
" margin-bottom: 0;\n",
"}\n",
"\n",
".xr-var-item > .xr-var-name:hover span {\n",
" padding-right: 5px;\n",
"}\n",
"\n",
".xr-var-list > li:nth-child(odd) > div,\n",
".xr-var-list > li:nth-child(odd) > label,\n",
".xr-var-list > li:nth-child(odd) > .xr-var-name span {\n",
" background-color: var(--xr-background-color-row-odd);\n",
"}\n",
"\n",
".xr-var-name {\n",
" grid-column: 1;\n",
"}\n",
"\n",
".xr-var-dims {\n",
" grid-column: 2;\n",
"}\n",
"\n",
".xr-var-dtype {\n",
" grid-column: 3;\n",
" text-align: right;\n",
" color: var(--xr-font-color2);\n",
"}\n",
"\n",
".xr-var-preview {\n",
" grid-column: 4;\n",
"}\n",
"\n",
".xr-index-preview {\n",
" grid-column: 2 / 5;\n",
" color: var(--xr-font-color2);\n",
"}\n",
"\n",
".xr-var-name,\n",
".xr-var-dims,\n",
".xr-var-dtype,\n",
".xr-preview,\n",
".xr-attrs dt {\n",
" white-space: nowrap;\n",
" overflow: hidden;\n",
" text-overflow: ellipsis;\n",
" padding-right: 10px;\n",
"}\n",
"\n",
".xr-var-name:hover,\n",
".xr-var-dims:hover,\n",
".xr-var-dtype:hover,\n",
".xr-attrs dt:hover {\n",
" overflow: visible;\n",
" width: auto;\n",
" z-index: 1;\n",
"}\n",
"\n",
".xr-var-attrs,\n",
".xr-var-data,\n",
".xr-index-data {\n",
" display: none;\n",
" background-color: var(--xr-background-color) !important;\n",
" padding-bottom: 5px !important;\n",
"}\n",
"\n",
".xr-var-attrs-in:checked ~ .xr-var-attrs,\n",
".xr-var-data-in:checked ~ .xr-var-data,\n",
".xr-index-data-in:checked ~ .xr-index-data {\n",
" display: block;\n",
"}\n",
"\n",
".xr-var-data > table {\n",
" float: right;\n",
"}\n",
"\n",
".xr-var-name span,\n",
".xr-var-data,\n",
".xr-index-name div,\n",
".xr-index-data,\n",
".xr-attrs {\n",
" padding-left: 25px !important;\n",
"}\n",
"\n",
".xr-attrs,\n",
".xr-var-attrs,\n",
".xr-var-data,\n",
".xr-index-data {\n",
" grid-column: 1 / -1;\n",
"}\n",
"\n",
"dl.xr-attrs {\n",
" padding: 0;\n",
" margin: 0;\n",
" display: grid;\n",
" grid-template-columns: 125px auto;\n",
"}\n",
"\n",
".xr-attrs dt,\n",
".xr-attrs dd {\n",
" padding: 0;\n",
" margin: 0;\n",
" float: left;\n",
" padding-right: 10px;\n",
" width: auto;\n",
"}\n",
"\n",
".xr-attrs dt {\n",
" font-weight: normal;\n",
" grid-column: 1;\n",
"}\n",
"\n",
".xr-attrs dt:hover span {\n",
" display: inline-block;\n",
" background: var(--xr-background-color);\n",
" padding-right: 10px;\n",
"}\n",
"\n",
".xr-attrs dd {\n",
" grid-column: 2;\n",
" white-space: pre-wrap;\n",
" word-break: break-all;\n",
"}\n",
"\n",
".xr-icon-database,\n",
".xr-icon-file-text2,\n",
".xr-no-icon {\n",
" display: inline-block;\n",
" vertical-align: middle;\n",
" width: 1em;\n",
" height: 1.5em !important;\n",
" stroke-width: 0;\n",
" stroke: currentColor;\n",
" fill: currentColor;\n",
"}\n",
"</style><pre class='xr-text-repr-fallback'>&lt;xarray.Dataset&gt;\n",
"Dimensions: (gt1l/land_ice_segments/delta_time: 86274)\n",
"Coordinates:\n",
" delta_time (gt1l/land_ice_segments/delta_time) datetime64[ns] ...\n",
" latitude (gt1l/land_ice_segments/delta_time) float64 ...\n",
" longitude (gt1l/land_ice_segments/delta_time) float64 ...\n",
"Dimensions without coordinates: gt1l/land_ice_segments/delta_time\n",
"Data variables:\n",
" atl06_quality_summary (gt1l/land_ice_segments/delta_time) float32 ...\n",
" h_li (gt1l/land_ice_segments/delta_time) float32 ...\n",
" h_li_sigma (gt1l/land_ice_segments/delta_time) float32 ...\n",
" segment_id (gt1l/land_ice_segments/delta_time) float64 ...\n",
" sigma_geo_h (gt1l/land_ice_segments/delta_time) float32 ...\n",
"Attributes:\n",
" Description: The land_ice_height group contains the primary set of deriv...\n",
" data_rate: Data within this group are sparse. Data values are provide...</pre><div class='xr-wrap' style='display:none'><div class='xr-header'><div class='xr-obj-type'>xarray.Dataset</div></div><ul class='xr-sections'><li class='xr-section-item'><input id='section-1042ff11-7a35-44cc-acbd-a7c13a484e60' class='xr-section-summary-in' type='checkbox' disabled ><label for='section-1042ff11-7a35-44cc-acbd-a7c13a484e60' class='xr-section-summary' title='Expand/collapse section'>Dimensions:</label><div class='xr-section-inline-details'><ul class='xr-dim-list'><li><span>gt1l/land_ice_segments/delta_time</span>: 86274</li></ul></div><div class='xr-section-details'></div></li><li class='xr-section-item'><input id='section-386eb7b1-d7d1-443b-bae0-ce4f90a4b846' class='xr-section-summary-in' type='checkbox' checked><label for='section-386eb7b1-d7d1-443b-bae0-ce4f90a4b846' class='xr-section-summary' >Coordinates: <span>(3)</span></label><div class='xr-section-inline-details'></div><div class='xr-section-details'><ul class='xr-var-list'><li class='xr-var-item'><div class='xr-var-name'><span>delta_time</span></div><div class='xr-var-dims'>(gt1l/land_ice_segments/delta_time)</div><div class='xr-var-dtype'>datetime64[ns]</div><div class='xr-var-preview xr-preview'>...</div><input id='attrs-bf02b6eb-cd94-4e13-862b-d90848dc8269' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-bf02b6eb-cd94-4e13-862b-d90848dc8269' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-531f71f6-29b6-414e-825f-fbbf4e838c37' class='xr-var-data-in' type='checkbox'><label for='data-531f71f6-29b6-414e-825f-fbbf4e838c37' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'><dt><span>contentType :</span></dt><dd>referenceInformation</dd><dt><span>description :</span></dt><dd>Number of GPS seconds since the ATLAS SDP epoch. The ATLAS Standard Data Products (SDP) epoch offset is defined within /ancillary_data/atlas_sdp_gps_epoch as the number of GPS seconds between the GPS epoch (1980-01-06T00:00:00.000000Z UTC) and the ATLAS SDP epoch. By adding the offset contained within atlas_sdp_gps_epoch to delta time parameters, the time in gps_seconds relative to the GPS epoch can be computed.</dd><dt><span>long_name :</span></dt><dd>Elapsed GPS seconds</dd><dt><span>source :</span></dt><dd>section 4.4</dd><dt><span>standard_name :</span></dt><dd>time</dd></dl></div><div class='xr-var-data'><pre>[86274 values with dtype=datetime64[ns]]</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span>latitude</span></div><div class='xr-var-dims'>(gt1l/land_ice_segments/delta_time)</div><div class='xr-var-dtype'>float64</div><div class='xr-var-preview xr-preview'>...</div><input id='attrs-4e53c5f3-cf69-435f-8d7e-059c7a3ae576' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-4e53c5f3-cf69-435f-8d7e-059c7a3ae576' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-e9cecf60-9763-4b28-a6e2-4fbb0b173fd9' class='xr-var-data-in' type='checkbox'><label for='data-e9cecf60-9763-4b28-a6e2-4fbb0b173fd9' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'><dt><span>contentType :</span></dt><dd>physicalMeasurement</dd><dt><span>description :</span></dt><dd>Latitude of segment center, WGS84, North=+,</dd><dt><span>long_name :</span></dt><dd>Latitude</dd><dt><span>source :</span></dt><dd>section 3.10</dd><dt><span>standard_name :</span></dt><dd>latitude</dd><dt><span>units :</span></dt><dd>degrees_north</dd><dt><span>valid_max :</span></dt><dd>90.0</dd><dt><span>valid_min :</span></dt><dd>-90.0</dd></dl></div><div class='xr-var-data'><pre>[86274 values with dtype=float64]</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span>longitude</span></div><div class='xr-var-dims'>(gt1l/land_ice_segments/delta_time)</div><div class='xr-var-dtype'>float64</div><div class='xr-var-preview xr-preview'>...</div><input id='attrs-dc41fb29-7097-4709-a4d5-235309faa9f8' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-dc41fb29-7097-4709-a4d5-235309faa9f8' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-3ac0f6ae-76b7-48be-bd3b-2cab6a4a00fe' class='xr-var-data-in' type='checkbox'><label for='data-3ac0f6ae-76b7-48be-bd3b-2cab6a4a00fe' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'><dt><span>contentType :</span></dt><dd>physicalMeasurement</dd><dt><span>description :</span></dt><dd>Longitude of segment center, , WGS84, East=+</dd><dt><span>long_name :</span></dt><dd>Longitude</dd><dt><span>source :</span></dt><dd>section 3.10</dd><dt><span>standard_name :</span></dt><dd>longitude</dd><dt><span>units :</span></dt><dd>degrees_east</dd><dt><span>valid_max :</span></dt><dd>180.0</dd><dt><span>valid_min :</span></dt><dd>-180.0</dd></dl></div><div class='xr-var-data'><pre>[86274 values with dtype=float64]</pre></div></li></ul></div></li><li class='xr-section-item'><input id='section-d5330c02-e7cc-484d-a9c6-fa7b9b93bc25' class='xr-section-summary-in' type='checkbox' checked><label for='section-d5330c02-e7cc-484d-a9c6-fa7b9b93bc25' class='xr-section-summary' >Data variables: <span>(5)</span></label><div class='xr-section-inline-details'></div><div class='xr-section-details'><ul class='xr-var-list'><li class='xr-var-item'><div class='xr-var-name'><span>atl06_quality_summary</span></div><div class='xr-var-dims'>(gt1l/land_ice_segments/delta_time)</div><div class='xr-var-dtype'>float32</div><div class='xr-var-preview xr-preview'>...</div><input id='attrs-55a99c79-75a2-44af-b31e-5d9bf1726743' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-55a99c79-75a2-44af-b31e-5d9bf1726743' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-b7ed47fb-ec40-4b54-a1ea-129019e2325c' class='xr-var-data-in' type='checkbox'><label for='data-b7ed47fb-ec40-4b54-a1ea-129019e2325c' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'><dt><span>contentType :</span></dt><dd>qualityInformation</dd><dt><span>description :</span></dt><dd>The ATL06_quality_summary parameter indicates the best-quality subset of all ATL06 data. A zero in this parameter implies that no data-quality tests have found a problem with the segment, a one implies that some potential problem has been found. Users who select only segments with zero values for this flag can be relatively certain of obtaining high-quality data, but will likely miss a significant fraction of usable data, particularly in cloudy, rough, or low-surface-reflectance conditions.</dd><dt><span>flag_meanings :</span></dt><dd>best_quality potential_problem</dd><dt><span>flag_values :</span></dt><dd>[0, 1]</dd><dt><span>long_name :</span></dt><dd>ATL06_Quality_Summary</dd><dt><span>source :</span></dt><dd>section 4.3</dd><dt><span>units :</span></dt><dd>1</dd><dt><span>valid_max :</span></dt><dd>1</dd><dt><span>valid_min :</span></dt><dd>0</dd></dl></div><div class='xr-var-data'><pre>[86274 values with dtype=float32]</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span>h_li</span></div><div class='xr-var-dims'>(gt1l/land_ice_segments/delta_time)</div><div class='xr-var-dtype'>float32</div><div class='xr-var-preview xr-preview'>...</div><input id='attrs-726b7343-0a72-40e3-a32e-efaccfe52eaa' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-726b7343-0a72-40e3-a32e-efaccfe52eaa' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-0087fa97-faa7-4dae-b54d-f83033a18268' class='xr-var-data-in' type='checkbox'><label for='data-0087fa97-faa7-4dae-b54d-f83033a18268' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'><dt><span>contentType :</span></dt><dd>physicalMeasurement</dd><dt><span>description :</span></dt><dd>Standard land-ice segment height determined by land ice algorithm, corrected for first-photon bias, representing the median- based height of the selected PEs</dd><dt><span>long_name :</span></dt><dd>Land Ice height</dd><dt><span>source :</span></dt><dd>section 4.4</dd><dt><span>units :</span></dt><dd>meters</dd></dl></div><div class='xr-var-data'><pre>[86274 values with dtype=float32]</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span>h_li_sigma</span></div><div class='xr-var-dims'>(gt1l/land_ice_segments/delta_time)</div><div class='xr-var-dtype'>float32</div><div class='xr-var-preview xr-preview'>...</div><input id='attrs-06b144c7-dfc9-4ee2-9c90-bd16b260bf6f' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-06b144c7-dfc9-4ee2-9c90-bd16b260bf6f' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-88cf20b7-da56-4c6c-baf6-f6cb0259e90a' class='xr-var-data-in' type='checkbox'><label for='data-88cf20b7-da56-4c6c-baf6-f6cb0259e90a' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'><dt><span>contentType :</span></dt><dd>qualityInformation</dd><dt><span>description :</span></dt><dd>Propagated error due to sampling error and FPB correction from the land ice algorithm</dd><dt><span>long_name :</span></dt><dd>Expected RMS segment misfit</dd><dt><span>source :</span></dt><dd>section 4.4</dd><dt><span>units :</span></dt><dd>meters</dd></dl></div><div class='xr-var-data'><pre>[86274 values with dtype=float32]</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span>segment_id</span></div><div class='xr-var-dims'>(gt1l/land_ice_segments/delta_time)</div><div class='xr-var-dtype'>float64</div><div class='xr-var-preview xr-preview'>...</div><input id='attrs-10266d08-9ac5-4b4d-8ad9-aff950b764f7' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-10266d08-9ac5-4b4d-8ad9-aff950b764f7' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-a7533a7c-3fef-464d-b4d9-464b099b29a4' class='xr-var-data-in' type='checkbox'><label for='data-a7533a7c-3fef-464d-b4d9-464b099b29a4' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'><dt><span>contentType :</span></dt><dd>referenceInformation</dd><dt><span>description :</span></dt><dd>Segment number, counting from the equator. Equal to the segment_id for the second of the two 20m ATL03 segments included in the 40m ATL06 segment</dd><dt><span>long_name :</span></dt><dd>Reference Point, m</dd><dt><span>source :</span></dt><dd>section 3.1.2.1</dd><dt><span>units :</span></dt><dd>1</dd></dl></div><div class='xr-var-data'><pre>[86274 values with dtype=float64]</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span>sigma_geo_h</span></div><div class='xr-var-dims'>(gt1l/land_ice_segments/delta_time)</div><div class='xr-var-dtype'>float32</div><div class='xr-var-preview xr-preview'>...</div><input id='attrs-416e892e-2394-42d8-ac6c-a8a8161ad768' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-416e892e-2394-42d8-ac6c-a8a8161ad768' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-cb13b634-b9be-450f-9fed-0c12d647253d' class='xr-var-data-in' type='checkbox'><label for='data-cb13b634-b9be-450f-9fed-0c12d647253d' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'><dt><span>contentType :</span></dt><dd>qualityInformation</dd><dt><span>description :</span></dt><dd>Total vertical geolocation error due to PPD and POD, including the effects of horizontal geolocation error on the segment vertical error.</dd><dt><span>long_name :</span></dt><dd>Vertical Geolocation Error</dd><dt><span>source :</span></dt><dd>ATBD Section 3.10</dd><dt><span>units :</span></dt><dd>meters</dd></dl></div><div class='xr-var-data'><pre>[86274 values with dtype=float32]</pre></div></li></ul></div></li><li class='xr-section-item'><input id='section-a010b667-dcd0-4eac-bb8b-240c2b5f428d' class='xr-section-summary-in' type='checkbox' disabled ><label for='section-a010b667-dcd0-4eac-bb8b-240c2b5f428d' class='xr-section-summary' title='Expand/collapse section'>Indexes: <span>(0)</span></label><div class='xr-section-inline-details'></div><div class='xr-section-details'><ul class='xr-var-list'></ul></div></li><li class='xr-section-item'><input id='section-6c78325a-84b5-43dd-949c-ed01b470e180' class='xr-section-summary-in' type='checkbox' checked><label for='section-6c78325a-84b5-43dd-949c-ed01b470e180' class='xr-section-summary' >Attributes: <span>(2)</span></label><div class='xr-section-inline-details'></div><div class='xr-section-details'><dl class='xr-attrs'><dt><span>Description :</span></dt><dd>The land_ice_height group contains the primary set of derived ATL06 products. This includes geolocation, height, and standard error and quality measures for each segment. This group is sparse, meaning that parameters are provided only for pairs of segments for which at least one beam has a valid surface-height measurement.</dd><dt><span>data_rate :</span></dt><dd>Data within this group are sparse. Data values are provided only for those ICESat-2 20m segments where at least one beam has a valid land ice height measurement.</dd></dl></div></li></ul></div></div>"
],
"text/plain": [
"<xarray.Dataset>\n",
"Dimensions: (gt1l/land_ice_segments/delta_time: 86274)\n",
"Coordinates:\n",
" delta_time (gt1l/land_ice_segments/delta_time) datetime64[ns] ...\n",
" latitude (gt1l/land_ice_segments/delta_time) float64 ...\n",
" longitude (gt1l/land_ice_segments/delta_time) float64 ...\n",
"Dimensions without coordinates: gt1l/land_ice_segments/delta_time\n",
"Data variables:\n",
" atl06_quality_summary (gt1l/land_ice_segments/delta_time) float32 ...\n",
" h_li (gt1l/land_ice_segments/delta_time) float32 ...\n",
" h_li_sigma (gt1l/land_ice_segments/delta_time) float32 ...\n",
" segment_id (gt1l/land_ice_segments/delta_time) float64 ...\n",
" sigma_geo_h (gt1l/land_ice_segments/delta_time) float32 ...\n",
"Attributes:\n",
" Description: The land_ice_height group contains the primary set of deriv...\n",
" data_rate: Data within this group are sparse. Data values are provide..."
]
},
"execution_count": 18,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# NOTE: some refinement needed to get dimensions recognized\n",
"ds"
]
},
{
"cell_type": "code",
"execution_count": 19,
"id": "528d5280-ac92-473b-9269-57f116ea0332",
"metadata": {
"tags": []
},
"outputs": [
{
"data": {
"text/html": [
"<div><svg style=\"position: absolute; width: 0; height: 0; overflow: hidden\">\n",
"<defs>\n",
"<symbol id=\"icon-database\" viewBox=\"0 0 32 32\">\n",
"<path d=\"M16 0c-8.837 0-16 2.239-16 5v4c0 2.761 7.163 5 16 5s16-2.239 16-5v-4c0-2.761-7.163-5-16-5z\"></path>\n",
"<path d=\"M16 17c-8.837 0-16-2.239-16-5v6c0 2.761 7.163 5 16 5s16-2.239 16-5v-6c0 2.761-7.163 5-16 5z\"></path>\n",
"<path d=\"M16 26c-8.837 0-16-2.239-16-5v6c0 2.761 7.163 5 16 5s16-2.239 16-5v-6c0 2.761-7.163 5-16 5z\"></path>\n",
"</symbol>\n",
"<symbol id=\"icon-file-text2\" viewBox=\"0 0 32 32\">\n",
"<path d=\"M28.681 7.159c-0.694-0.947-1.662-2.053-2.724-3.116s-2.169-2.030-3.116-2.724c-1.612-1.182-2.393-1.319-2.841-1.319h-15.5c-1.378 0-2.5 1.121-2.5 2.5v27c0 1.378 1.122 2.5 2.5 2.5h23c1.378 0 2.5-1.122 2.5-2.5v-19.5c0-0.448-0.137-1.23-1.319-2.841zM24.543 5.457c0.959 0.959 1.712 1.825 2.268 2.543h-4.811v-4.811c0.718 0.556 1.584 1.309 2.543 2.268zM28 29.5c0 0.271-0.229 0.5-0.5 0.5h-23c-0.271 0-0.5-0.229-0.5-0.5v-27c0-0.271 0.229-0.5 0.5-0.5 0 0 15.499-0 15.5 0v7c0 0.552 0.448 1 1 1h7v19.5z\"></path>\n",
"<path d=\"M23 26h-14c-0.552 0-1-0.448-1-1s0.448-1 1-1h14c0.552 0 1 0.448 1 1s-0.448 1-1 1z\"></path>\n",
"<path d=\"M23 22h-14c-0.552 0-1-0.448-1-1s0.448-1 1-1h14c0.552 0 1 0.448 1 1s-0.448 1-1 1z\"></path>\n",
"<path d=\"M23 18h-14c-0.552 0-1-0.448-1-1s0.448-1 1-1h14c0.552 0 1 0.448 1 1s-0.448 1-1 1z\"></path>\n",
"</symbol>\n",
"</defs>\n",
"</svg>\n",
"<style>/* CSS stylesheet for displaying xarray objects in jupyterlab.\n",
" *\n",
" */\n",
"\n",
":root {\n",
" --xr-font-color0: var(--jp-content-font-color0, rgba(0, 0, 0, 1));\n",
" --xr-font-color2: var(--jp-content-font-color2, rgba(0, 0, 0, 0.54));\n",
" --xr-font-color3: var(--jp-content-font-color3, rgba(0, 0, 0, 0.38));\n",
" --xr-border-color: var(--jp-border-color2, #e0e0e0);\n",
" --xr-disabled-color: var(--jp-layout-color3, #bdbdbd);\n",
" --xr-background-color: var(--jp-layout-color0, white);\n",
" --xr-background-color-row-even: var(--jp-layout-color1, white);\n",
" --xr-background-color-row-odd: var(--jp-layout-color2, #eeeeee);\n",
"}\n",
"\n",
"html[theme=dark],\n",
"body[data-theme=dark],\n",
"body.vscode-dark {\n",
" --xr-font-color0: rgba(255, 255, 255, 1);\n",
" --xr-font-color2: rgba(255, 255, 255, 0.54);\n",
" --xr-font-color3: rgba(255, 255, 255, 0.38);\n",
" --xr-border-color: #1F1F1F;\n",
" --xr-disabled-color: #515151;\n",
" --xr-background-color: #111111;\n",
" --xr-background-color-row-even: #111111;\n",
" --xr-background-color-row-odd: #313131;\n",
"}\n",
"\n",
".xr-wrap {\n",
" display: block !important;\n",
" min-width: 300px;\n",
" max-width: 700px;\n",
"}\n",
"\n",
".xr-text-repr-fallback {\n",
" /* fallback to plain text repr when CSS is not injected (untrusted notebook) */\n",
" display: none;\n",
"}\n",
"\n",
".xr-header {\n",
" padding-top: 6px;\n",
" padding-bottom: 6px;\n",
" margin-bottom: 4px;\n",
" border-bottom: solid 1px var(--xr-border-color);\n",
"}\n",
"\n",
".xr-header > div,\n",
".xr-header > ul {\n",
" display: inline;\n",
" margin-top: 0;\n",
" margin-bottom: 0;\n",
"}\n",
"\n",
".xr-obj-type,\n",
".xr-array-name {\n",
" margin-left: 2px;\n",
" margin-right: 10px;\n",
"}\n",
"\n",
".xr-obj-type {\n",
" color: var(--xr-font-color2);\n",
"}\n",
"\n",
".xr-sections {\n",
" padding-left: 0 !important;\n",
" display: grid;\n",
" grid-template-columns: 150px auto auto 1fr 20px 20px;\n",
"}\n",
"\n",
".xr-section-item {\n",
" display: contents;\n",
"}\n",
"\n",
".xr-section-item input {\n",
" display: none;\n",
"}\n",
"\n",
".xr-section-item input + label {\n",
" color: var(--xr-disabled-color);\n",
"}\n",
"\n",
".xr-section-item input:enabled + label {\n",
" cursor: pointer;\n",
" color: var(--xr-font-color2);\n",
"}\n",
"\n",
".xr-section-item input:enabled + label:hover {\n",
" color: var(--xr-font-color0);\n",
"}\n",
"\n",
".xr-section-summary {\n",
" grid-column: 1;\n",
" color: var(--xr-font-color2);\n",
" font-weight: 500;\n",
"}\n",
"\n",
".xr-section-summary > span {\n",
" display: inline-block;\n",
" padding-left: 0.5em;\n",
"}\n",
"\n",
".xr-section-summary-in:disabled + label {\n",
" color: var(--xr-font-color2);\n",
"}\n",
"\n",
".xr-section-summary-in + label:before {\n",
" display: inline-block;\n",
" content: '►';\n",
" font-size: 11px;\n",
" width: 15px;\n",
" text-align: center;\n",
"}\n",
"\n",
".xr-section-summary-in:disabled + label:before {\n",
" color: var(--xr-disabled-color);\n",
"}\n",
"\n",
".xr-section-summary-in:checked + label:before {\n",
" content: '▼';\n",
"}\n",
"\n",
".xr-section-summary-in:checked + label > span {\n",
" display: none;\n",
"}\n",
"\n",
".xr-section-summary,\n",
".xr-section-inline-details {\n",
" padding-top: 4px;\n",
" padding-bottom: 4px;\n",
"}\n",
"\n",
".xr-section-inline-details {\n",
" grid-column: 2 / -1;\n",
"}\n",
"\n",
".xr-section-details {\n",
" display: none;\n",
" grid-column: 1 / -1;\n",
" margin-bottom: 5px;\n",
"}\n",
"\n",
".xr-section-summary-in:checked ~ .xr-section-details {\n",
" display: contents;\n",
"}\n",
"\n",
".xr-array-wrap {\n",
" grid-column: 1 / -1;\n",
" display: grid;\n",
" grid-template-columns: 20px auto;\n",
"}\n",
"\n",
".xr-array-wrap > label {\n",
" grid-column: 1;\n",
" vertical-align: top;\n",
"}\n",
"\n",
".xr-preview {\n",
" color: var(--xr-font-color3);\n",
"}\n",
"\n",
".xr-array-preview,\n",
".xr-array-data {\n",
" padding: 0 5px !important;\n",
" grid-column: 2;\n",
"}\n",
"\n",
".xr-array-data,\n",
".xr-array-in:checked ~ .xr-array-preview {\n",
" display: none;\n",
"}\n",
"\n",
".xr-array-in:checked ~ .xr-array-data,\n",
".xr-array-preview {\n",
" display: inline-block;\n",
"}\n",
"\n",
".xr-dim-list {\n",
" display: inline-block !important;\n",
" list-style: none;\n",
" padding: 0 !important;\n",
" margin: 0;\n",
"}\n",
"\n",
".xr-dim-list li {\n",
" display: inline-block;\n",
" padding: 0;\n",
" margin: 0;\n",
"}\n",
"\n",
".xr-dim-list:before {\n",
" content: '(';\n",
"}\n",
"\n",
".xr-dim-list:after {\n",
" content: ')';\n",
"}\n",
"\n",
".xr-dim-list li:not(:last-child):after {\n",
" content: ',';\n",
" padding-right: 5px;\n",
"}\n",
"\n",
".xr-has-index {\n",
" font-weight: bold;\n",
"}\n",
"\n",
".xr-var-list,\n",
".xr-var-item {\n",
" display: contents;\n",
"}\n",
"\n",
".xr-var-item > div,\n",
".xr-var-item label,\n",
".xr-var-item > .xr-var-name span {\n",
" background-color: var(--xr-background-color-row-even);\n",
" margin-bottom: 0;\n",
"}\n",
"\n",
".xr-var-item > .xr-var-name:hover span {\n",
" padding-right: 5px;\n",
"}\n",
"\n",
".xr-var-list > li:nth-child(odd) > div,\n",
".xr-var-list > li:nth-child(odd) > label,\n",
".xr-var-list > li:nth-child(odd) > .xr-var-name span {\n",
" background-color: var(--xr-background-color-row-odd);\n",
"}\n",
"\n",
".xr-var-name {\n",
" grid-column: 1;\n",
"}\n",
"\n",
".xr-var-dims {\n",
" grid-column: 2;\n",
"}\n",
"\n",
".xr-var-dtype {\n",
" grid-column: 3;\n",
" text-align: right;\n",
" color: var(--xr-font-color2);\n",
"}\n",
"\n",
".xr-var-preview {\n",
" grid-column: 4;\n",
"}\n",
"\n",
".xr-index-preview {\n",
" grid-column: 2 / 5;\n",
" color: var(--xr-font-color2);\n",
"}\n",
"\n",
".xr-var-name,\n",
".xr-var-dims,\n",
".xr-var-dtype,\n",
".xr-preview,\n",
".xr-attrs dt {\n",
" white-space: nowrap;\n",
" overflow: hidden;\n",
" text-overflow: ellipsis;\n",
" padding-right: 10px;\n",
"}\n",
"\n",
".xr-var-name:hover,\n",
".xr-var-dims:hover,\n",
".xr-var-dtype:hover,\n",
".xr-attrs dt:hover {\n",
" overflow: visible;\n",
" width: auto;\n",
" z-index: 1;\n",
"}\n",
"\n",
".xr-var-attrs,\n",
".xr-var-data,\n",
".xr-index-data {\n",
" display: none;\n",
" background-color: var(--xr-background-color) !important;\n",
" padding-bottom: 5px !important;\n",
"}\n",
"\n",
".xr-var-attrs-in:checked ~ .xr-var-attrs,\n",
".xr-var-data-in:checked ~ .xr-var-data,\n",
".xr-index-data-in:checked ~ .xr-index-data {\n",
" display: block;\n",
"}\n",
"\n",
".xr-var-data > table {\n",
" float: right;\n",
"}\n",
"\n",
".xr-var-name span,\n",
".xr-var-data,\n",
".xr-index-name div,\n",
".xr-index-data,\n",
".xr-attrs {\n",
" padding-left: 25px !important;\n",
"}\n",
"\n",
".xr-attrs,\n",
".xr-var-attrs,\n",
".xr-var-data,\n",
".xr-index-data {\n",
" grid-column: 1 / -1;\n",
"}\n",
"\n",
"dl.xr-attrs {\n",
" padding: 0;\n",
" margin: 0;\n",
" display: grid;\n",
" grid-template-columns: 125px auto;\n",
"}\n",
"\n",
".xr-attrs dt,\n",
".xr-attrs dd {\n",
" padding: 0;\n",
" margin: 0;\n",
" float: left;\n",
" padding-right: 10px;\n",
" width: auto;\n",
"}\n",
"\n",
".xr-attrs dt {\n",
" font-weight: normal;\n",
" grid-column: 1;\n",
"}\n",
"\n",
".xr-attrs dt:hover span {\n",
" display: inline-block;\n",
" background: var(--xr-background-color);\n",
" padding-right: 10px;\n",
"}\n",
"\n",
".xr-attrs dd {\n",
" grid-column: 2;\n",
" white-space: pre-wrap;\n",
" word-break: break-all;\n",
"}\n",
"\n",
".xr-icon-database,\n",
".xr-icon-file-text2,\n",
".xr-no-icon {\n",
" display: inline-block;\n",
" vertical-align: middle;\n",
" width: 1em;\n",
" height: 1.5em !important;\n",
" stroke-width: 0;\n",
" stroke: currentColor;\n",
" fill: currentColor;\n",
"}\n",
"</style><pre class='xr-text-repr-fallback'>&lt;xarray.DataArray &#x27;h_li&#x27; ()&gt;\n",
"array(1350.8412, dtype=float32)</pre><div class='xr-wrap' style='display:none'><div class='xr-header'><div class='xr-obj-type'>xarray.DataArray</div><div class='xr-array-name'>'h_li'</div></div><ul class='xr-sections'><li class='xr-section-item'><div class='xr-array-wrap'><input id='section-33c6da35-7bb9-4160-890a-98ed96766acc' class='xr-array-in' type='checkbox' checked><label for='section-33c6da35-7bb9-4160-890a-98ed96766acc' title='Show/hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-array-preview xr-preview'><span>1.351e+03</span></div><div class='xr-array-data'><pre>array(1350.8412, dtype=float32)</pre></div></div></li><li class='xr-section-item'><input id='section-1b85cf59-3d0f-4a37-b1fd-d485915e052f' class='xr-section-summary-in' type='checkbox' disabled ><label for='section-1b85cf59-3d0f-4a37-b1fd-d485915e052f' class='xr-section-summary' title='Expand/collapse section'>Coordinates: <span>(0)</span></label><div class='xr-section-inline-details'></div><div class='xr-section-details'><ul class='xr-var-list'></ul></div></li><li class='xr-section-item'><input id='section-37b33551-f0de-4848-9907-2528f7ccb254' class='xr-section-summary-in' type='checkbox' disabled ><label for='section-37b33551-f0de-4848-9907-2528f7ccb254' class='xr-section-summary' title='Expand/collapse section'>Indexes: <span>(0)</span></label><div class='xr-section-inline-details'></div><div class='xr-section-details'><ul class='xr-var-list'></ul></div></li><li class='xr-section-item'><input id='section-445966d3-ffc7-43c7-bec2-43b90c47a9e1' class='xr-section-summary-in' type='checkbox' disabled ><label for='section-445966d3-ffc7-43c7-bec2-43b90c47a9e1' class='xr-section-summary' title='Expand/collapse section'>Attributes: <span>(0)</span></label><div class='xr-section-inline-details'></div><div class='xr-section-details'><dl class='xr-attrs'></dl></div></li></ul></div></div>"
],
"text/plain": [
"<xarray.DataArray 'h_li' ()>\n",
"array(1350.8412, dtype=float32)"
]
},
"execution_count": 19,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"ds.h_li.mean()"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "780242f2-443b-4a3f-8436-390a260bfe86",
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.10.11"
}
},
"nbformat": 4,
"nbformat_minor": 5
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment