def get_front_end(src_data, src_file): print '****** src_data: ', src_data print '****** src_file: ', src_file if src_data == 'airs': src_front_end = FEAIRS.front_end_airs(src_file) elif src_data == 'amsr': src_front_end = FEA.front_end_amsr(src_file) elif src_data == 'caliop05kmALayer': # Caliop src_front_end = FE_CALIOP_05KMALAY.front_end_caliop_05km_alay(src_file) elif src_data == 'caliop05kmCLayer': # Caliop src_front_end = FE_CALIOP_05KMCLAY.front_end_caliop_05km_clay(src_file) elif src_data == 'caliop05kmCProfile': # Caliop src_front_end = FE_CALIOP_05KMCPRO.front_end_caliop_05km_cpro(src_file) elif src_data == 'caliop40kmAProfile': # Caliop src_front_end = FE_CALIOP_40KMAPRO.front_end_caliop_40km_apro(src_file) elif src_data == 'caliopVFM': # Caliop src_front_end = FE_CALIOP_VFM.front_end_caliop_vfm(src_file) elif src_data == 'ceres': src_front_end = FECERES.front_end_ceres(src_file) elif src_data == 'mls-temp': src_front_end = FEMLS_TEMP.front_end_mls_temp(src_file) elif src_data == 'mls-iwc': src_front_end = FEMLS_IWC.front_end_mls_iwc(src_file) elif src_data == 'mls-h2o': src_front_end = FEMLS_H2O.front_end_mls_h2o(src_file) elif src_data == 'mls-co': src_front_end = FEMLS_CO.front_end_mls_co(src_file) elif src_data == 'mls-o3': src_front_end = FEMLS_O3.front_end_mls_o3(src_file) elif src_data == 'mls-hno3': src_front_end = FEMLS_HNO3.front_end_mls_hno3(src_file) elif src_data == 'modis-aerosol': src_front_end = FEMODIS_AEROSOL.front_end_modis_aerosol(src_file) elif src_data == 'modis-cloud-5km': src_front_end = FEMODIS_CLOUD_5KM.front_end_modis_cloud_5km(src_file) elif src_data == 'modis-cloud-1km': src_front_end = FEMODIS_CLOUD_1KM.front_end_modis_cloud_1km(src_file) elif src_data == 'ecmwf-idaily-surface': src_front_end = FEECMWF_IDAILY_SURFACE.front_end_ecmwf_idaily_surface(src_file) elif src_data == 'ecmwf-idaily-plevels': src_front_end = FEECMWF_IDAILY_PLEVELS.front_end_ecmwf_idaily_plevels(src_file) elif src_data == 'ecmwf-yotc-aos-1.5deg': src_front_end = FEECMWF_YOTC_AOS_1P5DEG.front_end_ecmwf_yotc_aos_1p5deg(src_file) ### elif src_data == 'ecmwf-yotc-oaml-1.5deg': ### src_front_end = FEECMWF_YOTC_OAML_1P5DEG.front_end_ecmwf_yotc_oaml_1p5deg(src_file) ### elif src_data == 'ecmwf-yotc-oapl-1.5deg': ### src_front_end = FEECMWF_YOTC_OAPL_1P5DEG.front_end_ecmwf_yotc_oapl_1p5deg(src_file) elif src_data == 'ecmwf-yotc-aos-0.25deg': src_front_end = FEECMWF_YOTC_AOS_0P25DEG.front_end_ecmwf_yotc_aos_0p25deg(src_file) elif src_data == 'ecmwf-yotc-oaml-0.25deg': src_front_end = FEECMWF_YOTC_OAML_0P25DEG.front_end_ecmwf_yotc_oaml_0p25deg(src_file) elif src_data == 'ecmwf-yotc-oapl-0.25deg': src_front_end = FEECMWF_YOTC_OAPL_0P25DEG.front_end_ecmwf_yotc_oapl_0p25deg(src_file) elif src_data.find('cloudsat') >= 0: src_front_end = FEC.front_end_cloudsat(src_file) else: print '****** Error in get_front_end: source data set not supported yet !' sys.exit(1) return src_front_end
def test_modis(): modis_file = "MYD06_L2.A2007054.1255.005.2007058012408.hdf" print "****** Reading MODIS data from file: ", modis_file modis = FEMODIS.front_end_modis_cloud_5km(modis_file) myname = "contrived data" myorder = [9, 0, 2, 4, 3, 6, 5, 7, 1, 8, 10, 11, 12, 13, 14] mydata = N.array([[[0.5,0.55,0.56], [0.2,0.25,0.26], [0.1,0.15,0.16], [0.3,0.35,0.36], [0.4,0.45,0.46]], [[1.5,1.55,1.56], [1.2,1.25,1.26], [1.1,1.15,1.16], [1.3,1.35,1.36], [1.4,1.45,1.46]]]) print 'Testing MODIS 3d to 2d reshape and reorder' print 'MODIS data is originally of shape ', mydata.shape print 'input data = ', mydata include = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14] mydata = modis.process_3d(myname, mydata, include, myorder) print myname, ' is now of shape ', mydata.shape print 'order requested along azis 0 is ', myorder print 'actual results = ', mydata myresult = N.array([[0.3, 1.3], [0.5, 1.5], [0.56, 1.56], [0.25, 1.25], [0.2, 1.2], [0.1, 1.1], [0.26, 1.26], [0.15, 1.15], [0.55, 1.55], [0.16, 1.16], [0.35, 1.35], [0.36, 1.36], [0.4, 1.4 ], [0.45, 1.45], [0.46, 1.46]]) print 'desired results = ', myresult if test_equal(mydata, myresult): print 'MODIS PASSED' else: print 'MODIS FAILED'
def get_front_end(src_data, src_file): print '****** src_data: ', src_data print '****** src_file: ', src_file if src_data == 'airs': src_front_end = FEAIRS.front_end_airs(src_file) elif src_data == 'amsr': src_front_end = FEA.front_end_amsr(src_file) elif src_data == 'caliop05kmALayer': # Caliop src_front_end = FE_CALIOP_05KMALAY.front_end_caliop_05km_alay(src_file) elif src_data == 'caliop05kmCLayer': # Caliop src_front_end = FE_CALIOP_05KMCLAY.front_end_caliop_05km_clay(src_file) elif src_data == 'caliop05kmCProfile': # Caliop src_front_end = FE_CALIOP_05KMCPRO.front_end_caliop_05km_cpro(src_file) elif src_data == 'caliop40kmAProfile': # Caliop src_front_end = FE_CALIOP_40KMAPRO.front_end_caliop_40km_apro(src_file) elif src_data == 'caliopVFM': # Caliop src_front_end = FE_CALIOP_VFM.front_end_caliop_vfm(src_file) elif src_data == 'ceres': src_front_end = FECERES.front_end_ceres(src_file) elif src_data == 'mls-temp': src_front_end = FEMLS_TEMP.front_end_mls_temp(src_file) elif src_data == 'mls-iwc': src_front_end = FEMLS_IWC.front_end_mls_iwc(src_file) elif src_data == 'mls-h2o': src_front_end = FEMLS_H2O.front_end_mls_h2o(src_file) elif src_data == 'mls-co': src_front_end = FEMLS_CO.front_end_mls_co(src_file) elif src_data == 'mls-o3': src_front_end = FEMLS_O3.front_end_mls_o3(src_file) elif src_data == 'mls-hno3': src_front_end = FEMLS_HNO3.front_end_mls_hno3(src_file) elif src_data == 'modis-aerosol': src_front_end = FEMODIS_AEROSOL.front_end_modis_aerosol(src_file) elif src_data == 'modis-cloud-5km': src_front_end = FEMODIS_CLOUD_5KM.front_end_modis_cloud_5km(src_file) elif src_data == 'modis-cloud-1km': src_front_end = FEMODIS_CLOUD_1KM.front_end_modis_cloud_1km(src_file) elif src_data == 'ecmwf-idaily-surface': src_front_end = FEECMWF_IDAILY_SURFACE.front_end_ecmwf_idaily_surface( src_file) elif src_data == 'ecmwf-idaily-plevels': src_front_end = FEECMWF_IDAILY_PLEVELS.front_end_ecmwf_idaily_plevels( src_file) elif src_data == 'ecmwf-yotc-aos-1.5deg': src_front_end = FEECMWF_YOTC_AOS_1P5DEG.front_end_ecmwf_yotc_aos_1p5deg( src_file) ### elif src_data == 'ecmwf-yotc-oaml-1.5deg': ### src_front_end = FEECMWF_YOTC_OAML_1P5DEG.front_end_ecmwf_yotc_oaml_1p5deg(src_file) ### elif src_data == 'ecmwf-yotc-oapl-1.5deg': ### src_front_end = FEECMWF_YOTC_OAPL_1P5DEG.front_end_ecmwf_yotc_oapl_1p5deg(src_file) elif src_data == 'ecmwf-yotc-aos-0.25deg': src_front_end = FEECMWF_YOTC_AOS_0P25DEG.front_end_ecmwf_yotc_aos_0p25deg( src_file) elif src_data == 'ecmwf-yotc-oaml-0.25deg': src_front_end = FEECMWF_YOTC_OAML_0P25DEG.front_end_ecmwf_yotc_oaml_0p25deg( src_file) elif src_data == 'ecmwf-yotc-oapl-0.25deg': src_front_end = FEECMWF_YOTC_OAPL_0P25DEG.front_end_ecmwf_yotc_oapl_0p25deg( src_file) elif src_data.find('cloudsat') >= 0: src_front_end = FEC.front_end_cloudsat(src_file) else: print '****** Error in get_front_end: source data set not supported yet !' sys.exit(1) return src_front_end