Пример #1
0
def funcMap():
    gridRMSE, uy, ux = grid.array2grid(statErr2.RMSE, lat=lat, lon=lon)
    gridCorr, uy, ux = grid.array2grid(statSigma2.sigma, lat=lat, lon=lon)
    figM, axM = plt.subplots(1, 2, figsize=(10, 4))
    axplot.mapGrid(axM[0], uy, ux, gridRMSE, vRange=[0, 0.1], cmap=plt.cm.jet)
    axM[0].set_title('Temporal Test RMSE')
    axplot.mapGrid(axM[1], uy, ux, gridCorr, vRange=[0, 0.1], cmap=plt.cm.jet)
    axM[1].set_title('Temporal Test Correlation')
    figP, axP = plt.subplots(1, 1, figsize=(15, 3))
    return figM, axM, figP, axP, lon, lat
Пример #2
0
out = trainName + '_y15_Forcing_dr60'
rootDB = rnnSMAP.kPath['DB_L3_NA']
rootOut = rnnSMAP.kPath['Out_L3_NA']
predField = 'LSTM'
targetField = 'SMAP'
ds = rnnSMAP.classDB.DatasetPost(rootDB=rootDB,
                                 subsetName=testName,
                                 yrLst=[2016, 2017])
ds.readData(var='SMAP_AM', field='SMAP')
ds.readPred(rootOut=rootOut, out=out, field='LSTM')
statErr = ds.statCalError(predField='LSTM', targetField='SMAP')

# dsTrain = rnnSMAP.classDB.DatasetPost(
#     rootDB=rootDB, subsetName=testName, yrLst=[2015])
# dsTrain.readData(var='SMAP_AM', field='SMAP')
# dsTrain.readPred(rootOut=rootOut, out=out, field='LSTM')

lat = ds.crd[:, 0]
lon = ds.crd[:, 1]
gridRMSE, uy, ux = grid.array2grid(statErr.RMSE, lat=lat, lon=lon)
gridCorr, uy, ux = grid.array2grid(statErr.rho, lat=lat, lon=lon)
fig, axes = plt.subplots(2, 1, figsize=(9, 10))
axplot.mapGrid(axes[0], uy, ux, gridRMSE, vRange=[0, 0.1], cmap=plt.cm.jet)
axes[0].set_title('Temporal Test RMSE')
axplot.mapGrid(axes[1], uy, ux, gridCorr, vRange=[0.5, 1], cmap=plt.cm.jet)
axes[1].set_title('Temporal Test Correlation')
fig.show()

np.nanmean(statErr.RMSE)
np.nanmean(statErr.rho)
Пример #3
0
# read shapefile
# fileEcoShp = r'C:\Users\geofk\work\map\ecoRegion\NA_CEC_Eco_Level3\NA_CEC_Eco_Level3_Project.shp'
fileEcoShp = '/mnt/sdb/Kuai/map/ecoRegion/NA_CEC_Eco_Level3/NA_CEC_Eco_Level3_Project.shp'
shapeLst = shapefile.Reader(fileEcoShp).shapes()
shapeRecLst = shapefile.Reader(fileEcoShp).records()
codeLstTemp = [x['NA_L3CODE'].split('.') for x in shapeRecLst]
codeLst = [[x[0] for x in codeLstTemp], [x[1] for x in codeLstTemp],
           [x[2] for x in codeLstTemp]]

# read database crd
rootDB = hydroDL.pathSMAP['DB_L3_NA']
tRange = [20150401, 20160401]
df = dbCsv.DataframeCsv(rootDB=rootDB, subset='CONUS', tRange=tRange)
lat, lon = df.getGeo()

# calculate inside poligon
# indLst=gis.pointInPoly(lat,lon,shapeLst)
# df.saveDataConst(indLst, 'ecoShapeInd', bWriteStat=True)
indLst = df.getDataConst('ecoShapeInd').squeeze().astype(int).tolist()
shapeCodeLst = [shapeRecLst[x]['NA_L3CODE'].split('.') for x in indLst]
for k in range(3):
    data = [int(x[k]) for x in shapeCodeLst]
    # df.saveDataConst(data, 'ecoRegionL'+str(k+1), bCalStat=False)

# subset
fieldLst = ['ecoRegionL' + str(x + 1) for x in range(3)]
codeLst = df.getDataConst(fieldLst, doNorm=False, rmNan=False)
dataGrid, uy, ux = grid.array2grid(codeLst[0], lat=lat, lon=lon)
fig, ax = plot.plotMap(dataGrid, lat=uy, lon=ux)
Пример #4
0
from hydroDL import pathSMAP
from hydroDL.utils import grid, flatData
from hydroDL.data import dbCsv
from hydroDL.post import plot
import numpy as np
import matplotlib.pyplot as plt

rootDB = pathSMAP['DB_L3_NA']
tRange = [20150401, 20180331]
df = dbCsv.DataframeCsv(rootDB=rootDB, subset='CONUS', tRange=tRange)
lat, lon = df.getGeo()
indGrid, uy, ux = grid.array2grid(df.indSub, lat=lat, lon=lon, fillMiss=False)
indSub = flatData(indGrid[::3, ::3]).astype(int)
df.subsetInit('CONUSv3f1', ind=indSub)

fig, ax = plt.subplots(figsize=(12, 8))
plt.plot(lon, lat, 'bo')
plt.plot(lon[indSub], lat[indSub], 'r*')
fig.show()

# can not repeat what MATLAB did
indSub = flatData(indGrid[::4, 1::4]).astype(int)
dfSub = dbCsv.DataframeCsv(rootDB=rootDB, subset='CONUSv4f1', tRange=tRange)
latSub, lonSub = dfSub.getGeo()
fig, ax = plt.subplots(figsize=(12, 8))
plt.plot(lon[indSub], lat[indSub], 'r*')
plt.plot(lonSub, latSub, 'bo')
fig.show()