Compare Sentinel-5P O3 profile against lidar¶
See also https://mpc-vdaf-server.tropomi.eu/o3-profile/o3-profile-offl-lidar/hohenpeissenberg
InĀ [1]:
import avl
import harp
InĀ [2]:
!ls s5p
S5P_RPRO_L2VOO3__PR_20220301T105407_20220301T123537_22701_03_020400_20230327T082409_hohenpeissenberg.nc S5P_RPRO_L2VOO3__PR_20220302T103512_20220302T121642_22715_03_020400_20230327T090149_hohenpeissenberg.nc S5P_RPRO_L2VOO3__PR_20220302T121642_20220302T135813_22716_03_020400_20230327T090515_hohenpeissenberg.nc S5P_RPRO_L2VOO3__PR_20220303T101617_20220303T115747_22729_03_020400_20230327T095858_hohenpeissenberg.nc S5P_RPRO_L2VOO3__PR_20220303T115747_20220303T133918_22730_03_020400_20230327T100556_hohenpeissenberg.nc S5P_RPRO_L2VOO3__PR_20220304T095722_20220304T113852_22743_03_020400_20230327T103558_hohenpeissenberg.nc S5P_RPRO_L2VOO3__PR_20220304T113852_20220304T132023_22744_03_020400_20230327T103559_hohenpeissenberg.nc S5P_RPRO_L2VOO3__PR_20220305T093827_20220305T111957_22757_03_020400_20230327T135024_hohenpeissenberg.nc S5P_RPRO_L2VOO3__PR_20220305T111957_20220305T130128_22758_03_020400_20230327T135027_hohenpeissenberg.nc S5P_RPRO_L2VOO3__PR_20220306T110102_20220306T124233_22772_03_020400_20230327T141034_hohenpeissenberg.nc S5P_RPRO_L2VOO3__PR_20220307T104207_20220307T122338_22786_03_020400_20230327T152826_hohenpeissenberg.nc S5P_RPRO_L2VOO3__PR_20220307T122338_20220307T140508_22787_03_020400_20230327T153835_hohenpeissenberg.nc S5P_RPRO_L2VOO3__PR_20220308T102312_20220308T120443_22800_03_020400_20230327T163258_hohenpeissenberg.nc S5P_RPRO_L2VOO3__PR_20220308T120443_20220308T134613_22801_03_020400_20230327T163259_hohenpeissenberg.nc S5P_RPRO_L2VOO3__PR_20220309T100417_20220309T114548_22814_03_020400_20230327T182105_hohenpeissenberg.nc S5P_RPRO_L2VOO3__PR_20220309T114548_20220309T132718_22815_03_020400_20230327T183749_hohenpeissenberg.nc S5P_RPRO_L2VOO3__PR_20220310T094523_20220310T112653_22828_03_020400_20230327T194148_hohenpeissenberg.nc S5P_RPRO_L2VOO3__PR_20220310T112653_20220310T130823_22829_03_020400_20230327T194150_hohenpeissenberg.nc S5P_RPRO_L2VOO3__PR_20220311T092628_20220311T110758_22842_03_020400_20230327T202924_hohenpeissenberg.nc S5P_RPRO_L2VOO3__PR_20220311T110758_20220311T124928_22843_03_020400_20230327T203249_hohenpeissenberg.nc S5P_RPRO_L2VOO3__PR_20220312T104903_20220312T123033_22857_03_020400_20230327T220025_hohenpeissenberg.nc S5P_RPRO_L2VOO3__PR_20220312T123033_20220312T141204_22858_03_020400_20230327T220354_hohenpeissenberg.nc S5P_RPRO_L2VOO3__PR_20220313T103008_20220313T121139_22871_03_020400_20230327T224112_hohenpeissenberg.nc S5P_RPRO_L2VOO3__PR_20220313T121139_20220313T135309_22872_03_020400_20230327T224114_hohenpeissenberg.nc S5P_RPRO_L2VOO3__PR_20220314T101113_20220314T115244_22885_03_020400_20230328T005951_hohenpeissenberg.nc S5P_RPRO_L2VOO3__PR_20220314T115244_20220314T133414_22886_03_020400_20230328T010334_hohenpeissenberg.nc S5P_RPRO_L2VOO3__PR_20220315T095218_20220315T113349_22899_03_020400_20230328T014736_hohenpeissenberg.nc S5P_RPRO_L2VOO3__PR_20220315T113349_20220315T131519_22900_03_020400_20230328T014737_hohenpeissenberg.nc S5P_RPRO_L2VOO3__PR_20220316T093323_20220316T111454_22913_03_020400_20230328T021825_hohenpeissenberg.nc S5P_RPRO_L2VOO3__PR_20220316T111454_20220316T125624_22914_03_020400_20230328T022146_hohenpeissenberg.nc S5P_RPRO_L2VOO3__PR_20220317T105559_20220317T123729_22928_03_020400_20230328T025225_hohenpeissenberg.nc S5P_RPRO_L2VOO3__PR_20220318T103704_20220318T121834_22942_03_020400_20230328T052500_hohenpeissenberg.nc S5P_RPRO_L2VOO3__PR_20220318T121834_20220318T140005_22943_03_020400_20230328T053138_hohenpeissenberg.nc S5P_RPRO_L2VOO3__PR_20220319T101809_20220319T115939_22956_03_020400_20230328T070159_hohenpeissenberg.nc S5P_RPRO_L2VOO3__PR_20220319T115939_20220319T134110_22957_03_020400_20230328T070522_hohenpeissenberg.nc S5P_RPRO_L2VOO3__PR_20220320T095914_20220320T114045_22970_03_020400_20230328T085649_hohenpeissenberg.nc S5P_RPRO_L2VOO3__PR_20220320T114045_20220320T132215_22971_03_020400_20230328T090113_hohenpeissenberg.nc S5P_RPRO_L2VOO3__PR_20220321T094019_20220321T112150_22984_03_020400_20230328T094324_hohenpeissenberg.nc S5P_RPRO_L2VOO3__PR_20220321T112150_20220321T130320_22985_03_020400_20230328T094645_hohenpeissenberg.nc S5P_RPRO_L2VOO3__PR_20220322T110255_20220322T124425_22999_03_020400_20230328T104017_hohenpeissenberg.nc S5P_RPRO_L2VOO3__PR_20220323T104400_20220323T122530_23013_03_020400_20230328T111158_hohenpeissenberg.nc S5P_RPRO_L2VOO3__PR_20220323T122530_20220323T140700_23014_03_020400_20230328T111159_hohenpeissenberg.nc S5P_RPRO_L2VOO3__PR_20220324T102505_20220324T120635_23027_03_020400_20230328T120552_hohenpeissenberg.nc S5P_RPRO_L2VOO3__PR_20220324T120635_20220324T134805_23028_03_020400_20230328T120915_hohenpeissenberg.nc S5P_RPRO_L2VOO3__PR_20220325T100610_20220325T114740_23041_03_020400_20230328T131613_hohenpeissenberg.nc S5P_RPRO_L2VOO3__PR_20220325T114740_20220325T132910_23042_03_020400_20230328T131933_hohenpeissenberg.nc S5P_RPRO_L2VOO3__PR_20220326T094715_20220326T112845_23055_03_020400_20230328T141249_hohenpeissenberg.nc S5P_RPRO_L2VOO3__PR_20220326T112845_20220326T131015_23056_03_020400_20230328T141934_hohenpeissenberg.nc S5P_RPRO_L2VOO3__PR_20220327T092820_20220327T110950_23069_03_020400_20230328T160258_hohenpeissenberg.nc S5P_RPRO_L2VOO3__PR_20220327T110950_20220327T125120_23070_03_020400_20230328T162931_hohenpeissenberg.nc S5P_RPRO_L2VOO3__PR_20220328T105055_20220328T123225_23084_03_020400_20230328T181555_hohenpeissenberg.nc S5P_RPRO_L2VOO3__PR_20220328T123225_20220328T141356_23085_03_020400_20230328T182234_hohenpeissenberg.nc S5P_RPRO_L2VOO3__PR_20220329T103200_20220329T121330_23098_03_020400_20230328T194851_hohenpeissenberg.nc S5P_RPRO_L2VOO3__PR_20220329T121330_20220329T135501_23099_03_020400_20230328T195531_hohenpeissenberg.nc S5P_RPRO_L2VOO3__PR_20220330T101305_20220330T115435_23112_03_020400_20230328T204156_hohenpeissenberg.nc S5P_RPRO_L2VOO3__PR_20220330T115435_20220330T133605_23113_03_020400_20230328T204515_hohenpeissenberg.nc S5P_RPRO_L2VOO3__PR_20220331T095410_20220331T113540_23126_03_020400_20230328T213145_hohenpeissenberg.nc S5P_RPRO_L2VOO3__PR_20220331T113540_20220331T131710_23127_03_020400_20230328T213146_hohenpeissenberg.nc S5P_RPRO_L2VOO3__PR_20220401T093514_20220401T111645_23140_03_020400_20230328T220509_hohenpeissenberg.nc S5P_RPRO_L2VOO3__PR_20220401T111645_20220401T125815_23141_03_020400_20230328T220510_hohenpeissenberg.nc S5P_RPRO_L2VOO3__PR_20220402T105750_20220402T123920_23155_03_020400_20230328T230514_hohenpeissenberg.nc S5P_RPRO_L2VOO3__PR_20220403T103854_20220403T122025_23169_03_020400_20230329T000840_hohenpeissenberg.nc S5P_RPRO_L2VOO3__PR_20220403T122025_20220403T140155_23170_03_020400_20230329T001517_hohenpeissenberg.nc S5P_RPRO_L2VOO3__PR_20220404T101959_20220404T120129_23183_03_020400_20230329T015819_hohenpeissenberg.nc S5P_RPRO_L2VOO3__PR_20220404T120129_20220404T134300_23184_03_020400_20230329T020150_hohenpeissenberg.nc S5P_RPRO_L2VOO3__PR_20220405T100104_20220405T114234_23197_03_020400_20230329T035147_hohenpeissenberg.nc S5P_RPRO_L2VOO3__PR_20220405T114234_20220405T132404_23198_03_020400_20230329T035821_hohenpeissenberg.nc S5P_RPRO_L2VOO3__PR_20220406T094208_20220406T112339_23211_03_020400_20230329T045628_hohenpeissenberg.nc S5P_RPRO_L2VOO3__PR_20220406T112339_20220406T130509_23212_03_020400_20230329T045948_hohenpeissenberg.nc S5P_RPRO_L2VOO3__PR_20220407T110443_20220407T124613_23226_03_020400_20230329T063625_hohenpeissenberg.nc S5P_RPRO_L2VOO3__PR_20220408T104548_20220408T122718_23240_03_020400_20230329T071640_hohenpeissenberg.nc S5P_RPRO_L2VOO3__PR_20220408T122718_20220408T140848_23241_03_020400_20230329T071959_hohenpeissenberg.nc S5P_RPRO_L2VOO3__PR_20220409T102652_20220409T120822_23254_03_020400_20230329T153645_hohenpeissenberg.nc S5P_RPRO_L2VOO3__PR_20220409T120822_20220409T134953_23255_03_020400_20230329T153647_hohenpeissenberg.nc S5P_RPRO_L2VOO3__PR_20220410T100756_20220410T114927_23268_03_020400_20230329T153802_hohenpeissenberg.nc S5P_RPRO_L2VOO3__PR_20220410T114927_20220410T133057_23269_03_020400_20230329T153817_hohenpeissenberg.nc S5P_RPRO_L2VOO3__PR_20220411T094901_20220411T113031_23282_03_020400_20230329T153934_hohenpeissenberg.nc S5P_RPRO_L2VOO3__PR_20220411T113031_20220411T131201_23283_03_020400_20230329T153935_hohenpeissenberg.nc S5P_RPRO_L2VOO3__PR_20220412T093005_20220412T111135_23296_03_020400_20230329T154106_hohenpeissenberg.nc S5P_RPRO_L2VOO3__PR_20220412T111135_20220412T125305_23297_03_020400_20230329T154109_hohenpeissenberg.nc S5P_RPRO_L2VOO3__PR_20220413T105239_20220413T123410_23311_03_020400_20230329T154238_hohenpeissenberg.nc S5P_RPRO_L2VOO3__PR_20220413T123410_20220413T141540_23312_03_020400_20230329T154239_hohenpeissenberg.nc S5P_RPRO_L2VOO3__PR_20220414T103343_20220414T121514_23325_03_020400_20230329T154358_hohenpeissenberg.nc S5P_RPRO_L2VOO3__PR_20220414T121514_20220414T135644_23326_03_020400_20230329T154414_hohenpeissenberg.nc S5P_RPRO_L2VOO3__PR_20220415T101447_20220415T115618_23339_03_020400_20230329T154537_hohenpeissenberg.nc S5P_RPRO_L2VOO3__PR_20220415T115618_20220415T133748_23340_03_020400_20230329T154539_hohenpeissenberg.nc S5P_RPRO_L2VOO3__PR_20220416T095551_20220416T113722_23353_03_020400_20230329T162735_hohenpeissenberg.nc S5P_RPRO_L2VOO3__PR_20220416T113722_20220416T131852_23354_03_020400_20230329T163056_hohenpeissenberg.nc S5P_RPRO_L2VOO3__PR_20220417T093655_20220417T111826_23367_03_020400_20230329T180416_hohenpeissenberg.nc S5P_RPRO_L2VOO3__PR_20220417T111826_20220417T125956_23368_03_020400_20230329T181052_hohenpeissenberg.nc S5P_RPRO_L2VOO3__PR_20220418T105929_20220418T124100_23382_03_020400_20230330T011121_hohenpeissenberg.nc S5P_RPRO_L2VOO3__PR_20220419T104033_20220419T122203_23396_03_020400_20230330T013742_hohenpeissenberg.nc S5P_RPRO_L2VOO3__PR_20220419T122203_20220419T140334_23397_03_020400_20230330T014059_hohenpeissenberg.nc S5P_RPRO_L2VOO3__PR_20220420T102137_20220420T120307_23410_03_020400_20230330T020415_hohenpeissenberg.nc S5P_RPRO_L2VOO3__PR_20220420T120307_20220420T134437_23411_03_020400_20230330T020733_hohenpeissenberg.nc S5P_RPRO_L2VOO3__PR_20220421T100241_20220421T114411_23424_03_020400_20230330T023355_hohenpeissenberg.nc S5P_RPRO_L2VOO3__PR_20220421T114411_20220421T132541_23425_03_020400_20230330T023714_hohenpeissenberg.nc S5P_RPRO_L2VOO3__PR_20220422T094344_20220422T112514_23438_03_020400_20230330T025031_hohenpeissenberg.nc S5P_RPRO_L2VOO3__PR_20220422T112514_20220422T130645_23439_03_020400_20230330T025349_hohenpeissenberg.nc S5P_RPRO_L2VOO3__PR_20220423T110618_20220423T124748_23453_03_020400_20230330T031713_hohenpeissenberg.nc S5P_RPRO_L2VOO3__PR_20220424T104721_20220424T122851_23467_03_020400_20230330T034703_hohenpeissenberg.nc S5P_RPRO_L2VOO3__PR_20220424T122851_20220424T141022_23468_03_020400_20230330T035336_hohenpeissenberg.nc S5P_RPRO_L2VOO3__PR_20220425T102825_20220425T120955_23481_03_020400_20230330T041702_hohenpeissenberg.nc S5P_RPRO_L2VOO3__PR_20220425T120955_20220425T135125_23482_03_020400_20230330T041704_hohenpeissenberg.nc S5P_RPRO_L2VOO3__PR_20220426T100928_20220426T115058_23495_03_020400_20230330T061225_hohenpeissenberg.nc S5P_RPRO_L2VOO3__PR_20220426T115058_20220426T133228_23496_03_020400_20230330T063207_hohenpeissenberg.nc S5P_RPRO_L2VOO3__PR_20220427T095031_20220427T113201_23509_03_020400_20230330T104501_hohenpeissenberg.nc S5P_RPRO_L2VOO3__PR_20220427T113201_20220427T131331_23510_03_020400_20230330T104503_hohenpeissenberg.nc S5P_RPRO_L2VOO3__PR_20220428T093134_20220428T111304_23523_03_020400_20230330T112451_hohenpeissenberg.nc S5P_RPRO_L2VOO3__PR_20220428T111304_20220428T125434_23524_03_020400_20230330T112452_hohenpeissenberg.nc S5P_RPRO_L2VOO3__PR_20220429T105407_20220429T123537_23538_03_020400_20230330T121428_hohenpeissenberg.nc S5P_RPRO_L2VOO3__PR_20220429T123537_20220429T141707_23539_03_020400_20230330T121430_hohenpeissenberg.nc S5P_RPRO_L2VOO3__PR_20220430T103510_20220430T121640_23552_03_020400_20230330T125047_hohenpeissenberg.nc S5P_RPRO_L2VOO3__PR_20220430T121640_20220430T135810_23553_03_020400_20230330T130415_hohenpeissenberg.nc S5P_RPRO_L2VOO3__PR_20220501T101613_20220501T115743_23566_03_020400_20230330T134038_hohenpeissenberg.nc S5P_RPRO_L2VOO3__PR_20220501T115743_20220501T133913_23567_03_020400_20230330T134712_hohenpeissenberg.nc S5P_RPRO_L2VOO3__PR_20220502T095715_20220502T113845_23580_03_020400_20230330T144623_hohenpeissenberg.nc S5P_RPRO_L2VOO3__PR_20220502T113845_20220502T132015_23581_03_020400_20230330T144625_hohenpeissenberg.nc S5P_RPRO_L2VOO3__PR_20220503T093818_20220503T111948_23594_03_020400_20230330T152602_hohenpeissenberg.nc S5P_RPRO_L2VOO3__PR_20220503T111948_20220503T130118_23595_03_020400_20230330T152603_hohenpeissenberg.nc S5P_RPRO_L2VOO3__PR_20220504T110050_20220504T124220_23609_03_020400_20230330T160549_hohenpeissenberg.nc S5P_RPRO_L2VOO3__PR_20220505T104153_20220505T122323_23623_03_020400_20230330T185935_hohenpeissenberg.nc S5P_RPRO_L2VOO3__PR_20220505T122323_20220505T140453_23624_03_020400_20230330T190942_hohenpeissenberg.nc S5P_RPRO_L2VOO3__PR_20220506T102255_20220506T120425_23637_03_020400_20230330T202200_hohenpeissenberg.nc S5P_RPRO_L2VOO3__PR_20220506T120425_20220506T134555_23638_03_020400_20230330T202833_hohenpeissenberg.nc S5P_RPRO_L2VOO3__PR_20220507T013626_20220507T031756_23646_03_020400_20230330T210809_hohenpeissenberg.nc S5P_RPRO_L2VOO3__PR_20220507T100357_20220507T114527_23651_03_020400_20230330T211759_hohenpeissenberg.nc S5P_RPRO_L2VOO3__PR_20220507T114527_20220507T132657_23652_03_020400_20230330T211800_hohenpeissenberg.nc S5P_RPRO_L2VOO3__PR_20220508T094459_20220508T112629_23665_03_020400_20230330T222024_hohenpeissenberg.nc S5P_RPRO_L2VOO3__PR_20220508T112629_20220508T130759_23666_03_020400_20230330T222344_hohenpeissenberg.nc S5P_RPRO_L2VOO3__PR_20220509T110731_20220509T124901_23680_03_020400_20230330T230949_hohenpeissenberg.nc S5P_RPRO_L2VOO3__PR_20220510T104833_20220510T123003_23694_03_020400_20230331T005813_hohenpeissenberg.nc S5P_RPRO_L2VOO3__PR_20220510T123003_20220510T141133_23695_03_020400_20230331T010138_hohenpeissenberg.nc S5P_RPRO_L2VOO3__PR_20220511T102935_20220511T121105_23708_03_020400_20230331T022034_hohenpeissenberg.nc S5P_RPRO_L2VOO3__PR_20220511T121105_20220511T135235_23709_03_020400_20230331T022707_hohenpeissenberg.nc S5P_RPRO_L2VOO3__PR_20220512T101036_20220512T115206_23722_03_020400_20230331T032307_hohenpeissenberg.nc S5P_RPRO_L2VOO3__PR_20220512T115206_20220512T133336_23723_03_020400_20230331T032623_hohenpeissenberg.nc S5P_RPRO_L2VOO3__PR_20220513T012407_20220513T030537_23731_03_020400_20230331T035554_hohenpeissenberg.nc S5P_RPRO_L2VOO3__PR_20220513T095138_20220513T113308_23736_03_020400_20230331T040235_hohenpeissenberg.nc S5P_RPRO_L2VOO3__PR_20220513T113308_20220513T131438_23737_03_020400_20230331T041802_hohenpeissenberg.nc S5P_RPRO_L2VOO3__PR_20220514T010508_20220514T024639_23745_03_020400_20230331T045016_hohenpeissenberg.nc S5P_RPRO_L2VOO3__PR_20220514T093239_20220514T111409_23750_03_020400_20230331T045653_hohenpeissenberg.nc S5P_RPRO_L2VOO3__PR_20220514T111409_20220514T125539_23751_03_020400_20230331T060125_hohenpeissenberg.nc S5P_RPRO_L2VOO3__PR_20220515T105510_20220515T123640_23765_03_020400_20230331T060959_hohenpeissenberg.nc S5P_RPRO_L2VOO3__PR_20220515T123640_20220515T141810_23766_03_020400_20230331T061001_hohenpeissenberg.nc S5P_RPRO_L2VOO3__PR_20220516T103612_20220516T121742_23779_03_020400_20230331T071200_hohenpeissenberg.nc S5P_RPRO_L2VOO3__PR_20220516T121742_20220516T135912_23780_03_020400_20230331T071833_hohenpeissenberg.nc S5P_RPRO_L2VOO3__PR_20220517T101713_20220517T115843_23793_03_020400_20230331T083741_hohenpeissenberg.nc S5P_RPRO_L2VOO3__PR_20220517T115843_20220517T134013_23794_03_020400_20230331T083743_hohenpeissenberg.nc S5P_RPRO_L2VOO3__PR_20220518T013043_20220518T031213_23802_03_020400_20230331T091359_hohenpeissenberg.nc S5P_RPRO_L2VOO3__PR_20220518T095813_20220518T113943_23807_03_020400_20230331T093340_hohenpeissenberg.nc S5P_RPRO_L2VOO3__PR_20220518T113943_20220518T132113_23808_03_020400_20230331T094642_hohenpeissenberg.nc S5P_RPRO_L2VOO3__PR_20220519T011144_20220519T025314_23816_03_020400_20230331T110548_hohenpeissenberg.nc S5P_RPRO_L2VOO3__PR_20220519T093914_20220519T112044_23821_03_020400_20230331T120451_hohenpeissenberg.nc S5P_RPRO_L2VOO3__PR_20220519T112044_20220519T130214_23822_03_020400_20230331T120807_hohenpeissenberg.nc S5P_RPRO_L2VOO3__PR_20220520T005244_20220520T023414_23830_03_020400_20230331T131411_hohenpeissenberg.nc S5P_RPRO_L2VOO3__PR_20220520T110145_20220520T124315_23836_03_020400_20230331T140009_hohenpeissenberg.nc S5P_RPRO_L2VOO3__PR_20220521T003345_20220521T021515_23844_03_020400_20230331T143641_hohenpeissenberg.nc S5P_RPRO_L2VOO3__PR_20220521T104245_20220521T122415_23850_03_020400_20230331T145625_hohenpeissenberg.nc S5P_RPRO_L2VOO3__PR_20220521T122415_20220521T140545_23851_03_020400_20230331T150316_hohenpeissenberg.nc S5P_RPRO_L2VOO3__PR_20220522T102346_20220522T120516_23864_03_020400_20230331T151948_hohenpeissenberg.nc S5P_RPRO_L2VOO3__PR_20220522T120516_20220522T134646_23865_03_020400_20230331T152306_hohenpeissenberg.nc S5P_RPRO_L2VOO3__PR_20220523T013716_20220523T031846_23873_03_020400_20230331T153617_hohenpeissenberg.nc S5P_RPRO_L2VOO3__PR_20220523T100446_20220523T114616_23878_03_020400_20230331T154610_hohenpeissenberg.nc S5P_RPRO_L2VOO3__PR_20220523T114616_20220523T132746_23879_03_020400_20230331T154611_hohenpeissenberg.nc S5P_RPRO_L2VOO3__PR_20220524T011816_20220524T025946_23887_03_020400_20230331T161557_hohenpeissenberg.nc S5P_RPRO_L2VOO3__PR_20220524T094546_20220524T112716_23892_03_020400_20230331T162234_hohenpeissenberg.nc S5P_RPRO_L2VOO3__PR_20220524T112716_20220524T130846_23893_03_020400_20230331T163540_hohenpeissenberg.nc S5P_RPRO_L2VOO3__PR_20220525T005916_20220525T024046_23901_03_020400_20230331T170207_hohenpeissenberg.nc S5P_RPRO_L2VOO3__PR_20220525T110816_20220525T124946_23907_03_020400_20230331T172505_hohenpeissenberg.nc S5P_RPRO_L2VOO3__PR_20220526T004016_20220526T022146_23915_03_020400_20230331T180457_hohenpeissenberg.nc S5P_RPRO_L2VOO3__PR_20220526T104916_20220526T123046_23921_03_020400_20230331T183748_hohenpeissenberg.nc S5P_RPRO_L2VOO3__PR_20220526T123046_20220526T141216_23922_03_020400_20230331T184737_hohenpeissenberg.nc S5P_RPRO_L2VOO3__PR_20220527T002116_20220527T020246_23929_03_020400_20230331T195642_hohenpeissenberg.nc S5P_RPRO_L2VOO3__PR_20220527T103016_20220527T121146_23935_03_020400_20230331T203613_hohenpeissenberg.nc S5P_RPRO_L2VOO3__PR_20220527T121146_20220527T135315_23936_03_020400_20230331T204601_hohenpeissenberg.nc S5P_RPRO_L2VOO3__PR_20220528T000215_20220528T014345_23943_03_020400_20230331T221818_hohenpeissenberg.nc S5P_RPRO_L2VOO3__PR_20220528T101115_20220528T115245_23949_03_020400_20230331T230117_hohenpeissenberg.nc S5P_RPRO_L2VOO3__PR_20220528T115245_20220528T133415_23950_03_020400_20230331T234513_hohenpeissenberg.nc S5P_RPRO_L2VOO3__PR_20220529T012445_20220529T030615_23958_03_020400_20230401T002800_hohenpeissenberg.nc S5P_RPRO_L2VOO3__PR_20220529T095215_20220529T113345_23963_03_020400_20230401T003121_hohenpeissenberg.nc S5P_RPRO_L2VOO3__PR_20220529T113345_20220529T131515_23964_03_020400_20230401T004426_hohenpeissenberg.nc S5P_RPRO_L2VOO3__PR_20220530T010544_20220530T024714_23972_03_020400_20230401T011047_hohenpeissenberg.nc S5P_RPRO_L2VOO3__PR_20220530T093314_20220530T111444_23977_03_020400_20230401T014018_hohenpeissenberg.nc S5P_RPRO_L2VOO3__PR_20220530T111444_20220530T125614_23978_03_020400_20230401T014020_hohenpeissenberg.nc S5P_RPRO_L2VOO3__PR_20220531T004644_20220531T022813_23986_03_020400_20230401T021012_hohenpeissenberg.nc S5P_RPRO_L2VOO3__PR_20220531T105543_20220531T123713_23992_03_020400_20230401T022638_hohenpeissenberg.nc S5P_RPRO_L2VOO3__PR_20220531T123713_20220531T141843_23993_03_020400_20230401T022639_hohenpeissenberg.nc
InĀ [3]:
print(harp.import_product("s5p/S5P_RPRO_L2VOO3__PR_20220301T105407_20220301T123537_22701_03_020400_20230327T082409_hohenpeissenberg.nc"))
source product = 'S5P_RPRO_L2__O3__PR_20220301T105407_20220301T123537_22701_03_020400_20230327T082409.nc' history = "2023-04-04T14:51:48Z [vdafop-1.15.1] vdafop S5P_OPER_CFG_VDAFOP_00000000T000000_99999999T999999_20220428T131515.EOF S5P_RPRO_L2__O3__PR_20220301T105407_20220301T123537_22701_03_020400_20230327T082409.nc\n2023-04-04T14:51:48Z [harp-1.15.1] harpconvert -a 'point_distance(47.800 [degrees_north], 11.000 [degrees_east],300.000000 [km])' S5P_RPRO_L2__O3__PR_20220301T105407_20220301T123537_22701_03_020400_20230327T082409.nc S5P_RPRO_L2VOO3__PR_20220301T105407_20220301T123537_22701_03_020400_20230327T082409_hohenpeissenberg.nc" int scan_subindex {time=325} double datetime_start {time=325} [seconds since 2010-01-01] float datetime_length [s] long orbit_index long validity {time=325} float latitude {time=325} [degree_north] float longitude {time=325} [degree_east] float latitude_bounds {time=325, 4} [degree_north] float longitude_bounds {time=325, 4} [degree_east] float sensor_latitude {time=325} [degree_north] float sensor_longitude {time=325} [degree_east] float sensor_altitude {time=325} [m] float solar_zenith_angle {time=325} [degree] float solar_azimuth_angle {time=325} [degree] float sensor_zenith_angle {time=325} [degree] float sensor_azimuth_angle {time=325} [degree] float pressure {time=325, vertical=33} [Pa] float altitude {time=325, vertical=33} [m] float O3_number_density {time=325, vertical=33} [mol/m^3] float O3_number_density_uncertainty {time=325, vertical=33} [mol/m^3] byte O3_number_density_validity {time=325} float O3_number_density_avk {time=325, vertical=33, vertical=33} [] float O3_number_density_apriori {time=325, vertical=33} [mol/m^3] float O3_number_density_apriori_covariance {time=325, vertical=33, vertical=33} [(mol/m^3)^2] float O3_number_density_covariance {time=325, vertical=33, vertical=33} [(mol/m^3)^2] float O3_column_number_density {time=325} [mol/m^2] float O3_column_number_density_uncertainty {time=325} [mol/m^2] float tropospheric_O3_column_number_density {time=325} [mol/m^2] float tropospheric_O3_column_number_density_uncertainty {time=325} [mol/m^2] float cloud_pressure {time=325} [Pa] float cloud_fraction {time=325} [] float tropopause_pressure {time=325} [Pa] float temperature {time=325, vertical=33} [K] float wavelength {spectral=3} [m] float cloud_albedo {time=325, spectral=3} [] float surface_albedo {time=325, spectral=3} [] float surface_altitude {time=325} [m] float surface_altitude_uncertainty {time=325} [m] float surface_pressure {time=325} [Pa] float surface_meridional_wind_velocity {time=325} [m/s] float surface_zonal_wind_velocity {time=325} [m/s] byte snow_ice_type {time=325} float sea_ice_fraction {time=325} [] long index {time=325}
InĀ [4]:
!ls lidar
groundbased_lidar.o3_dwd001_hohenpeissenberg_20220228t181711z_20220301t050741z_001.hdf groundbased_lidar.o3_dwd001_hohenpeissenberg_20220301t182010z_20220302t050037z_001.hdf groundbased_lidar.o3_dwd001_hohenpeissenberg_20220303t193339z_20220304t045752z_001.hdf groundbased_lidar.o3_dwd001_hohenpeissenberg_20220304t183713z_20220305t050225z_001.hdf groundbased_lidar.o3_dwd001_hohenpeissenberg_20220305t183231z_20220306t045744z_001.hdf groundbased_lidar.o3_dwd001_hohenpeissenberg_20220307t190116z_20220308t045558z_001.hdf groundbased_lidar.o3_dwd001_hohenpeissenberg_20220308t190424z_20220309t045354z_001.hdf groundbased_lidar.o3_dwd001_hohenpeissenberg_20220310t184001z_20220311t044958z_001.hdf groundbased_lidar.o3_dwd001_hohenpeissenberg_20220311t183429z_20220312t044426z_001.hdf groundbased_lidar.o3_dwd001_hohenpeissenberg_20220320t184510z_20220321t042950z_001.hdf groundbased_lidar.o3_dwd001_hohenpeissenberg_20220322t192249z_20220323t041632z_001.hdf groundbased_lidar.o3_dwd001_hohenpeissenberg_20220325t184239z_20220326t041655z_001.hdf groundbased_lidar.o3_dwd001_hohenpeissenberg_20220327t183925z_20220328t040849z_001.hdf groundbased_lidar.o3_dwd001_hohenpeissenberg_20220328t184702z_20220329t041115z_001.hdf groundbased_lidar.o3_dwd001_hohenpeissenberg_20220409t185755z_20220410t010354z_001.hdf groundbased_lidar.o3_dwd001_hohenpeissenberg_20220410t191405z_20220411t034230z_001.hdf groundbased_lidar.o3_dwd001_hohenpeissenberg_20220411t191951z_20220412t033753z_001.hdf groundbased_lidar.o3_dwd001_hohenpeissenberg_20220413t192530z_20220414t033329z_001.hdf groundbased_lidar.o3_dwd001_hohenpeissenberg_20220416t192246z_20220417t033044z_001.hdf groundbased_lidar.o3_dwd001_hohenpeissenberg_20220417t194124z_20220418t032856z_001.hdf groundbased_lidar.o3_dwd001_hohenpeissenberg_20220418t192628z_20220419t031912z_001.hdf groundbased_lidar.o3_dwd001_hohenpeissenberg_20220420t192913z_20220421t032156z_001.hdf groundbased_lidar.o3_dwd001_hohenpeissenberg_20220421t192209z_20220422t032004z_001.hdf groundbased_lidar.o3_dwd001_hohenpeissenberg_20220427t192109z_20220428t030349z_001.hdf groundbased_lidar.o3_dwd001_hohenpeissenberg_20220428t192650z_20220429t030418z_001.hdf groundbased_lidar.o3_dwd001_hohenpeissenberg_20220509t201650z_20220510t023804z_001.hdf groundbased_lidar.o3_dwd001_hohenpeissenberg_20220511t200819z_20220512t022933z_001.hdf groundbased_lidar.o3_dwd001_hohenpeissenberg_20220515t200058z_20220515t225847z_001.hdf groundbased_lidar.o3_dwd001_hohenpeissenberg_20220517t195806z_20220518t022432z_001.hdf groundbased_lidar.o3_dwd001_hohenpeissenberg_20220518t195703z_20220518t235100z_001.hdf groundbased_lidar.o3_dwd001_hohenpeissenberg_20220521t201659z_20220522t022259z_001.hdf groundbased_lidar.o3_dwd001_hohenpeissenberg_20220526t000328z_20220526t023559z_001.hdf groundbased_lidar.o3_dwd001_hohenpeissenberg_20220526t211204z_20220527t021704z_001.hdf groundbased_lidar.o3_dwd001_hohenpeissenberg_20220530t203147z_20220531t020717z_001.hdf
InĀ [5]:
print(harp.import_product("lidar/groundbased_lidar.o3_dwd001_hohenpeissenberg_20220228t181711z_20220301t050741z_001.hdf"))
source product = 'groundbased_lidar.o3_dwd001_hohenpeissenberg_20220228t181711z_20220301t050741z_001.hdf' string sensor_name string location_name float sensor_latitude [degree_north] float sensor_longitude [degree_east] float sensor_altitude [m] double datetime {time=1} [days since 2000-01-01] double datetime_start {time=1} [days since 2000-01-01] double datetime_stop {time=1} [days since 2000-01-01] double altitude {vertical=271} [m] double pressure {vertical=271} [hPa] double temperature {vertical=271} [K] double O3_number_density {time=1, vertical=271} [molec/m3] double O3_number_density_uncertainty {time=1, vertical=271} [molec/m3] long index {time=1}
InĀ [6]:
!harpcollocate -d 'datetime 24 [h]' --point-in-area-yx -aa 'valid(O3_column_number_density);validity !& 255' -nx datetime -ny datetime s5p lidar collocations.csv
InĀ [7]:
!cat collocations.csv
collocation_index,source_product_a,index_a,source_product_b,index_b,datetime_diff [h] 0,S5P_RPRO_L2__O3__PR_20220301T105407_20220301T123537_22701_03_020400_20230327T082409.nc,48775,groundbased_lidar.o3_dwd001_hohenpeissenberg_20220301t182010z_20220302t050037z_001.hdf,0,-11.589841 1,S5P_RPRO_L2__O3__PR_20220304T095722_20220304T113852_22743_03_020400_20230327T103558.nc,49825,groundbased_lidar.o3_dwd001_hohenpeissenberg_20220303t193339z_20220304t045752z_001.hdf,0,10.808825 2,S5P_RPRO_L2__O3__PR_20220304T113852_20220304T132023_22744_03_020400_20230327T103559.nc,48029,groundbased_lidar.o3_dwd001_hohenpeissenberg_20220304t183713z_20220305t050225z_001.hdf,0,-11.094835 3,S5P_RPRO_L2__O3__PR_20220305T111957_20220305T130128_22758_03_020400_20230327T135027.nc,47943,groundbased_lidar.o3_dwd001_hohenpeissenberg_20220305t183231z_20220306t045744z_001.hdf,0,-11.332425 4,S5P_RPRO_L2__O3__PR_20220308T102312_20220308T120443_22800_03_020400_20230327T163258.nc,48528,groundbased_lidar.o3_dwd001_hohenpeissenberg_20220307t190116z_20220308t045558z_001.hdf,0,11.505264 5,S5P_RPRO_L2__O3__PR_20220308T120443_20220308T134613_22801_03_020400_20230327T163259.nc,47580,groundbased_lidar.o3_dwd001_hohenpeissenberg_20220308t190424z_20220309t045354z_001.hdf,0,-10.827052 6,S5P_RPRO_L2__O3__PR_20220310T112653_20220310T130823_22829_03_020400_20230327T194150.nc,47253,groundbased_lidar.o3_dwd001_hohenpeissenberg_20220310t184001z_20220311t044958z_001.hdf,0,-11.226066 7,S5P_RPRO_L2__O3__PR_20220311T110758_20220311T124928_22843_03_020400_20230327T203249.nc,47319,groundbased_lidar.o3_dwd001_hohenpeissenberg_20220311t183429z_20220312t044426z_001.hdf,0,-11.448135 8,S5P_RPRO_L2__O3__PR_20220320T114045_20220320T132215_22971_03_020400_20230328T090113.nc,45950,groundbased_lidar.o3_dwd001_hohenpeissenberg_20220320t184510z_20220321t042950z_001.hdf,0,-10.890189 9,S5P_RPRO_L2__O3__PR_20220322T110255_20220322T124425_22999_03_020400_20230328T104017.nc,45929,groundbased_lidar.o3_dwd001_hohenpeissenberg_20220322t192249z_20220323t041632z_001.hdf,0,-11.723545 10,S5P_RPRO_L2__O3__PR_20220325T114740_20220325T132910_23042_03_020400_20230328T131933.nc,45261,groundbased_lidar.o3_dwd001_hohenpeissenberg_20220325t184239z_20220326t041655z_001.hdf,0,-10.656592 11,S5P_RPRO_L2__O3__PR_20220327T110950_20220327T125120_23070_03_020400_20230328T162931.nc,45163,groundbased_lidar.o3_dwd001_hohenpeissenberg_20220327t183925z_20220328t040849z_001.hdf,0,-11.19391 12,S5P_RPRO_L2__O3__PR_20220328T105055_20220328T123225_23084_03_020400_20230328T181555.nc,45306,groundbased_lidar.o3_dwd001_hohenpeissenberg_20220328t184702z_20220329t041115z_001.hdf,0,-11.590459 13,S5P_RPRO_L2__O3__PR_20220409T120822_20220409T134953_23255_03_020400_20230329T153647.nc,43422,groundbased_lidar.o3_dwd001_hohenpeissenberg_20220409t185755z_20220410t010354z_001.hdf,0,-8.8581733 14,S5P_RPRO_L2__O3__PR_20220410T114927_20220410T133057_23269_03_020400_20230329T153817.nc,43182,groundbased_lidar.o3_dwd001_hohenpeissenberg_20220410t191405z_20220411t034230z_001.hdf,0,-10.633557 15,S5P_RPRO_L2__O3__PR_20220411T113031_20220411T131201_23283_03_020400_20230329T153935.nc,43095,groundbased_lidar.o3_dwd001_hohenpeissenberg_20220411t191951z_20220412t033753z_001.hdf,0,-10.959996 16,S5P_RPRO_L2__O3__PR_20220413T105239_20220413T123410_23311_03_020400_20230329T154238.nc,43304,groundbased_lidar.o3_dwd001_hohenpeissenberg_20220413t192530z_20220414t033329z_001.hdf,0,-11.598488 17,S5P_RPRO_L2__O3__PR_20220416T113722_20220416T131852_23354_03_020400_20230329T163056.nc,42481,groundbased_lidar.o3_dwd001_hohenpeissenberg_20220416t192246z_20220417t033044z_001.hdf,0,-10.819531 18,S5P_RPRO_L2__O3__PR_20220417T111826_20220417T125956_23368_03_020400_20230329T181052.nc,42472,groundbased_lidar.o3_dwd001_hohenpeissenberg_20220417t194124z_20220418t032856z_001.hdf,0,-11.275674 19,S5P_RPRO_L2__O3__PR_20220418T105929_20220418T124100_23382_03_020400_20230330T011121.nc,42614,groundbased_lidar.o3_dwd001_hohenpeissenberg_20220418t192628z_20220419t031912z_001.hdf,0,-11.383161 20,S5P_RPRO_L2__O3__PR_20220420T120307_20220420T134437_23411_03_020400_20230330T020733.nc,42033,groundbased_lidar.o3_dwd001_hohenpeissenberg_20220420t192913z_20220421t032156z_001.hdf,0,-10.378241 21,S5P_RPRO_L2__O3__PR_20220421T114411_20220421T132541_23425_03_020400_20230330T023714.nc,41869,groundbased_lidar.o3_dwd001_hohenpeissenberg_20220421t192209z_20220422t032004z_001.hdf,0,-10.621239 22,S5P_RPRO_L2__O3__PR_20220427T113201_20220427T131331_23510_03_020400_20230330T104503.nc,41247,groundbased_lidar.o3_dwd001_hohenpeissenberg_20220427t192109z_20220428t030349z_001.hdf,0,-10.689927 23,S5P_RPRO_L2__O3__PR_20220428T111304_20220428T125434_23524_03_020400_20230330T112452.nc,41313,groundbased_lidar.o3_dwd001_hohenpeissenberg_20220428t192650z_20220429t030418z_001.hdf,0,-11.055847 24,S5P_RPRO_L2__O3__PR_20220509T110731_20220509T124901_23680_03_020400_20230330T230949.nc,40385,groundbased_lidar.o3_dwd001_hohenpeissenberg_20220509t201650z_20220510t023804z_001.hdf,0,-11.360583 25,S5P_RPRO_L2__O3__PR_20220511T121105_20220511T135235_23709_03_020400_20230331T022707.nc,40111,groundbased_lidar.o3_dwd001_hohenpeissenberg_20220511t200819z_20220512t022933z_001.hdf,0,-10.081973 26,S5P_RPRO_L2__O3__PR_20220515T105510_20220515T123640_23765_03_020400_20230331T060959.nc,40147,groundbased_lidar.o3_dwd001_hohenpeissenberg_20220515t200058z_20220515t225847z_001.hdf,0,-9.6101956 27,S5P_RPRO_L2__O3__PR_20220517T115843_20220517T134013_23794_03_020400_20230331T083743.nc,39489,groundbased_lidar.o3_dwd001_hohenpeissenberg_20220517t195806z_20220518t022432z_001.hdf,0,-10.252241 28,S5P_RPRO_L2__O3__PR_20220518T113943_20220518T132113_23808_03_020400_20230331T094642.nc,39478,groundbased_lidar.o3_dwd001_hohenpeissenberg_20220518t195703z_20220518t235100z_001.hdf,0,-9.2806322 29,S5P_RPRO_L2__O3__PR_20220521T104245_20220521T122415_23850_03_020400_20230331T145625.nc,39986,groundbased_lidar.o3_dwd001_hohenpeissenberg_20220521t201659z_20220522t022259z_001.hdf,0,-11.654244 30,S5P_RPRO_L2__O3__PR_20220526T104916_20220526T123046_23921_03_020400_20230331T183748.nc,39527,groundbased_lidar.o3_dwd001_hohenpeissenberg_20220526t000328z_20220526t023559z_001.hdf,0,10.451354 31,S5P_RPRO_L2__O3__PR_20220527T103016_20220527T121146_23935_03_020400_20230331T203613.nc,39903,groundbased_lidar.o3_dwd001_hohenpeissenberg_20220526t211204z_20220527t021704z_001.hdf,0,11.726705 32,S5P_RPRO_L2__O3__PR_20220530T111444_20220530T125614_23978_03_020400_20230401T014020.nc,38926,groundbased_lidar.o3_dwd001_hohenpeissenberg_20220530t203147z_20220531t020717z_001.hdf,0,-11.049316
InĀ [8]:
operations = ";".join([
'collocate_left("collocations.csv")',
"exclude(cloud_albedo, surface_albedo, wavelength)",
"derive(datetime {time} [days since 2000-01-01])",
"derive(altitude [km])",
"derive(pressure [hPa])",
"derive(O3_column_number_density [DU])",
"derive(O3_column_number_density_uncertainty [DU])",
"derive(O3_number_density [Tmolec/cm3])",
"derive(O3_number_density_uncertainty [Tmolec/cm3])",
"derive(O3_number_density_dfs {time})",
"derive(tropopause_altitude {time} [km])",
"derive(area {time} [km2])",
])
post_operations = "sort(collocation_index)"
s5p_collocated = harp.import_product("s5p/*", operations, post_operations=post_operations)
print(s5p_collocated)
history = '2023-04-04T14:51:48Z [vdafop-1.15.1] vdafop S5P_OPER_CFG_VDAFOP_00000000T000000_99999999T999999_20220428T131515.EOF S5P_RPRO_L2__O3__PR_20220301T105407_20220301T123537_22701_03_020400_20230327T082409.nc\n2023-04-04T14:51:48Z [harp-1.15.1] harpconvert -a \'point_distance(47.800 [degrees_north], 11.000 [degrees_east],300.000000 [km])\' S5P_RPRO_L2__O3__PR_20220301T105407_20220301T123537_22701_03_020400_20230327T082409.nc S5P_RPRO_L2VOO3__PR_20220301T105407_20220301T123537_22701_03_020400_20230327T082409_hohenpeissenberg.nc\n2023-11-15T08:46:09Z [harp-1.20.2] harp.import_product(\'s5p/S5P_RPRO_L2VOO3__PR_20220531T123713_20220531T141843_23993_03_020400_20230401T022639_hohenpeissenberg.nc\',operations=\'collocate_left("collocations.csv");exclude(cloud_albedo, surface_albedo, wavelength);derive(datetime {time} [days since 2000-01-01]);derive(altitude [km]);derive(pressure [hPa]);derive(O3_column_number_density [DU]);derive(O3_column_number_density_uncertainty [DU]);derive(O3_number_density [Tmolec/cm3]);derive(O3_number_density_uncertainty [Tmolec/cm3]);derive(O3_number_density_dfs {time});derive(tropopause_altitude {time} [km]);derive(area {time} [km2])\',post_operations=\'sort(collocation_index)\')' int scan_subindex {time=33} double datetime_start {time=33} [seconds since 2010-01-01] double datetime_length {time=33} [s] long orbit_index {time=33} long validity {time=33} float latitude {time=33} [degree_north] float longitude {time=33} [degree_east] float latitude_bounds {time=33, 4} [degree_north] float longitude_bounds {time=33, 4} [degree_east] float sensor_latitude {time=33} [degree_north] float sensor_longitude {time=33} [degree_east] float sensor_altitude {time=33} [m] float solar_zenith_angle {time=33} [degree] float solar_azimuth_angle {time=33} [degree] float sensor_zenith_angle {time=33} [degree] float sensor_azimuth_angle {time=33} [degree] double pressure {time=33, vertical=33} [hPa] double altitude {time=33, vertical=33} [km] double O3_number_density {time=33, vertical=33} [Tmolec/cm3] double O3_number_density_uncertainty {time=33, vertical=33} [Tmolec/cm3] byte O3_number_density_validity {time=33} float O3_number_density_avk {time=33, vertical=33, vertical=33} [] float O3_number_density_apriori {time=33, vertical=33} [mol/m^3] float O3_number_density_apriori_covariance {time=33, vertical=33, vertical=33} [(mol/m^3)^2] float O3_number_density_covariance {time=33, vertical=33, vertical=33} [(mol/m^3)^2] double O3_column_number_density {time=33} [DU] double O3_column_number_density_uncertainty {time=33} [DU] float tropospheric_O3_column_number_density {time=33} [mol/m^2] float tropospheric_O3_column_number_density_uncertainty {time=33} [mol/m^2] float cloud_pressure {time=33} [Pa] float cloud_fraction {time=33} [] float tropopause_pressure {time=33} [Pa] float temperature {time=33, vertical=33} [K] float surface_altitude {time=33} [m] float surface_altitude_uncertainty {time=33} [m] float surface_pressure {time=33} [Pa] float surface_meridional_wind_velocity {time=33} [m/s] float surface_zonal_wind_velocity {time=33} [m/s] byte snow_ice_type {time=33} float sea_ice_fraction {time=33} [] long collocation_index {time=33} double datetime {time=33} [days since 2000-01-01] double O3_number_density_dfs {time=33} [] double tropopause_altitude {time=33} [km] double area {time=33} [km2]
InĀ [9]:
operations = ";".join([
'collocate_right("collocations.csv")',
"derive(datetime {time} [days since 2000-01-01])",
"derive(latitude {time})",
"derive(longitude {time})",
"derive(O3_column_number_density {time} [DU])",
"derive(O3_number_density {time,vertical} [Tmolec/cm3])",
"derive(tropopause_altitude {time} [km])",
])
post_operations = "sort(collocation_index)"
lidar_collocated = harp.import_product("lidar/*", operations, post_operations=post_operations)
print(lidar_collocated)
history = '2023-11-15T08:46:13Z [harp-1.20.2] harp.import_product(\'lidar/groundbased_lidar.o3_dwd001_hohenpeissenberg_20220530t203147z_20220531t020717z_001.hdf\',operations=\'collocate_right("collocations.csv");derive(datetime {time} [days since 2000-01-01]);derive(latitude {time});derive(longitude {time});derive(O3_column_number_density {time} [DU]);derive(O3_number_density {time,vertical} [Tmolec/cm3]);derive(tropopause_altitude {time} [km])\',post_operations=\'sort(collocation_index)\')' string sensor_name {time=33} string location_name {time=33} double sensor_latitude {time=33} [degree_north] double sensor_longitude {time=33} [degree_east] double sensor_altitude {time=33} [m] double datetime {time=33} [days since 2000-01-01] double datetime_start {time=33} [days since 2000-01-01] double datetime_stop {time=33} [days since 2000-01-01] double altitude {time=33, vertical=278} [m] double pressure {time=33, vertical=278} [hPa] double temperature {time=33, vertical=278} [K] double O3_number_density {time=33, vertical=278} [Tmolec/cm3] double O3_number_density_uncertainty {time=33, vertical=278} [molec/m3] long collocation_index {time=33} double latitude {time=33} [degree_north] double longitude {time=33} [degree_east] double O3_column_number_density {time=33} [DU] double tropopause_altitude {time=33} [km]
InĀ [10]:
operations = ";".join([
"exclude(O3_column_number_density,O3_column_number_density_uncertainty)",
"regrid(vertical, altitude [km], (16.5,18.25,20,21.75,23.75,25.5,27.5,29.25,31.25,33.25,35.25,37.25,39.5,41,43.75), "
"(15.5,17.375,19.125,20.875,22.75,24.625,26.5,28.375,30.25,32.25,34.25,36.25,38.375,40.25,42.375,44.875))",
"derive(O3_column_number_density {time} [DU])", # recalculate the total column using the revised grid
"squash(time, altitude)",
])
s5p = harp.execute_operations(s5p_collocated, operations)
print(s5p)
history = '2023-04-04T14:51:48Z [vdafop-1.15.1] vdafop S5P_OPER_CFG_VDAFOP_00000000T000000_99999999T999999_20220428T131515.EOF S5P_RPRO_L2__O3__PR_20220301T105407_20220301T123537_22701_03_020400_20230327T082409.nc\n2023-04-04T14:51:48Z [harp-1.15.1] harpconvert -a \'point_distance(47.800 [degrees_north], 11.000 [degrees_east],300.000000 [km])\' S5P_RPRO_L2__O3__PR_20220301T105407_20220301T123537_22701_03_020400_20230327T082409.nc S5P_RPRO_L2VOO3__PR_20220301T105407_20220301T123537_22701_03_020400_20230327T082409_hohenpeissenberg.nc\n2023-11-15T08:46:09Z [harp-1.20.2] harp.import_product(\'s5p/S5P_RPRO_L2VOO3__PR_20220531T123713_20220531T141843_23993_03_020400_20230401T022639_hohenpeissenberg.nc\',operations=\'collocate_left("collocations.csv");exclude(cloud_albedo, surface_albedo, wavelength);derive(datetime {time} [days since 2000-01-01]);derive(altitude [km]);derive(pressure [hPa]);derive(O3_column_number_density [DU]);derive(O3_column_number_density_uncertainty [DU]);derive(O3_number_density [Tmolec/cm3]);derive(O3_number_density_uncertainty [Tmolec/cm3]);derive(O3_number_density_dfs {time});derive(tropopause_altitude {time} [km]);derive(area {time} [km2])\',post_operations=\'sort(collocation_index)\')' int scan_subindex {time=33} double datetime_start {time=33} [seconds since 2010-01-01] double datetime_length {time=33} [s] long orbit_index {time=33} long validity {time=33} float latitude {time=33} [degree_north] float longitude {time=33} [degree_east] float latitude_bounds {time=33, 4} [degree_north] float longitude_bounds {time=33, 4} [degree_east] float sensor_latitude {time=33} [degree_north] float sensor_longitude {time=33} [degree_east] float sensor_altitude {time=33} [m] float solar_zenith_angle {time=33} [degree] float solar_azimuth_angle {time=33} [degree] float sensor_zenith_angle {time=33} [degree] float sensor_azimuth_angle {time=33} [degree] double pressure {time=33, vertical=15} [hPa] double O3_number_density {time=33, vertical=15} [Tmolec/cm3] byte O3_number_density_validity {time=33} double O3_number_density_apriori {time=33, vertical=15} [mol/m^3] float tropospheric_O3_column_number_density {time=33} [mol/m^2] float tropospheric_O3_column_number_density_uncertainty {time=33} [mol/m^2] float cloud_pressure {time=33} [Pa] float cloud_fraction {time=33} [] float tropopause_pressure {time=33} [Pa] double temperature {time=33, vertical=15} [K] float surface_altitude {time=33} [m] float surface_altitude_uncertainty {time=33} [m] float surface_pressure {time=33} [Pa] float surface_meridional_wind_velocity {time=33} [m/s] float surface_zonal_wind_velocity {time=33} [m/s] byte snow_ice_type {time=33} float sea_ice_fraction {time=33} [] long collocation_index {time=33} double datetime {time=33} [days since 2000-01-01] double O3_number_density_dfs {time=33} [] double tropopause_altitude {time=33} [km] double area {time=33} [km2] double altitude {vertical=15} [km] double altitude_bounds {vertical=15, 2} [km] double O3_column_number_density {time=33} [DU]
InĀ [11]:
lidar = harp.execute_operations(lidar_collocated, operations)
print(lidar)
history = '2023-11-15T08:46:13Z [harp-1.20.2] harp.import_product(\'lidar/groundbased_lidar.o3_dwd001_hohenpeissenberg_20220530t203147z_20220531t020717z_001.hdf\',operations=\'collocate_right("collocations.csv");derive(datetime {time} [days since 2000-01-01]);derive(latitude {time});derive(longitude {time});derive(O3_column_number_density {time} [DU]);derive(O3_number_density {time,vertical} [Tmolec/cm3]);derive(tropopause_altitude {time} [km])\',post_operations=\'sort(collocation_index)\')' string sensor_name {time=33} string location_name {time=33} double sensor_latitude {time=33} [degree_north] double sensor_longitude {time=33} [degree_east] double sensor_altitude {time=33} [m] double datetime {time=33} [days since 2000-01-01] double datetime_start {time=33} [days since 2000-01-01] double datetime_stop {time=33} [days since 2000-01-01] double pressure {time=33, vertical=15} [hPa] double temperature {time=33, vertical=15} [K] double O3_number_density {time=33, vertical=15} [Tmolec/cm3] long collocation_index {time=33} double latitude {time=33} [degree_north] double longitude {time=33} [degree_east] double tropopause_altitude {time=33} [km] double altitude {vertical=15} [km] double altitude_bounds {vertical=15, 2} [km] double O3_column_number_density {time=33} [DU]
InĀ [12]:
harp.export_product(s5p, "s5p.nc")
harp.export_product(lidar, "lidar.nc")
InĀ [13]:
avl.Heatmap(s5p, value="O3_number_density", colormap="davos", colorrange=(0,6))
InĀ [14]:
avl.Heatmap(lidar, value="O3_number_density", colormap="davos", colorrange=(0,6))
InĀ [15]:
avl.vis.Heatmap(
data=s5p.O3_number_density.data - lidar.O3_number_density.data,
coords=[avl.get_timestamps(s5p.datetime), s5p.altitude.data],
xlabel="time", ylabel="altitude (km)", colorlabel="Tmolec/cm3", title="O3 number density SAT-REF",
colormap="RdBu_r", colorrange=(-3,3)
)
InĀ [16]:
plot = avl.vis.Plot()
plot.add(avl.Scatter(s5p, value="O3_column_number_density"))
plot.add(avl.Scatter(lidar, value="O3_column_number_density"))
plot
InĀ [17]:
avl.vis.Scatter(
xdata=avl.get_timestamps(s5p.datetime),
ydata=s5p.O3_column_number_density.data - lidar.O3_column_number_density.data,
title="O3 difference (S5P - lidar)"
)