Skip to content

Instantly share code, notes, and snippets.

@wildintellect
Created August 9, 2023 00:34
Show Gist options
  • Save wildintellect/2fb969b20d525df6173e221f87520599 to your computer and use it in GitHub Desktop.
Save wildintellect/2fb969b20d525df6173e221f87520599 to your computer and use it in GitHub Desktop.
ATL03 to Geoparquet
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "code",
"execution_count": 20,
"id": "a8fd93f6-689c-40be-828f-85fadfcd757f",
"metadata": {
"tags": []
},
"outputs": [],
"source": [
"import earthaccess\n",
"import datatree\n",
"import xarray as xr\n",
"import os\n",
"os.environ['USE_PYGEOS'] = '0'\n",
"import geopandas as gpd"
]
},
{
"cell_type": "code",
"execution_count": 9,
"id": "8184bcb1-5ce7-4e54-8793-b49b73132f9d",
"metadata": {
"tags": []
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"We are already authenticated with NASA EDL\n"
]
}
],
"source": [
"# Authenticate to EDL\n",
"auth = earthaccess.login(strategy=\"interactive\", persist=False)\n"
]
},
{
"cell_type": "code",
"execution_count": 10,
"id": "66e2e7f6-ed6d-4b12-9eda-fc304413089f",
"metadata": {
"tags": []
},
"outputs": [],
"source": [
"# Setup s3 keys\n",
"s3 = earthaccess.get_s3fs_session(daac=\"NSIDC\", provider=auth)"
]
},
{
"cell_type": "code",
"execution_count": 11,
"id": "2c269a3b-81cc-47ab-879d-970bba2a2085",
"metadata": {
"tags": []
},
"outputs": [],
"source": [
"s3url_atl03 = 's3://nsidc-cumulus-prod-protected/ATLAS/ATL03/006/2019/11/30/ATL03_20191130112041_09860505_006_01.h5'"
]
},
{
"cell_type": "code",
"execution_count": 6,
"id": "a1288797-ffdc-45d7-8a7d-96ba958916dc",
"metadata": {
"tags": []
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"CPU times: user 724 ms, sys: 201 ms, total: 924 ms\n",
"Wall time: 3.62 s\n"
]
},
{
"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: (ds_surf_type: 5, ds_xyz: 3)\n",
"Coordinates:\n",
" * ds_surf_type (ds_surf_type) int32 1 2 3 4 5\n",
" * ds_xyz (ds_xyz) int32 1 2 3\n",
"Data variables:\n",
" *empty*\n",
"Attributes: (12/47)\n",
" short_name: ATL03\n",
" level: L2\n",
" title: SET_BY_META\n",
" description: This data set (ATL03) contains height...\n",
" Conventions: CF-1.6\n",
" contributor_name: Thomas A Neumann (thomas.neumann@nasa...\n",
" ... ...\n",
" processing_level: 2A\n",
" references: http://nsidc.org/data/icesat2/data.html\n",
" project: ICESat-2 &gt; Ice, Cloud, and land Eleva...\n",
" instrument: ATLAS &gt; Advanced Topographic Laser Al...\n",
" platform: ICESat-2 &gt; Ice, Cloud, and land Eleva...\n",
" source: Spacecraft</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-a8737903-705a-4204-8202-c5cf53dd610c' class='xr-section-summary-in' type='checkbox' disabled ><label for='section-a8737903-705a-4204-8202-c5cf53dd610c' 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'>ds_surf_type</span>: 5</li><li><span class='xr-has-index'>ds_xyz</span>: 3</li></ul></div><div class='xr-section-details'></div></li><li class='xr-section-item'><input id='section-e63fe353-fd85-4f69-aefe-aab831766b79' class='xr-section-summary-in' type='checkbox' checked><label for='section-e63fe353-fd85-4f69-aefe-aab831766b79' class='xr-section-summary' >Coordinates: <span>(2)</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'>ds_surf_type</span></div><div class='xr-var-dims'>(ds_surf_type)</div><div class='xr-var-dtype'>int32</div><div class='xr-var-preview xr-preview'>1 2 3 4 5</div><input id='attrs-beff699f-0944-46ea-b0c4-14a7fd229a7e' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-beff699f-0944-46ea-b0c4-14a7fd229a7e' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-d1cf3a8f-0218-4c40-b601-f6321b93f9f9' class='xr-var-data-in' type='checkbox'><label for='data-d1cf3a8f-0218-4c40-b601-f6321b93f9f9' 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>auxiliaryInformation</dd><dt><span>description :</span></dt><dd>Dimension scale indexing the surface type array. Index=1 corresponds to Land; index = 2 corresponds to Ocean; Index = 3 corresponds to SeaIce; Index=4 corresponds to LandIce; Index=5 corresponds to InlandWater</dd><dt><span>flag_meanings :</span></dt><dd>land ocean seaice landice inland_water</dd><dt><span>flag_values :</span></dt><dd>[1 2 3 4 5]</dd><dt><span>long_name :</span></dt><dd>Surface Type Dimension Scale</dd><dt><span>source :</span></dt><dd>dim_scale</dd><dt><span>units :</span></dt><dd>1</dd><dt><span>valid_max :</span></dt><dd>5</dd><dt><span>valid_min :</span></dt><dd>1</dd></dl></div><div class='xr-var-data'><pre>array([1, 2, 3, 4, 5], dtype=int32)</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span class='xr-has-index'>ds_xyz</span></div><div class='xr-var-dims'>(ds_xyz)</div><div class='xr-var-dtype'>int32</div><div class='xr-var-preview xr-preview'>1 2 3</div><input id='attrs-d647502e-6305-491c-92e5-beead4189ed8' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-d647502e-6305-491c-92e5-beead4189ed8' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-4a91cde2-b2fc-4d49-adef-8d625f77b303' class='xr-var-data-in' type='checkbox'><label for='data-4a91cde2-b2fc-4d49-adef-8d625f77b303' 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>auxiliaryInformation</dd><dt><span>description :</span></dt><dd>Dimension scale indexing the XYZ components of velocity_sc. Index=1 corresponds to X; index = 2 corresponds to Y; Index = 3 corresponds to Z;</dd><dt><span>flag_meanings :</span></dt><dd>x y z</dd><dt><span>flag_values :</span></dt><dd>[1 2 3]</dd><dt><span>long_name :</span></dt><dd>XYZ Dimension Scale</dd><dt><span>source :</span></dt><dd>dim_scale</dd><dt><span>units :</span></dt><dd>1</dd><dt><span>valid_max :</span></dt><dd>3</dd><dt><span>valid_min :</span></dt><dd>1</dd></dl></div><div class='xr-var-data'><pre>array([1, 2, 3], dtype=int32)</pre></div></li></ul></div></li><li class='xr-section-item'><input id='section-7afe1afc-a422-4c0d-abc0-eda73b683bb7' class='xr-section-summary-in' type='checkbox' disabled ><label for='section-7afe1afc-a422-4c0d-abc0-eda73b683bb7' class='xr-section-summary' title='Expand/collapse section'>Data variables: <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-657cd110-1c5c-4915-8fe5-e14001f2fbdd' class='xr-section-summary-in' type='checkbox' ><label for='section-657cd110-1c5c-4915-8fe5-e14001f2fbdd' class='xr-section-summary' >Indexes: <span>(2)</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>ds_surf_type</div></div><div class='xr-index-preview'>PandasIndex</div><div></div><input id='index-6b0fcb32-3615-47fe-87d9-ce10f4b06171' class='xr-index-data-in' type='checkbox'/><label for='index-6b0fcb32-3615-47fe-87d9-ce10f4b06171' 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(Int64Index([1, 2, 3, 4, 5], dtype=&#x27;int64&#x27;, name=&#x27;ds_surf_type&#x27;))</pre></div></li><li class='xr-var-item'><div class='xr-index-name'><div>ds_xyz</div></div><div class='xr-index-preview'>PandasIndex</div><div></div><input id='index-1f770116-24a3-4b3b-8d26-09cfbd6b5fa6' class='xr-index-data-in' type='checkbox'/><label for='index-1f770116-24a3-4b3b-8d26-09cfbd6b5fa6' 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(Int64Index([1, 2, 3], dtype=&#x27;int64&#x27;, name=&#x27;ds_xyz&#x27;))</pre></div></li></ul></div></li><li class='xr-section-item'><input id='section-2286309c-bdf9-4000-aa54-f5e5d1399731' class='xr-section-summary-in' type='checkbox' ><label for='section-2286309c-bdf9-4000-aa54-f5e5d1399731' class='xr-section-summary' >Attributes: <span>(47)</span></label><div class='xr-section-inline-details'></div><div class='xr-section-details'><dl class='xr-attrs'><dt><span>short_name :</span></dt><dd>ATL03</dd><dt><span>level :</span></dt><dd>L2</dd><dt><span>title :</span></dt><dd>SET_BY_META</dd><dt><span>description :</span></dt><dd>This data set (ATL03) contains height above the WGS 84 ellipsoid (ITRF2014 reference frame), latitude, longitude, and time for all photons downlinked by the Advanced Topographic Laser Altimeter System (ATLAS) instrument on board the Ice, Cloud and land Elevation Satellite-2 (ICESat-2).</dd><dt><span>Conventions :</span></dt><dd>CF-1.6</dd><dt><span>contributor_name :</span></dt><dd>Thomas A Neumann (thomas.neumann@nasa.gov), Thorsten Markus (thorsten.markus@nasa.gov), Suneel Bhardwaj (suneel.bhardwaj@nasa.gov) David W Hancock III (david.w.hancock@nasa.gov)</dd><dt><span>contributor_role :</span></dt><dd>Instrument Engineer, Investigator, Principle Investigator, Data Producer, Data Producer</dd><dt><span>date_type :</span></dt><dd>UTC</dd><dt><span>featureType :</span></dt><dd>trajectory</dd><dt><span>geospatial_lat_units :</span></dt><dd>degrees_north</dd><dt><span>geospatial_lon_units :</span></dt><dd>degrees_east</dd><dt><span>granule_type :</span></dt><dd>ATL03</dd><dt><span>identifier_product_doi_authority :</span></dt><dd>http://dx.doi.org</dd><dt><span>license :</span></dt><dd>Data may not be reproduced or distributed without including the citation for this product included in this metadata. Data may not be distributed in an altered form without the written permission of the ICESat-2 Science Project Office at NASA/GSFC.</dd><dt><span>naming_authority :</span></dt><dd>http://dx.doi.org</dd><dt><span>spatial_coverage_type :</span></dt><dd>Horizontal</dd><dt><span>standard_name_vocabulary :</span></dt><dd>CF-1.6</dd><dt><span>time_type :</span></dt><dd>CCSDS UTC-A</dd><dt><span>date_created :</span></dt><dd>2023-04-25T01:45:08.000000Z</dd><dt><span>hdfversion :</span></dt><dd>HDF5 1.10.7</dd><dt><span>history :</span></dt><dd>2023-04-25T01:45:08.000000Z;19f9b11f-9c21-38ef-acb6-37ed1877fe9c;Created by PGE atlas_l2a_alt Version 4.0.1</dd><dt><span>identifier_file_uuid :</span></dt><dd>19f9b11f-9c21-38ef-acb6-37ed1877fe9c</dd><dt><span>identifier_product_format_version :</span></dt><dd>4.0</dd><dt><span>time_coverage_duration :</span></dt><dd>325.0</dd><dt><span>time_coverage_end :</span></dt><dd>2019-11-30T11:26:06.000000Z</dd><dt><span>time_coverage_start :</span></dt><dd>2019-11-30T11:20:41.000000Z</dd><dt><span>geospatial_lat_min :</span></dt><dd>59.49704932369124</dd><dt><span>geospatial_lon_min :</span></dt><dd>-49.73134348856453</dd><dt><span>geospatial_lat_max :</span></dt><dd>80.00620474213714</dd><dt><span>geospatial_lon_max :</span></dt><dd>-40.161941528926924</dd><dt><span>publisher_name :</span></dt><dd>NSIDC DAAC &gt; NASA National Snow and Ice Data Center Distributed Active Archive Center</dd><dt><span>publisher_email :</span></dt><dd>nsidc@nsidc.org</dd><dt><span>publisher_url :</span></dt><dd>http://nsidc.org/daac/</dd><dt><span>identifier_product_type :</span></dt><dd>ATL03</dd><dt><span>identifier_product_doi :</span></dt><dd>doi:10.5067/ATLAS/ATL03.006</dd><dt><span>institution :</span></dt><dd>National Aeronautics and Space Administration (NASA)</dd><dt><span>creator_name :</span></dt><dd>GSFC I-SIPS &gt; ICESat-2 Science Investigator-led Processing System</dd><dt><span>summary :</span></dt><dd>The purpose of ATL03 is to provide along-track photon data for all 6 ATLAS beams and associated statistics.</dd><dt><span>keywords :</span></dt><dd>EARTH SCIENCE &gt; CRYOSPHERE &gt; SEA ICE &gt; NONE &gt; NONE &gt; NONE &gt; NONE</dd><dt><span>keywords_vocabulary :</span></dt><dd>NASA/GCMD Science Keywords</dd><dt><span>citation :</span></dt><dd>Cite these data in publications as follows: The data used in this study were produced by the ICESat-2 Science Project Office at NASA/GSFC. The data archive site is the NASA National Snow and Ice Data Center Distributed Active Archive Center.</dd><dt><span>processing_level :</span></dt><dd>2A</dd><dt><span>references :</span></dt><dd>http://nsidc.org/data/icesat2/data.html</dd><dt><span>project :</span></dt><dd>ICESat-2 &gt; Ice, Cloud, and land Elevation Satellite-2</dd><dt><span>instrument :</span></dt><dd>ATLAS &gt; Advanced Topographic Laser Altimeter System</dd><dt><span>platform :</span></dt><dd>ICESat-2 &gt; Ice, Cloud, and land Elevation Satellite-2</dd><dt><span>source :</span></dt><dd>Spacecraft</dd></dl></div></li></ul></div></div>"
],
"text/plain": [
"<xarray.Dataset>\n",
"Dimensions: (ds_surf_type: 5, ds_xyz: 3)\n",
"Coordinates:\n",
" * ds_surf_type (ds_surf_type) int32 1 2 3 4 5\n",
" * ds_xyz (ds_xyz) int32 1 2 3\n",
"Data variables:\n",
" *empty*\n",
"Attributes: (12/47)\n",
" short_name: ATL03\n",
" level: L2\n",
" title: SET_BY_META\n",
" description: This data set (ATL03) contains height...\n",
" Conventions: CF-1.6\n",
" contributor_name: Thomas A Neumann (thomas.neumann@nasa...\n",
" ... ...\n",
" processing_level: 2A\n",
" references: http://nsidc.org/data/icesat2/data.html\n",
" project: ICESat-2 > Ice, Cloud, and land Eleva...\n",
" instrument: ATLAS > Advanced Topographic Laser Al...\n",
" platform: ICESat-2 > Ice, Cloud, and land Eleva...\n",
" source: Spacecraft"
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"%%time\n",
"ds = xr.open_dataset(s3.open(s3url_atl03, 'rb'))\n",
"ds\n"
]
},
{
"cell_type": "code",
"execution_count": 12,
"id": "1a808f93-f3c6-42b1-a224-e25a0af078f3",
"metadata": {
"tags": []
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"CPU times: user 18.5 s, sys: 4.48 s, total: 23 s\n",
"Wall time: 1min 7s\n"
]
},
{
"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: 2864201, ds_surf_type: 5)\n",
"Coordinates:\n",
" * delta_time (delta_time) datetime64[ns] 2019-11-30T11:20:41.001794496...\n",
" lat_ph (delta_time) float64 ...\n",
" lon_ph (delta_time) float64 ...\n",
"Dimensions without coordinates: ds_surf_type\n",
"Data variables:\n",
" dist_ph_across (delta_time) float32 ...\n",
" dist_ph_along (delta_time) float32 ...\n",
" h_ph (delta_time) float32 ...\n",
" pce_mframe_cnt (delta_time) uint32 ...\n",
" ph_id_channel (delta_time) uint8 ...\n",
" ph_id_count (delta_time) uint8 ...\n",
" ph_id_pulse (delta_time) uint8 ...\n",
" quality_ph (delta_time) int8 ...\n",
" signal_conf_ph (delta_time, ds_surf_type) int8 ...\n",
" weight_ph (delta_time) uint8 ...\n",
"Attributes:\n",
" Description: Contains arrays of the parameters for each received photon.\n",
" data_rate: Data are stored at the photon detection rate.</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-b751d4b0-74ec-4a75-ad13-97a176e5a89e' class='xr-section-summary-in' type='checkbox' disabled ><label for='section-b751d4b0-74ec-4a75-ad13-97a176e5a89e' 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>: 2864201</li><li><span>ds_surf_type</span>: 5</li></ul></div><div class='xr-section-details'></div></li><li class='xr-section-item'><input id='section-1ca6d712-b17b-45fd-89f4-df9fdab645f5' class='xr-section-summary-in' type='checkbox' checked><label for='section-1ca6d712-b17b-45fd-89f4-df9fdab645f5' 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'>2019-11-30T11:20:41.001794496 .....</div><input id='attrs-fcea6635-b5d9-4c71-bf8e-588e44af2098' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-fcea6635-b5d9-4c71-bf8e-588e44af2098' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-8b2caff9-3e48-4786-9a57-cec856a9b900' class='xr-var-data-in' type='checkbox'><label for='data-8b2caff9-3e48-4786-9a57-cec856a9b900' 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>The transmit time of a given photon, measured in seconds from the ATLAS Standard Data Product Epoch. Note that multiple received photons associated with a single transmit pulse will have the same delta_time. 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>Operations</dd><dt><span>standard_name :</span></dt><dd>time</dd></dl></div><div class='xr-var-data'><pre>array([&#x27;2019-11-30T11:20:41.001794496&#x27;, &#x27;2019-11-30T11:20:41.001894496&#x27;,\n",
" &#x27;2019-11-30T11:20:41.001894496&#x27;, ..., &#x27;2019-11-30T11:26:06.065302368&#x27;,\n",
" &#x27;2019-11-30T11:26:06.066902384&#x27;, &#x27;2019-11-30T11:26:06.075402368&#x27;],\n",
" dtype=&#x27;datetime64[ns]&#x27;)</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span>lat_ph</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-a7157559-7a26-4107-848a-ff83a91e6772' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-a7157559-7a26-4107-848a-ff83a91e6772' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-eef6887b-ec2e-4d30-82fb-6da27ec687ab' class='xr-var-data-in' type='checkbox'><label for='data-eef6887b-ec2e-4d30-82fb-6da27ec687ab' 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>modelResult</dd><dt><span>description :</span></dt><dd>Latitude of each received photon. Computed from the ECF Cartesian coordinates of the bounce point.</dd><dt><span>long_name :</span></dt><dd>Latitude</dd><dt><span>source :</span></dt><dd>ATL03g ATBD, Section 3.4</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>[2864201 values with dtype=float64]</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span>lon_ph</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-bf49be3d-91d8-4046-9909-74a8cf0730e4' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-bf49be3d-91d8-4046-9909-74a8cf0730e4' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-05f9b18f-ca3a-4b27-9806-767e2dae9a93' class='xr-var-data-in' type='checkbox'><label for='data-05f9b18f-ca3a-4b27-9806-767e2dae9a93' 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>modelResult</dd><dt><span>description :</span></dt><dd>Longitude of each received photon. Computed from the ECF Cartesian coordinates of the bounce point.</dd><dt><span>long_name :</span></dt><dd>Longitude</dd><dt><span>source :</span></dt><dd>ATL03g ATBD, Section 3.4</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>[2864201 values with dtype=float64]</pre></div></li></ul></div></li><li class='xr-section-item'><input id='section-179fe8ae-fab1-45de-b1eb-acbbb3c267d3' class='xr-section-summary-in' type='checkbox' checked><label for='section-179fe8ae-fab1-45de-b1eb-acbbb3c267d3' class='xr-section-summary' >Data variables: <span>(10)</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>dist_ph_across</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-2f74bf21-eeee-4b7e-9444-141c294cdd6a' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-2f74bf21-eeee-4b7e-9444-141c294cdd6a' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-79bfcc63-4e6d-4626-aa5d-e3ca29ce9b80' class='xr-var-data-in' type='checkbox'><label for='data-79bfcc63-4e6d-4626-aa5d-e3ca29ce9b80' 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>modelResult</dd><dt><span>description :</span></dt><dd>Across-track distance projected to the ellipsoid of the received photon from the reference ground track. This is based on the Along-Track Segment algorithm described in Section 3.1.</dd><dt><span>long_name :</span></dt><dd>Distance off RGT.</dd><dt><span>source :</span></dt><dd>ATL03 ATBD, Section 3.1</dd><dt><span>units :</span></dt><dd>meters</dd></dl></div><div class='xr-var-data'><pre>[2864201 values with dtype=float32]</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span>dist_ph_along</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-28af16a9-8151-41dc-a7fb-37660f33e15b' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-28af16a9-8151-41dc-a7fb-37660f33e15b' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-a7eba6f3-52e8-4daa-b203-563e4689148a' class='xr-var-data-in' type='checkbox'><label for='data-a7eba6f3-52e8-4daa-b203-563e4689148a' 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>modelResult</dd><dt><span>description :</span></dt><dd>Along-track distance in a segment projected to the ellipsoid of the received photon, based on the Along-Track Segment algorithm. Total along track distance can be found by adding this value to the sum of segment lengths measured from the start of the most recent reference groundtrack.</dd><dt><span>long_name :</span></dt><dd>Distance from equator crossing.</dd><dt><span>source :</span></dt><dd>ATL03 ATBD, Section 3.1</dd><dt><span>units :</span></dt><dd>meters</dd></dl></div><div class='xr-var-data'><pre>[2864201 values with dtype=float32]</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span>h_ph</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-1307905e-f585-4d03-9de7-5751dc263084' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-1307905e-f585-4d03-9de7-5751dc263084' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-17b22063-0e54-4abc-873a-aa9db290e858' class='xr-var-data-in' type='checkbox'><label for='data-17b22063-0e54-4abc-873a-aa9db290e858' 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>Height of each received photon, relative to the WGS-84 ellipsoid including the geophysical corrections noted in Section 6. Please note that neither the geoid, ocean tide nor the dynamic atmosphere (DAC) corrections are applied to the ellipsoidal heights.</dd><dt><span>long_name :</span></dt><dd>Photon WGS84 Height</dd><dt><span>source :</span></dt><dd>ATL03g ATBD, Section 3.4</dd><dt><span>standard_name :</span></dt><dd>height</dd><dt><span>units :</span></dt><dd>meters</dd></dl></div><div class='xr-var-data'><pre>[2864201 values with dtype=float32]</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span>pce_mframe_cnt</span></div><div class='xr-var-dims'>(delta_time)</div><div class='xr-var-dtype'>uint32</div><div class='xr-var-preview xr-preview'>...</div><input id='attrs-469dcb22-961b-47d3-8ce3-d5f07568e623' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-469dcb22-961b-47d3-8ce3-d5f07568e623' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-6912f0cd-dece-46d7-a33b-d4b17a49d28d' class='xr-var-data-in' type='checkbox'><label for='data-6912f0cd-dece-46d7-a33b-d4b17a49d28d' 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>The major frame counter is read from the digital flow controller in a given PCE card. The counter identifies individual major frames across diag and science packets. Used as part of the photon ID.</dd><dt><span>long_name :</span></dt><dd>PCE Major frame counter</dd><dt><span>source :</span></dt><dd>Retained from prior a_alt_science_ph packet</dd><dt><span>units :</span></dt><dd>counts</dd></dl></div><div class='xr-var-data'><pre>[2864201 values with dtype=uint32]</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span>ph_id_channel</span></div><div class='xr-var-dims'>(delta_time)</div><div class='xr-var-dtype'>uint8</div><div class='xr-var-preview xr-preview'>...</div><input id='attrs-62e9105e-b9d8-413b-a5db-a8a73cc77b3a' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-62e9105e-b9d8-413b-a5db-a8a73cc77b3a' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-488e7f37-0a3d-48ce-83b2-e0b2f4f8cde2' class='xr-var-data-in' type='checkbox'><label for='data-488e7f37-0a3d-48ce-83b2-e0b2f4f8cde2' 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>Channel number assigned for each received photon event. This is part of the photon ID. Values range from 1 to 120 to span all channels and rise/fall edges. Values 1 to 60 are for falling edge; PCE1 (1 to 20), PCE 2 (21 to 40) and PCE3 (41 to 60). Values 61 to 120 are for rising edge; PCE1 (61 to 80), PCE 2 (81 to 100) and PC3 (101 to 120).</dd><dt><span>long_name :</span></dt><dd>Receive channel id</dd><dt><span>source :</span></dt><dd>Derived as part of Photon ID</dd><dt><span>units :</span></dt><dd>1</dd><dt><span>valid_max :</span></dt><dd>120</dd><dt><span>valid_min :</span></dt><dd>1</dd></dl></div><div class='xr-var-data'><pre>[2864201 values with dtype=uint8]</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span>ph_id_count</span></div><div class='xr-var-dims'>(delta_time)</div><div class='xr-var-dtype'>uint8</div><div class='xr-var-preview xr-preview'>...</div><input id='attrs-1ec533f3-3a60-4845-8856-92dc1f4691b9' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-1ec533f3-3a60-4845-8856-92dc1f4691b9' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-2aa8cddb-6e1d-4585-bdf7-dcfd1995f65c' class='xr-var-data-in' type='checkbox'><label for='data-2aa8cddb-6e1d-4585-bdf7-dcfd1995f65c' 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>The photon event counter is part of photon ID and counts from 1 for each channel until reset by laser pulse counter.</dd><dt><span>long_name :</span></dt><dd>photon event counter</dd><dt><span>source :</span></dt><dd>Derived as part of Photon ID</dd><dt><span>units :</span></dt><dd>counts</dd></dl></div><div class='xr-var-data'><pre>[2864201 values with dtype=uint8]</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span>ph_id_pulse</span></div><div class='xr-var-dims'>(delta_time)</div><div class='xr-var-dtype'>uint8</div><div class='xr-var-preview xr-preview'>...</div><input id='attrs-09e60f65-3aa1-4817-87c0-3889a32d036c' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-09e60f65-3aa1-4817-87c0-3889a32d036c' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-4ffabf60-cfa1-4fb6-8db6-ca439159b419' class='xr-var-data-in' type='checkbox'><label for='data-4ffabf60-cfa1-4fb6-8db6-ca439159b419' 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>The laser pulse counter is part of photon ID and counts from 1 to 200 and is reset for each new major frame.</dd><dt><span>long_name :</span></dt><dd>laser pulse counter</dd><dt><span>source :</span></dt><dd>Derived as part of Photon ID</dd><dt><span>units :</span></dt><dd>counts</dd></dl></div><div class='xr-var-data'><pre>[2864201 values with dtype=uint8]</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span>quality_ph</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-c50f2bff-9c34-41cf-93d1-4cf938c2abcc' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-c50f2bff-9c34-41cf-93d1-4cf938c2abcc' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-2e3332ce-a116-4239-adc2-e100a8bd66e8' class='xr-var-data-in' type='checkbox'><label for='data-2e3332ce-a116-4239-adc2-e100a8bd66e8' 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>Indicates the quality of the associated photon. 0=nominal, 1=possible_afterpulse, 2=possible_impulse_response_effect, 3=possible_tep. Use this flag in conjunction with signal_conf_ph to identify those photons that are likely noise or likely signal.</dd><dt><span>flag_meanings :</span></dt><dd>nominal possible_afterpulse possible_impulse_response_effect possible_tep</dd><dt><span>flag_values :</span></dt><dd>[0 1 2 3]</dd><dt><span>long_name :</span></dt><dd>Photon Quality</dd><dt><span>source :</span></dt><dd>ATL03 ATBD</dd><dt><span>units :</span></dt><dd>1</dd><dt><span>valid_max :</span></dt><dd>3</dd><dt><span>valid_min :</span></dt><dd>0</dd></dl></div><div class='xr-var-data'><pre>[2864201 values with dtype=int8]</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span>signal_conf_ph</span></div><div class='xr-var-dims'>(delta_time, ds_surf_type)</div><div class='xr-var-dtype'>int8</div><div class='xr-var-preview xr-preview'>...</div><input id='attrs-ce0cb9eb-342d-4ed7-a39f-f3c8d6d2e065' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-ce0cb9eb-342d-4ed7-a39f-f3c8d6d2e065' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-fa9ff3a6-1353-47ee-af54-f5addccd6db6' class='xr-var-data-in' type='checkbox'><label for='data-fa9ff3a6-1353-47ee-af54-f5addccd6db6' 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>Confidence level associated with each photon event selected as signal. 0=noise. 1=added to allow for buffer but algorithm classifies as background; 2=low; 3=med; 4=high). This parameter is a 5xN array where N is the number of photons in the granule, and the 5 rows indicate signal finding for each surface type (in order: land, ocean, sea ice, land ice and inland water). Events not associated with a specific surface type have a confidence level of -1. Events evaluated as TEP returns have a confidence level of -2.</dd><dt><span>flag_meanings :</span></dt><dd>possible_tep not_considered noise buffer low medium high</dd><dt><span>flag_values :</span></dt><dd>[-2 -1 0 1 2 3 4]</dd><dt><span>long_name :</span></dt><dd>Photon Signal Confidence</dd><dt><span>source :</span></dt><dd>ATL03 ATBD, Section 5, Conf</dd><dt><span>units :</span></dt><dd>1</dd><dt><span>valid_max :</span></dt><dd>4</dd><dt><span>valid_min :</span></dt><dd>-2</dd></dl></div><div class='xr-var-data'><pre>[14321005 values with dtype=int8]</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span>weight_ph</span></div><div class='xr-var-dims'>(delta_time)</div><div class='xr-var-dtype'>uint8</div><div class='xr-var-preview xr-preview'>...</div><input id='attrs-3c4dd81b-75a8-485e-b7e8-74812ee49c49' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-3c4dd81b-75a8-485e-b7e8-74812ee49c49' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-e6c17857-fed1-486a-ae49-e5a3b2b4e5e3' class='xr-var-data-in' type='checkbox'><label for='data-e6c17857-fed1-486a-ae49-e5a3b2b4e5e3' 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>modelResult</dd><dt><span>description :</span></dt><dd>Computed weight of each photon. The weight is calculated by a windowed KNN algorithm using the distances between each photon and its K nearest neighbors. Values range from 0 to 255 where 255 is the most heavily weighted photon and would be considered likely signal.</dd><dt><span>long_name :</span></dt><dd>Photon weight</dd><dt><span>source :</span></dt><dd>ATBD Section 5</dd><dt><span>units :</span></dt><dd>1</dd><dt><span>valid_max :</span></dt><dd>255</dd><dt><span>valid_min :</span></dt><dd>0</dd></dl></div><div class='xr-var-data'><pre>[2864201 values with dtype=uint8]</pre></div></li></ul></div></li><li class='xr-section-item'><input id='section-d4627be3-0a88-49d0-a309-df4f8cf435e7' class='xr-section-summary-in' type='checkbox' ><label for='section-d4627be3-0a88-49d0-a309-df4f8cf435e7' 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-2edb8f0f-0db0-4140-927e-0005cedac771' class='xr-index-data-in' type='checkbox'/><label for='index-2edb8f0f-0db0-4140-927e-0005cedac771' 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;2019-11-30 11:20:41.001794496&#x27;,\n",
" &#x27;2019-11-30 11:20:41.001894496&#x27;,\n",
" &#x27;2019-11-30 11:20:41.001894496&#x27;,\n",
" &#x27;2019-11-30 11:20:41.001994504&#x27;,\n",
" &#x27;2019-11-30 11:20:41.002194504&#x27;,\n",
" &#x27;2019-11-30 11:20:41.002394504&#x27;,\n",
" &#x27;2019-11-30 11:20:41.002494504&#x27;,\n",
" &#x27;2019-11-30 11:20:41.002594504&#x27;,\n",
" &#x27;2019-11-30 11:20:41.002694504&#x27;,\n",
" &#x27;2019-11-30 11:20:41.002694504&#x27;,\n",
" ...\n",
" &#x27;2019-11-30 11:26:06.051702368&#x27;,\n",
" &#x27;2019-11-30 11:26:06.059202376&#x27;,\n",
" &#x27;2019-11-30 11:26:06.059802376&#x27;,\n",
" &#x27;2019-11-30 11:26:06.060702384&#x27;,\n",
" &#x27;2019-11-30 11:26:06.063102376&#x27;,\n",
" &#x27;2019-11-30 11:26:06.063202376&#x27;,\n",
" &#x27;2019-11-30 11:26:06.065002400&#x27;,\n",
" &#x27;2019-11-30 11:26:06.065302368&#x27;,\n",
" &#x27;2019-11-30 11:26:06.066902384&#x27;,\n",
" &#x27;2019-11-30 11:26:06.075402368&#x27;],\n",
" dtype=&#x27;datetime64[ns]&#x27;, name=&#x27;delta_time&#x27;, length=2864201, freq=None))</pre></div></li></ul></div></li><li class='xr-section-item'><input id='section-443657d3-ea52-4957-98e9-e5460b2eba8b' class='xr-section-summary-in' type='checkbox' checked><label for='section-443657d3-ea52-4957-98e9-e5460b2eba8b' 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>Contains arrays of the parameters for each received photon.</dd><dt><span>data_rate :</span></dt><dd>Data are stored at the photon detection rate.</dd></dl></div></li></ul></div></div>"
],
"text/plain": [
"<xarray.Dataset>\n",
"Dimensions: (delta_time: 2864201, ds_surf_type: 5)\n",
"Coordinates:\n",
" * delta_time (delta_time) datetime64[ns] 2019-11-30T11:20:41.001794496...\n",
" lat_ph (delta_time) float64 ...\n",
" lon_ph (delta_time) float64 ...\n",
"Dimensions without coordinates: ds_surf_type\n",
"Data variables:\n",
" dist_ph_across (delta_time) float32 ...\n",
" dist_ph_along (delta_time) float32 ...\n",
" h_ph (delta_time) float32 ...\n",
" pce_mframe_cnt (delta_time) uint32 ...\n",
" ph_id_channel (delta_time) uint8 ...\n",
" ph_id_count (delta_time) uint8 ...\n",
" ph_id_pulse (delta_time) uint8 ...\n",
" quality_ph (delta_time) int8 ...\n",
" signal_conf_ph (delta_time, ds_surf_type) int8 ...\n",
" weight_ph (delta_time) uint8 ...\n",
"Attributes:\n",
" Description: Contains arrays of the parameters for each received photon.\n",
" data_rate: Data are stored at the photon detection rate."
]
},
"execution_count": 12,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"%%time\n",
"ds_track = xr.open_dataset(s3.open(s3url_atl03, 'rb'), group='/gt2l/heights')\n",
"ds_track"
]
},
{
"cell_type": "code",
"execution_count": 17,
"id": "4139ae6b-c699-4562-8512-f02002073dc3",
"metadata": {
"tags": []
},
"outputs": [],
"source": [
"df = ds_track.to_dataframe().reset_index()"
]
},
{
"cell_type": "code",
"execution_count": 28,
"id": "d76935ed-8da0-4309-84d8-84fcc8ce5acd",
"metadata": {
"tags": []
},
"outputs": [],
"source": [
"gdf = gpd.GeoDataFrame(df, geometry=gpd.points_from_xy(df.lon_ph, df.lat_ph))"
]
},
{
"cell_type": "code",
"execution_count": 26,
"id": "74ddaf99-8cdc-48df-b6d2-ae361c61407f",
"metadata": {
"tags": []
},
"outputs": [
{
"data": {
"text/plain": [
"<AxesSubplot: >"
]
},
"execution_count": 26,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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Og93tEP9erkCfhi3Xy8Xz2sJgTa70hIZGamUlBTl5eX5tefl5WnMmDFN9klNTW1Uv3nzZt18881WWGiupuGYwYw7YMAAeTwev5qamhrl5+f7za2iokLp6emKjIzUpk2bFBXFpT0AQGP5j49Xv16uJvfxnJYQMm0oOzvbOBwO8+qrr5pDhw6ZBQsWmJiYGPPZZ58ZY4x56qmnTEZGhlX/6aefmujoaPPoo4+aQ4cOmVdffdU4HA7z1ltvWTXvv/++6dKli8nKyjKHDx82WVlZJiIiwuzcuTPocY0xJisry7jdbrNhwwZTVFRkZsyYYRISEkxFRYUxxpiKigozatQoM2TIEHP06FFTWlpqbXV1dUGvgc/nM5KMz+e77HUEANjDmW9qzNRV283oJVvM1FXbzZlvatp7SrYQ7Htlm4YWY4xZtWqV6devn4mMjDQjRoww+fn51r7777/fpKWl+dVv27bNDB8+3ERGRpr+/fubl19+udEx169fbwYOHGgcDocZNGiQycnJadW4xhhTX19vFi1aZDwej3E6nWbs2LGmqKjI2v/uu+8aSU1ux44dC/r8CS0AAAQW7Htlmz6nBTynBQCAlrT7c1oAAABCidACAABsgdACAABsgdACAABsgdACAABsgdACAABsgdACAABsgdACAABsgdACAABsgdACAABsgdACAABsgdACAABsgdACAABsgdACAABsgdACAABsgdACAABsgdACAABsgdACAABsgdACAABsgdACAABsgdACAABsgdACAABsgdACAABsgdACAABsgdACAABsgdACAABsgdACAABsgdACAABsgdACAABsgdACAABsgdACAABsgdACAABsIaK9JwAA+HbxnavVg2t3q8RXpUR3lF6bPVLuaEd7Tws2QGgBAFw1acu26nhZpfW61FelYc9uVr9eLuU/Pr4dZwY74PYQAOCquDSwXOx4WaXSlm29yjOC3RBaAABtzneuttnA0uB4WaV852qv0oxgR4QWAECbe3Dt7pDW4duJ0AIAaHMlvqqQ1uHbidACAGhzie6okNbh24nQAgBoc6/NHhnSOnw7EVoAAG3OHe1Qv16ugDX9erl4XgsCIrQAAK6K/MfHNxtceE4LgsHD5QAAV03+4+N5Ii4uG6EFAHBVuaMdynn4lvaeBmyI20MAAMAWCC0AAMAWCC0AAMAWCC0A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LRBaAACALRBaAACALRBaAACALRBaAACALRBaAACALRBaAACALRBaAACALfAYfwRUfPqcJv02X5W19XI5wpX7SJr6xkW397QAAN9ChBY06/qn/6q6+v97fa62XmOXv6uIcOnoEn4jCABwdXF7CE26NLBcrK7+wn4AAK4mQgsaKT59rtnA0qCu/kIdAABXC6EFjUz6bX5I6wAACAVCCxqprG3hMksr6wAACAVCCxpxOYL7YxFsHQAAocC7DhrJfSQtpHUAAIQCoQWN9I2LVkQLfzIiwsXzWgAAVxWhBU06umRys8GF57QAANoDD5dDs44umcwTcQEAHQahBQH1jYvWoefuaO9pAADA7SEAAGAPhBYAAGALhBYAAGALhBYAAGALhBYAAGALhBYAAGALhBYAAGALhBYAAGALhBYAAGALhBYAAGALPMbfZnznavXg2t0q8VUp0R2l12aPlDva0d7TAgCgzRFabCRt2VYdL6u0Xpf6qjTs2c3q18ul/MfHt+PMAABoe216e6i8vFwZGRlyu91yu93KyMjQmTNnAvYxxmjx4sVKTEyUy+XSuHHjdPDgQb+a6upqzZs3T3FxcYqJidHdd9+tzz//vNVjFxcX66677lJMTIzi4uI0f/581dTUNJrP8uXL9d3vfldOp1N9+vTRkiVLLntNLtelgeVix8sqlbZs61WeEQAAV1ebhpaZM2dq//79ys3NVW5urvbv36+MjIyAfV544QWtWLFCK1eu1J49e+TxeDRhwgSdPXvWqlmwYIE2btyo7Oxsbd++XV9//bWmTJmi8+fPBz32+fPnNXnyZH3zzTfavn27srOzlZOTo8cee8xvPo888oj++Mc/avny5Tpy5IjefvttjRw5MkQrFBzfudpmA0uD42WV8p2rvUozAgDg6gszxpi2OPDhw4c1ePBg7dy5U6NGjZIk7dy5U6mpqTpy5IgGDhzYqI8xRomJiVqwYIGefPJJSReuqsTHx+v555/XnDlz5PP5dM011+jPf/6zpk2bJkkqKSlRnz599M4772jixIlBjf23v/1NU6ZM0YkTJ5SYmChJys7O1uzZs3Xq1Cl169ZNhw8f1tChQ3XgwIEm5xuMiooKud1u+Xw+devW7bKOce9L76uw+EyLdSl9uyvn4VsuawwAANpLsO+VbXalpaCgQG632woNkjR69Gi53W7t2LGjyT7Hjh2T1+tVenq61eZ0OpWWlmb1KSwsVG1trV9NYmKikpOTrZpgxi4oKFBycrIVWCRp4sSJqq6uVmFhoSTp7bff1rXXXqu//OUvGjBggPr376+f//zn+uqrr5o97+rqalVUVPhtV6rEVxXSOgAA7KjNQovX61Xv3r0btffu3Vter7fZPpIUHx/v1x4fH2/t83q9ioyMVI8ePQLWtDS21+ttNE6PHj0UGRlp1Xz66ac6fvy41q9fr9dff11r165VYWGh/uVf/qXZ8166dKn1ORq3260+ffo0WxusRHdUSOsAALCjVoeWxYsXKywsLOC2d+9eSVJYWFij/saYJtsvdun+YPpcWhPM2C3V1NfXq7q6Wq+//rpuvfVWjRs3Tq+++qreffddffzxx03OY+HChfL5fNZ24sSJgPMOxmuzg/sMTbB1AADYUau/8pyZmanp06cHrOnfv78++ugjffHFF432ffnll42ucDTweDySLlwFSUhIsNpPnTpl9fF4PKqpqVF5ebnf1ZZTp05pzJgxVk1LY3s8Hu3atctvf3l5uWpra62ahIQERURE6Lvf/a5Vc+ONN0q68M2jpj7n4nQ65XQ6mzy/y+WOdqhfL1fAD+P26+XieS0AgE6t1Vda4uLiNGjQoIBbVFSUUlNT5fP5tHv3bqvvrl275PP5rHBxqQEDBsjj8SgvL89qq6mpUX5+vtUnJSVFDofDr6a0tFQHDhywaoIZOzU1VQcOHFBpaalVs3nzZjmdTqWkpEiSbrnlFtXV1emTTz6xav7xj39Ikvr169fapbsi+Y+PV79erib38ZwWAMC3gmlDkyZNMkOHDjUFBQWmoKDADBkyxEyZMsWvZuDAgWbDhg3W66ysLON2u82GDRtMUVGRmTFjhklISDAVFRVWzdy5c01SUpLZsmWL2bdvnxk/frwZNmyYqaurC3rsuro6k5ycbG6//Xazb98+s2XLFpOUlGQyMzOtmvPnz5sRI0aYsWPHmn379pm9e/eaUaNGmQkTJgS9Bj6fz0gyPp+vVWvXnDPf1Jipq7ab0Uu2mKmrtpsz39SE5LgAALSXYN8r2zS0lJWVmVmzZpnY2FgTGxtrZs2aZcrLy/0nIJk1a9ZYr+vr682iRYuMx+MxTqfTjB071hQVFfn1qaysNJmZmaZnz57G5XKZKVOmmOLi4laPffz4cTN58mTjcrlMz549TWZmpqmqqvKrOXnypJk6darp2rWriY+PN7NnzzZlZWVBr0GoQwsAAJ1NsO+VbfacFlwQiue0AADQmbX7c1oAAABCidACAABsgdACAABsgdACAABsgdACAABsgdACAABsgdACAABsgdACAABsodU/mIjWaXh2X0VFRTvPBACAjqnhPbKl590SWtrY2bNnJUl9+vRp55kAANCxnT17Vm63u9n9PMa/jdXX16ukpESxsbEKCwtr7+lcdRUVFerTp49OnDjBzxg0gzVqGWsUGOvTMtaoZe25RsYYnT17VomJiQoPb/6TK1xpaWPh4eFKSkpq72m0u27duvEPRQtYo5axRoGxPi1jjVrWXmsU6ApLAz6ICwAAbIHQAgAAbIHQgjbldDq1aNEiOZ3O9p5Kh8UatYw1Coz1aRlr1DI7rBEfxAUAALbAlRYAAGALhBYAAGALhBYAAGALhBYAAGALhBZYysvLlZGRIbfbLbfbrYyMDJ05cyZgH2OMFi9erMTERLlcLo0bN04HDx70q6murta8efMUFxenmJgY3X333fr8889bPXZxcbHuuusuxcTEKC4uTvPnz1dNTU2T8zp69KhiY2PVvXv31i5DQHZfo23btumee+5RQkKCYmJidNNNN+mNN964ojV56aWXNGDAAEVFRSklJUXvvfdewPr8/HylpKQoKipK1157rVavXt2oJicnR4MHD5bT6dTgwYO1cePGVo8bqnW/UnZdn6+++krz5s3TwIEDFR0drb59+2r+/Pny+XyXuRLNs+saXVp7xx13KCwsTP/1X/8V/MkHye5rVFBQoPHjxysmJkbdu3fXuHHjVFlZ2cpVuDAgYIwxZtKkSSY5Odns2LHD7NixwyQnJ5spU6YE7JOVlWViY2NNTk6OKSoqMtOmTTMJCQmmoqLCqpk7d675zne+Y/Ly8sy+ffvMbbfdZoYNG2bq6uqCHruurs4kJyeb2267zezbt8/k5eWZxMREk5mZ2WhONTU15uabbzZ33HGHcbvdV74wF7H7Gv361782zzzzjHn//ffN0aNHzW9/+1sTHh5uNm3adFnrkZ2dbRwOh3nllVfMoUOHzCOPPGJiYmLM8ePHm6z/9NNPTXR0tHnkkUfMoUOHzCuvvGIcDod56623rJodO3aYLl26mCVLlpjDhw+bJUuWmIiICLNz585WjRuqdb8Sdl6foqIi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\n",
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"gdf.head(n=100).plot()"
]
},
{
"cell_type": "code",
"execution_count": 27,
"id": "e9142772-0965-4726-ba1f-0445a7a4d0fd",
"metadata": {
"tags": []
},
"outputs": [
{
"data": {
"text/plain": [
"(14321005, 15)"
]
},
"execution_count": 27,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"gdf.shape"
]
},
{
"cell_type": "code",
"execution_count": 30,
"id": "e3e0f159-54d3-4fcd-95b3-6eef8f66112d",
"metadata": {
"tags": []
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>delta_time</th>\n",
" <th>ds_surf_type</th>\n",
" <th>dist_ph_across</th>\n",
" <th>dist_ph_along</th>\n",
" <th>h_ph</th>\n",
" <th>lat_ph</th>\n",
" <th>lon_ph</th>\n",
" <th>pce_mframe_cnt</th>\n",
" <th>ph_id_channel</th>\n",
" <th>ph_id_count</th>\n",
" <th>ph_id_pulse</th>\n",
" <th>quality_ph</th>\n",
" <th>signal_conf_ph</th>\n",
" <th>weight_ph</th>\n",
" <th>geometry</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>2019-11-30 11:20:41.001794496</td>\n",
" <td>0</td>\n",
" <td>49.707001</td>\n",
" <td>0.357462</td>\n",
" <td>2163.680176</td>\n",
" <td>80.000033</td>\n",
" <td>-40.324937</td>\n",
" <td>20658495</td>\n",
" <td>38</td>\n",
" <td>1</td>\n",
" <td>122</td>\n",
" <td>0</td>\n",
" <td>4</td>\n",
" <td>124</td>\n",
" <td>POINT (-40.32494 80.00003)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>2019-11-30 11:20:41.001794496</td>\n",
" <td>1</td>\n",
" <td>49.707001</td>\n",
" <td>0.357462</td>\n",
" <td>2163.680176</td>\n",
" <td>80.000033</td>\n",
" <td>-40.324937</td>\n",
" <td>20658495</td>\n",
" <td>38</td>\n",
" <td>1</td>\n",
" <td>122</td>\n",
" <td>0</td>\n",
" <td>-1</td>\n",
" <td>124</td>\n",
" <td>POINT (-40.32494 80.00003)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>2019-11-30 11:20:41.001794496</td>\n",
" <td>2</td>\n",
" <td>49.707001</td>\n",
" <td>0.357462</td>\n",
" <td>2163.680176</td>\n",
" <td>80.000033</td>\n",
" <td>-40.324937</td>\n",
" <td>20658495</td>\n",
" <td>38</td>\n",
" <td>1</td>\n",
" <td>122</td>\n",
" <td>0</td>\n",
" <td>-1</td>\n",
" <td>124</td>\n",
" <td>POINT (-40.32494 80.00003)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>2019-11-30 11:20:41.001794496</td>\n",
" <td>3</td>\n",
" <td>49.707001</td>\n",
" <td>0.357462</td>\n",
" <td>2163.680176</td>\n",
" <td>80.000033</td>\n",
" <td>-40.324937</td>\n",
" <td>20658495</td>\n",
" <td>38</td>\n",
" <td>1</td>\n",
" <td>122</td>\n",
" <td>0</td>\n",
" <td>4</td>\n",
" <td>124</td>\n",
" <td>POINT (-40.32494 80.00003)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>2019-11-30 11:20:41.001794496</td>\n",
" <td>4</td>\n",
" <td>49.707001</td>\n",
" <td>0.357462</td>\n",
" <td>2163.680176</td>\n",
" <td>80.000033</td>\n",
" <td>-40.324937</td>\n",
" <td>20658495</td>\n",
" <td>38</td>\n",
" <td>1</td>\n",
" <td>122</td>\n",
" <td>0</td>\n",
" <td>4</td>\n",
" <td>124</td>\n",
" <td>POINT (-40.32494 80.00003)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>2019-11-30 11:20:41.001894496</td>\n",
" <td>0</td>\n",
" <td>49.707138</td>\n",
" <td>1.060720</td>\n",
" <td>2163.784668</td>\n",
" <td>80.000026</td>\n",
" <td>-40.324945</td>\n",
" <td>20658495</td>\n",
" <td>39</td>\n",
" <td>1</td>\n",
" <td>123</td>\n",
" <td>0</td>\n",
" <td>4</td>\n",
" <td>125</td>\n",
" <td>POINT (-40.32494 80.00003)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6</th>\n",
" <td>2019-11-30 11:20:41.001894496</td>\n",
" <td>1</td>\n",
" <td>49.707138</td>\n",
" <td>1.060720</td>\n",
" <td>2163.784668</td>\n",
" <td>80.000026</td>\n",
" <td>-40.324945</td>\n",
" <td>20658495</td>\n",
" <td>39</td>\n",
" <td>1</td>\n",
" <td>123</td>\n",
" <td>0</td>\n",
" <td>-1</td>\n",
" <td>125</td>\n",
" <td>POINT (-40.32494 80.00003)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7</th>\n",
" <td>2019-11-30 11:20:41.001894496</td>\n",
" <td>2</td>\n",
" <td>49.707138</td>\n",
" <td>1.060720</td>\n",
" <td>2163.784668</td>\n",
" <td>80.000026</td>\n",
" <td>-40.324945</td>\n",
" <td>20658495</td>\n",
" <td>39</td>\n",
" <td>1</td>\n",
" <td>123</td>\n",
" <td>0</td>\n",
" <td>-1</td>\n",
" <td>125</td>\n",
" <td>POINT (-40.32494 80.00003)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8</th>\n",
" <td>2019-11-30 11:20:41.001894496</td>\n",
" <td>3</td>\n",
" <td>49.707138</td>\n",
" <td>1.060720</td>\n",
" <td>2163.784668</td>\n",
" <td>80.000026</td>\n",
" <td>-40.324945</td>\n",
" <td>20658495</td>\n",
" <td>39</td>\n",
" <td>1</td>\n",
" <td>123</td>\n",
" <td>0</td>\n",
" <td>4</td>\n",
" <td>125</td>\n",
" <td>POINT (-40.32494 80.00003)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9</th>\n",
" <td>2019-11-30 11:20:41.001894496</td>\n",
" <td>4</td>\n",
" <td>49.707138</td>\n",
" <td>1.060720</td>\n",
" <td>2163.784668</td>\n",
" <td>80.000026</td>\n",
" <td>-40.324945</td>\n",
" <td>20658495</td>\n",
" <td>39</td>\n",
" <td>1</td>\n",
" <td>123</td>\n",
" <td>0</td>\n",
" <td>4</td>\n",
" <td>125</td>\n",
" <td>POINT (-40.32494 80.00003)</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" delta_time ds_surf_type dist_ph_across dist_ph_along \\\n",
"0 2019-11-30 11:20:41.001794496 0 49.707001 0.357462 \n",
"1 2019-11-30 11:20:41.001794496 1 49.707001 0.357462 \n",
"2 2019-11-30 11:20:41.001794496 2 49.707001 0.357462 \n",
"3 2019-11-30 11:20:41.001794496 3 49.707001 0.357462 \n",
"4 2019-11-30 11:20:41.001794496 4 49.707001 0.357462 \n",
"5 2019-11-30 11:20:41.001894496 0 49.707138 1.060720 \n",
"6 2019-11-30 11:20:41.001894496 1 49.707138 1.060720 \n",
"7 2019-11-30 11:20:41.001894496 2 49.707138 1.060720 \n",
"8 2019-11-30 11:20:41.001894496 3 49.707138 1.060720 \n",
"9 2019-11-30 11:20:41.001894496 4 49.707138 1.060720 \n",
"\n",
" h_ph lat_ph lon_ph pce_mframe_cnt ph_id_channel \\\n",
"0 2163.680176 80.000033 -40.324937 20658495 38 \n",
"1 2163.680176 80.000033 -40.324937 20658495 38 \n",
"2 2163.680176 80.000033 -40.324937 20658495 38 \n",
"3 2163.680176 80.000033 -40.324937 20658495 38 \n",
"4 2163.680176 80.000033 -40.324937 20658495 38 \n",
"5 2163.784668 80.000026 -40.324945 20658495 39 \n",
"6 2163.784668 80.000026 -40.324945 20658495 39 \n",
"7 2163.784668 80.000026 -40.324945 20658495 39 \n",
"8 2163.784668 80.000026 -40.324945 20658495 39 \n",
"9 2163.784668 80.000026 -40.324945 20658495 39 \n",
"\n",
" ph_id_count ph_id_pulse quality_ph signal_conf_ph weight_ph \\\n",
"0 1 122 0 4 124 \n",
"1 1 122 0 -1 124 \n",
"2 1 122 0 -1 124 \n",
"3 1 122 0 4 124 \n",
"4 1 122 0 4 124 \n",
"5 1 123 0 4 125 \n",
"6 1 123 0 -1 125 \n",
"7 1 123 0 -1 125 \n",
"8 1 123 0 4 125 \n",
"9 1 123 0 4 125 \n",
"\n",
" geometry \n",
"0 POINT (-40.32494 80.00003) \n",
"1 POINT (-40.32494 80.00003) \n",
"2 POINT (-40.32494 80.00003) \n",
"3 POINT (-40.32494 80.00003) \n",
"4 POINT (-40.32494 80.00003) \n",
"5 POINT (-40.32494 80.00003) \n",
"6 POINT (-40.32494 80.00003) \n",
"7 POINT (-40.32494 80.00003) \n",
"8 POINT (-40.32494 80.00003) \n",
"9 POINT (-40.32494 80.00003) "
]
},
"execution_count": 30,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"gdf.head(10)"
]
}
],
"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.12"
}
},
"nbformat": 4,
"nbformat_minor": 5
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment