根据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
这样就运行了,结果在你设置的输出路径下面。