TC PRIMED analysis#

In this tutorial you will learn how to explore the TC PRIMED files using GPM-API. As an example, we will use a GPM DPR/GMI overpass of Hurricane Ida on 2021-08-29 at landfall over New Orleans.

Now let’s import the package required in this tutorial.

[ ]:
import fsspec
import matplotlib.pyplot as plt

import gpm

1. Search TC PRIMED files#

Now let’s list the TC PRIMED overpass available for Hurricane Ida.

[ ]:
fs_args = {}
_ = fs_args.setdefault("anon", True)
fs = fsspec.filesystem("s3", **fs_args)
bucket_path = "s3://noaa-nesdis-tcprimed-pds/v01r01/final/2021/AL/09/"
fs.ls(bucket_path)
['noaa-nesdis-tcprimed-pds/v01r01/final/2021/AL/09/TCPRIMED_v01r01-final_AL092021_AMSR2_GCOMW1_049341_20210826181631.nc',
 'noaa-nesdis-tcprimed-pds/v01r01/final/2021/AL/09/TCPRIMED_v01r01-final_AL092021_AMSR2_GCOMW1_049356_20210827190056.nc',
 'noaa-nesdis-tcprimed-pds/v01r01/final/2021/AL/09/TCPRIMED_v01r01-final_AL092021_AMSR2_GCOMW1_049363_20210828070955.nc',
 'noaa-nesdis-tcprimed-pds/v01r01/final/2021/AL/09/TCPRIMED_v01r01-final_AL092021_AMSR2_GCOMW1_049378_20210829075200.nc',
 'noaa-nesdis-tcprimed-pds/v01r01/final/2021/AL/09/TCPRIMED_v01r01-final_AL092021_AMSR2_GCOMW1_049385_20210829185046.nc',
 'noaa-nesdis-tcprimed-pds/v01r01/final/2021/AL/09/TCPRIMED_v01r01-final_AL092021_AMSR2_GCOMW1_049400_20210830193424.nc',
 'noaa-nesdis-tcprimed-pds/v01r01/final/2021/AL/09/TCPRIMED_v01r01-final_AL092021_AMSR2_GCOMW1_049407_20210831073754.nc',
 'noaa-nesdis-tcprimed-pds/v01r01/final/2021/AL/09/TCPRIMED_v01r01-final_AL092021_AMSR2_GCOMW1_049414_20210831184007.nc',
 'noaa-nesdis-tcprimed-pds/v01r01/final/2021/AL/09/TCPRIMED_v01r01-final_AL092021_AMSR2_GCOMW1_049428_20210901174538.nc',
 'noaa-nesdis-tcprimed-pds/v01r01/final/2021/AL/09/TCPRIMED_v01r01-final_AL092021_AMSR2_GCOMW1_049436_20210902072318.nc',
 'noaa-nesdis-tcprimed-pds/v01r01/final/2021/AL/09/TCPRIMED_v01r01-final_AL092021_AMSR2_GCOMW1_049442_20210902165118.nc',
 'noaa-nesdis-tcprimed-pds/v01r01/final/2021/AL/09/TCPRIMED_v01r01-final_AL092021_AMSR2_GCOMW1_049450_20210903062613.nc',
 'noaa-nesdis-tcprimed-pds/v01r01/final/2021/AL/09/TCPRIMED_v01r01-final_AL092021_AMSR2_GCOMW1_049457_20210903173518.nc',
 'noaa-nesdis-tcprimed-pds/v01r01/final/2021/AL/09/TCPRIMED_v01r01-final_AL092021_AMSR2_GCOMW1_049465_20210904070832.nc',
 'noaa-nesdis-tcprimed-pds/v01r01/final/2021/AL/09/TCPRIMED_v01r01-final_AL092021_AMSR2_GCOMW1_049471_20210904163927.nc',
 'noaa-nesdis-tcprimed-pds/v01r01/final/2021/AL/09/TCPRIMED_v01r01-final_AL092021_ATMS_NOAA20_019542_20210826174917.nc',
 'noaa-nesdis-tcprimed-pds/v01r01/final/2021/AL/09/TCPRIMED_v01r01-final_AL092021_ATMS_NOAA20_019549_20210827061946.nc',
 'noaa-nesdis-tcprimed-pds/v01r01/final/2021/AL/09/TCPRIMED_v01r01-final_AL092021_ATMS_NOAA20_019557_20210827191226.nc',
 'noaa-nesdis-tcprimed-pds/v01r01/final/2021/AL/09/TCPRIMED_v01r01-final_AL092021_ATMS_NOAA20_019564_20210828074034.nc',
 'noaa-nesdis-tcprimed-pds/v01r01/final/2021/AL/09/TCPRIMED_v01r01-final_AL092021_ATMS_NOAA20_019571_20210828185450.nc',
 'noaa-nesdis-tcprimed-pds/v01r01/final/2021/AL/09/TCPRIMED_v01r01-final_AL092021_ATMS_NOAA20_019578_20210829072040.nc',
 'noaa-nesdis-tcprimed-pds/v01r01/final/2021/AL/09/TCPRIMED_v01r01-final_AL092021_ATMS_NOAA20_019585_20210829183709.nc',
 'noaa-nesdis-tcprimed-pds/v01r01/final/2021/AL/09/TCPRIMED_v01r01-final_AL092021_ATMS_NOAA20_019592_20210830070058.nc',
 'noaa-nesdis-tcprimed-pds/v01r01/final/2021/AL/09/TCPRIMED_v01r01-final_AL092021_ATMS_NOAA20_019593_20210830084144.nc',
 'noaa-nesdis-tcprimed-pds/v01r01/final/2021/AL/09/TCPRIMED_v01r01-final_AL092021_ATMS_NOAA20_019599_20210830181906.nc',
 'noaa-nesdis-tcprimed-pds/v01r01/final/2021/AL/09/TCPRIMED_v01r01-final_AL092021_ATMS_NOAA20_019607_20210831082144.nc',
 'noaa-nesdis-tcprimed-pds/v01r01/final/2021/AL/09/TCPRIMED_v01r01-final_AL092021_ATMS_NOAA20_019613_20210831180058.nc',
 'noaa-nesdis-tcprimed-pds/v01r01/final/2021/AL/09/TCPRIMED_v01r01-final_AL092021_ATMS_NOAA20_019614_20210831194133.nc',
 'noaa-nesdis-tcprimed-pds/v01r01/final/2021/AL/09/TCPRIMED_v01r01-final_AL092021_ATMS_NOAA20_019621_20210901080154.nc',
 'noaa-nesdis-tcprimed-pds/v01r01/final/2021/AL/09/TCPRIMED_v01r01-final_AL092021_ATMS_NOAA20_019627_20210901174248.nc',
 'noaa-nesdis-tcprimed-pds/v01r01/final/2021/AL/09/TCPRIMED_v01r01-final_AL092021_ATMS_NOAA20_019634_20210902060104.nc',
 'noaa-nesdis-tcprimed-pds/v01r01/final/2021/AL/09/TCPRIMED_v01r01-final_AL092021_ATMS_NOAA20_019635_20210902074133.nc',
 'noaa-nesdis-tcprimed-pds/v01r01/final/2021/AL/09/TCPRIMED_v01r01-final_AL092021_ATMS_NOAA20_019641_20210902172437.nc',
 'noaa-nesdis-tcprimed-pds/v01r01/final/2021/AL/09/TCPRIMED_v01r01-final_AL092021_ATMS_NOAA20_019648_20210903054016.nc',
 'noaa-nesdis-tcprimed-pds/v01r01/final/2021/AL/09/TCPRIMED_v01r01-final_AL092021_ATMS_NOAA20_019649_20210903072045.nc',
 'noaa-nesdis-tcprimed-pds/v01r01/final/2021/AL/09/TCPRIMED_v01r01-final_AL092021_ATMS_NOAA20_019655_20210903170701.nc',
 'noaa-nesdis-tcprimed-pds/v01r01/final/2021/AL/09/TCPRIMED_v01r01-final_AL092021_ATMS_NOAA20_019662_20210904052042.nc',
 'noaa-nesdis-tcprimed-pds/v01r01/final/2021/AL/09/TCPRIMED_v01r01-final_AL092021_ATMS_NOAA20_019663_20210904070130.nc',
 'noaa-nesdis-tcprimed-pds/v01r01/final/2021/AL/09/TCPRIMED_v01r01-final_AL092021_ATMS_NOAA20_019669_20210904164738.nc',
 'noaa-nesdis-tcprimed-pds/v01r01/final/2021/AL/09/TCPRIMED_v01r01-final_AL092021_ATMS_NPP_050938_20210826184000.nc',
 'noaa-nesdis-tcprimed-pds/v01r01/final/2021/AL/09/TCPRIMED_v01r01-final_AL092021_ATMS_NPP_050945_20210827071024.nc',
 'noaa-nesdis-tcprimed-pds/v01r01/final/2021/AL/09/TCPRIMED_v01r01-final_AL092021_ATMS_NPP_050952_20210827182221.nc',
 'noaa-nesdis-tcprimed-pds/v01r01/final/2021/AL/09/TCPRIMED_v01r01-final_AL092021_ATMS_NPP_050959_20210828065029.nc',
 'noaa-nesdis-tcprimed-pds/v01r01/final/2021/AL/09/TCPRIMED_v01r01-final_AL092021_ATMS_NPP_050966_20210828180442.nc',
 'noaa-nesdis-tcprimed-pds/v01r01/final/2021/AL/09/TCPRIMED_v01r01-final_AL092021_ATMS_NPP_050967_20210828194528.nc',
 'noaa-nesdis-tcprimed-pds/v01r01/final/2021/AL/09/TCPRIMED_v01r01-final_AL092021_ATMS_NPP_050974_20210829081117.nc',
 'noaa-nesdis-tcprimed-pds/v01r01/final/2021/AL/09/TCPRIMED_v01r01-final_AL092021_ATMS_NPP_050981_20210829192741.nc',
 'noaa-nesdis-tcprimed-pds/v01r01/final/2021/AL/09/TCPRIMED_v01r01-final_AL092021_ATMS_NPP_050988_20210830075138.nc',
 'noaa-nesdis-tcprimed-pds/v01r01/final/2021/AL/09/TCPRIMED_v01r01-final_AL092021_ATMS_NPP_050995_20210830190938.nc',
 'noaa-nesdis-tcprimed-pds/v01r01/final/2021/AL/09/TCPRIMED_v01r01-final_AL092021_ATMS_NPP_051002_20210831073154.nc',
 'noaa-nesdis-tcprimed-pds/v01r01/final/2021/AL/09/TCPRIMED_v01r01-final_AL092021_ATMS_NPP_051009_20210831185128.nc',
 'noaa-nesdis-tcprimed-pds/v01r01/final/2021/AL/09/TCPRIMED_v01r01-final_AL092021_ATMS_NPP_051016_20210901071202.nc',
 'noaa-nesdis-tcprimed-pds/v01r01/final/2021/AL/09/TCPRIMED_v01r01-final_AL092021_ATMS_NPP_051023_20210901183322.nc',
 'noaa-nesdis-tcprimed-pds/v01r01/final/2021/AL/09/TCPRIMED_v01r01-final_AL092021_ATMS_NPP_051030_20210902065146.nc',
 'noaa-nesdis-tcprimed-pds/v01r01/final/2021/AL/09/TCPRIMED_v01r01-final_AL092021_ATMS_NPP_051036_20210902163445.nc',
 'noaa-nesdis-tcprimed-pds/v01r01/final/2021/AL/09/TCPRIMED_v01r01-final_AL092021_ATMS_NPP_051037_20210902181525.nc',
 'noaa-nesdis-tcprimed-pds/v01r01/final/2021/AL/09/TCPRIMED_v01r01-final_AL092021_ATMS_NPP_051044_20210903063058.nc',
 'noaa-nesdis-tcprimed-pds/v01r01/final/2021/AL/09/TCPRIMED_v01r01-final_AL092021_ATMS_NPP_051050_20210903161645.nc',
 'noaa-nesdis-tcprimed-pds/v01r01/final/2021/AL/09/TCPRIMED_v01r01-final_AL092021_ATMS_NPP_051051_20210903175752.nc',
 'noaa-nesdis-tcprimed-pds/v01r01/final/2021/AL/09/TCPRIMED_v01r01-final_AL092021_ATMS_NPP_051058_20210904061133.nc',
 'noaa-nesdis-tcprimed-pds/v01r01/final/2021/AL/09/TCPRIMED_v01r01-final_AL092021_ATMS_NPP_051064_20210904155752.nc',
 'noaa-nesdis-tcprimed-pds/v01r01/final/2021/AL/09/TCPRIMED_v01r01-final_AL092021_ATMS_NPP_051065_20210904173821.nc',
 'noaa-nesdis-tcprimed-pds/v01r01/final/2021/AL/09/TCPRIMED_v01r01-final_AL092021_GMI_GPM_042577_20210826143938.nc',
 'noaa-nesdis-tcprimed-pds/v01r01/final/2021/AL/09/TCPRIMED_v01r01-final_AL092021_GMI_GPM_042599_20210828011052.nc',
 'noaa-nesdis-tcprimed-pds/v01r01/final/2021/AL/09/TCPRIMED_v01r01-final_AL092021_GMI_GPM_042624_20210829151408.nc',
 'noaa-nesdis-tcprimed-pds/v01r01/final/2021/AL/09/TCPRIMED_v01r01-final_AL092021_GMI_GPM_042630_20210830005829.nc',
 'noaa-nesdis-tcprimed-pds/v01r01/final/2021/AL/09/TCPRIMED_v01r01-final_AL092021_GMI_GPM_042655_20210831150548.nc',
 'noaa-nesdis-tcprimed-pds/v01r01/final/2021/AL/09/TCPRIMED_v01r01-final_AL092021_GMI_GPM_042670_20210901141339.nc',
 'noaa-nesdis-tcprimed-pds/v01r01/final/2021/AL/09/TCPRIMED_v01r01-final_AL092021_GMI_GPM_042685_20210902132413.nc',
 'noaa-nesdis-tcprimed-pds/v01r01/final/2021/AL/09/TCPRIMED_v01r01-final_AL092021_GMI_GPM_042690_20210902212849.nc',
 'noaa-nesdis-tcprimed-pds/v01r01/final/2021/AL/09/TCPRIMED_v01r01-final_AL092021_GMI_GPM_042700_20210903123348.nc',
 'noaa-nesdis-tcprimed-pds/v01r01/final/2021/AL/09/TCPRIMED_v01r01-final_AL092021_GMI_GPM_042705_20210903203646.nc',
 'noaa-nesdis-tcprimed-pds/v01r01/final/2021/AL/09/TCPRIMED_v01r01-final_AL092021_GMI_GPM_042716_20210904131650.nc',
 'noaa-nesdis-tcprimed-pds/v01r01/final/2021/AL/09/TCPRIMED_v01r01-final_AL092021_MHS_METOPB_046391_20210827024423.nc',
 'noaa-nesdis-tcprimed-pds/v01r01/final/2021/AL/09/TCPRIMED_v01r01-final_AL092021_MHS_METOPB_046398_20210827151258.nc',
 'noaa-nesdis-tcprimed-pds/v01r01/final/2021/AL/09/TCPRIMED_v01r01-final_AL092021_MHS_METOPB_046405_20210828022426.nc',
 'noaa-nesdis-tcprimed-pds/v01r01/final/2021/AL/09/TCPRIMED_v01r01-final_AL092021_MHS_METOPB_046412_20210828145108.nc',
 'noaa-nesdis-tcprimed-pds/v01r01/final/2021/AL/09/TCPRIMED_v01r01-final_AL092021_MHS_METOPB_046420_20210829034551.nc',
 'noaa-nesdis-tcprimed-pds/v01r01/final/2021/AL/09/TCPRIMED_v01r01-final_AL092021_MHS_METOPB_046427_20210829160945.nc',
 'noaa-nesdis-tcprimed-pds/v01r01/final/2021/AL/09/TCPRIMED_v01r01-final_AL092021_MHS_METOPB_046434_20210830032556.nc',
 'noaa-nesdis-tcprimed-pds/v01r01/final/2021/AL/09/TCPRIMED_v01r01-final_AL092021_MHS_METOPB_046441_20210830154807.nc',
 'noaa-nesdis-tcprimed-pds/v01r01/final/2021/AL/09/TCPRIMED_v01r01-final_AL092021_MHS_METOPB_046448_20210831030558.nc',
 'noaa-nesdis-tcprimed-pds/v01r01/final/2021/AL/09/TCPRIMED_v01r01-final_AL092021_MHS_METOPB_046455_20210831152625.nc',
 'noaa-nesdis-tcprimed-pds/v01r01/final/2021/AL/09/TCPRIMED_v01r01-final_AL092021_MHS_METOPB_046462_20210901024545.nc',
 'noaa-nesdis-tcprimed-pds/v01r01/final/2021/AL/09/TCPRIMED_v01r01-final_AL092021_MHS_METOPB_046469_20210901150444.nc',
 'noaa-nesdis-tcprimed-pds/v01r01/final/2021/AL/09/TCPRIMED_v01r01-final_AL092021_MHS_METOPB_046476_20210902022532.nc',
 'noaa-nesdis-tcprimed-pds/v01r01/final/2021/AL/09/TCPRIMED_v01r01-final_AL092021_MHS_METOPB_046483_20210902144236.nc',
 'noaa-nesdis-tcprimed-pds/v01r01/final/2021/AL/09/TCPRIMED_v01r01-final_AL092021_MHS_METOPB_046489_20210903002531.nc',
 'noaa-nesdis-tcprimed-pds/v01r01/final/2021/AL/09/TCPRIMED_v01r01-final_AL092021_MHS_METOPB_046490_20210903020555.nc',
 'noaa-nesdis-tcprimed-pds/v01r01/final/2021/AL/09/TCPRIMED_v01r01-final_AL092021_MHS_METOPB_046497_20210903141955.nc',
 'noaa-nesdis-tcprimed-pds/v01r01/final/2021/AL/09/TCPRIMED_v01r01-final_AL092021_MHS_METOPB_046503_20210904000537.nc',
 'noaa-nesdis-tcprimed-pds/v01r01/final/2021/AL/09/TCPRIMED_v01r01-final_AL092021_MHS_METOPB_046504_20210904014558.nc',
 'noaa-nesdis-tcprimed-pds/v01r01/final/2021/AL/09/TCPRIMED_v01r01-final_AL092021_MHS_METOPB_046511_20210904135905.nc',
 'noaa-nesdis-tcprimed-pds/v01r01/final/2021/AL/09/TCPRIMED_v01r01-final_AL092021_MHS_METOPC_014541_20210826144630.nc',
 'noaa-nesdis-tcprimed-pds/v01r01/final/2021/AL/09/TCPRIMED_v01r01-final_AL092021_MHS_METOPC_014563_20210828031710.nc',
 'noaa-nesdis-tcprimed-pds/v01r01/final/2021/AL/09/TCPRIMED_v01r01-final_AL092021_MHS_METOPC_014570_20210828154310.nc',
 'noaa-nesdis-tcprimed-pds/v01r01/final/2021/AL/09/TCPRIMED_v01r01-final_AL092021_MHS_METOPC_014577_20210829025739.nc',
 'noaa-nesdis-tcprimed-pds/v01r01/final/2021/AL/09/TCPRIMED_v01r01-final_AL092021_MHS_METOPC_014584_20210829152129.nc',
 'noaa-nesdis-tcprimed-pds/v01r01/final/2021/AL/09/TCPRIMED_v01r01-final_AL092021_MHS_METOPC_014591_20210830023729.nc',
 'noaa-nesdis-tcprimed-pds/v01r01/final/2021/AL/09/TCPRIMED_v01r01-final_AL092021_MHS_METOPC_014599_20210830164025.nc',
 'noaa-nesdis-tcprimed-pds/v01r01/final/2021/AL/09/TCPRIMED_v01r01-final_AL092021_MHS_METOPC_014613_20210831161838.nc',
 'noaa-nesdis-tcprimed-pds/v01r01/final/2021/AL/09/TCPRIMED_v01r01-final_AL092021_MHS_METOPC_014619_20210901015726.nc',
 'noaa-nesdis-tcprimed-pds/v01r01/final/2021/AL/09/TCPRIMED_v01r01-final_AL092021_MHS_METOPC_014627_20210901155622.nc',
 'noaa-nesdis-tcprimed-pds/v01r01/final/2021/AL/09/TCPRIMED_v01r01-final_AL092021_MHS_METOPC_014633_20210902013720.nc',
 'noaa-nesdis-tcprimed-pds/v01r01/final/2021/AL/09/TCPRIMED_v01r01-final_AL092021_MHS_METOPC_014640_20210902135413.nc',
 'noaa-nesdis-tcprimed-pds/v01r01/final/2021/AL/09/TCPRIMED_v01r01-final_AL092021_MHS_METOPC_014647_20210903011733.nc',
 'noaa-nesdis-tcprimed-pds/v01r01/final/2021/AL/09/TCPRIMED_v01r01-final_AL092021_MHS_METOPC_014654_20210903133131.nc',
 'noaa-nesdis-tcprimed-pds/v01r01/final/2021/AL/09/TCPRIMED_v01r01-final_AL092021_MHS_METOPC_014655_20210903151141.nc',
 'noaa-nesdis-tcprimed-pds/v01r01/final/2021/AL/09/TCPRIMED_v01r01-final_AL092021_MHS_METOPC_014661_20210904005733.nc',
 'noaa-nesdis-tcprimed-pds/v01r01/final/2021/AL/09/TCPRIMED_v01r01-final_AL092021_MHS_METOPC_014669_20210904145120.nc',
 'noaa-nesdis-tcprimed-pds/v01r01/final/2021/AL/09/TCPRIMED_v01r01-final_AL092021_MHS_NOAA19_064680_20210826115749.nc',
 'noaa-nesdis-tcprimed-pds/v01r01/final/2021/AL/09/TCPRIMED_v01r01-final_AL092021_MHS_NOAA19_064688_20210827005237.nc',
 'noaa-nesdis-tcprimed-pds/v01r01/final/2021/AL/09/TCPRIMED_v01r01-final_AL092021_MHS_NOAA19_064695_20210827132621.nc',
 'noaa-nesdis-tcprimed-pds/v01r01/final/2021/AL/09/TCPRIMED_v01r01-final_AL092021_MHS_NOAA19_064702_20210828004203.nc',
 'noaa-nesdis-tcprimed-pds/v01r01/final/2021/AL/09/TCPRIMED_v01r01-final_AL092021_MHS_NOAA19_064709_20210828131320.nc',
 'noaa-nesdis-tcprimed-pds/v01r01/final/2021/AL/09/TCPRIMED_v01r01-final_AL092021_MHS_NOAA19_064716_20210829003131.nc',
 'noaa-nesdis-tcprimed-pds/v01r01/final/2021/AL/09/TCPRIMED_v01r01-final_AL092021_MHS_NOAA19_064723_20210829130029.nc',
 'noaa-nesdis-tcprimed-pds/v01r01/final/2021/AL/09/TCPRIMED_v01r01-final_AL092021_MHS_NOAA19_064730_20210830002037.nc',
 'noaa-nesdis-tcprimed-pds/v01r01/final/2021/AL/09/TCPRIMED_v01r01-final_AL092021_MHS_NOAA19_064737_20210830124749.nc',
 'noaa-nesdis-tcprimed-pds/v01r01/final/2021/AL/09/TCPRIMED_v01r01-final_AL092021_MHS_NOAA19_064744_20210831000939.nc',
 'noaa-nesdis-tcprimed-pds/v01r01/final/2021/AL/09/TCPRIMED_v01r01-final_AL092021_MHS_NOAA19_064751_20210831123504.nc',
 'noaa-nesdis-tcprimed-pds/v01r01/final/2021/AL/09/TCPRIMED_v01r01-final_AL092021_MHS_NOAA19_064758_20210831235824.nc',
 'noaa-nesdis-tcprimed-pds/v01r01/final/2021/AL/09/TCPRIMED_v01r01-final_AL092021_MHS_NOAA19_064765_20210901122208.nc',
 'noaa-nesdis-tcprimed-pds/v01r01/final/2021/AL/09/TCPRIMED_v01r01-final_AL092021_MHS_NOAA19_064772_20210901234717.nc',
 'noaa-nesdis-tcprimed-pds/v01r01/final/2021/AL/09/TCPRIMED_v01r01-final_AL092021_MHS_NOAA19_064779_20210902120856.nc',
 'noaa-nesdis-tcprimed-pds/v01r01/final/2021/AL/09/TCPRIMED_v01r01-final_AL092021_MHS_NOAA19_064785_20210902215533.nc',
 'noaa-nesdis-tcprimed-pds/v01r01/final/2021/AL/09/TCPRIMED_v01r01-final_AL092021_MHS_NOAA19_064786_20210902233640.nc',
 'noaa-nesdis-tcprimed-pds/v01r01/final/2021/AL/09/TCPRIMED_v01r01-final_AL092021_MHS_NOAA19_064793_20210903115515.nc',
 'noaa-nesdis-tcprimed-pds/v01r01/final/2021/AL/09/TCPRIMED_v01r01-final_AL092021_MHS_NOAA19_064799_20210903214432.nc',
 'noaa-nesdis-tcprimed-pds/v01r01/final/2021/AL/09/TCPRIMED_v01r01-final_AL092021_MHS_NOAA19_064800_20210903232541.nc',
 'noaa-nesdis-tcprimed-pds/v01r01/final/2021/AL/09/TCPRIMED_v01r01-final_AL092021_MHS_NOAA19_064807_20210904114320.nc',
 'noaa-nesdis-tcprimed-pds/v01r01/final/2021/AL/09/TCPRIMED_v01r01-final_AL092021_SSMIS_F16_092133_20210826093453.nc',
 'noaa-nesdis-tcprimed-pds/v01r01/final/2021/AL/09/TCPRIMED_v01r01-final_AL092021_SSMIS_F16_092155_20210827221708.nc',
 'noaa-nesdis-tcprimed-pds/v01r01/final/2021/AL/09/TCPRIMED_v01r01-final_AL092021_SSMIS_F16_092162_20210828104819.nc',
 'noaa-nesdis-tcprimed-pds/v01r01/final/2021/AL/09/TCPRIMED_v01r01-final_AL092021_SSMIS_F16_092169_20210828220543.nc',
 'noaa-nesdis-tcprimed-pds/v01r01/final/2021/AL/09/TCPRIMED_v01r01-final_AL092021_SSMIS_F16_092176_20210829103402.nc',
 'noaa-nesdis-tcprimed-pds/v01r01/final/2021/AL/09/TCPRIMED_v01r01-final_AL092021_SSMIS_F16_092183_20210829215334.nc',
 'noaa-nesdis-tcprimed-pds/v01r01/final/2021/AL/09/TCPRIMED_v01r01-final_AL092021_SSMIS_F16_092190_20210830102005.nc',
 'noaa-nesdis-tcprimed-pds/v01r01/final/2021/AL/09/TCPRIMED_v01r01-final_AL092021_SSMIS_F16_092197_20210830214126.nc',
 'noaa-nesdis-tcprimed-pds/v01r01/final/2021/AL/09/TCPRIMED_v01r01-final_AL092021_SSMIS_F16_092211_20210831212910.nc',
 'noaa-nesdis-tcprimed-pds/v01r01/final/2021/AL/09/TCPRIMED_v01r01-final_AL092021_SSMIS_F16_092218_20210901095205.nc',
 'noaa-nesdis-tcprimed-pds/v01r01/final/2021/AL/09/TCPRIMED_v01r01-final_AL092021_SSMIS_F16_092225_20210901211634.nc',
 'noaa-nesdis-tcprimed-pds/v01r01/final/2021/AL/09/TCPRIMED_v01r01-final_AL092021_SSMIS_F16_092232_20210902093752.nc',
 'noaa-nesdis-tcprimed-pds/v01r01/final/2021/AL/09/TCPRIMED_v01r01-final_AL092021_SSMIS_F16_092239_20210902210504.nc',
 'noaa-nesdis-tcprimed-pds/v01r01/final/2021/AL/09/TCPRIMED_v01r01-final_AL092021_SSMIS_F16_092246_20210903092258.nc',
 'noaa-nesdis-tcprimed-pds/v01r01/final/2021/AL/09/TCPRIMED_v01r01-final_AL092021_SSMIS_F16_092252_20210903191120.nc',
 'noaa-nesdis-tcprimed-pds/v01r01/final/2021/AL/09/TCPRIMED_v01r01-final_AL092021_SSMIS_F16_092253_20210903205257.nc',
 'noaa-nesdis-tcprimed-pds/v01r01/final/2021/AL/09/TCPRIMED_v01r01-final_AL092021_SSMIS_F16_092260_20210904090937.nc',
 'noaa-nesdis-tcprimed-pds/v01r01/final/2021/AL/09/TCPRIMED_v01r01-final_AL092021_SSMIS_F16_092267_20210904203914.nc',
 'noaa-nesdis-tcprimed-pds/v01r01/final/2021/AL/09/TCPRIMED_v01r01-final_AL092021_SSMIS_F17_076430_20210827001653.nc',
 'noaa-nesdis-tcprimed-pds/v01r01/final/2021/AL/09/TCPRIMED_v01r01-final_AL092021_SSMIS_F17_076437_20210827124950.nc',
 'noaa-nesdis-tcprimed-pds/v01r01/final/2021/AL/09/TCPRIMED_v01r01-final_AL092021_SSMIS_F17_076444_20210828000503.nc',
 'noaa-nesdis-tcprimed-pds/v01r01/final/2021/AL/09/TCPRIMED_v01r01-final_AL092021_SSMIS_F17_076451_20210828123536.nc',
 'noaa-nesdis-tcprimed-pds/v01r01/final/2021/AL/09/TCPRIMED_v01r01-final_AL092021_SSMIS_F17_076458_20210828235246.nc',
 'noaa-nesdis-tcprimed-pds/v01r01/final/2021/AL/09/TCPRIMED_v01r01-final_AL092021_SSMIS_F17_076465_20210829122053.nc',
 'noaa-nesdis-tcprimed-pds/v01r01/final/2021/AL/09/TCPRIMED_v01r01-final_AL092021_SSMIS_F17_076472_20210829234012.nc',
 'noaa-nesdis-tcprimed-pds/v01r01/final/2021/AL/09/TCPRIMED_v01r01-final_AL092021_SSMIS_F17_076500_20210831231459.nc',
 'noaa-nesdis-tcprimed-pds/v01r01/final/2021/AL/09/TCPRIMED_v01r01-final_AL092021_SSMIS_F17_076514_20210901230202.nc',
 'noaa-nesdis-tcprimed-pds/v01r01/final/2021/AL/09/TCPRIMED_v01r01-final_AL092021_SSMIS_F17_076521_20210902112308.nc',
 'noaa-nesdis-tcprimed-pds/v01r01/final/2021/AL/09/TCPRIMED_v01r01-final_AL092021_SSMIS_F17_076528_20210902225006.nc',
 'noaa-nesdis-tcprimed-pds/v01r01/final/2021/AL/09/TCPRIMED_v01r01-final_AL092021_SSMIS_F17_076535_20210903110751.nc',
 'noaa-nesdis-tcprimed-pds/v01r01/final/2021/AL/09/TCPRIMED_v01r01-final_AL092021_SSMIS_F17_076542_20210903223735.nc',
 'noaa-nesdis-tcprimed-pds/v01r01/final/2021/AL/09/TCPRIMED_v01r01-final_AL092021_SSMIS_F17_076549_20210904105426.nc',
 'noaa-nesdis-tcprimed-pds/v01r01/final/2021/AL/09/TCPRIMED_v01r01-final_AL092021_SSMIS_F18_061144_20210826091734.nc',
 'noaa-nesdis-tcprimed-pds/v01r01/final/2021/AL/09/TCPRIMED_v01r01-final_AL092021_SSMIS_F18_061166_20210827220010.nc',
 'noaa-nesdis-tcprimed-pds/v01r01/final/2021/AL/09/TCPRIMED_v01r01-final_AL092021_SSMIS_F18_061173_20210828103131.nc',
 'noaa-nesdis-tcprimed-pds/v01r01/final/2021/AL/09/TCPRIMED_v01r01-final_AL092021_SSMIS_F18_061180_20210828214855.nc',
 'noaa-nesdis-tcprimed-pds/v01r01/final/2021/AL/09/TCPRIMED_v01r01-final_AL092021_SSMIS_F18_061187_20210829101728.nc',
 'noaa-nesdis-tcprimed-pds/v01r01/final/2021/AL/09/TCPRIMED_v01r01-final_AL092021_SSMIS_F18_061194_20210829213701.nc',
 'noaa-nesdis-tcprimed-pds/v01r01/final/2021/AL/09/TCPRIMED_v01r01-final_AL092021_SSMIS_F18_061208_20210830212505.nc',
 'noaa-nesdis-tcprimed-pds/v01r01/final/2021/AL/09/TCPRIMED_v01r01-final_AL092021_SSMIS_F18_061222_20210831211306.nc',
 'noaa-nesdis-tcprimed-pds/v01r01/final/2021/AL/09/TCPRIMED_v01r01-final_AL092021_SSMIS_F18_061229_20210901093618.nc',
 'noaa-nesdis-tcprimed-pds/v01r01/final/2021/AL/09/TCPRIMED_v01r01-final_AL092021_SSMIS_F18_061236_20210901210049.nc',
 'noaa-nesdis-tcprimed-pds/v01r01/final/2021/AL/09/TCPRIMED_v01r01-final_AL092021_SSMIS_F18_061243_20210902092219.nc',
 'noaa-nesdis-tcprimed-pds/v01r01/final/2021/AL/09/TCPRIMED_v01r01-final_AL092021_SSMIS_F18_061257_20210903090757.nc',
 'noaa-nesdis-tcprimed-pds/v01r01/final/2021/AL/09/TCPRIMED_v01r01-final_AL092021_SSMIS_F18_061264_20210903203740.nc',
 'noaa-nesdis-tcprimed-pds/v01r01/final/2021/AL/09/TCPRIMED_v01r01-final_AL092021_SSMIS_F18_061271_20210904085434.nc',
 'noaa-nesdis-tcprimed-pds/v01r01/final/2021/AL/09/TCPRIMED_v01r01-final_AL092021_SSMIS_F18_061278_20210904202415.nc',
 'noaa-nesdis-tcprimed-pds/v01r01/final/2021/AL/09/TCPRIMED_v01r01-final_AL092021_env_s20210826120000_e20210904180000.nc']

2. Read a TC PRIMED file with GPM-API#

Now let’s select the GMI overpass:

[ ]:
filepath = (
    "noaa-nesdis-tcprimed-pds/v01r01/final/2021/AL/09/TCPRIMED_v01r01-final_AL092021_GMI_GPM_042624_20210829151408.nc"
)

Using fsspec simplecache we can directly read the file from the cloud as if we would have downloaded it first on disk. We will use the gpm.open_granule_tcprimed function to open the file into a xarray.DataTree object compatible with GPM-API.

[ ]:
file = fsspec.open_local(
    f"simplecache::s3://{filepath}",
    s3={"anon": True},
    filecache={"cache_storage": "."},
)
dt = gpm.open_granule_tcprimed(file)
print(dt)
<xarray.DataTree>
Group: /
│   Attributes: (12/39)
│       title:                                                           Tropical...
│       summary:                                                         The Trop...
│       comment:                                                         TC PRIME...
│       Conventions:                                                     CF-1.11,...
│       id:                                                              TCPRIMED...
│       references:                                                      Razin, M...
│       ...                                                              ...
│       standard_name_vocabulary:                                        CF Stand...
│       automated_tropical_cyclone_forecasting_system_storm_identifier:  al092021
│       uuid:                                                            e9156a00...
│       data_groups:                                                     overpass...
│       history:                                                         Created ...
│       date_modified:                                                   2024-11-...
├── Group: /overpass_metadata
│       Dimensions:            (time: 1)
│       Coordinates:
│         * time               (time) datetime64[ns] 8B 2021-08-29T15:14:08
│       Data variables:
│           basin              (time) <U2 8B dask.array<chunksize=(1,), meta=np.ndarray>
│           cyclone_number     (time) int8 1B dask.array<chunksize=(1,), meta=np.ndarray>
│           season             (time) int16 2B dask.array<chunksize=(1,), meta=np.ndarray>
│           instrument_name    (time) <U3 12B dask.array<chunksize=(1,), meta=np.ndarray>
│           platform_name      (time) <U3 12B dask.array<chunksize=(1,), meta=np.ndarray>
│           granule_number     (time) <U6 24B dask.array<chunksize=(1,), meta=np.ndarray>
│           coverage_fraction  (time) float64 8B dask.array<chunksize=(1,), meta=np.ndarray>
│           env_time           (time) datetime64[ns] 8B dask.array<chunksize=(1,), meta=np.ndarray>
│       Attributes: (12/38)
│           title:                                                           Overpass...
│           summary:                                                         Tropical...
│           comment:
│           Conventions:                                                     CF-1.11,...
│           id:                                                              TCPRIMED...
│           source:                                                          1C-R.GPM...
│           ...                                                              ...
│           keywords:                                                        EARTH SC...
│           keywords_vocabulary:                                             GCMD:Glo...
│           standard_name_vocabulary:                                        CF Stand...
│           automated_tropical_cyclone_forecasting_system_storm_identifier:  al092021
│           uuid:                                                            e9156a00...
│           date_modified:                                                   2024-11-...
├── Group: /overpass_storm_metadata
│       Dimensions:                           (time: 1, intensity_change_periods: 9)
│       Coordinates:
│         * time                              (time) datetime64[ns] 8B 2021-08-29T15:...
│         * intensity_change_periods          (intensity_change_periods) timedelta64[ns] 72B ...
│       Data variables:
│           storm_latitude                    (time) float32 4B dask.array<chunksize=(1,), meta=np.ndarray>
│           storm_longitude                   (time) float32 4B dask.array<chunksize=(1,), meta=np.ndarray>
│           intensity                         (time) float32 4B dask.array<chunksize=(1,), meta=np.ndarray>
│           intensity_change_times            (intensity_change_periods) datetime64[ns] 72B dask.array<chunksize=(9,), meta=np.ndarray>
│           intensity_change                  (intensity_change_periods) float32 36B dask.array<chunksize=(9,), meta=np.ndarray>
│           central_min_pressure              (time) float32 4B dask.array<chunksize=(1,), meta=np.ndarray>
│           development_level                 (time) object 8B dask.array<chunksize=(1,), meta=np.ndarray>
│           distance_to_land                  (time) float32 4B dask.array<chunksize=(1,), meta=np.ndarray>
│           storm_speed                       (time) float64 8B dask.array<chunksize=(1,), meta=np.ndarray>
│           storm_heading                     (time) float64 8B dask.array<chunksize=(1,), meta=np.ndarray>
│           storm_speed_meridional_component  (time) float64 8B dask.array<chunksize=(1,), meta=np.ndarray>
│           storm_speed_zonal_component       (time) float64 8B dask.array<chunksize=(1,), meta=np.ndarray>
│       Attributes: (12/38)
│           title:                                                           Overpass...
│           summary:                                                         Tropical...
│           comment:
│           Conventions:                                                     CF-1.11,...
│           id:                                                              TCPRIMED...
│           source:
│           ...                                                              ...
│           keywords:                                                        EARTH SC...
│           keywords_vocabulary:                                             GCMD:Glo...
│           standard_name_vocabulary:                                        CF Stand...
│           automated_tropical_cyclone_forecasting_system_storm_identifier:  al092021
│           uuid:                                                            e9156a00...
│           date_modified:                                                   2024-11-...
├── Group: /passive_microwave
│   │   Dimensions:  (time: 1)
│   │   Coordinates:
│   │     * time     (time) datetime64[ns] 8B 2021-08-29T15:14:08
│   │   Attributes: (12/42)
│   │       title:                                                           NASA int...
│   │       summary:                                                         Tropical...
│   │       comment:                                                         NASA int...
│   │       Conventions:                                                     CF-1.11,...
│   │       id:                                                              TCPRIMED...
│   │       source:                                                          1C-R.GPM...
│   │       ...                                                              ...
│   │       platform:                                                        GPM
│   │       instrument:                                                      GMI
│   │       data_groups:                                                     S1 S2
│   │       automated_tropical_cyclone_forecasting_system_storm_identifier:  al092021
│   │       uuid:                                                            e9156a00...
│   │       date_modified:                                                   2024-11-...
│   ├── Group: /passive_microwave/S1
│   │       Dimensions:        (cross_track: 221, along_track: 153, pmw_frequency: 9)
│   │       Coordinates:
│   │           time           (along_track) datetime64[ns] 1kB dask.array<chunksize=(153,), meta=np.ndarray>
│   │           latitude       (cross_track, along_track) float32 135kB dask.array<chunksize=(221, 153), meta=np.ndarray>
│   │           longitude      (cross_track, along_track) float32 135kB dask.array<chunksize=(221, 153), meta=np.ndarray>
│   │         * pmw_frequency  (pmw_frequency) <U6 216B '10.65V' '10.65H' ... '89V' '89H'
│   │           crsWGS84       int64 8B 0
│   │       Dimensions without coordinates: cross_track, along_track
│   │       Data variables: (12/14)
│   │           x_c            (cross_track, along_track) float64 271kB dask.array<chunksize=(221, 153), meta=np.ndarray>
│   │           y_c            (cross_track, along_track) float64 271kB dask.array<chunksize=(221, 153), meta=np.ndarray>
│   │           angle_bins     (cross_track) int16 442B dask.array<chunksize=(221,), meta=np.ndarray>
│   │           surface_type   (cross_track, along_track) float32 135kB dask.array<chunksize=(221, 153), meta=np.ndarray>
│   │           TB_10.65V      (cross_track, along_track) float32 135kB dask.array<chunksize=(221, 153), meta=np.ndarray>
│   │           TB_10.65H      (cross_track, along_track) float32 135kB dask.array<chunksize=(221, 153), meta=np.ndarray>
│   │           ...             ...
│   │           TB_23.8V       (cross_track, along_track) float32 135kB dask.array<chunksize=(221, 153), meta=np.ndarray>
│   │           TB_36.64V      (cross_track, along_track) float32 135kB dask.array<chunksize=(221, 153), meta=np.ndarray>
│   │           TB_36.64H      (cross_track, along_track) float32 135kB dask.array<chunksize=(221, 153), meta=np.ndarray>
│   │           TB_89.0V       (cross_track, along_track) float32 135kB dask.array<chunksize=(221, 153), meta=np.ndarray>
│   │           TB_89.0H       (cross_track, along_track) float32 135kB dask.array<chunksize=(221, 153), meta=np.ndarray>
│   │           Tc             (cross_track, along_track, pmw_frequency) float32 1MB dask.array<chunksize=(221, 153, 1), meta=np.ndarray>
│   │       Attributes: (12/51)
│   │           title:                                                           NASA int...
│   │           summary:                                                         Tropical...
│   │           comment:                                                         NASA int...
│   │           Conventions:                                                     CF-1.11,...
│   │           id:                                                              TCPRIMED...
│   │           source:                                                          1C-R.GPM...
│   │           ...                                                              ...
│   │           time_coverage_start:                                             2021-08-...
│   │           time_coverage_end:                                               2021-08-...
│   │           automated_tropical_cyclone_forecasting_system_storm_identifier:  al092021
│   │           uuid:                                                            e9156a00...
│   │           date_modified:                                                   2024-11-...
│   │           gpm_api_product:                                                 1C-GMI
│   └── Group: /passive_microwave/S2
│           Dimensions:         (cross_track: 175, along_track: 154, pmw_frequency: 4)
│           Coordinates:
│               time            (along_track) datetime64[ns] 1kB dask.array<chunksize=(154,), meta=np.ndarray>
│               latitude        (cross_track, along_track) float32 108kB dask.array<chunksize=(175, 154), meta=np.ndarray>
│               longitude       (cross_track, along_track) float32 108kB dask.array<chunksize=(175, 154), meta=np.ndarray>
│             * pmw_frequency   (pmw_frequency) <U8 128B '166V' '166H' '183.31V3' '183.31V7'
│               crsWGS84        int64 8B 0
│           Dimensions without coordinates: cross_track, along_track
│           Data variables:
│               x_c             (cross_track, along_track) float64 216kB dask.array<chunksize=(175, 154), meta=np.ndarray>
│               y_c             (cross_track, along_track) float64 216kB dask.array<chunksize=(175, 154), meta=np.ndarray>
│               angle_bins      (cross_track) int16 350B dask.array<chunksize=(175,), meta=np.ndarray>
│               surface_type    (cross_track, along_track) float32 108kB dask.array<chunksize=(175, 154), meta=np.ndarray>
│               TB_166.0V       (cross_track, along_track) float32 108kB dask.array<chunksize=(175, 154), meta=np.ndarray>
│               TB_166.0H       (cross_track, along_track) float32 108kB dask.array<chunksize=(175, 154), meta=np.ndarray>
│               TB_183.31_3.0V  (cross_track, along_track) float32 108kB dask.array<chunksize=(175, 154), meta=np.ndarray>
│               TB_183.31_7.0V  (cross_track, along_track) float32 108kB dask.array<chunksize=(175, 154), meta=np.ndarray>
│               Tc              (cross_track, along_track, pmw_frequency) float32 431kB dask.array<chunksize=(175, 154, 1), meta=np.ndarray>
│           Attributes: (12/51)
│               title:                                                           NASA int...
│               summary:                                                         Tropical...
│               comment:                                                         NASA int...
│               Conventions:                                                     CF-1.11,...
│               id:                                                              TCPRIMED...
│               source:                                                          1C-R.GPM...
│               ...                                                              ...
│               time_coverage_start:                                             2021-08-...
│               time_coverage_end:                                               2021-08-...
│               automated_tropical_cyclone_forecasting_system_storm_identifier:  al092021
│               uuid:                                                            e9156a00...
│               date_modified:                                                   2024-11-...
│               gpm_api_product:                                                 1C-GMI
├── Group: /GPROF
│   │   Dimensions:            (time: 1)
│   │   Coordinates:
│   │     * time               (time) datetime64[ns] 8B 2021-08-29T15:14:08
│   │   Data variables:
│   │       availability_flag  (time) int64 8B dask.array<chunksize=(1,), meta=np.ndarray>
│   │   Attributes: (12/42)
│   │       title:                                                           NASA God...
│   │       summary:                                                         Tropical...
│   │       comment:                                                         NASA God...
│   │       Conventions:                                                     CF-1.11,...
│   │       id:                                                              TCPRIMED...
│   │       source:                                                          2A-CLIM....
│   │       ...                                                              ...
│   │       platform:                                                        GPM
│   │       instrument:                                                      GMI
│   │       automated_tropical_cyclone_forecasting_system_storm_identifier:  al092021
│   │       uuid:                                                            e9156a00...
│   │       data_groups:                                                     S1
│   │       date_modified:                                                   2024-11-...
│   └── Group: /GPROF/S1
│           Dimensions:                  (cross_track: 221, along_track: 153, height: 28)
│           Coordinates:
│               latitude                 (cross_track, along_track) float32 135kB dask.array<chunksize=(221, 153), meta=np.ndarray>
│               longitude                (cross_track, along_track) float32 135kB dask.array<chunksize=(221, 153), meta=np.ndarray>
│             * hgtTopLayer              (height) float32 112B 0.5 1.0 1.5 ... 17.0 18.0
│               crsWGS84                 int64 8B 0
│           Dimensions without coordinates: cross_track, along_track, height
│           Data variables: (12/15)
│               x_c                      (cross_track, along_track) float64 271kB dask.array<chunksize=(221, 153), meta=np.ndarray>
│               y_c                      (cross_track, along_track) float64 271kB dask.array<chunksize=(221, 153), meta=np.ndarray>
│               angle_bins               (cross_track) int16 442B dask.array<chunksize=(221,), meta=np.ndarray>
│               ScanTime                 (along_track) datetime64[ns] 1kB dask.array<chunksize=(153,), meta=np.ndarray>
│               surfacePrecipitation     (cross_track, along_track) float32 135kB dask.array<chunksize=(221, 153), meta=np.ndarray>
│               convectivePrecipitation  (cross_track, along_track) float32 135kB dask.array<chunksize=(221, 153), meta=np.ndarray>
│               ...                       ...
│               rainWaterContent         (cross_track, along_track, height) float32 4MB dask.array<chunksize=(221, 153, 28), meta=np.ndarray>
│               cloudWaterContent        (cross_track, along_track, height) float32 4MB dask.array<chunksize=(221, 153, 28), meta=np.ndarray>
│               snowWaterContent         (cross_track, along_track, height) float32 4MB dask.array<chunksize=(221, 153, 28), meta=np.ndarray>
│               probabilityOfPrecip      (cross_track, along_track) float64 271kB dask.array<chunksize=(221, 153), meta=np.ndarray>
│               qualityFlag              (cross_track, along_track) float64 271kB dask.array<chunksize=(221, 153), meta=np.ndarray>
│               surfaceTypeIndex         (cross_track, along_track) float64 271kB dask.array<chunksize=(221, 153), meta=np.ndarray>
│           Attributes: (12/55)
│               title:                                                           NASA God...
│               summary:                                                         Tropical...
│               comment:                                                         NASA God...
│               Conventions:                                                     CF-1.11,...
│               id:                                                              TCPRIMED...
│               source:                                                          2A-CLIM....
│               ...                                                              ...
│               time_coverage_start:                                             2021-08-...
│               time_coverage_end:                                               2021-08-...
│               automated_tropical_cyclone_forecasting_system_storm_identifier:  al092021
│               uuid:                                                            e9156a00...
│               date_modified:                                                   2024-11-...
│               gpm_api_product:                                                 2A-GMI
├── Group: /radar_radiometer
│   │   Dimensions:            (time: 1)
│   │   Coordinates:
│   │     * time               (time) datetime64[ns] 8B 2021-08-29T15:14:08
│   │   Data variables:
│   │       availability_flag  (time) int8 1B dask.array<chunksize=(1,), meta=np.ndarray>
│   │   Attributes: (12/42)
│   │       title:                                                           NASA Glo...
│   │       summary:                                                         Tropical...
│   │       comment:                                                         NASA Glo...
│   │       Conventions:                                                     CF-1.11,...
│   │       id:                                                              TCPRIMED...
│   │       source:                                                          2B.GPM.D...
│   │       ...                                                              ...
│   │       platform:                                                        GPM
│   │       instrument:                                                      DPRGMI
│   │       data_groups:                                                     KuGMI Ku...
│   │       automated_tropical_cyclone_forecasting_system_storm_identifier:  al092021
│   │       uuid:                                                            e9156a00...
│   │       date_modified:                                                   2024-11-...
│   ├── Group: /radar_radiometer/KuGMI
│   │       Dimensions:                     (cross_track: 49, along_track: 368, range: 88)
│   │       Coordinates:
│   │           latitude                    (cross_track, along_track) float32 72kB dask.array<chunksize=(49, 368), meta=np.ndarray>
│   │           longitude                   (cross_track, along_track) float32 72kB dask.array<chunksize=(49, 368), meta=np.ndarray>
│   │           height                      (cross_track, along_track, range) float32 6MB dask.array<chunksize=(25, 184, 44), meta=np.ndarray>
│   │           crsWGS84                    int64 8B 0
│   │       Dimensions without coordinates: cross_track, along_track, range
│   │       Data variables: (12/17)
│   │           x_c                         (cross_track, along_track) float64 144kB dask.array<chunksize=(49, 368), meta=np.ndarray>
│   │           y_c                         (cross_track, along_track) float64 144kB dask.array<chunksize=(49, 368), meta=np.ndarray>
│   │           angle_bins                  (cross_track) int16 98B dask.array<chunksize=(49,), meta=np.ndarray>
│   │           ScanTime                    (along_track) datetime64[ns] 3kB dask.array<chunksize=(368,), meta=np.ndarray>
│   │           correctedReflectFactor_Ku   (cross_track, along_track, range) float32 6MB dask.array<chunksize=(25, 184, 44), meta=np.ndarray>
│   │           nearSurfPrecipTotRate       (cross_track, along_track) float32 72kB dask.array<chunksize=(49, 368), meta=np.ndarray>
│   │           ...                          ...
│   │           precipLiqWaterCont          (cross_track, along_track, range) float32 6MB dask.array<chunksize=(25, 184, 44), meta=np.ndarray>
│   │           precipTotRate               (cross_track, along_track, range) float32 6MB dask.array<chunksize=(25, 184, 44), meta=np.ndarray>
│   │           precipTotRateSigma          (cross_track, along_track, range) float32 6MB dask.array<chunksize=(25, 184, 44), meta=np.ndarray>
│   │           precipLiqRate               (cross_track, along_track, range) float32 6MB dask.array<chunksize=(25, 184, 44), meta=np.ndarray>
│   │           mainprecipitationType       (cross_track, along_track) float32 72kB dask.array<chunksize=(49, 368), meta=np.ndarray>
│   │           surfaceType                 (cross_track, along_track) float64 144kB dask.array<chunksize=(49, 368), meta=np.ndarray>
│   │       Attributes: (12/54)
│   │           title:                                                           NASA Glo...
│   │           summary:                                                         Tropical...
│   │           comment:                                                         NASA Glo...
│   │           Conventions:                                                     CF-1.11,...
│   │           id:                                                              TCPRIMED...
│   │           source:                                                          2B.GPM.D...
│   │           ...                                                              ...
│   │           geospatial_vertical_units:                                       km
│   │           time_coverage_start:                                             2021-08-...
│   │           time_coverage_end:                                               2021-08-...
│   │           automated_tropical_cyclone_forecasting_system_storm_identifier:  al092021
│   │           uuid:                                                            e9156a00...
│   │           date_modified:                                                   2024-11-...
│   └── Group: /radar_radiometer/KuKaGMI
│           Dimensions:                     (cross_track: 49, along_track: 368, range: 88)
│           Coordinates:
│               latitude                    (cross_track, along_track) float32 72kB dask.array<chunksize=(49, 368), meta=np.ndarray>
│               longitude                   (cross_track, along_track) float32 72kB dask.array<chunksize=(49, 368), meta=np.ndarray>
│               height                      (cross_track, along_track, range) float32 6MB dask.array<chunksize=(25, 184, 44), meta=np.ndarray>
│               crsWGS84                    int64 8B 0
│           Dimensions without coordinates: cross_track, along_track, range
│           Data variables: (12/18)
│               x_c                         (cross_track, along_track) float64 144kB dask.array<chunksize=(49, 368), meta=np.ndarray>
│               y_c                         (cross_track, along_track) float64 144kB dask.array<chunksize=(49, 368), meta=np.ndarray>
│               angle_bins                  (cross_track) int16 98B dask.array<chunksize=(49,), meta=np.ndarray>
│               ScanTime                    (along_track) datetime64[ns] 3kB dask.array<chunksize=(368,), meta=np.ndarray>
│               correctedReflectFactor_Ka   (cross_track, along_track, range) float32 6MB dask.array<chunksize=(25, 184, 44), meta=np.ndarray>
│               correctedReflectFactor_Ku   (cross_track, along_track, range) float32 6MB dask.array<chunksize=(25, 184, 44), meta=np.ndarray>
│               ...                          ...
│               precipLiqWaterCont          (cross_track, along_track, range) float32 6MB dask.array<chunksize=(25, 184, 44), meta=np.ndarray>
│               precipTotRate               (cross_track, along_track, range) float32 6MB dask.array<chunksize=(25, 184, 44), meta=np.ndarray>
│               precipTotRateSigma          (cross_track, along_track, range) float32 6MB dask.array<chunksize=(25, 184, 44), meta=np.ndarray>
│               precipLiqRate               (cross_track, along_track, range) float32 6MB dask.array<chunksize=(25, 184, 44), meta=np.ndarray>
│               mainprecipitationType       (cross_track, along_track) float32 72kB dask.array<chunksize=(49, 368), meta=np.ndarray>
│               surfaceType                 (cross_track, along_track) float64 144kB dask.array<chunksize=(49, 368), meta=np.ndarray>
│           Attributes: (12/54)
│               title:                                                           NASA Glo...
│               summary:                                                         Tropical...
│               comment:                                                         NASA Glo...
│               Conventions:                                                     CF-1.11,...
│               id:                                                              TCPRIMED...
│               source:                                                          2B.GPM.D...
│               ...                                                              ...
│               geospatial_vertical_units:                                       km
│               time_coverage_start:                                             2021-08-...
│               time_coverage_end:                                               2021-08-...
│               automated_tropical_cyclone_forecasting_system_storm_identifier:  al092021
│               uuid:                                                            e9156a00...
│               date_modified:                                                   2024-11-...
└── Group: /infrared
        Dimensions:                                                       (time: 1,
                                                                           R5_time: 50,
                                                                           latitude: 480,
                                                                           longitude: 640,
                                                                           brightness_temperature_thresholds: 6,
                                                                           region: 1,
                                                                           regions: 2,
                                                                           radius: 30)
        Coordinates:
          * R5_time                                                       (R5_time) datetime64[ns] 400B ...
          * time                                                          (time) datetime64[ns] 8B ...
          * radius                                                        (radius) int16 60B ...
          * brightness_temperature_thresholds                             (brightness_temperature_thresholds) int16 12B ...
          * longitude                                                     (longitude) float32 3kB ...
            latitude                                                      (latitude) float32 2kB dask.array<chunksize=(480,), meta=np.ndarray>
            crsWGS84                                                      int64 8B 0
        Dimensions without coordinates: region, regions
        Data variables: (12/18)
            R5_availability_flag                                          (time) int64 8B dask.array<chunksize=(1,), meta=np.ndarray>
            R5                                                            (R5_time) float32 200B dask.array<chunksize=(50,), meta=np.ndarray>
            infrared_availability_flag                                    (time) int8 1B dask.array<chunksize=(1,), meta=np.ndarray>
            storm_latitude                                                (time) float32 4B dask.array<chunksize=(1,), meta=np.ndarray>
            storm_longitude                                               (time) float32 4B dask.array<chunksize=(1,), meta=np.ndarray>
            x_c                                                           (latitude, longitude) float64 2MB dask.array<chunksize=(480, 640), meta=np.ndarray>
            ...                                                            ...
            brightness_temperature_eye_mean                               (region) float32 4B dask.array<chunksize=(1,), meta=np.ndarray>
            brightness_temperature_mean_radial_profile                    (radius) float32 120B dask.array<chunksize=(30,), meta=np.ndarray>
            brightness_temperature_radial_profile_eye_maximum_radius      (region) float32 4B dask.array<chunksize=(1,), meta=np.ndarray>
            brightness_temperature_radial_profile_annulus_minimum         (region) float32 4B dask.array<chunksize=(1,), meta=np.ndarray>
            brightness_temperature_radial_profile_annulus_mean            (region) float32 4B dask.array<chunksize=(1,), meta=np.ndarray>
            brightness_temperature_radial_profile_annulus_minimum_radius  (region) float32 4B dask.array<chunksize=(1,), meta=np.ndarray>
        Attributes: (12/48)
            title:                                                           Infrared...
            summary:                                                         Tropical...
            comment:                                                         CIRA/RAM...
            Conventions:                                                     CF-1.11,...
            id:                                                              TCPRIMED...
            source:                                                          AL0921_2...
            ...                                                              ...
            geospatial_lon_min:                                              258.4
            geospatial_lon_max:                                              281.36
            geospatial_lon_units:                                            degrees_...
            automated_tropical_cyclone_forecasting_system_storm_identifier:  al092021
            uuid:                                                            e9156a00...
            date_modified:                                                   2024-11-...

The TC PRIMED DataTree contains the following nodes: overpass_metadata, overpass_storm_metadata, passive_microwave, infrared , GPROF and radar_radiometer.

Please note that the radar_radiometer node is only available for GMI and TMI sensor overpasses.

You can list the DataTree nodes with the following command:

[ ]:
list(dt)
['overpass_metadata',
 'overpass_storm_metadata',
 'passive_microwave',
 'GPROF',
 'radar_radiometer',
 'infrared']

Let’s start to have a look at the overpass metadata:

[ ]:
dt["overpass_metadata"].compute()
<xarray.DatasetView> Size: 83B
Dimensions:            (time: 1)
Coordinates:
  * time               (time) datetime64[ns] 8B 2021-08-29T15:14:08
Data variables:
    basin              (time) <U2 8B 'AL'
    cyclone_number     (time) int8 1B 9
    season             (time) int16 2B 2021
    instrument_name    (time) <U3 12B 'GMI'
    platform_name      (time) <U3 12B 'GPM'
    granule_number     (time) <U6 24B '042624'
    coverage_fraction  (time) float64 8B 73.31
    env_time           (time) datetime64[ns] 8B 2021-08-29T18:00:00
Attributes: (12/38)
    title:                                                           Overpass...
    summary:                                                         Tropical...
    comment:
    Conventions:                                                     CF-1.11,...
    id:                                                              TCPRIMED...
    source:                                                          1C-R.GPM...
    ...                                                              ...
    keywords:                                                        EARTH SC...
    keywords_vocabulary:                                             GCMD:Glo...
    standard_name_vocabulary:                                        CF Stand...
    automated_tropical_cyclone_forecasting_system_storm_identifier:  al092021
    uuid:                                                            e9156a00...
    date_modified:                                                   2024-11-...

and the overpass storm metadata:

[ ]:
dt["overpass_storm_metadata"].compute()
<xarray.DatasetView> Size: 248B
Dimensions:                           (time: 1, intensity_change_periods: 9)
Coordinates:
  * time                              (time) datetime64[ns] 8B 2021-08-29T15:...
  * intensity_change_periods          (intensity_change_periods) timedelta64[ns] 72B ...
Data variables:
    storm_latitude                    (time) float32 4B 28.89
    storm_longitude                   (time) float32 4B -90.08
    intensity                         (time) float32 4B 127.0
    intensity_change_times            (intensity_change_periods) datetime64[ns] 72B ...
    intensity_change                  (intensity_change_periods) float32 36B ...
    central_min_pressure              (time) float32 4B 931.0
    development_level                 (time) object 8B 'HU'
    distance_to_land                  (time) float32 4B 23.42
    storm_speed                       (time) float64 8B 4.9
    storm_heading                     (time) float64 8B 322.1
    storm_speed_meridional_component  (time) float64 8B 3.8
    storm_speed_zonal_component       (time) float64 8B -3.0
Attributes: (12/38)
    title:                                                           Overpass...
    summary:                                                         Tropical...
    comment:
    Conventions:                                                     CF-1.11,...
    id:                                                              TCPRIMED...
    source:
    ...                                                              ...
    keywords:                                                        EARTH SC...
    keywords_vocabulary:                                             GCMD:Glo...
    standard_name_vocabulary:                                        CF Stand...
    automated_tropical_cyclone_forecasting_system_storm_identifier:  al092021
    uuid:                                                            e9156a00...
    date_modified:                                                   2024-11-...

The overpass_metadata and overpass_storm_metadata simply contain information about the overpass and the storm, while the other DataTree nodes contains the satellite observations of the storm.

3. PMW Brightness Temperature data#

The passive_microwave node contains various scan_modes.

[ ]:
dt_pmw = dt["passive_microwave"]
print("Available scan_modes:", list(dt_pmw))
Available scan_modes: ['S1', 'S2']

Each scan_mode contains a xarray.Dataset object. You can extract a scan mode dataset with:

[ ]:
ds = dt_pmw["S1"].to_dataset()
ds
<xarray.Dataset> Size: 3MB
Dimensions:        (cross_track: 221, along_track: 153, pmw_frequency: 9)
Coordinates:
  * time           (along_track) datetime64[ns] 1kB dask.array<chunksize=(153,), meta=np.ndarray>
    latitude       (cross_track, along_track) float32 135kB dask.array<chunksize=(221, 153), meta=np.ndarray>
    longitude      (cross_track, along_track) float32 135kB dask.array<chunksize=(221, 153), meta=np.ndarray>
  * pmw_frequency  (pmw_frequency) <U6 216B '10.65V' '10.65H' ... '89V' '89H'
    crsWGS84       int64 8B 0
Dimensions without coordinates: cross_track, along_track
Data variables: (12/14)
    x_c            (cross_track, along_track) float64 271kB dask.array<chunksize=(221, 153), meta=np.ndarray>
    y_c            (cross_track, along_track) float64 271kB dask.array<chunksize=(221, 153), meta=np.ndarray>
    angle_bins     (cross_track) int16 442B dask.array<chunksize=(221,), meta=np.ndarray>
    surface_type   (cross_track, along_track) float32 135kB dask.array<chunksize=(221, 153), meta=np.ndarray>
    TB_10.65V      (cross_track, along_track) float32 135kB dask.array<chunksize=(221, 153), meta=np.ndarray>
    TB_10.65H      (cross_track, along_track) float32 135kB dask.array<chunksize=(221, 153), meta=np.ndarray>
    ...             ...
    TB_23.8V       (cross_track, along_track) float32 135kB dask.array<chunksize=(221, 153), meta=np.ndarray>
    TB_36.64V      (cross_track, along_track) float32 135kB dask.array<chunksize=(221, 153), meta=np.ndarray>
    TB_36.64H      (cross_track, along_track) float32 135kB dask.array<chunksize=(221, 153), meta=np.ndarray>
    TB_89.0V       (cross_track, along_track) float32 135kB dask.array<chunksize=(221, 153), meta=np.ndarray>
    TB_89.0H       (cross_track, along_track) float32 135kB dask.array<chunksize=(221, 153), meta=np.ndarray>
    Tc             (cross_track, along_track, pmw_frequency) float32 1MB dask.array<chunksize=(221, 153, 1), meta=np.ndarray>
Attributes: (12/51)
    title:                                                           NASA int...
    summary:                                                         Tropical...
    comment:                                                         NASA int...
    Conventions:                                                     CF-1.11,...
    id:                                                              TCPRIMED...
    source:                                                          1C-R.GPM...
    ...                                                              ...
    time_coverage_start:                                             2021-08-...
    time_coverage_end:                                               2021-08-...
    automated_tropical_cyclone_forecasting_system_storm_identifier:  al092021
    uuid:                                                            e9156a00...
    date_modified:                                                   2024-11-...
    gpm_api_product:                                                 1C-GMI

Be aware that the PMW scan_mode datasets are not collocated in space.

GPM-API provides a routine to collocate and merge all scan modes into a single xr.Dataset using nearest neighbor remapping.

[ ]:
ds_pmw = dt["passive_microwave"].gpm.regrid_pmw_l1(scan_mode_reference="S1")
ds_pmw = ds_pmw.compute()
ds_pmw
Fill value incompatible with integer data using 32767 instead.
<xarray.Dataset> Size: 5MB
Dimensions:         (cross_track: 221, along_track: 153, pmw_frequency: 13,
                     scan_mode: 2)
Coordinates:
    latitude        (cross_track, along_track) float32 135kB 24.6 24.7 ... 36.51
    longitude       (cross_track, along_track) float32 135kB -97.63 ... -79.65
  * pmw_frequency   (pmw_frequency) <U8 416B '10.65V' '10.65H' ... '183.31V7'
    crsWGS84        int64 8B 0
  * scan_mode       (scan_mode) <U2 16B 'S1' 'S2'
Dimensions without coordinates: cross_track, along_track
Data variables: (12/18)
    Tc              (cross_track, along_track, pmw_frequency) float32 2MB 201...
    x_c             (cross_track, along_track, scan_mode) float64 541kB -766....
    y_c             (cross_track, along_track, scan_mode) float64 541kB -454....
    angle_bins      (cross_track, along_track, scan_mode) int16 135kB 1 ... 3...
    surface_type    (cross_track, along_track, scan_mode) float32 271kB 0.0 ....
    TB_10.65V       (cross_track, along_track) float32 135kB 201.1 ... 289.3
    ...              ...
    TB_89.0V        (cross_track, along_track) float32 135kB 270.0 ... 290.6
    TB_89.0H        (cross_track, along_track) float32 135kB 242.1 ... 289.6
    TB_166.0V       (cross_track, along_track) float32 135kB nan nan ... nan nan
    TB_166.0H       (cross_track, along_track) float32 135kB nan nan ... nan nan
    TB_183.31_3.0V  (cross_track, along_track) float32 135kB nan nan ... nan nan
    TB_183.31_7.0V  (cross_track, along_track) float32 135kB nan nan ... nan nan
Attributes: (12/52)
    title:                                                           NASA int...
    summary:                                                         Tropical...
    comment:                                                         NASA int...
    Conventions:                                                     CF-1.11,...
    id:                                                              TCPRIMED...
    source:                                                          1C-R.GPM...
    ...                                                              ...
    time_coverage_end:                                               2021-08-...
    automated_tropical_cyclone_forecasting_system_storm_identifier:  al092021
    uuid:                                                            e9156a00...
    date_modified:                                                   2024-11-...
    gpm_api_product:                                                 1C-GMI
    ScanModes:                                                       ['S1', '...

GPM-API provides various tools to facilitate the visualization and analysis of the data.

To display a single PMW channel, you can use the gpm.plot_map function.

[ ]:
ds_pmw["TB_89.0V"].gpm.plot_map()
<cartopy.mpl.geocollection.GeoQuadMesh at 0x7f596c58a6d0>
../_images/tutorials_tutorial_TCPRIMED_27_1.png

You can also directly plot a single channel from the original TC PRIMED DataTree with:

[ ]:
dt["passive_microwave"]["S1"]["TB_89.0V"].gpm.plot_map()
<cartopy.mpl.geocollection.GeoQuadMesh at 0x7f596c167090>
../_images/tutorials_tutorial_TCPRIMED_29_1.png

GPM-API also provides FacetGrid capabilities allowing you to display multiple PMW channels in a single figure.

[ ]:
fc = ds_pmw["Tc"].gpm.plot_map(col="pmw_frequency", col_wrap=5)
fc.remove_title_dimension_prefix()  # remove default dimension prefix "pmw_frequency=" to each title
../_images/tutorials_tutorial_TCPRIMED_31_0.png

With GPM-API, you can also easily retrieve and visualize various Polarization Difference (PD) and Polarization Corrected Temperature (PCT).

[ ]:
# Retrieve PD
ds_pd = ds_pmw.gpm.retrieve("PD")
fc = ds_pd.to_array(dim="PD").gpm.plot_map(col="PD", col_wrap=2, vmin=0, vmax=20, cmap="icefire")
fc.remove_title_dimension_prefix()  # remove default dimension prefix "PD=" to each title
plt.show()
../_images/tutorials_tutorial_TCPRIMED_33_0.png
[ ]:
# Retrieve PCTs
ds_pct = ds_pmw.gpm.retrieve("PCT")

for var in ds_pct.data_vars:
    ds_pct[var].gpm.plot_map(cmap="rainbow_PuBr_r")
    plt.show()
../_images/tutorials_tutorial_TCPRIMED_34_0.png
../_images/tutorials_tutorial_TCPRIMED_34_1.png
../_images/tutorials_tutorial_TCPRIMED_34_2.png
../_images/tutorials_tutorial_TCPRIMED_34_3.png

To facilitate the scene interpretation, GPM-API also enables on-the-fly generation of a set of RGB composites.

[ ]:
# Retrieve RGB composites
ds_rgb = ds_pmw.gpm.retrieve("rgb_composites")
ds_rgb
<xarray.Dataset> Size: 4MB
Dimensions:            (cross_track: 221, along_track: 153, rgb: 3)
Coordinates:
    latitude           (cross_track, along_track) float32 135kB 24.6 ... 36.51
    longitude          (cross_track, along_track) float32 135kB -97.63 ... -7...
    pmw_frequency      <U8 32B '18.7V'
    crsWGS84           int64 8B 0
  * rgb                (rgb) <U1 12B 'r' 'g' 'b'
Dimensions without coordinates: cross_track, along_track
Data variables:
    10 + 18 GHz        (rgb, cross_track, along_track) float32 406kB 0.4232 ....
    19 + 23 GHz        (rgb, cross_track, along_track) float32 406kB 0.3156 ....
    36 + 89 GHz        (rgb, cross_track, along_track) float32 406kB 0.1959 ....
    165 + 183 GHz      (rgb, cross_track, along_track) float64 812kB nan ... nan
    36 + 88 + 165 GHz  (rgb, cross_track, along_track) float32 406kB nan ... ...
    NRL_37             (rgb, cross_track, along_track) float32 406kB 0.0 ... ...
    NRL_89             (rgb, cross_track, along_track) float32 406kB 0.005833...

The Naval Research Laboratory (NRL) 37 and 89 GHz composites are commonly used to analyze the structure of tropical cyclones.

[ ]:
ds_rgb["NRL_37"].gpm.plot_map(rgb="rgb")
ds_rgb["NRL_89"].gpm.plot_map(rgb="rgb")
<cartopy.mpl.geocollection.GeoQuadMesh at 0x7f596c5448d0>
../_images/tutorials_tutorial_TCPRIMED_38_1.png
../_images/tutorials_tutorial_TCPRIMED_38_2.png

All composites can be displayed in a single figure using the FacetGrid capabilities.

[ ]:
fc = ds_rgb.to_array(dim="composite").gpm.plot_map(col="composite", col_wrap=3, rgb="rgb")
fc.remove_title_dimension_prefix()  # remove default dimension prefix "composite=" to each title
plt.show()
../_images/tutorials_tutorial_TCPRIMED_40_0.png

4. GPROF PMW Precipitation Data#

The GPROF node contains the GPROF PMW precipitation estimates.

Here, we illustrate how GPM-API comes with a set of default colormap and colorbar settings, which enable quick analysis of all variables.

[ ]:
ds_gprof = dt["GPROF"]["S1"].to_dataset()

ds_gprof["surfacePrecipitation"].gpm.plot_map()
ds_gprof["surfaceTypeIndex"].gpm.plot_map()
ds_gprof["qualityFlag"].gpm.plot_map()
ds_gprof["probabilityOfPrecip"].gpm.plot_map()
ds_gprof["cloudWaterPath"].gpm.plot_map()
ds_gprof["iceWaterPath"].gpm.plot_map()
ds_gprof["rainWaterPath"].gpm.plot_map()
<cartopy.mpl.geocollection.GeoQuadMesh at 0x7f58e2c01f10>
../_images/tutorials_tutorial_TCPRIMED_43_1.png
../_images/tutorials_tutorial_TCPRIMED_43_2.png
../_images/tutorials_tutorial_TCPRIMED_43_3.png
../_images/tutorials_tutorial_TCPRIMED_43_4.png
../_images/tutorials_tutorial_TCPRIMED_43_5.png
../_images/tutorials_tutorial_TCPRIMED_43_6.png
../_images/tutorials_tutorial_TCPRIMED_43_7.png

5. CORRA Radar-Radiometer Data#

The radar_radiometer node contains a set of variables derived from the GPM L2B CORRA product. The most relevant variables are the 3D radar reflectivity and rain rate fields.

Let’s start by analyzing the near-surface fields:

[ ]:
ds_corra = dt["radar_radiometer"]["KuKaGMI"].to_dataset()
ds_corra["nearSurfPrecipTotRate"].gpm.plot_map()
ds_corra["mainprecipitationType"].gpm.plot_map()
ds_corra["correctedReflectFactor_Ku"].gpm.slice_range_at_height(
    2,
).gpm.plot_map()  # height is in km in TC PRIMED product !
<cartopy.mpl.geocollection.GeoQuadMesh at 0x7f58e3058690>
../_images/tutorials_tutorial_TCPRIMED_46_1.png
../_images/tutorials_tutorial_TCPRIMED_46_2.png
../_images/tutorials_tutorial_TCPRIMED_46_3.png

Now we can locate for example the location where maximum reflectivity has been observed by the radar and draw a cross-section in the cross-track direction:

[ ]:
isel_dict = ds_corra["correctedReflectFactor_Ku"].gpm.locate_max_value(
    return_isel_dict=True,
)  # Get indices where measured max reflectivity
ds_corra["correctedReflectFactor_Ku"].isel({"along_track": isel_dict["along_track"]}).gpm.plot_cross_section()
ds_corra["precipTotRate"].where(ds_corra["precipTotRate"] > 0).isel(
    {"along_track": isel_dict["along_track"]},
).gpm.plot_cross_section()
<matplotlib.collections.QuadMesh at 0x7f58eada10d0>
../_images/tutorials_tutorial_TCPRIMED_48_1.png
../_images/tutorials_tutorial_TCPRIMED_48_2.png

6. GEO IR Data#

The infrared node contains IR brightness temperature measured by VIS/IR imager onboard of a geostationary (GEO) satellite.

Now let’s display the infrared imagery acquired at about the time of the PMW sensor overpass:

[ ]:
ds_geo = dt["infrared"].to_dataset()
ds_geo["IRWIN"].gpm.plot_map()
<matplotlib.image.AxesImage at 0x7f58eaf4c450>
../_images/tutorials_tutorial_TCPRIMED_51_1.png

7. Blending GEO/PMW/RADAR Data#

Now let’s create advanced visualization blending data from various sensors:

[ ]:
# Blend PMW and RADAR
p = ds_gprof["surfacePrecipitation"].where(ds_gprof["surfacePrecipitation"] > 0.1).gpm.plot_map()
ds_corra["nearSurfPrecipTotRate"].gpm.plot_map(ax=p.axes, add_colorbar=False, add_gridlines=False, add_labels=False)
ds_geo["IRWIN"].gpm.plot_map(ax=p.axes, add_colorbar=False, add_gridlines=False, add_labels=False)
<matplotlib.image.AxesImage at 0x7f593021f590>
../_images/tutorials_tutorial_TCPRIMED_54_1.png
[ ]:
# Blend GPROF and GEO IR
da = ds_gprof["surfacePrecipitation"].where(ds_gprof["surfacePrecipitation"] > 0.25)
p = da.gpm.plot_map()
ds_geo["IRWIN"].gpm.plot_map(ax=p.axes, add_colorbar=False, add_gridlines=False, add_labels=False)
plt.show()
../_images/tutorials_tutorial_TCPRIMED_55_0.png
[ ]:
# Blend PMW RGB composites and GEO IR
p = ds_rgb["NRL_37"].gpm.plot_map(rgb="rgb")
ds_geo["IRWIN"].gpm.plot_map(ax=p.axes, add_colorbar=False, add_gridlines=False, add_labels=False)
plt.show()
../_images/tutorials_tutorial_TCPRIMED_56_0.png
[ ]:
p = ds_rgb["NRL_89"].gpm.plot_map(rgb="rgb")
ds_geo["IRWIN"].gpm.plot_map(ax=p.axes, add_colorbar=False, add_gridlines=False, add_labels=False)
plt.show()
../_images/tutorials_tutorial_TCPRIMED_57_0.png

We hope you liked this tutorial.

If you plan analyze data from other sensors, be aware that you will have to adjust the name of some variables according to the channels frequencies available on the sensor you are interested in. GPM-API will take care of the rest: collocating data, retrieve available PMW features and RGB composites as well as ease your data manipulations and visualization.

Please visit the following websites for more information regarding the TC PRIMED dataset: