コード例 #1
0
ファイル: calibration.py プロジェクト: inogs/bit.sea
for itime, modeltime in enumerate(model_TL.Timelist):
    print modeltime
    CoupledList = sat_TL.couple_with([modeltime])
    sattime = CoupledList[0][0]
    satfile = REF_DIR + sattime.strftime(IOname.Input.dateformat) + IOname.Output.suffix + ".nc"
    modfile = model_TL.filelist[itime]
     
    De         = DataExtractor(TheMask,filename=modfile, varname='P_i')
    Model      = MapBuilder.get_layer_average(De, surf_layer)
    #ncIN = NC.netcdf_file(modfile,'r')
    #Model = ncIN.variables['P_i'].data[0,0,:,:].copy()#.astype(np.float64)
    #Model = ncIN.variables['lchlm'].data.copy()
    #ncIN.close()
    
    Sat16 = Sat.readfromfile(satfile,var='lchlm') #.astype(np.float64)
    
    
    cloudsLand = (np.isnan(Sat16)) | (Sat16 > 1.e19)
    modelLand  = np.isnan(Model) #lands are nan
    nodata     = cloudsLand | modelLand
    selection = ~nodata & mask200_2D 
    M = matchup.matchup(Model[selection], Sat16[selection])
    
    for isub, sub in enumerate(OGS.P):
        selection = SUB[sub.name] & (~nodata) & mask200_2D
        M = matchup.matchup(Model[selection], Sat16[selection])
        BGC_CLASS4_CHL_RMS_SURF_BASIN[itime,isub]  = M.RMSE()
        BGC_CLASS4_CHL_BIAS_SURF_BASIN[itime,isub] = M.bias()
    
BGC_CLASS4_CHL_EAN_RMS_SURF_BASIN  = BGC_CLASS4_CHL_RMS_SURF_BASIN.mean(axis=0)
コード例 #2
0
ファイル: aveSat16.py プロジェクト: inogs/bit.sea
IOname = IOnames.IOnames(IonamesFile)

WEEK_reqs=TLCheck.getWeeklyList(2)

jpi = Sat.NativeMesh.jpi
jpj = Sat.NativeMesh.jpj


for req in WEEK_reqs:
    outfile = req.string + IOname.Output.suffix + ".nc"
    outpathfile = WEEKLYDIR + outfile
    conditionToSkip = (os.path.exists(outpathfile)) and (not reset)

    if conditionToSkip: continue

    print outfile
    ii, w = TLCheck.select(req)
    nFiles = len(ii)
    if nFiles < 3 : 
        print req
        print "less than 3 files"
        continue
    M = np.zeros((nFiles,jpj,jpi),np.float32)
    for iFrame, j in enumerate(ii):
        inputfile = TLCheck.filelist[j]
        CHL = Sat.readfromfile(inputfile)
        M[iFrame,:,:] = CHL
    CHL_OUT = Sat.logAverager(M)
    Sat.dumpV4file(outpathfile, CHL_OUT)

コード例 #3
0
ファイル: sat_check.py プロジェクト: inogs/bit.sea
reset = False

Timestart = "19500101"
Time__end = "20500101"
TI = TimeInterval(Timestart, Time__end, "%Y%m%d")
TL_orig = TimeList.fromfilenames(TI, ORIGDIR, "*.nc", prefix="", dateformat="%Y%m%d")

somecheck = False
for filename in TL_orig.filelist:
    outfile = CHECKDIR + os.path.basename(filename)
    if not os.path.exists(outfile):
        somecheck = True
        break

if somecheck:
    MEAN, STD = Sat.readClimatology(CLIM_FILE)
else:
    print "All checks done"

for iTime, filename in enumerate(TL_orig.filelist):
    outfile = CHECKDIR + os.path.basename(filename)
    exit_condition = os.path.exists(outfile) and (not reset)
    if exit_condition:
        continue
    julian = int(TL_orig.Timelist[iTime].strftime("%j"))
    DAILY_REF_MEAN = MEAN[julian - 1, :, :]
    DAILY_REF_STD = STD[julian - 1, :, :]

    CHL_IN = Sat.readfromfile(filename)
    CHL_IN[581:, 164:] = Sat.fillValue  # BLACK SEA
    cloudsLandTIME = CHL_IN == Sat.fillValue
コード例 #4
0
ファイル: calval.py プロジェクト: inogs/bit.sea
MODEL_DIR="/gpfs/work/OGS_prod/CalVal/Q_REP_MODEL_FORECAST/"
REF_DIR  = "/gss/gss_work/DRES_OGS_BiGe/Observations/TIME_RAW_DATA/ONLINE/SAT/MODIS/WEEKLY/"

Timestart="20150701"
Time__end="20151001"
TI    = TimeInterval(Timestart,Time__end,"%Y%m%d")
model_TL = TimeList.fromfilenames(TI, MODEL_DIR,"*.nc",prefix='',dateformat='%Y%m%d')

IonamesFile = '../postproc/IOnames_sat.xml'
IOname = IOnames.IOnames(IonamesFile)

ngib=52

for itime, time in enumerate(model_TL.Timelist[:1]):
    satfile = REF_DIR + time.strftime(IOname.Input.dateformat) + IOname.Output.suffix + ".nc"
    modfile = model_TL.filelist[itime]
     
    ncIN = NC.netcdf_file(modfile,'r')
    For = ncIN.variables['chl'].data[0,0,:,:].copy().astype(np.float64)
    ncIN.close()
    
    Sat16 = Sat.convertinV4format(Sat.readfromfile(satfile)).astype(np.float64)
    Sat16 = Sat16[:,ngib:]
    
    cloudsLand = np.isnan(Sat16)
    modelLand  = For > 1.0e+19
    nodata     = cloudsLand | modelLand
    M = matchup.matchup(For[~nodata], Sat16[~nodata])
    print M.bias()