运行PCR-GLOBWB V2模型

根据python selenium批量获取PCR-GLOBWB的输入数据_CNU-QingquanZhang的博客-优快云博客下载好数据后就可以开始运行程序(github网址github.com)了。我运行的python版本是python3.8+Anaconda。个人感觉此时python3.8运行的比较平稳。我在考虑运行模型前看了这篇总结,Windows下运行PCR-GLOBWB的学习和总结_我不爱吃榴莲的博客-优快云博客,大家可以多看看关于PCR的资料,心里就大致明白整个流程了。

运行模型下来,我感觉最难的可能不是运行模型(有可能是我的配置和运行过程比较顺利),而是根据自己的应用对数据和参数进行修改。因为这个输入数据是1979至2010年的,如果想扩充到2020或者更长时间或者换个具体的研究区,就需要自己找资料了,完成数据的拼接和组合,这个流程可能就比较繁杂了。

接下来我简单说一下流程,以作记录并供大家参考。

1.配置环境

这一步其实很简单,我们在安装Anaconda后会出现这个控制台,我们用这个来配置环境

 打开Anaconda prompt,按照Github Readme文件中的指示,输入

conda env create --name pcrglobwb_python38 -f "E:\030_run_PCR_20230520\000_script\PCR-GLOBWB_model-master\PCR-GLOBWB_model-master\conda_env\pcrglobwb_py3.yml"

 后面的yml是官方给的配置包版本,里面长这样,这里本来是python>=3.6,我个人改成了==3.8,可以根据需要自行更改

 配置过程中出现问题就把出问题的包给注释掉,我这里就注释掉了-cdo和-ncview,我们可以后面再安装嘛。

这里容易埋雷的地方是numpy版本问题,大家可以将numpy版本设置成1.18,1.19或1.20,不要用最新版本的,会报挺多错的。

下图是我在这个环境下安装的python包(可以参考,会避免很多错)

 

2.设置运行参数

github下载的代码有这么几个文件夹,配置文件时config文件夹,里面有几个示例配置文件

 我的配置文件时选中的这个,里面长这样,我们需要更改下路径和时间。

[globalOptions]

# Please set the pcrglobwb output directory (outputDir) in an absolute path.
# - Please make sure that you have access to it. 
#~ outputDir = /scratch/depfg/sutan101/pcrglobwb2_output/30min/
outputDir    = E:\030_run_PCR_20230520\050_result\

# Please set the clone map file (cloneMap), which defines the spatial resolution and extent of your study area.
# - Please make sure that the file is stored locally in your computing machine.
# - The file must be in the pcraster format.
#~ cloneMap = /quanta1/home/hydrowld/data/hydroworld/pcrglobwb2_input_release/version_2019_11_beta/pcrglobwb2_input/global_30min/cloneMaps/clone_global_30min.map
#~ cloneMap = /quanta1/home/hydrowld/data/hydroworld/pcrglobwb2_input_release/version_2019_11_beta/pcrglobwb2_input/global_30min/cloneMaps/RhineMeuse30min.clone.map
cloneMap    = E:\PCR_download\new_PCR\pcrglobwb\version_2019_11_beta\pcrglobwb2_input\global_30min\cloneMaps\clone_global_30min.map

# Set the input directory map in an absolute path. The input forcing and parameter directories and files will be relative to this.
# - The following is an example using files from the opendap server.
inputDir    = E:\PCR_download\new_PCR\pcrglobwb\version_2019_11_beta\pcrglobwb2_input\
#~ # - The following is an example using input files stored locally in your computing machine.
#~ inputDir = /quanta1/home/hydrowld/data/hydroworld/pcrglobwb2_input_release/version_2019_11_beta/pcrglobwb2_input/


# The area/landmask of interest:
# If None, area/landmask is limited for cells with ldd value. 
landmask    = None
#~ landmask = /quanta1/home/hydrowld/data/hydroworld/pcrglobwb2_input_release/version_2019_11_beta/pcrglobwb2_input/global_30min/cloneMaps/RhineMeuse30min.landmask.map


# netcdf attributes for output files:
institution = Department of Physical Geography, Utrecht University
title       = PCR-GLOBWB 2 output, with human factors (non-natural)
description = PCR-GLOBWB run with human factors (non-natural) at 30 arcmin resolution


startTime = 2000-01-01
endTime   = 2010-12-31
# Format: YYYY-MM-DD ; The model runs on daily time step.


# spinning up options:
maxSpinUpsInYears = 0
minConvForSoilSto = 0.0
minConvForGwatSto = 0.0
minConvForChanSto = 0.0
minConvForTotlSto = 0.0


[meteoOptions]

# Set the forcing temperature and precipitation files (relative to inputDir)
precipitationNC = global_30min/meteo/forcing/daily_precipitation_cru_era-interim_1979_to_2010.nc
temperatureNC   = global_30min/meteo/forcing/daily_temperature_cru_era-interim_1979_to_2010.nc

# Method to calculate referencePotETP (reference potential evaporation+transpiration)
# options are "Hamon" and "Input" ; If "Input", the netcdf input file must be given:
referenceETPotMethod = Input
refETPotFileNC  = global_30min/meteo/forcing/daily_referencePotET_cru_era-interim_1979_to_2010.nc


[landSurfaceOptions]

debugWaterBalance = True

numberOfUpperSoilLayers = 2

# soil and parameters
# - they are used for all land cover types, unless they are are defined in certain land cover type options 
#   (e.g. different/various soil types for agriculture areas)  
topographyNC     = global_30min/landSurface/topography/topography_parameters_30_arcmin_october_2015.nc
soilPropertiesNC = global_30min/landSurface/soil/soilProperties.nc

includeIrrigation = True

# netcdf time series for historical expansion of irrigation areas (unit: hectares). 
# Note: The resolution of this map must be consisten with the resolution of cellArea. 
historicalIrrigationArea = global_30min/waterUse/irrigation/irrigated_areas/irrigationArea30ArcMin.nc

# a pcraster map/value defining irrigation efficiency (dimensionless) - optional
irrigationEfficiency     = global_30min/waterUse/irrigation/irrigation_efficiency/efficiency.nc


includeDomesticWaterDemand  = True
includeIndustryWaterDemand  = True
includeLivestockWaterDemand = True

# domestic, industrial and livestock water demand data (unit must be in m.day-1)
domesticWaterDemandFile  = global_30min/waterUse/waterDemand/domestic_water_demand_version_october_2014.nc
industryWaterDemandFile  = global_30min/waterUse/waterDemand/industrial_water_demand_version_october_2014.nc
livestockWaterDemandFile = global_30min/waterUse/waterDemand/livestock_water_demand_1960-2012.nc

# desalination water supply (maximum/potential/capacity)
desalinationWater = global_30min/waterUse/desalination/desalination_water_use_version_october_2014.nc

# zone IDs (scale) at which allocations of groundwater and surface water (as well as desalinated water) are performed  
allocationSegmentsForGroundSurfaceWater = global_30min/waterUse/abstraction_zones/abstraction_zones_60min_30min.nc

# pcraster maps defining the partitioning of groundwater - surface water source 
#
# - predefined surface water - groundwater partitioning for irrigation demand (e.g. based on Siebert, Global Map of Irrigation Areas version 5)
irrigationSurfaceWaterAbstractionFractionData           = global_30min/waterUse/source_partitioning/surface_water_fraction_for_irrigation/AEI_SWFRAC.nc
# -- quality map
irrigationSurfaceWaterAbstractionFractionDataQuality    = global_30min/waterUse/source_partitioning/surface_water_fraction_for_irrigation/AEI_QUAL.nc
#
# - threshold values defining the preference for surface water source for irrigation purpose
# -- treshold to maximize surface water irrigation use (cells with irrSurfaceWaterAbstractionFraction above this will prioritize irrigation surface water use)
treshold_to_maximize_irrigation_surface_water           = 0.50
# -- treshold to minimize fossil water withdrawal for irrigation (cells with irrSurfaceWaterAbstractionFraction below this have no fossil withdrawal for irrigation)
treshold_to_minimize_fossil_groundwater_irrigation      = 0.70
#
# - predefined surface water - groundwater partitioning for non irrigation demand (e.g. based on McDonald, 2014)
maximumNonIrrigationSurfaceWaterAbstractionFractionData = global_30min/waterUse/source_partitioning/surface_water_fraction_for_non_irrigation/max_city_sw_fraction.nc


[forestOptions]

name = forest
debugWaterBalance = True

# snow module properties
snowModuleType      =  Simple
freezingT           =  0.0
degreeDayFactor     =  0.0025
snowWaterHoldingCap =  0.1
refreezingCoeff     =  0.05

# other paramater values
minTopWaterLayer  = 0.0
minCropKC         = 0.2

cropCoefficientNC = global_30min/landSurface/landCover/naturalTall/Global_CropCoefficientKc-Forest_30min.nc
interceptCapNC    = global_30min/landSurface/landCover/naturalTall/interceptCapInputForest366days.nc
coverFractionNC   = global_30min/landSurface/landCover/naturalTall/coverFractionInputForest366days.nc

landCoverMapsNC   = global_30min/landSurface/landCover/naturalTall/forestProperties.nc

# initial conditions:
interceptStorIni = global_30min/initialConditions/non-natural/consistent_run_201903XX/1999/interceptStor_forest_1999-12-31.nc
snowCoverSWEIni  = global_30min/initialConditions/non-natural/consistent_run_201903XX/1999/snowCoverSWE_forest_1999-12-31.nc
snowFreeWaterIni = global_30min/initialConditions/non-natural/consistent_run_201903XX/1999/snowFreeWater_forest_1999-12-31.nc
topWaterLayerIni = global_30min/initialConditions/non-natural/consistent_run_201903XX/1999/topWaterLayer_forest_1999-12-31.nc
storUppIni       = global_30min/initialConditions/non-natural/consistent_run_201903XX/1999/storUpp_forest_1999-12-31.nc
storLowIni       = global_30min/initialConditions/non-natural/consistent_run_201903XX/1999/storLow_forest_1999-12-31.nc
interflowIni     = global_30min/initialConditions/non-natural/consistent_run_201903XX/1999/interflow_forest_1999-12-31.nc


[grasslandOptions]

name = grassland
debugWaterBalance = True

# snow module properties
snowModuleType      =  Simple
freezingT           =  0.0
degreeDayFactor     =  0.0025
snowWaterHoldingCap =  0.1
refreezingCoeff     =  0.05

# other paramater values
minTopWaterLayer = 0.0
minCropKC        = 0.2

cropCoefficientNC = global_30min/landSurface/landCover/naturalShort/Global_CropCoefficientKc-Grassland_30min.nc
interceptCapNC    = global_30min/landSurface/landCover/naturalShort/interceptCapInputGrassland366days.nc
coverFractionNC   = global_30min/landSurface/landCover/naturalShort/coverFractionInputGrassland366days.nc

landCoverMapsNC  = global_30min/landSurface/landCover/naturalShort/grasslandProperties.nc

# initial conditions:
interceptStorIni = global_30min/initialConditions/non-natural/consistent_run_201903XX/1999/interceptStor_grassland_1999-12-31.nc
snowCoverSWEIni  = global_30min/initialConditions/non-natural/consistent_run_201903XX/1999/snowCoverSWE_grassland_1999-12-31.nc
snowFreeWaterIni = global_30min/initialConditions/non-natural/consistent_run_201903XX/1999/snowFreeWater_grassland_1999-12-31.nc
topWaterLayerIni = global_30min/initialConditions/non-natural/consistent_run_201903XX/1999/topWaterLayer_grassland_1999-12-31.nc
storUppIni       = global_30min/initialConditions/non-natural/consistent_run_201903XX/1999/storUpp_grassland_1999-12-31.nc
storLowIni       = global_30min/initialConditions/non-natural/consistent_run_201903XX/1999/storLow_grassland_1999-12-31.nc
interflowIni     = global_30min/initialConditions/non-natural/consistent_run_201903XX/1999/interflow_grassland_1999-12-31.nc


[irrPaddyOptions]

name = irrPaddy
debugWaterBalance = True

# snow module properties
snowModuleType      =  Simple
freezingT           =  0.0
degreeDayFactor     =  0.0025
snowWaterHoldingCap =  0.1
refreezingCoeff     =  0.05

landCoverMapsNC  = global_30min/landSurface/landCover/irrPaddy/paddyProperties.nc
#
# other paramater values
minTopWaterLayer = 0.05
minCropKC        = 0.2
cropDeplFactor   = 0.2
minInterceptCap  = 0.0002

cropCoefficientNC = global_30min/landSurface/landCover/irrPaddy/Global_CropCoefficientKc-IrrPaddy_30min.nc

# initial conditions:
interceptStorIni = global_30min/initialConditions/non-natural/consistent_run_201903XX/1999/interceptStor_irrPaddy_1999-12-31.nc
snowCoverSWEIni  = global_30min/initialConditions/non-natural/consistent_run_201903XX/1999/snowCoverSWE_irrPaddy_1999-12-31.nc
snowFreeWaterIni = global_30min/initialConditions/non-natural/consistent_run_201903XX/1999/snowFreeWater_irrPaddy_1999-12-31.nc
topWaterLayerIni = global_30min/initialConditions/non-natural/consistent_run_201903XX/1999/topWaterLayer_irrPaddy_1999-12-31.nc
storUppIni       = global_30min/initialConditions/non-natural/consistent_run_201903XX/1999/storUpp_irrPaddy_1999-12-31.nc
storLowIni       = global_30min/initialConditions/non-natural/consistent_run_201903XX/1999/storLow_irrPaddy_1999-12-31.nc
interflowIni     = global_30min/initialConditions/non-natural/consistent_run_201903XX/1999/interflow_irrPaddy_1999-12-31.nc


[irrNonPaddyOptions]

name = irrNonPaddy
debugWaterBalance = True

# snow module properties
snowModuleType      =  Simple
freezingT           =  0.0
degreeDayFactor     =  0.0025
snowWaterHoldingCap =  0.1
refreezingCoeff     =  0.05

landCoverMapsNC  = global_30min/landSurface/landCover/irrNonPaddy/nonPaddyProperties.nc
#
# other paramater values
minTopWaterLayer = 0.0
minCropKC        = 0.2
cropDeplFactor   = 0.5
minInterceptCap  = 0.0002

cropCoefficientNC = global_30min/landSurface/landCover/irrNonPaddy/Global_CropCoefficientKc-IrrNonPaddy_30min.nc

# initial conditions:
interceptStorIni = global_30min/initialConditions/non-natural/consistent_run_201903XX/1999/interceptStor_irrNonPaddy_1999-12-31.nc
snowCoverSWEIni  = global_30min/initialConditions/non-natural/consistent_run_201903XX/1999/snowCoverSWE_irrNonPaddy_1999-12-31.nc
snowFreeWaterIni = global_30min/initialConditions/non-natural/consistent_run_201903XX/1999/snowFreeWater_irrNonPaddy_1999-12-31.nc
topWaterLayerIni = global_30min/initialConditions/non-natural/consistent_run_201903XX/1999/topWaterLayer_irrNonPaddy_1999-12-31.nc
storUppIni       = global_30min/initialConditions/non-natural/consistent_run_201903XX/1999/storUpp_irrNonPaddy_1999-12-31.nc
storLowIni       = global_30min/initialConditions/non-natural/consistent_run_201903XX/1999/storLow_irrNonPaddy_1999-12-31.nc
interflowIni     = global_30min/initialConditions/non-natural/consistent_run_201903XX/1999/interflow_irrNonPaddy_1999-12-31.nc




[groundwaterOptions]

debugWaterBalance = True

groundwaterPropertiesNC = global_30min/groundwater/properties/groundwaterProperties.nc
# The file will containspecificYield (m3.m-3), kSatAquifer (m.day-1), recessionCoeff (day-1)
#
# - minimum value for groundwater recession coefficient (day-1) 
minRecessionCoeff = 1.0e-4

# some options for constraining groundwater abstraction
limitFossilGroundWaterAbstraction      = True
estimateOfRenewableGroundwaterCapacity = 0.0
estimateOfTotalGroundwaterThickness    = global_30min/groundwater/aquifer_thickness_estimate/thickness_30min.nc
# minimum and maximum total groundwater thickness 
minimumTotalGroundwaterThickness       = 100.
maximumTotalGroundwaterThickness       = None

# annual pumping capacity for each region (unit: billion cubic meter per year), should be given in a netcdf file
pumpingCapacityNC = global_30min/waterUse/groundwater_pumping_capacity/regional_abstraction_limit.nc

# initial conditions:
storGroundwaterIni                        = global_30min/initialConditions/non-natural/consistent_run_201903XX/1999/storGroundwater_1999-12-31.nc
storGroundwaterFossilIni                  = global_30min/initialConditions/non-natural/consistent_run_201903XX/1999/storGroundwaterFossil_1999-12-31.nc
#
# additional initial conditions for pumping behaviors
avgNonFossilGroundwaterAllocationLongIni  = global_30min/initialConditions/non-natural/consistent_run_201903XX/1999/avgNonFossilGroundwaterAllocationLong_1999-12-31.nc
avgNonFossilGroundwaterAllocationShortIni = global_30min/initialConditions/non-natural/consistent_run_201903XX/1999/avgNonFossilGroundwaterAllocationShort_1999-12-31.nc
avgTotalGroundwaterAbstractionIni         = global_30min/initialConditions/non-natural/consistent_run_201903XX/1999/avgTotalGroundwaterAbstraction_1999-12-31.nc
avgTotalGroundwaterAllocationLongIni      = global_30min/initialConditions/non-natural/consistent_run_201903XX/1999/avgTotalGroundwaterAllocationLong_1999-12-31.nc
avgTotalGroundwaterAllocationShortIni     = global_30min/initialConditions/non-natural/consistent_run_201903XX/1999/avgTotalGroundwaterAllocationShort_1999-12-31.nc
#
# additional initial conditions (needed only for MODFLOW run) 
relativeGroundwaterHeadIni                = global_30min/initialConditions/non-natural/consistent_run_201903XX/1999/relativeGroundwaterHead_1999-12-31.nc
baseflowIni                               = global_30min/initialConditions/non-natural/consistent_run_201903XX/1999/baseflow_1999-12-31.nc

# zonal IDs (scale) at which zonal allocation of groundwater is performed  
allocationSegmentsForGroundwater = global_30min/waterUse/abstraction_zones/abstraction_zones_30min_30min.nc



[routingOptions]

debugWaterBalance = True

# drainage direction map
lddMap      = global_30min/routing/ldd_and_cell_area/lddsound_30min.nc

# cell area (unit: m2)
cellAreaMap = global_30min/routing/ldd_and_cell_area/cellarea30min.nc

# routing method:
routingMethod     = accuTravelTime
#~ routingMethod  = kinematicWave

# manning coefficient
manningsN   = 0.04

# Option for flood plain simulation
dynamicFloodPlain = True

# manning coefficient for floodplain
floodplainManningsN = 0.07


# channel gradient
gradient             = global_30min/routing/channel_properties/channel_gradient.nc

# constant channel depth 
constantChannelDepth = global_30min/routing/channel_properties/bankfull_depth.nc

# constant channel width (optional)
constantChannelWidth = global_30min/routing/channel_properties/bankfull_width.nc

# minimum channel width (optional)
minimumChannelWidth  = global_30min/routing/channel_properties/bankfull_width.nc

# channel properties for flooding
bankfullCapacity     = None
# - If None, it will be estimated from (bankfull) channel depth (m) and width (m) 


# files for relative elevation (above minimum dem) 
relativeElevationFiles  = global_30min/routing/channel_properties/dzRel%04d.nc
relativeElevationLevels = 0.0, 0.01, 0.05, 0.10, 0.20, 0.30, 0.40, 0.50, 0.60, 0.70, 0.80, 0.90, 1.00


# composite crop factors for WaterBodies: 
cropCoefficientWaterNC = global_30min/routing/kc_surface_water/cropCoefficientForOpenWater.nc
minCropWaterKC         = 1.00


# lake and reservoir parameters
waterBodyInputNC       = global_30min/routing/surface_water_bodies/waterBodies30min.nc
onlyNaturalWaterBodies = False


# initial conditions:
waterBodyStorageIni            = global_30min/initialConditions/non-natural/consistent_run_201903XX/1999/waterBodyStorage_1999-12-31.nc
channelStorageIni              = global_30min/initialConditions/non-natural/consistent_run_201903XX/1999/channelStorage_1999-12-31.nc
readAvlChannelStorageIni       = global_30min/initialConditions/non-natural/consistent_run_201903XX/1999/readAvlChannelStorage_1999-12-31.nc
avgDischargeLongIni            = global_30min/initialConditions/non-natural/consistent_run_201903XX/1999/avgDischargeLong_1999-12-31.nc
avgDischargeShortIni           = global_30min/initialConditions/non-natural/consistent_run_201903XX/1999/avgDischargeShort_1999-12-31.nc
m2tDischargeLongIni            = global_30min/initialConditions/non-natural/consistent_run_201903XX/1999/m2tDischargeLong_1999-12-31.nc
avgBaseflowLongIni             = global_30min/initialConditions/non-natural/consistent_run_201903XX/1999/avgBaseflowLong_1999-12-31.nc
riverbedExchangeIni            = global_30min/initialConditions/non-natural/consistent_run_201903XX/1999/riverbedExchange_1999-12-31.nc
#
# initial condition of sub-time step discharge (needed for estimating number of time steps in kinematic wave methods)
subDischargeIni                = global_30min/initialConditions/non-natural/consistent_run_201903XX/1999/subDischarge_1999-12-31.nc
#
avgLakeReservoirInflowShortIni = global_30min/initialConditions/non-natural/consistent_run_201903XX/1999/avgLakeReservoirInflowShort_1999-12-31.nc
avgLakeReservoirOutflowLongIni = global_30min/initialConditions/non-natural/consistent_run_201903XX/1999/avgLakeReservoirOutflowLong_1999-12-31.nc
#
# number of days (timesteps) that have been performed for spinning up initial conditions in the routing module (i.e. channelStorageIni, avgDischargeLongIni, avgDischargeShortIni, etc.)
timestepsToAvgDischargeIni     = global_30min/initialConditions/non-natural/consistent_run_201903XX/1999/timestepsToAvgDischarge_1999-12-31.nc
# Note that: 
# - maximum number of days (timesteps) to calculate long term average flow values (default: 5 years = 5 * 365 days = 1825)
# - maximum number of days (timesteps) to calculate short term average values (default: 1 month = 1 * 30 days = 30)




[reportingOptions]

# output files that will be written in the disk in netcdf files:

# - daily resolution
outDailyTotNC = totalRunoff
#discharge,totalRunoff,gwRecharge,totalGroundwaterAbstraction,surfaceWaterStorage

# - monthly resolution
outMonthTotNC = runoff,actualET,precipitation,totalGroundwaterAbstraction,baseflow,totalRunoff
#actualET,irrPaddyWaterWithdrawal,irrNonPaddyWaterWithdrawal,domesticWaterWithdrawal,industryWaterWithdrawal,livestockWaterWithdrawal,runoff,totalRunoff,baseflow,directRunoff,interflowTotal,totalGroundwaterAbstraction,desalinationAbstraction,surfaceWaterAbstraction,nonFossilGroundwaterAbstraction,fossilGroundwaterAbstraction,irrGrossDemand,nonIrrGrossDemand,totalGrossDemand,nonIrrWaterConsumption,nonIrrReturnFlow,precipitation,gwRecharge,surfaceWaterInf,referencePotET,totalEvaporation,totalPotentialEvaporation,totLandSurfaceActuaET,totalLandSurfacePotET,waterBodyActEvaporation,waterBodyPotEvaporation
outMonthAvgNC = totalWaterStorageThickness,surfaceWaterStorage,snowCoverSWE,storGroundwater,waterBodyStorage
#discharge,temperature,dynamicFracWat,surfaceWaterStorage,interceptStor,snowFreeWater,snowCoverSWE,topWaterLayer,storUppTotal,storLowTotal,storGroundwater,storGroundwaterFossil,totalActiveStorageThickness,totalWaterStorageThickness,satDegUpp,satDegLow,channelStorage,waterBodyStorage
outMonthEndNC = storGroundwater,totalWaterStorageThickness
#storGroundwater,storGroundwaterFossil,waterBodyStorage,channelStorage,totalWaterStorageThickness,totalActiveStorageThickness
# - annual resolution
outAnnuaTotNC = totalRunoff
#totalEvaporation,precipitation,gwRecharge,totalRunoff,baseflow,desalinationAbstraction,surfaceWaterAbstraction,nonFossilGroundwaterAbstraction,fossilGroundwaterAbstraction,totalGroundwaterAbstraction,totalAbstraction,irrGrossDemand,nonIrrGrossDemand,totalGrossDemand,nonIrrWaterConsumption,nonIrrReturnFlow,runoff,actualET,irrPaddyWaterWithdrawal,irrNonPaddyWaterWithdrawal,irrigationWaterWithdrawal,domesticWaterWithdrawal,industryWaterWithdrawal,livestockWaterWithdrawal,precipitation_at_irrigation,netLqWaterToSoil_at_irrigation,evaporation_from_irrigation,transpiration_from_irrigation,referencePotET
outAnnuaAvgNC = totalWaterStorageThickness,surfaceWaterStorage,snowCoverSWE,storGroundwater,waterBodyStorage
#temperature,discharge,surfaceWaterStorage,waterBodyStorage,interceptStor,snowFreeWater,snowCoverSWE,topWaterLayer,storUppTotal,storLowTotal,storGroundwater,storGroundwaterFossil,totalWaterStorageThickness,satDegUpp,satDegLow,channelStorage,waterBodyStorage,fractionWaterBodyEvaporation,fractionTotalEvaporation,fracSurfaceWaterAllocation,fracDesalinatedWaterAllocation,gwRecharge
outAnnuaEndNC = storGroundwater,totalWaterStorageThickness
#surfaceWaterStorage,interceptStor,snowFreeWater,snowCoverSWE,topWaterLayer,storUppTotal,storLowTotal,storGroundwater,storGroundwaterFossil,totalWaterStorageThickness
# - monthly and annual maxima
outMonthMaxNC = channelStorage,dynamicFracWat,floodVolume,floodDepth,surfaceWaterLevel,discharge,totalRunoff
outAnnuaMaxNC = None

# netcdf format and zlib setup
formatNetCDF = NETCDF4
zlib = True



 3.运行吧

在Anaconda prompt里输入

conda activate pcrglobwb_python38

然后按照格式输入命令就行

python deterministic_runner.py路径 ini路径,如

python "E:\030_run_PCR_20230520\000_script\PCR-GLOBWB_model-master\PCR-GLOBWB_model-master\model\deterministic_runner.py" E:\030_run_PCR_20230520\000_script\PCR-GLOBWB_model-master\PCR-GLOBWB_model-master\config\setup_30min_windows_zqq.ini

 这样就运行了,结果在你设置的输出路径下面。

### 关于PCR-Net深度学习教程和资源 #### PCR-Net概述 PCR-Net是一种基于卷积神经网络(CNN)的方法,专门用于处理聚合酶链式反应(Polymerase Chain Reaction, PCR)数据。这种方法能够有效地分析基因表达模式并识别特定序列中的变异[^1]。 #### 学习路径建议 对于希望深入了解PCR-Net及其应用的研究人员来说,可以从以下几个方面入手: - **基础知识积累** 掌握基本的分子生物学概念以及PCR技术原理是非常重要的前提条件。这有助于理解如何将这些实验产生的大量复杂的数据输入到模型中去训练。 - **编程技能准备** Python是实现此类算法的主要工具之一,在开始之前应该熟悉NumPy、Pandas等科学计算库,并且掌握TensorFlow或者PyTorch框架来构建自己的神经网络结构。 - **阅读原始论文** 查阅最初提出此架构的文章可以获取最权威的第一手资料。通常这类文章会详细介绍设计思路和技术细节,这对于后续实践具有指导意义。 - **在线课程与文档** 利用互联网上的开放教育资源也是一个不错的选择。例如Coursera上开设有关于生物信息学专项课程;GitHub上有许多开源项目可供参考学习。 - **参与社区讨论** 加入专业的论坛或社交平台小组(如优快云),与其他爱好者交流心得体验,共同解决问题,往往能获得意想不到的帮助和支持。 ```python import tensorflow as tf from tensorflow.keras import layers def create_pcr_net(input_shape=(None,), num_classes=2): inputs = tf.keras.Input(shape=input_shape) # Define your custom architecture here outputs = layers.Dense(num_classes)(inputs) model = tf.keras.Model(inputs=inputs, outputs=outputs) return model ```
评论 15
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值