{ "cells": [ { "cell_type": "markdown", "id": "6fb1386c", "metadata": {}, "source": [ "# Read Granules" ] }, { "cell_type": "code", "execution_count": 1, "id": "d74b0c0e", "metadata": { "ExecuteTime": { "end_time": "2023-05-10T23:30:21.840696132Z", "start_time": "2023-05-10T23:30:18.322865255Z" }, "tags": [] }, "outputs": [], "source": [ "import starepandas\n", "import matplotlib.pyplot as plt\n", "import numpy\n", "import pandas\n", "import geopandas\n", "import pystare\n", "import gc" ] }, { "cell_type": "markdown", "id": "6962199e", "metadata": {}, "source": [ "## Manually reading " ] }, { "cell_type": "code", "execution_count": 2, "id": "81aa6cf3", "metadata": { "ExecuteTime": { "end_time": "2023-05-10T23:30:24.056157528Z", "start_time": "2023-05-10T23:30:21.313120571Z" }, "tags": [] }, "outputs": [], "source": [ "vnp03_name = '../tests/data/granules/viirs/VNP03DNB.A2022308.1930.002.2022309041547.nc'\n", "vnp03 = starepandas.io.granules.VNP03DNB(vnp03_name)\n", "vnp03.read_latlon()\n", "vnp03.read_data()\n", "vnp03 = vnp03.to_df(xy=True)" ] }, { "cell_type": "markdown", "id": "dad801a5-4733-42e3-b3f6-56864099885b", "metadata": {}, "source": [ "# VNP03" ] }, { "cell_type": "code", "execution_count": 3, "id": "03865566-800a-48ec-88dd-5abe543262cf", "metadata": { "ExecuteTime": { "end_time": "2023-05-10T23:30:29.295758080Z", "start_time": "2023-05-10T23:30:23.994887581Z" }, "tags": [] }, "outputs": [], "source": [ "file_path = '../tests/data/granules/viirs/VNP09.A2022308.1930.001.2022309070407.hdf'\n", "vnp09 = starepandas.io.granules.viirsl2.VNP09(file_path, nom_res='750m')\n", "vnp09.read_data()\n", "vnp09.read_timestamps()" ] }, { "cell_type": "code", "execution_count": 4, "id": "53e5f804-a21e-40a1-a031-1f230827e72b", "metadata": { "ExecuteTime": { "end_time": "2023-05-10T23:30:33.572472828Z", "start_time": "2023-05-10T23:30:28.970625077Z" }, "tags": [] }, "outputs": [], "source": [ "vnp03_path = vnp09.guess_companion_path(prefix='VNP03MOD')\n", "vnp03 = starepandas.io.granules.VNP03MOD(vnp03_path)\n", "vnp03.read_data()\n", "vnp03.read_sidecar_index()\n", "vnp03.read_sidecar_latlon()" ] }, { "cell_type": "code", "execution_count": 5, "id": "2f2523cd-449e-498b-bb79-bb1dc0f7da92", "metadata": { "ExecuteTime": { "end_time": "2023-05-10T23:30:57.525248167Z", "start_time": "2023-05-10T23:30:33.193276473Z" }, "tags": [] }, "outputs": [], "source": [ "vnp09 = vnp09.to_df(xy=True)\n", "vnp03 = vnp03.to_df()\n", "vnp09 = vnp09.join(vnp03)\n", "vnp09.dropna(inplace=True)" ] }, { "cell_type": "code", "execution_count": 6, "id": "0bb84b98-5fbc-4498-b8d5-47a54f001116", "metadata": { "ExecuteTime": { "end_time": "2023-05-10T23:30:57.558500235Z", "start_time": "2023-05-10T23:30:57.511418054Z" }, "tags": [] }, "outputs": [], "source": [ "#qf1 = starepandas.io.granules.viirsl2.decode_qf1(vnp09['QF1 Surface Reflectance'])\n", "#qf2 = starepandas.io.granules.viirsl2.decode_qf2(vnp09['QF2 Surface Reflectance'])\n", "#vnp09 = vnp09.join(qf1).join(qf2)" ] }, { "cell_type": "code", "execution_count": 8, "id": "b4ae60d5-efc6-4ee0-bd7b-1ed5dfc14643", "metadata": { "ExecuteTime": { "end_time": "2023-05-10T23:32:28.228761153Z", "start_time": "2023-05-10T23:30:57.511908297Z" }, "tags": [] }, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "pandas.DataFrame(vnp09[0:10000]).plot(x='x', y='sensor_zenith', kind='scatter')" ] }, { "cell_type": "code", "execution_count": 9, "id": "0340348b-84a5-4cca-ad78-a07a7419154b", "metadata": { "ExecuteTime": { "end_time": "2023-05-10T23:32:28.292157770Z", "start_time": "2023-05-10T23:32:28.085380096Z" }, "tags": [] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "Index: 8993654 entries, 1008 to 10341391\n", "Data columns (total 24 columns):\n", " # Column Dtype \n", "--- ------ ----- \n", " 0 ts_start datetime64[ns]\n", " 1 ts_end datetime64[ns]\n", " 2 x uint16 \n", " 3 y uint16 \n", " 4 750m Surface Reflectance Band M1 float64 \n", " 5 750m Surface Reflectance Band M2 float64 \n", " 6 750m Surface Reflectance Band M3 float64 \n", " 7 750m Surface Reflectance Band M4 float64 \n", " 8 750m Surface Reflectance Band M5 float64 \n", " 9 750m Surface Reflectance Band M7 float64 \n", " 10 750m Surface Reflectance Band M8 float64 \n", " 11 750m Surface Reflectance Band M10 float64 \n", " 12 750m Surface Reflectance Band M11 float64 \n", " 13 QF1 Surface Reflectance UInt8 \n", " 14 QF2 Surface Reflectance UInt8 \n", " 15 lat float32 \n", " 16 lon float32 \n", " 17 sids Int64 \n", " 18 land_water_mask UInt8 \n", " 19 quality_flag UInt8 \n", " 20 sensor_azimuth float32 \n", " 21 sensor_zenith float32 \n", " 22 solar_azimuth float32 \n", " 23 solar_zenith float32 \n", "dtypes: Int64(1), UInt8(4), datetime64[ns](2), float32(6), float64(9), uint16(2)\n", "memory usage: 1.2 GB\n" ] } ], "source": [ "vnp09.info(memory_usage='deep')" ] }, { "cell_type": "code", "execution_count": 10, "id": "d1fd85c9-087b-436c-9e5e-3227c74e9b4d", "metadata": { "ExecuteTime": { "end_time": "2023-05-10T23:32:30.041264936Z", "start_time": "2023-05-10T23:32:29.894666178Z" }, "tags": [] }, "outputs": [ { "data": { "text/plain": [ "117" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "del vnp03, vnp09\n", "gc.collect()" ] }, { "cell_type": "markdown", "id": "0c567ac5-758b-45ee-a71a-3f901220f011", "metadata": {}, "source": [ "## MOD09GA" ] }, { "cell_type": "code", "execution_count": 11, "id": "a60b5bdf-a527-401e-bb4e-cb3dc368db92", "metadata": { "ExecuteTime": { "end_time": "2023-05-10T23:32:30.100673395Z", "start_time": "2023-05-10T23:32:30.035568913Z" }, "tags": [] }, "outputs": [], "source": [ "file_name = '../tests/data/granules/MOD09GA.A2020009.h00v08.006.2020011025435.hdf'" ] }, { "cell_type": "code", "execution_count": 12, "id": "1eb575cb-43e2-4840-8c6d-20b653788d68", "metadata": { "ExecuteTime": { "end_time": "2023-05-10T23:32:38.666149644Z", "start_time": "2023-05-10T23:32:30.070105441Z" }, "tags": [] }, "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", "
xysur_refl_b01_1sur_refl_b02_1sur_refl_b03_1sur_refl_b04_1sur_refl_b05_1sur_refl_b06_1sur_refl_b07_1QC_500m_1obscov_500m_1
000NaNNaNNaNNaNNaNNaNNaN<NA>NaN
110NaNNaNNaNNaNNaNNaNNaN<NA>NaN
220NaNNaNNaNNaNNaNNaNNaN<NA>NaN
330NaNNaNNaNNaNNaNNaNNaN<NA>NaN
440NaNNaNNaNNaNNaNNaNNaN<NA>NaN
....................................
5759995239523990.20200.19390.21870.20530.18720.13590.081710737418240.15
5759996239623990.21220.20430.23200.21740.20150.13560.090010737418240.19
5759997239723990.21220.20430.23200.21740.20150.13560.090010737418240.19
5759998239823990.21740.20940.23420.22250.20740.14640.086710737418240.11
5759999239923990.21740.20940.23420.22250.20740.14640.086710737418240.14
\n", "

5760000 rows × 11 columns

\n", "
" ], "text/plain": [ " x y sur_refl_b01_1 sur_refl_b02_1 sur_refl_b03_1 \n", "0 0 0 NaN NaN NaN \\\n", "1 1 0 NaN NaN NaN \n", "2 2 0 NaN NaN NaN \n", "3 3 0 NaN NaN NaN \n", "4 4 0 NaN NaN NaN \n", "... ... ... ... ... ... \n", "5759995 2395 2399 0.2020 0.1939 0.2187 \n", "5759996 2396 2399 0.2122 0.2043 0.2320 \n", "5759997 2397 2399 0.2122 0.2043 0.2320 \n", "5759998 2398 2399 0.2174 0.2094 0.2342 \n", "5759999 2399 2399 0.2174 0.2094 0.2342 \n", "\n", " sur_refl_b04_1 sur_refl_b05_1 sur_refl_b06_1 sur_refl_b07_1 \n", "0 NaN NaN NaN NaN \\\n", "1 NaN NaN NaN NaN \n", "2 NaN NaN NaN NaN \n", "3 NaN NaN NaN NaN \n", "4 NaN NaN NaN NaN \n", "... ... ... ... ... \n", "5759995 0.2053 0.1872 0.1359 0.0817 \n", "5759996 0.2174 0.2015 0.1356 0.0900 \n", "5759997 0.2174 0.2015 0.1356 0.0900 \n", "5759998 0.2225 0.2074 0.1464 0.0867 \n", "5759999 0.2225 0.2074 0.1464 0.0867 \n", "\n", " QC_500m_1 obscov_500m_1 \n", "0 NaN \n", "1 NaN \n", "2 NaN \n", "3 NaN \n", "4 NaN \n", "... ... ... \n", "5759995 1073741824 0.15 \n", "5759996 1073741824 0.19 \n", "5759997 1073741824 0.19 \n", "5759998 1073741824 0.11 \n", "5759999 1073741824 0.14 \n", "\n", "[5760000 rows x 11 columns]" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "mod09ga = starepandas.read_granule(file_name, xy=True)\n", "mod09ga" ] }, { "cell_type": "code", "execution_count": 13, "id": "84a3e0e7-92be-4d62-a948-0c0493860b59", "metadata": { "ExecuteTime": { "end_time": "2023-05-10T23:33:28.227456746Z", "start_time": "2023-05-10T23:32:38.789424739Z" }, "tags": [] }, "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", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
sur_refl_b01_1sur_refl_b02_1sur_refl_b03_1sur_refl_b04_1sur_refl_b05_1sur_refl_b06_1sur_refl_b07_1QC_500m_1obscov_500m_1state_1km_1cloudcloud_shadowcloud_internalsnow_mod35snow_internal
0NaNNaNNaNNaNNaNNaNNaN<NA>NaN<NA><NA>TrueTrueTrueTrue
1NaNNaNNaNNaNNaNNaNNaN<NA>NaN<NA><NA>TrueTrueTrueTrue
2NaNNaNNaNNaNNaNNaNNaN<NA>NaN<NA><NA>TrueTrueTrueTrue
3NaNNaNNaNNaNNaNNaNNaN<NA>NaN<NA><NA>TrueTrueTrueTrue
4NaNNaNNaNNaNNaNNaNNaN<NA>NaN<NA><NA>TrueTrueTrueTrue
................................................
57599950.20200.19390.21870.20530.18720.13590.081710737418240.1518491FalseTrueFalseFalse
57599960.21220.20430.23200.21740.20150.13560.090010737418240.1918491FalseTrueFalseFalse
57599970.21220.20430.23200.21740.20150.13560.090010737418240.1918491FalseTrueFalseFalse
57599980.21740.20940.23420.22250.20740.14640.086710737418240.1118491FalseTrueFalseFalse
57599990.21740.20940.23420.22250.20740.14640.086710737418240.1418491FalseTrueFalseFalse
\n", "

5760000 rows × 15 columns

\n", "
" ], "text/plain": [ " sur_refl_b01_1 sur_refl_b02_1 sur_refl_b03_1 sur_refl_b04_1 \n", "0 NaN NaN NaN NaN \\\n", "1 NaN NaN NaN NaN \n", "2 NaN NaN NaN NaN \n", "3 NaN NaN NaN NaN \n", "4 NaN NaN NaN NaN \n", "... ... ... ... ... \n", "5759995 0.2020 0.1939 0.2187 0.2053 \n", "5759996 0.2122 0.2043 0.2320 0.2174 \n", "5759997 0.2122 0.2043 0.2320 0.2174 \n", "5759998 0.2174 0.2094 0.2342 0.2225 \n", "5759999 0.2174 0.2094 0.2342 0.2225 \n", "\n", " sur_refl_b05_1 sur_refl_b06_1 sur_refl_b07_1 QC_500m_1 \n", "0 NaN NaN NaN \\\n", "1 NaN NaN NaN \n", "2 NaN NaN NaN \n", "3 NaN NaN NaN \n", "4 NaN NaN NaN \n", "... ... ... ... ... \n", "5759995 0.1872 0.1359 0.0817 1073741824 \n", "5759996 0.2015 0.1356 0.0900 1073741824 \n", "5759997 0.2015 0.1356 0.0900 1073741824 \n", "5759998 0.2074 0.1464 0.0867 1073741824 \n", "5759999 0.2074 0.1464 0.0867 1073741824 \n", "\n", " obscov_500m_1 state_1km_1 cloud cloud_shadow cloud_internal \n", "0 NaN True True \\\n", "1 NaN True True \n", "2 NaN True True \n", "3 NaN True True \n", "4 NaN True True \n", "... ... ... ... ... ... \n", "5759995 0.15 1849 1 False True \n", "5759996 0.19 1849 1 False True \n", "5759997 0.19 1849 1 False True \n", "5759998 0.11 1849 1 False True \n", "5759999 0.14 1849 1 False True \n", "\n", " snow_mod35 snow_internal \n", "0 True True \n", "1 True True \n", "2 True True \n", "3 True True \n", "4 True True \n", "... ... ... \n", "5759995 False False \n", "5759996 False False \n", "5759997 False False \n", "5759998 False False \n", "5759999 False False \n", "\n", "[5760000 rows x 15 columns]" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "mod09ga = starepandas.io.granules.Mod09GA(file_name)\n", "mod09ga.read_data()\n", "\n", "ds_name = 'state_1km_1'\n", "mod09ga.read_dataset(ds_name, resample_factor=2)\n", "mod09ga.decode_state('state_1km_1')\n", "mod09ga.to_df()" ] }, { "cell_type": "code", "execution_count": 14, "id": "4f8b73ff-a30b-4852-8903-554730bc9a3a", "metadata": { "ExecuteTime": { "end_time": "2023-05-10T23:33:28.351886032Z", "start_time": "2023-05-10T23:33:27.359923655Z" }, "tags": [] }, "outputs": [ { "data": { "text/plain": [ "0" ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ "del mod09ga\n", "gc.collect()" ] }, { "cell_type": "markdown", "id": "bfba25d6-1077-4c1f-90e6-43b28feb32ec", "metadata": {}, "source": [ "## MOD09" ] }, { "cell_type": "code", "execution_count": 15, "id": "ea8d3869-8e7d-4e0b-8ca6-32daa67eff44", "metadata": { "ExecuteTime": { "end_time": "2023-05-10T23:33:35.428980519Z", "start_time": "2023-05-10T23:33:27.463321374Z" }, "tags": [] }, "outputs": [], "source": [ "file_name = '../tests/data/granules/MOD09.A2002299.0710.006.2015151173939.hdf'\n", "mod09 = starepandas.read_granule(file_name)" ] }, { "cell_type": "code", "execution_count": 16, "id": "003a8e29-3416-4527-aaf0-516bb20139c7", "metadata": { "ExecuteTime": { "end_time": "2023-05-10T23:33:47.841616566Z", "start_time": "2023-05-10T23:33:35.326391852Z" }, "tags": [] }, "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", "
cloudcloud_shadowcloud_internalsnow_mod35snow_internal
000FalseFalseFalseFalse
100FalseFalseFalseFalse
200FalseFalseFalseFalse
300FalseFalseFalseFalse
400FalseFalseFalseFalse
..................
274861500FalseFalseFalseFalse
274861600FalseFalseFalseFalse
274861700FalseFalseFalseFalse
274861800FalseFalseFalseFalse
274861900FalseFalseFalseFalse
\n", "

2748620 rows × 5 columns

\n", "
" ], "text/plain": [ " cloud cloud_shadow cloud_internal snow_mod35 snow_internal\n", "0 00 False False False False\n", "1 00 False False False False\n", "2 00 False False False False\n", "3 00 False False False False\n", "4 00 False False False False\n", "... ... ... ... ... ...\n", "2748615 00 False False False False\n", "2748616 00 False False False False\n", "2748617 00 False False False False\n", "2748618 00 False False False False\n", "2748619 00 False False False False\n", "\n", "[2748620 rows x 5 columns]" ] }, "execution_count": 16, "metadata": {}, "output_type": "execute_result" } ], "source": [ "starepandas.io.granules.modis.decode_state(mod09['1km Reflectance Data State QA'])" ] }, { "cell_type": "code", "execution_count": 17, "id": "aa37d136-d822-4395-aab8-b50a1e8fd586", "metadata": { "ExecuteTime": { "end_time": "2023-05-10T23:33:48.403292079Z", "start_time": "2023-05-10T23:33:48.179572947Z" }, "tags": [] }, "outputs": [ { "data": { "text/plain": [ "19" ] }, "execution_count": 17, "metadata": {}, "output_type": "execute_result" } ], "source": [ "del mod09\n", "gc.collect()" ] }, { "cell_type": "markdown", "id": "1f32d2eb", "metadata": {}, "source": [ "## MOD05" ] }, { "cell_type": "code", "execution_count": 18, "id": "d3f3faf4", "metadata": { "ExecuteTime": { "end_time": "2023-05-10T23:33:50.062751608Z", "start_time": "2023-05-10T23:33:48.223756461Z" }, "tags": [] }, "outputs": [], "source": [ "fname = '../tests/data/granules/MOD05_L2.A2019336.0000.061.2019336211522.hdf'\n", "mod05 = starepandas.read_granule(fname, sidecar=True, latlon=True, xy=True, read_timestamp=True)\n", "sids = mod05.to_array(mod05._sid_column_name)\n", "#mod05.to_sidecar('test.nc')" ] }, { "cell_type": "code", "execution_count": 19, "id": "a77e9851-5e55-4cfa-a9c0-89da5f449134", "metadata": { "ExecuteTime": { "end_time": "2023-05-10T23:33:50.063328302Z", "start_time": "2023-05-10T23:33:49.715814068Z" }, "tags": [] }, "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", "
latlonsidsts_startts_endxyScan_Start_TimeSolar_ZenithSolar_AzimuthSensor_ZenithSensor_AzimuthWater_Vapor_Infrared
053.201778-15.93399642984737645004648092019-12-022019-12-02 00:05:00008.493984e+08147.089997-22.95999965.339999-89.519998NaN
153.203171-16.28810142984581683805112092019-12-022019-12-02 00:05:00108.493984e+08146.999997-23.53999964.719999-89.799998NaN
253.203518-16.62910542973945690147178972019-12-022019-12-02 00:05:00208.493984e+08146.919997-24.09999964.109999-90.079998NaN
353.202934-16.95792842973006988729993692019-12-022019-12-02 00:05:00308.493984e+08146.839997-24.63999963.509999-90.339998NaN
453.201508-17.27531642972908579221211612019-12-022019-12-02 00:05:00408.493984e+08146.759997-25.15999962.909999-90.589998NaN
..........................................
10961564.084297-66.28141037276866383706156892019-12-022019-12-02 00:05:002654058.493987e+08121.569997-74.67999862.22999947.999999NaN
10961663.960953-66.59135437276613745457908572019-12-022019-12-02 00:05:002664058.493987e+08121.469997-75.04999862.81999947.719999NaN
10961763.831799-66.91125537278382569250649692019-12-022019-12-02 00:05:002674058.493987e+08121.369997-75.43999863.41999947.429999NaN
10961863.698635-67.23622937278430637319498012019-12-022019-12-02 00:05:002684058.493987e+08121.259997-75.82999864.01999947.139999NaN
10961963.551617-67.58950837278531632256164252019-12-022019-12-02 00:05:002694058.493987e+08121.149997-76.24999864.63999946.819999NaN
\n", "

109620 rows × 13 columns

\n", "
" ], "text/plain": [ " lat lon sids ts_start \n", "0 53.201778 -15.933996 4298473764500464809 2019-12-02 \\\n", "1 53.203171 -16.288101 4298458168380511209 2019-12-02 \n", "2 53.203518 -16.629105 4297394569014717897 2019-12-02 \n", "3 53.202934 -16.957928 4297300698872999369 2019-12-02 \n", "4 53.201508 -17.275316 4297290857922121161 2019-12-02 \n", "... ... ... ... ... \n", "109615 64.084297 -66.281410 3727686638370615689 2019-12-02 \n", "109616 63.960953 -66.591354 3727661374545790857 2019-12-02 \n", "109617 63.831799 -66.911255 3727838256925064969 2019-12-02 \n", "109618 63.698635 -67.236229 3727843063731949801 2019-12-02 \n", "109619 63.551617 -67.589508 3727853163225616425 2019-12-02 \n", "\n", " ts_end x y Scan_Start_Time Solar_Zenith \n", "0 2019-12-02 00:05:00 0 0 8.493984e+08 147.089997 \\\n", "1 2019-12-02 00:05:00 1 0 8.493984e+08 146.999997 \n", "2 2019-12-02 00:05:00 2 0 8.493984e+08 146.919997 \n", "3 2019-12-02 00:05:00 3 0 8.493984e+08 146.839997 \n", "4 2019-12-02 00:05:00 4 0 8.493984e+08 146.759997 \n", "... ... ... ... ... ... \n", "109615 2019-12-02 00:05:00 265 405 8.493987e+08 121.569997 \n", "109616 2019-12-02 00:05:00 266 405 8.493987e+08 121.469997 \n", "109617 2019-12-02 00:05:00 267 405 8.493987e+08 121.369997 \n", "109618 2019-12-02 00:05:00 268 405 8.493987e+08 121.259997 \n", "109619 2019-12-02 00:05:00 269 405 8.493987e+08 121.149997 \n", "\n", " Solar_Azimuth Sensor_Zenith Sensor_Azimuth Water_Vapor_Infrared \n", "0 -22.959999 65.339999 -89.519998 NaN \n", "1 -23.539999 64.719999 -89.799998 NaN \n", "2 -24.099999 64.109999 -90.079998 NaN \n", "3 -24.639999 63.509999 -90.339998 NaN \n", "4 -25.159999 62.909999 -90.589998 NaN \n", "... ... ... ... ... \n", "109615 -74.679998 62.229999 47.999999 NaN \n", "109616 -75.049998 62.819999 47.719999 NaN \n", "109617 -75.439998 63.419999 47.429999 NaN \n", "109618 -75.829998 64.019999 47.139999 NaN \n", "109619 -76.249998 64.639999 46.819999 NaN \n", "\n", "[109620 rows x 13 columns]" ] }, "execution_count": 19, "metadata": {}, "output_type": "execute_result" } ], "source": [ "mod05" ] }, { "cell_type": "markdown", "id": "68aad75a-0e06-4f27-a438-6fa5cc9a4c21", "metadata": {}, "source": [ "### Subset Loading" ] }, { "cell_type": "code", "execution_count": 20, "id": "4a4da8f7-3279-4e94-9db6-22059770f66f", "metadata": { "ExecuteTime": { "end_time": "2023-05-10T23:33:50.087758709Z", "start_time": "2023-05-10T23:33:49.716137781Z" }, "tags": [] }, "outputs": [], "source": [ "import shapely\n", "roi = shapely.geometry.Polygon([[-120, 37],[-120, 38],[-119, 38],[-119, 37]])\n", "roi = geopandas.GeoDataFrame(geometry=[roi], crs=4326)\n", "roi = starepandas.STAREDataFrame(roi)\n", "roi['sids'] = roi.make_sids(level=10)\n", "sids = roi.sids.iloc[0]" ] }, { "cell_type": "code", "execution_count": 21, "id": "935404ad-29c3-4f7b-9f64-930f552ed5e8", "metadata": { "ExecuteTime": { "end_time": "2023-05-10T23:33:50.106779405Z", "start_time": "2023-05-10T23:33:49.716356529Z" }, "tags": [] }, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 21, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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hnADgGUINwBYhnADgGUINwBYhnADgGUINwBYhnADgGUINwBYhnADgGUINwBYhnADgGUINwBYhnADgGUINwBYhnADgGUINwBYhnADgGUINwBYhnADgGUINwBYhnADgGUINwBYhnADgGUINwBYhnADgGUINwBYhnADgGUINwBYhnADgGUINwBYhnADgGUINwBYhnADgGUINwBYhnADgGUINwBYhnADgGUINwBYhnADgGUINwBYhnADgGUchbuoqEhpaWnyeDzyeDzy+XzauHGjJKm+vl4ulyviY/369R3OaYzRD37wA1155ZXq16+fMjMz9d5773VvVwDQizkKd2JiogoLC1VZWak333xTU6ZMUXZ2tmpra5WUlKSGhoawx9KlSxUbG6usrKwO53ziiSf05JNPatWqVaqoqNCAAQM0ffp0nTx5stubA4DeyGWMMd2ZYPDgwVq+fLny8vLavTZ+/HhNmDBBxcXFEc81xighIUEPPfSQvve970mS/H6/hg0bpueee0533XXXOa0hEAjI6/XK7/fL4/E4Wv/Ixa86Gg/g0lNfOMPxOd3p0tl0+R53W1ub1q1bp5aWFvl8vnavV1ZWqrq6OmLQz3j//ffV2NiozMzM0DGv16uJEydq586dHZ7X2tqqQCAQ9gCAS0W00xNqamrk8/l08uRJxcbGqrS0VGPGjGk3rri4WKNHj1ZGRkaHczU2NkqShg0bFnZ82LBhodciKSgo0NKlS50uPaKu/E4KAD3J8RV3SkqKqqurVVFRoUWLFik3N1f79u0LG3PixAmVlJR0erXdHfn5+fL7/aHHwYMHL8j7AMDFyPEVd0xMjJKTkyVJ6enp2r17t1asWKHVq1eHxrz00ks6fvy4cnJyOp0rPj5eknT06FFdeeWVoeNHjx7VuHHjOjzP7XbL7XY7XToA9Ard/hx3MBhUa2tr2LHi4mLNnDlTcXFxnZ579dVXKz4+Xlu2bAkdCwQCqqioiHjfHADg8Io7Pz9fWVlZGj58uJqbm1VSUqLt27ervLw8NGb//v3asWOHysrKIs6RmpqqgoICzZo1Sy6XS9/97nf1ox/9SKNGjdLVV1+txx9/XAkJCbrjjju6tTEA6K0chbupqUk5OTlqaGiQ1+tVWlqaysvLNXXq1NCYNWvWKDExUdOmTYs4R11dnfx+f+j5I488opaWFi1YsEAffvihJk2apE2bNqlv375d3BIA9G7d/hz3xeBCfl4SALriovwcNwCgZxBuALAM4QYAyxBuALAM4QYAyxBuALAM4QYAyxBuALAM4QYAyzj+dsCL0Zk//MlfqADgYnGmRxfiD6f3inA3NzdLkpKSknp4JQAQrrm5WV6v97zO2Su+qyQYDOrIkSMaOHCgXC7XOZ8XCASUlJSkgwcP9prvOGFP9uiN+2JP/58xRs3NzUpISFBU1Pm9K90rrrijoqKUmJjY5fM9Hk+v+ZfsDPZkj964L/Z02vm+0j6DH04CgGUINwBY5pIOt9vt1pIlS3rV31/JnuzRG/fFnj4fveKHkwBwKbmkr7gBwEaEGwAsQ7gBwDKEGwAs06vCvWzZMmVkZKh///66/PLL273+1ltvae7cuUpKSlK/fv00evRorVixot247du3a8KECXK73UpOTtZzzz131vf+3//9X/3Lv/yL+vbtq6SkJD3xxBPnYUdn35MkPfDAA0pPT5fb7da4ceMijvntb3+rcePGqX///hoxYoSWL19+1vd+9913lZ2drSuuuEIej0eTJk3Stm3burGb03pyT5L06quvauLEierXr58GDRqkO+64o2sb+Yye3pcktba2aty4cXK5XKqurna+ic/oqT3V19crLy9PV199tfr166cvfOELWrJkiT7++ONu7qhnf52OHTumefPmyePx6PLLL1deXp4++ugjx3voVeH++OOP9fWvf12LFi2K+HplZaWGDh2qX//616qtrdVjjz2m/Px8/eIXvwiNef/99zVjxgxNnjxZ1dXV+u53v6tvf/vbKi8v7/B9A4GApk2bphEjRqiyslLLly/XD3/4Qz3zzDMXfE9nfOtb39KcOXMivrZx40bNmzdPCxcu1N69e/X000/rZz/7Wdi+I7ntttv0ySefaOvWraqsrNTYsWN12223qbGxscv7kXp2Ty+//LLmz5+vu+++W2+99Zb+/Oc/61//9V+7vJdP68l9nfHII48oISHB8do70lN7eueddxQMBrV69WrV1tbqZz/7mVatWqX//M//7NZ+pJ79dZo3b55qa2u1efNmbdiwQTt27NCCBQucb8L0Qs8++6zxer3nNPY73/mOmTx5cuj5I488Yq677rqwMXPmzDHTp0/vcI6nn37aDBo0yLS2toaOPfrooyYlJcXZwjtxLntasmSJGTt2bLvj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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "roi.plot(trixels=False)" ] }, { "cell_type": "code", "execution_count": 22, "id": "35dc0658-b138-4276-a4a6-0c979cf33187", "metadata": { "ExecuteTime": { "end_time": "2023-05-10T23:33:50.107525224Z", "start_time": "2023-05-10T23:33:49.827808032Z" }, "tags": [] }, "outputs": [], "source": [ "fname = '../tests/data/granules/MOD05_L2.A2019336.0000.061.2019336211522.hdf'\n", "mod = starepandas.io.granules.Mod05(fname)\n", "mod.read_sidecar_index()" ] }, { "cell_type": "code", "execution_count": 23, "id": "a0c3c7ea-a9ec-49bf-9084-1c97b4b1b595", "metadata": { "ExecuteTime": { "end_time": "2023-05-10T23:33:50.581376397Z", "start_time": "2023-05-10T23:33:49.874820415Z" }, "tags": [] }, "outputs": [ { "data": { "text/plain": [ "array([[False, False, False, ..., False, False, False],\n", " [False, False, False, ..., False, False, False],\n", " [False, False, False, ..., False, False, False],\n", " ...,\n", " [False, False, False, ..., False, False, False],\n", " [False, False, False, ..., False, False, False],\n", " [False, False, False, ..., False, False, False]])" ] }, "execution_count": 23, "metadata": {}, "output_type": "execute_result" } ], "source": [ "intersects = pystare.intersects(sids, mod.sids.flatten())\n", "intersects = numpy.reshape(intersects, mod.sids.shape)\n", "intersects" ] }, { "cell_type": "markdown", "id": "16162b1b", "metadata": {}, "source": [ "## VNP02" ] }, { "cell_type": "code", "execution_count": 24, "id": "622c6ca1", "metadata": { "ExecuteTime": { "end_time": "2023-05-10T23:33:54.340927767Z", "start_time": "2023-05-10T23:33:50.361308886Z" }, "tags": [] }, "outputs": [], "source": [ "vnp02_name = '../tests/data/granules/viirs/VNP02DNB.A2022308.1930.002.2022309051542.nc'\n", "vnp02 = starepandas.read_granule(vnp02_name, sidecar=False, latlon=False)\n", "\n", "vnp03_name = '../tests/data/granules/viirs/VNP03DNB.A2022308.1930.002.2022309041547.nc'\n", "vnp03 = starepandas.read_granule(vnp03_name, sidecar=True, latlon=False)" ] }, { "cell_type": "code", "execution_count": 25, "id": "67315c2b", "metadata": { "ExecuteTime": { "end_time": "2023-05-10T23:33:54.385910825Z", "start_time": "2023-05-10T23:33:52.612279272Z" }, "tags": [] }, "outputs": [], "source": [ "vnp02 = vnp03.join(vnp02)" ] }, { "cell_type": "code", "execution_count": 26, "id": "e93de612", "metadata": { "ExecuteTime": { "end_time": "2023-05-10T23:33:54.490958174Z", "start_time": "2023-05-10T23:33:52.690917487Z" }, "tags": [] }, "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", "
sidsmoon_illumination_fractionland_water_maskquality_flagDNB_observationsDNB_quality_flags
72314159684862801716685.949997200.0026910
73314159626789164123085.949997200.0022900
78314159631123988529485.949997200.0041920
682313625594148041988685.939995200.0012810
683313625775793813220685.939995200.0013040
.....................
13134834325143234970034606185.709999200.0043650
13134836325143226668372260685.709999200.0045770
13134839325139667354793431885.709999200.0044330
13134845324954073153255457385.709999200.0047440
13134846324954110812502606285.709999200.0046990
\n", "

541944 rows × 6 columns

\n", "
" ], "text/plain": [ " sids moon_illumination_fraction land_water_mask \n", "72 3141596848628017166 85.949997 2 \\\n", "73 3141596267891641230 85.949997 2 \n", "78 3141596311239885294 85.949997 2 \n", "682 3136255941480419886 85.939995 2 \n", "683 3136257757938132206 85.939995 2 \n", "... ... ... ... \n", "13134834 3251432349700346061 85.709999 2 \n", "13134836 3251432266683722606 85.709999 2 \n", "13134839 3251396673547934318 85.709999 2 \n", "13134845 3249540731532554573 85.709999 2 \n", "13134846 3249541108125026062 85.709999 2 \n", "\n", " quality_flag DNB_observations DNB_quality_flags \n", "72 0 0.002691 0 \n", "73 0 0.002290 0 \n", "78 0 0.004192 0 \n", "682 0 0.001281 0 \n", "683 0 0.001304 0 \n", "... ... ... ... \n", "13134834 0 0.004365 0 \n", "13134836 0 0.004577 0 \n", "13134839 0 0.004433 0 \n", "13134845 0 0.004744 0 \n", "13134846 0 0.004699 0 \n", "\n", "[541944 rows x 6 columns]" ] }, "execution_count": 26, "metadata": {}, "output_type": "execute_result" } ], "source": [ "vnp02[(vnp02.land_water_mask==2) | (vnp02.land_water_mask==4) | (vnp02.land_water_mask==6) | (vnp02.land_water_mask==7)]" ] }, { "cell_type": "code", "execution_count": 27, "id": "c6b22c3d-7403-4be8-81b1-940c685979ea", "metadata": { "ExecuteTime": { "end_time": "2023-05-10T23:33:54.494572815Z", "start_time": "2023-05-10T23:33:53.822196982Z" }, "tags": [] }, "outputs": [ { "data": { "text/plain": [ "105" ] }, "execution_count": 27, "metadata": {}, "output_type": "execute_result" } ], "source": [ "del vnp02, vnp03\n", "gc.collect()" ] }, { "cell_type": "markdown", "id": "efbd5e95", "metadata": {}, "source": [ "## VNP CLDMSK" ] }, { "cell_type": "code", "execution_count": 28, "id": "424c9c08", "metadata": { "ExecuteTime": { "end_time": "2023-05-10T23:33:54.495207366Z", "start_time": "2023-05-10T23:33:54.014798477Z" }, "tags": [] }, "outputs": [], "source": [ "cldmsk_name = '../tests/data/granules/CLDMSK_L2_VIIRS_SNPP.A2020219.0742.001.2020219190616.nc'\n", "cldmsk = starepandas.io.granules.CLDMSKL2VIIRS(cldmsk_name)" ] }, { "cell_type": "code", "execution_count": 29, "id": "86eb7fae", "metadata": { "ExecuteTime": { "end_time": "2023-05-10T23:33:55.687875497Z", "start_time": "2023-05-10T23:33:54.026734878Z" }, "tags": [] }, "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", "
latlonInteger_Cloud_Mask
041.747662-104.9694983
141.747696-104.9502183
241.747730-104.9302373
341.747761-104.9108433
441.747784-104.8917473
............
1034239516.522247-78.5950932
1034239616.518646-78.5801621
1034239716.515034-78.5652080
1034239816.511414-78.5502241
1034239916.507788-78.5351871
\n", "

10342400 rows × 3 columns

\n", "
" ], "text/plain": [ " lat lon Integer_Cloud_Mask\n", "0 41.747662 -104.969498 3\n", "1 41.747696 -104.950218 3\n", "2 41.747730 -104.930237 3\n", "3 41.747761 -104.910843 3\n", "4 41.747784 -104.891747 3\n", "... ... ... ...\n", "10342395 16.522247 -78.595093 2\n", "10342396 16.518646 -78.580162 1\n", "10342397 16.515034 -78.565208 0\n", "10342398 16.511414 -78.550224 1\n", "10342399 16.507788 -78.535187 1\n", "\n", "[10342400 rows x 3 columns]" ] }, "execution_count": 29, "metadata": {}, "output_type": "execute_result" } ], "source": [ "cldmsk.read_latlon()\n", "cldmsk.read_data()\n", "cldmsk.to_df()" ] }, { "cell_type": "code", "execution_count": 30, "id": "e94242a0-2435-4764-bfb5-fe60a7e58209", "metadata": { "ExecuteTime": { "end_time": "2023-05-10T23:33:55.724032305Z", "start_time": "2023-05-10T23:33:55.522320335Z" }, "tags": [] }, "outputs": [ { "data": { "text/plain": [ "25" ] }, "execution_count": 30, "metadata": {}, "output_type": "execute_result" } ], "source": [ "del cldmsk\n", "gc.collect()" ] }, { "cell_type": "markdown", "id": "5ccc701d", "metadata": {}, "source": [ "## Plotting" ] }, { "cell_type": "code", "execution_count": 31, "id": "e50b81d3", "metadata": { "ExecuteTime": { "end_time": "2023-05-10T23:33:58.103490668Z", "start_time": "2023-05-10T23:33:55.556752213Z" }, "tags": [] }, "outputs": [], "source": [ "path = '../tests/data/granules/viirs/VNP03DNB.A2022308.1930.002.2022309041547.nc'\n", "vnp03dnb = starepandas.io.granules.VNP03DNB(path)\n", "vnp03dnb.read_latlon()\n", "\n", "path = '../tests/data/granules/viirs/VNP03MOD.A2022308.1930.002.2022309041547.nc'\n", "vnp03mod = starepandas.io.granules.VNP03MOD(path)\n", "vnp03mod.read_latlon()\n", "\n", "path = '../tests/data/granules/CLDMSK_L2_VIIRS_SNPP.A2020219.0742.001.2020219190616.nc'\n", "cldmsk = starepandas.io.granules.CLDMSKL2VIIRS(path)\n", "cldmsk.read_latlon()" ] }, { "cell_type": "code", "execution_count": 32, "id": "023a29c9", "metadata": { "ExecuteTime": { "end_time": "2023-05-10T23:35:29.272476591Z", "start_time": "2023-05-10T23:35:28.739041766Z" }, "tags": [] }, "outputs": [ { "data": { "text/plain": [ "[]" ] }, "execution_count": 32, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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qKSkRFu2bEn0VhMumtls3bpV48aNa/a48ePHa+vWrQnda7yFQiFlZGQ0e2furl27SpI++OCDZmtnzpypnj176tprr9ULL7wQ1e9asiya2Xj5c5ZM8vLyNHDgQL344os6ceKETp8+rZUrV6pXr14aMWJEs7UX2nUTzWxied0kfczq6uqaDUpS5PaZp7p9+vTRihUr9Nprr+m1115TYWGhRo8erR07diR8v4kUzWzc1gSDQX3xxReJ2WgCjBkzRnV1dXr88cd16tQpHTlyRPPnz5ckHThwILLuF7/4hV555RUFAgFNnTpVP/rRj/TMM8901LYTIprZRHMtJaOUlBS988472rlzp3JycpSZmaknn3xS69ev10UXXRRZdyFeN9HMJpbXTaeM2fz588/5A9OzP/7617/G7PMNHDhQ99xzj0aMGKFRo0bphRde0KhRo7RkyZKYfY5YSfRsrIt2XldddZXKy8v1xBNPKCsrSwUFBbrsssvUu3fvZs9Ifvazn+mGG27QsGHDNG/ePD300EN6/PHHO/ArbLtYzyaZRDsbx3E0c+ZM9erVS++//762b9+uyZMna9KkSc3+EnQhXjfRziZWOt3vM5Ok+++//5w/eD9b//79ozpXQUGBtm/f3uzYwYMHI/e5ufbaa1t8e6kzSPRsCgoKIsfOXuP3+yPfaurMvMxr2rRpmjZtmg4ePKjs7GylpKToySefbHWe1113nX75y18qFAqZe5PZWM6mrX/OOqtoZ1NZWam33npLR44cifyermXLlikQCKi8vDzyDParLoTrJprZxPK66ZQxy8/PV35+fkzOVVxcrEWLFunQoUORVycGAgH5/X4NHjzY9XE1NTXq06dPTPYQS4meTXFxsdatW9fscYFAQMXFxTHZQ7y1ZV5nvs3xwgsvKDMzUyUlJa5ra2pqdNFFF5n7H5IU29m09c9ZZxXtbBoaGiSpxTPU1NRUNTU1uT7uQrhuoplNTK+b9r9mpWP961//cnbu3OksXLjQ6datm7Nz505n586dTn19veM4jnP69Gnn6quvdkpLS52amhpn/fr1Tn5+vlNWVhY5x5IlS5y1a9c6e/bscWpra51Zs2Y5qampzjvvvNNRX1ZMxGI2//jHP5ysrCznwQcfdP7yl784S5cudbp06eKsX7++o76suHnmmWec6upqZ/fu3c6zzz7rdO3a1Xnqqaci97/xxhvOc88959TW1jp79uxxli1b5mRlZTkPP/xwB+46Mc43m2iupWR0+PBhJy8vz5kyZYpTU1Pj7N6923nggQec9PR0p6amxnGcC/e6iWY2sbxuzMdsxowZjqQWH++++25kzSeffOJMmDDB6dq1q9OzZ0/n/vvvd8LhcOT+X/3qV87Xv/51JzMz0+nRo4czevRop7KysgO+mtiKxWwc58t/ujB06FAnIyPD6d+/v7Nq1arEfiEJcscddzg9evRwMjIynKKiIufFF19sdv/bb7/tDB061OnWrZuTnZ3tDBkyxFmxYkWzl6wnq/PNxnGiu5aSUVVVlVNaWur06NHDycnJca6//npn3bp1kfsv5OvmfLNxnNhdN/w+MwCAecn5UiQAwAWFmAEAzCNmAADziBkAwDxiBgAwj5gBAMwjZgAA84gZAMA8YgYAMI+YAQDMI2YAAPP+D1a9bgyb7I4SAAAAAElFTkSuQmCC", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "fig, ax = plt.subplots(figsize=(5,5), dpi=100)\n", "\n", "n = 20\n", "ns = 0\n", "nt = 0\n", "\n", "ax.grid('on')\n", "\n", "ax.plot(cldmsk.lon[ns:ns+n, nt:nt+n].flatten(), cldmsk.lat[ns:ns+n, nt:nt+n].flatten(), \n", " color='r', lw=0, marker='.')\n", "\n", "ax.plot(vnp03mod.lon[ns:ns+n, nt:nt+n].flatten(), vnp03mod.lat[ns:ns+n, nt:nt+n].flatten(), \n", " color='g',lw=0, marker='.')\n", "\n", "ax.plot(vnp03dnb.lon[ns:ns+n, nt:nt+n].flatten(), vnp03dnb.lat[ns:ns+n, nt:nt+n].flatten(), \n", " color='b',lw=0, marker='.')" ] }, { "cell_type": "code", "execution_count": null, "id": "4421e5ee", "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.6" } }, "nbformat": 4, "nbformat_minor": 5 }