{ "cells": [ { "cell_type": "markdown", "id": "215c6c96-6dde-4e63-b400-42e1733758b8", "metadata": {}, "source": [ "# User defined Loader" ] }, { "cell_type": "code", "execution_count": 1, "id": "spatial-tonight", "metadata": { "execution": { "iopub.execute_input": "2022-09-15T05:11:39.518651Z", "iopub.status.busy": "2022-09-15T05:11:39.518262Z", "iopub.status.idle": "2022-09-15T05:11:41.175026Z", "shell.execute_reply": "2022-09-15T05:11:41.174482Z" } }, "outputs": [], "source": [ "import pystare\n", "import starepandas\n", "\n", "import geopandas\n", "import numpy\n", "\n", "import matplotlib as mpl\n", "import matplotlib.pyplot as plt" ] }, { "cell_type": "code", "execution_count": 2, "id": "roman-recording", "metadata": { "execution": { "iopub.execute_input": "2022-09-15T05:11:41.177552Z", "iopub.status.busy": "2022-09-15T05:11:41.177349Z", "iopub.status.idle": "2022-09-15T05:11:41.180024Z", "shell.execute_reply": "2022-09-15T05:11:41.179641Z" } }, "outputs": [], "source": [ "DEFAULT_DPI = mpl.rcParamsDefault['figure.dpi']\n", "mpl.rcParams['figure.dpi'] = 1.5 * DEFAULT_DPI\n", "mpl.rcParams['legend.fontsize'] = 6" ] }, { "cell_type": "code", "execution_count": 3, "id": "precious-newspaper", "metadata": { "execution": { "iopub.execute_input": "2022-09-15T05:11:41.181985Z", "iopub.status.busy": "2022-09-15T05:11:41.181760Z", "iopub.status.idle": "2022-09-15T05:11:41.191277Z", "shell.execute_reply": "2022-09-15T05:11:41.190732Z" } }, "outputs": [ { "data": { "text/plain": [ "{'MOD09GA|MYD09GA': starepandas.io.granules.modis.Mod09GA,\n", " 'MOD05|MYD05': starepandas.io.granules.modis.Mod05,\n", " 'MOD03|MYD03': starepandas.io.granules.modis.Mod03,\n", " 'MOD09|MYD09': starepandas.io.granules.modis.Mod09,\n", " 'VNP02DNB|VJ102DNB': starepandas.io.granules.viirsl2.VNP02DNB,\n", " 'VNP03DNB|VJ103DNB': starepandas.io.granules.viirsl2.VNP03DNB,\n", " 'VNP03MOD|VJ103MOD': starepandas.io.granules.viirsl2.VNP03MOD,\n", " 'CLDMSKL2VIIRS': starepandas.io.granules.viirsl2.CLDMSKL2VIIRS,\n", " 'SSMIS': starepandas.io.granules.ssmis.SSMIS,\n", " 'ATMS': starepandas.io.granules.atms.ATMS,\n", " 'MODXX': __main__.ModXX}" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "import starepandas.io.granules.modis\n", "\n", "class ModXX(starepandas.io.granules.modis.Modis):\n", "\n", " def __init__(self, file_path, sidecar_path=None):\n", " super(ModXX, self).__init__(file_path, sidecar_path)\n", " self.nom_res = '5km'\n", "\n", " def read_data(self):\n", " dataset_names = ['Scan_Start_Time', 'Solar_Zenith', 'Solar_Azimuth',\n", " 'Sensor_Zenith', 'Sensor_Azimuth', 'Water_Vapor_Infrared']\n", "\n", " dataset_names2 = ['Cloud_Mask_QA', 'Water_Vapor_Near_Infrared',\n", " 'Water_Vaport_Corretion_Factors', 'Quality_Assurance_Near_Infrared', 'Quality_Assurance_Infrared']\n", " for dataset_name in dataset_names:\n", " self.data[dataset_name] = self.hdf.select(dataset_name).get()\n", " \n", "starepandas.io.granules.granule_factory_library['MODXX']=ModXX\n", "\n", "starepandas.io.granules.granule_factory_library" ] }, { "cell_type": "code", "execution_count": 4, "id": "transparent-boston", "metadata": { "execution": { "iopub.execute_input": "2022-09-15T05:11:41.193257Z", "iopub.status.busy": "2022-09-15T05:11:41.193065Z", "iopub.status.idle": "2022-09-15T05:11:41.195413Z", "shell.execute_reply": "2022-09-15T05:11:41.195039Z" } }, "outputs": [], "source": [ "mod=None" ] }, { "cell_type": "code", "execution_count": 5, "id": "worldwide-calcium", "metadata": { "execution": { "iopub.execute_input": "2022-09-15T05:11:41.197307Z", "iopub.status.busy": "2022-09-15T05:11:41.197071Z", "iopub.status.idle": "2022-09-15T05:11:41.199536Z", "shell.execute_reply": "2022-09-15T05:11:41.199167Z" } }, "outputs": [], "source": [ "granule_name=\"s3://eis-dh-fire/mod14/raw/MOD14.A2020214.0520.061.2020340090643.hdf\"" ] }, { "cell_type": "code", "execution_count": 6, "id": "antique-cancer", "metadata": { "execution": { "iopub.execute_input": "2022-09-15T05:11:41.201478Z", "iopub.status.busy": "2022-09-15T05:11:41.201242Z", "iopub.status.idle": "2022-09-15T05:11:41.203621Z", "shell.execute_reply": "2022-09-15T05:11:41.203254Z" } }, "outputs": [], "source": [ "granule_name=\"../starepandas//datasets/MODXX.hdf\"" ] }, { "cell_type": "code", "execution_count": 7, "id": "anonymous-price", "metadata": { "execution": { "iopub.execute_input": "2022-09-15T05:11:41.205352Z", "iopub.status.busy": "2022-09-15T05:11:41.205171Z", "iopub.status.idle": "2022-09-15T05:11:41.252324Z", "shell.execute_reply": "2022-09-15T05:11:41.251482Z" } }, "outputs": [], "source": [ "mod = starepandas.read_granule(granule_name, sidecar=False, latlon=False, add_stare=True)" ] }, { "cell_type": "code", "execution_count": 8, "id": "minimal-hepatitis", "metadata": { "execution": { "iopub.execute_input": "2022-09-15T05:11:41.255032Z", "iopub.status.busy": "2022-09-15T05:11:41.254764Z", "iopub.status.idle": "2022-09-15T05:11:41.324978Z", "shell.execute_reply": "2022-09-15T05:11:41.324436Z" } }, "outputs": [], "source": [ "mod = starepandas.read_granule(granule_name, sidecar=True, latlon=True)" ] }, { "cell_type": "code", "execution_count": 9, "id": "attractive-electricity", "metadata": { "execution": { "iopub.execute_input": "2022-09-15T05:11:41.327447Z", "iopub.status.busy": "2022-09-15T05:11:41.327224Z", "iopub.status.idle": "2022-09-15T05:11:41.349486Z", "shell.execute_reply": "2022-09-15T05:11:41.348834Z" } }, "outputs": [], "source": [ "mod['stare_hex']=mod['sids'].apply(hex)" ] }, { "cell_type": "code", "execution_count": 10, "id": "viral-windows", "metadata": { "execution": { "iopub.execute_input": "2022-09-15T05:11:41.353658Z", "iopub.status.busy": "2022-09-15T05:11:41.352989Z", "iopub.status.idle": "2022-09-15T05:11:41.391656Z", "shell.execute_reply": "2022-09-15T05:11:41.391133Z" } }, "outputs": [], "source": [ "mod['wiv0']=mod['Water_Vapor_Infrared'].apply(lambda x: min(0,x))" ] }, { "cell_type": "code", "execution_count": 11, "id": "incomplete-greeting", "metadata": { "execution": { "iopub.execute_input": "2022-09-15T05:11:41.394003Z", "iopub.status.busy": "2022-09-15T05:11:41.393799Z", "iopub.status.idle": "2022-09-15T05:11:42.390298Z", "shell.execute_reply": "2022-09-15T05:11:42.389734Z" } }, "outputs": [], "source": [ "mod['pod']=mod['sids'].apply(lambda sid: pystare.spatial_clear_to_resolution(pystare.spatial_coerce_resolution(sid,7)))" ] }, { "cell_type": "code", "execution_count": 12, "id": "chief-container", "metadata": { "execution": { "iopub.execute_input": "2022-09-15T05:11:42.392703Z", "iopub.status.busy": "2022-09-15T05:11:42.392491Z", "iopub.status.idle": "2022-09-15T05:11:42.423196Z", "shell.execute_reply": "2022-09-15T05:11:42.422633Z" } }, "outputs": [], "source": [ "mod['pod_hex']=mod['pod'].apply(lambda sid: hex(sid))" ] }, { "cell_type": "code", "execution_count": 13, "id": "exempt-article", "metadata": { "execution": { "iopub.execute_input": "2022-09-15T05:11:42.425151Z", "iopub.status.busy": "2022-09-15T05:11:42.424900Z", "iopub.status.idle": "2022-09-15T05:11:42.442081Z", "shell.execute_reply": "2022-09-15T05:11:42.441650Z" } }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
latlonsidsScan_Start_TimeSolar_ZenithSolar_AzimuthSensor_ZenithSensor_AzimuthWater_Vapor_Infraredstare_hexwiv0podpod_hex
053.201778-15.93399642984737645004648098.493984e+0814709-22966534-8952-99990x3ba73f1d5162e4a9-999942984395537205166150x3ba7200000000007
153.203171-16.28810142984581683805112098.493984e+0814700-23546472-8980-99990x3ba730ee103253e9-999942984395537205166150x3ba7200000000007
253.203518-16.62910542973945690147178978.493984e+0814692-24106411-9008-99990x3ba3699789d0adc9-999942973840225578516550x3ba3600000000007
353.202934-16.95792842973006988729993698.493984e+0814684-24646351-9034-99990x3ba31437b15cedc9-999942972784694415851590x3ba3000000000007
453.201508-17.27531642972908579221211618.493984e+0814676-25166291-9059-99990x3ba30b446afb4dc9-999942972784694415851590x3ba3000000000007
..........................................
10961564.084297-66.28141037276866383706156898.493987e+0812157-746862234800-99990x33bb673f5a0cf189-999937276786696954839110x33bb600000000007
10961663.960953-66.59135437276613745457908578.493987e+0812147-750562824772-99990x33bb504528bf0789-999937276434853233950790x33bb400000000007
10961763.831799-66.91125537278382569250649698.493987e+0812137-754463424743-99990x33bbf124cc213f09-999937278194071838392390x33bbe00000000007
10961863.698635-67.23622937278430637319498018.493987e+0812126-758364024714-99990x33bbf583f82590e9-999937278194071838392390x33bbe00000000007
10961963.551617-67.58950837278531632256164258.493987e+0812115-762564644682-99990x33bbfeb370e11029-999937278194071838392390x33bbe00000000007
\n", "

109620 rows × 13 columns

\n", "
" ], "text/plain": [ " lat lon sids Scan_Start_Time \\\n", "0 53.201778 -15.933996 4298473764500464809 8.493984e+08 \n", "1 53.203171 -16.288101 4298458168380511209 8.493984e+08 \n", "2 53.203518 -16.629105 4297394569014717897 8.493984e+08 \n", "3 53.202934 -16.957928 4297300698872999369 8.493984e+08 \n", "4 53.201508 -17.275316 4297290857922121161 8.493984e+08 \n", "... ... ... ... ... \n", "109615 64.084297 -66.281410 3727686638370615689 8.493987e+08 \n", "109616 63.960953 -66.591354 3727661374545790857 8.493987e+08 \n", "109617 63.831799 -66.911255 3727838256925064969 8.493987e+08 \n", "109618 63.698635 -67.236229 3727843063731949801 8.493987e+08 \n", "109619 63.551617 -67.589508 3727853163225616425 8.493987e+08 \n", "\n", " Solar_Zenith Solar_Azimuth Sensor_Zenith Sensor_Azimuth \\\n", "0 14709 -2296 6534 -8952 \n", "1 14700 -2354 6472 -8980 \n", "2 14692 -2410 6411 -9008 \n", "3 14684 -2464 6351 -9034 \n", "4 14676 -2516 6291 -9059 \n", "... ... ... ... ... \n", "109615 12157 -7468 6223 4800 \n", "109616 12147 -7505 6282 4772 \n", "109617 12137 -7544 6342 4743 \n", "109618 12126 -7583 6402 4714 \n", "109619 12115 -7625 6464 4682 \n", "\n", " Water_Vapor_Infrared stare_hex wiv0 pod \\\n", "0 -9999 0x3ba73f1d5162e4a9 -9999 4298439553720516615 \n", "1 -9999 0x3ba730ee103253e9 -9999 4298439553720516615 \n", "2 -9999 0x3ba3699789d0adc9 -9999 4297384022557851655 \n", "3 -9999 0x3ba31437b15cedc9 -9999 4297278469441585159 \n", "4 -9999 0x3ba30b446afb4dc9 -9999 4297278469441585159 \n", "... ... ... ... ... \n", "109615 -9999 0x33bb673f5a0cf189 -9999 3727678669695483911 \n", "109616 -9999 0x33bb504528bf0789 -9999 3727643485323395079 \n", "109617 -9999 0x33bbf124cc213f09 -9999 3727819407183839239 \n", "109618 -9999 0x33bbf583f82590e9 -9999 3727819407183839239 \n", "109619 -9999 0x33bbfeb370e11029 -9999 3727819407183839239 \n", "\n", " pod_hex \n", "0 0x3ba7200000000007 \n", "1 0x3ba7200000000007 \n", "2 0x3ba3600000000007 \n", "3 0x3ba3000000000007 \n", "4 0x3ba3000000000007 \n", "... ... \n", "109615 0x33bb600000000007 \n", "109616 0x33bb400000000007 \n", "109617 0x33bbe00000000007 \n", "109618 0x33bbe00000000007 \n", "109619 0x33bbe00000000007 \n", "\n", "[109620 rows x 13 columns]" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "mod" ] }, { "cell_type": "code", "execution_count": 14, "id": "social-dynamics", "metadata": { "execution": { "iopub.execute_input": "2022-09-15T05:11:42.444076Z", "iopub.status.busy": "2022-09-15T05:11:42.443854Z", "iopub.status.idle": "2022-09-15T05:11:42.446327Z", "shell.execute_reply": "2022-09-15T05:11:42.445953Z" } }, "outputs": [], "source": [ "granule_name=\"../starepandas/datasets/MOD05_L2.A2019336.0000.061.2019336211522.hdf\"" ] }, { "cell_type": "code", "execution_count": 15, "id": "square-dodge", "metadata": { "execution": { "iopub.execute_input": "2022-09-15T05:11:42.448102Z", "iopub.status.busy": "2022-09-15T05:11:42.447908Z", "iopub.status.idle": "2022-09-15T05:11:42.490400Z", "shell.execute_reply": "2022-09-15T05:11:42.489827Z" } }, "outputs": [], "source": [ "mod = starepandas.read_granule(granule_name, sidecar=True, latlon=True)" ] }, { "cell_type": "code", "execution_count": 16, "id": "invalid-energy", "metadata": { "execution": { "iopub.execute_input": "2022-09-15T05:11:42.492912Z", "iopub.status.busy": "2022-09-15T05:11:42.492705Z", "iopub.status.idle": "2022-09-15T05:12:07.276476Z", "shell.execute_reply": "2022-09-15T05:12:07.275933Z" } }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "ax = plt.axes()\n", "mod.set_trixels(mod.make_trixels(), inplace=True)\n", "mod.plot(ax=ax, trixels=True\n", " ,boundary=False, column='Water_Vapor_Infrared', linewidth=0.2\n", " ,cmap='rainbow')\n", "\n", "del ax" ] }, { "cell_type": "code", "execution_count": 17, "id": "resident-optimum", "metadata": { "execution": { "iopub.execute_input": "2022-09-15T05:12:07.278735Z", "iopub.status.busy": "2022-09-15T05:12:07.278433Z", "iopub.status.idle": "2022-09-15T05:12:07.286853Z", "shell.execute_reply": "2022-09-15T05:12:07.286443Z" } }, "outputs": [ { "data": { "text/plain": [ "{'MOD09GA|MYD09GA': starepandas.io.granules.modis.Mod09GA,\n", " 'MOD05|MYD05': starepandas.io.granules.modis.Mod05,\n", " 'MOD03|MYD03': starepandas.io.granules.modis.Mod03,\n", " 'MOD09|MYD09': starepandas.io.granules.modis.Mod09,\n", " 'VNP02DNB|VJ102DNB': starepandas.io.granules.viirsl2.VNP02DNB,\n", " 'VNP03DNB|VJ103DNB': starepandas.io.granules.viirsl2.VNP03DNB,\n", " 'VNP03MOD|VJ103MOD': starepandas.io.granules.viirsl2.VNP03MOD,\n", " 'CLDMSKL2VIIRS': starepandas.io.granules.viirsl2.CLDMSKL2VIIRS,\n", " 'SSMIS': starepandas.io.granules.ssmis.SSMIS,\n", " 'ATMS': starepandas.io.granules.atms.ATMS,\n", " 'MODXX': __main__.ModXX,\n", " 'VNP02IMG': __main__.VNP02IMG,\n", " 'VNP03IMG': __main__.VNP03IMG}" ] }, "execution_count": 17, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from starepandas.io.granules.viirsl2 import VIIRSL2\n", "\n", "class VNP03IMG(VIIRSL2):\n", "\n", " def __init__(self, file_path, sidecar_path=None):\n", " super(VNP03IMG,self).__init__(file_path, sidecar_path)\n", "\n", " def read_data(self):\n", " \"\"\" \n", " reads the data from a VNP03IMG granule into the self.data dictionary. \n", " Two variables are read: \n", " \n", " a) land_water_mask \n", " 1: Shallow_Ocean 2: Land 3: Coastline 4: Shallow_Inland 5: Ephemeral 6: Deep_Inland 7: Continental 8: Deep_Ocean \n", " b) quality_flag \n", " 1: Input_invalid 2: Pointing_bad 3: Terrain_bad \n", " :return: \n", " \"\"\"\n", "\n", " group = self.netcdf.groups['geolocation_data']\n", " self.data['land_water_mask'] = group['land_water_mask'][:].data\n", " self.data['quality_flag'] = group['quality_flag'][:].data\n", "\n", "\n", "class VNP02IMG(VIIRSL2):\n", "\n", " def __init__(self, file_path, sidecar_path=None):\n", " super(VNP02IMG, self).__init__(file_path, sidecar_path)\n", " self.companion_prefix = 'VNP03IMG'\n", "\n", " def read_data(self):\n", " for band in ['I04','I05']:\n", " IMG = self.netcdf.groups['observation_data'][band][:].data\n", " quality_flags = self.netcdf.groups['observation_data'][band+'_quality_flags'][:].data\n", " \n", " # TODO Do we need to allocate these first?\n", " #\n", " self.data[band+'_observations'] = IMG\n", " self.data[band+'_quality_flags'] = quality_flags\n", "\n", " def latlon(self):\n", " pass\n", "\n", " def read_sidecar_cover(self, sidecar_path=None):\n", " pass\n", "\n", " def read_sidecar_index(self, sidecar_path=None):\n", " pass\n", "\n", "starepandas.io.granules.granule_factory_library['VNP02IMG']=VNP02IMG\n", "starepandas.io.granules.granule_factory_library['VNP03IMG']=VNP03IMG\n", "\n", "starepandas.io.granules.granule_factory_library" ] }, { "cell_type": "code", "execution_count": 18, "id": "greenhouse-pharmacology", "metadata": { "execution": { "iopub.execute_input": "2022-09-15T05:12:07.289546Z", "iopub.status.busy": "2022-09-15T05:12:07.289317Z", "iopub.status.idle": "2022-09-15T05:12:07.292081Z", "shell.execute_reply": "2022-09-15T05:12:07.291671Z" } }, "outputs": [], "source": [ "granule_name=\"../starepandas/datasets/VNP03DNB.A2020219.0742.001.2020219124651.nc\"" ] }, { "cell_type": "code", "execution_count": 19, "id": "found-hormone", "metadata": { "execution": { "iopub.execute_input": "2022-09-15T05:12:07.294010Z", "iopub.status.busy": "2022-09-15T05:12:07.293732Z", "iopub.status.idle": "2022-09-15T05:12:07.298282Z", "shell.execute_reply": "2022-09-15T05:12:07.297768Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "env: OMP_NUM_THREADS=8\n" ] }, { "data": { "text/plain": [ "'8'" ] }, "execution_count": 19, "metadata": {}, "output_type": "execute_result" } ], "source": [ "%env OMP_NUM_THREADS=8\n", "%env OMP_NUM_THREADS" ] }, { "cell_type": "code", "execution_count": 20, "id": "structural-encounter", "metadata": { "execution": { "iopub.execute_input": "2022-09-15T05:12:07.300038Z", "iopub.status.busy": "2022-09-15T05:12:07.299849Z", "iopub.status.idle": "2022-09-15T05:12:12.201576Z", "shell.execute_reply": "2022-09-15T05:12:12.200998Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "env: OMP_NUM_THREADS=4\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "CPU times: user 3.57 s, sys: 1.2 s, total: 4.77 s\n", "Wall time: 4.9 s\n" ] } ], "source": [ "%env OMP_NUM_THREADS=4\n", "vnp=None\n", "del vnp\n", "%time vnp = starepandas.read_granule(granule_name, sidecar=True, latlon=True)" ] }, { "cell_type": "code", "execution_count": 21, "id": "environmental-application", "metadata": { "execution": { "iopub.execute_input": "2022-09-15T05:12:12.203888Z", "iopub.status.busy": "2022-09-15T05:12:12.203610Z", "iopub.status.idle": "2022-09-15T05:12:14.273736Z", "shell.execute_reply": "2022-09-15T05:12:14.273125Z" } }, "outputs": [], "source": [ "vnp['stare_hex']=vnp['sids'].apply(hex)" ] }, { "cell_type": "code", "execution_count": 22, "id": "unable-texture", "metadata": { "execution": { "iopub.execute_input": "2022-09-15T05:12:14.276858Z", "iopub.status.busy": "2022-09-15T05:12:14.276499Z", "iopub.status.idle": "2022-09-15T05:14:20.478533Z", "shell.execute_reply": "2022-09-15T05:14:20.477932Z" } }, "outputs": [], "source": [ "vnp['pod']=vnp['sids'].apply(lambda sid: pystare.spatial_clear_to_resolution(pystare.spatial_coerce_resolution(sid,7)))" ] }, { "cell_type": "code", "execution_count": 23, "id": "ethical-member", "metadata": { "execution": { "iopub.execute_input": "2022-09-15T05:14:20.481414Z", "iopub.status.busy": "2022-09-15T05:14:20.481177Z", "iopub.status.idle": "2022-09-15T05:14:23.819372Z", "shell.execute_reply": "2022-09-15T05:14:23.818782Z" } }, "outputs": [], "source": [ "vnp['pod_hex']=vnp['pod'].apply(lambda sid: hex(sid))" ] }, { "cell_type": "code", "execution_count": null, "id": "1e231bdf-9b96-43d2-be36-13a005c418d2", "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.4" } }, "nbformat": 4, "nbformat_minor": 5 }