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 the moment of his landfall in New Orlens.

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

[ ]:
import fsspec
import matplotlib.pyplot as plt

import gpm
/home/ghiggi/micromamba/envs/gpm-api-dev/lib/python3.11/site-packages/pyproj/__init__.py:89: UserWarning: pyproj unable to set database path.
  _pyproj_global_context_initialize()

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)

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-...
[ ]:
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 TC PRIMED DataTree contains the following nodes: 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']

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 0x7f51e4187610>
../_images/tutorials_tutorial_TCPRIMED_25_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 0x7f51e435a990>
../_images/tutorials_tutorial_TCPRIMED_27_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()
../_images/tutorials_tutorial_TCPRIMED_29_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()
plt.show()
../_images/tutorials_tutorial_TCPRIMED_31_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_32_0.png
../_images/tutorials_tutorial_TCPRIMED_32_1.png
../_images/tutorials_tutorial_TCPRIMED_32_2.png
../_images/tutorials_tutorial_TCPRIMED_32_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 0x7f51bc6814d0>
../_images/tutorials_tutorial_TCPRIMED_36_1.png
../_images/tutorials_tutorial_TCPRIMED_36_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()
plt.show()
../_images/tutorials_tutorial_TCPRIMED_38_0.png

4. GPROF PMW Precipitation Data#

The GPROF node contains the GPROF PMW precipitation estimates.

Here below we illustrate how GPM-API comes with a set of default colormap and colorbar settings which enable to quickly analyze 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 0x7f51425d9c90>
../_images/tutorials_tutorial_TCPRIMED_41_1.png
../_images/tutorials_tutorial_TCPRIMED_41_2.png
../_images/tutorials_tutorial_TCPRIMED_41_3.png
../_images/tutorials_tutorial_TCPRIMED_41_4.png
../_images/tutorials_tutorial_TCPRIMED_41_5.png
../_images/tutorials_tutorial_TCPRIMED_41_6.png
../_images/tutorials_tutorial_TCPRIMED_41_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 0x7f51423a92d0>
../_images/tutorials_tutorial_TCPRIMED_44_1.png
../_images/tutorials_tutorial_TCPRIMED_44_2.png
../_images/tutorials_tutorial_TCPRIMED_44_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)
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 0x7f51bc681190>
../_images/tutorials_tutorial_TCPRIMED_46_1.png
../_images/tutorials_tutorial_TCPRIMED_46_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 0x7f51bc3e1d10>
../_images/tutorials_tutorial_TCPRIMED_49_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 0x7f5142601450>
../_images/tutorials_tutorial_TCPRIMED_52_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_53_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_54_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_55_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: