Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

unified coding style of python scripts #25

Merged
merged 86 commits into from
Sep 4, 2017
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
86 commits
Select commit Hold shift + click to select a range
1d649b5
merge from master
crazyzlj Aug 11, 2017
ff2cde7
update error information
crazyzlj Aug 11, 2017
11570ca
Squashed 'seims/pygeoc/' changes from e539937e..22653d6f
crazyzlj Aug 11, 2017
91638e7
Merge commit '11570ca63b678b59f3978384aa4e715f027869a1'
crazyzlj Aug 11, 2017
597823b
update pygeoc
crazyzlj Aug 11, 2017
d775ac6
add slope position units related, initial implemented by huiran
crazyzlj Aug 13, 2017
9db5a44
optimize raster2shp arguments
crazyzlj Aug 14, 2017
640992f
add algorithm to construct slope position units
crazyzlj Aug 14, 2017
344fc63
add areal structural bmps for model test
crazyzlj Aug 16, 2017
0262440
use additionalFiles to support more flexible input raster files
crazyzlj Aug 16, 2017
7805427
add description of basic protocol of plain text data
crazyzlj Aug 16, 2017
1997606
remove MGT_FIELDS variable and description
crazyzlj Aug 16, 2017
e7e1b6e
bug fixed of checkDate of output items
crazyzlj Aug 16, 2017
e1167e5
print warning info instead of throw exception when flush output items
crazyzlj Aug 16, 2017
02efaff
del mgt_fields
crazyzlj Aug 16, 2017
3eda966
del mgt_fields, read and set field data by Scenario data
crazyzlj Aug 16, 2017
0bde16d
tidy code
crazyzlj Aug 16, 2017
f0b9351
redesign the representation of areal bmps (update parameters before m…
crazyzlj Aug 16, 2017
ea89f5d
add MongoUtil.run_bulk to avoid raise exception when no operations du…
crazyzlj Aug 17, 2017
0fa5294
redesign the postprocess module
crazyzlj Aug 18, 2017
38a7972
datetime related enhancement
crazyzlj Aug 18, 2017
62882bd
code optimization and bug fixed
crazyzlj Aug 18, 2017
318eb72
add specific application of SA
crazyzlj Aug 18, 2017
f258ad4
add visualization module
crazyzlj Aug 18, 2017
f7adb7c
add utility of SA
crazyzlj Aug 18, 2017
8ea65f2
reorganization and update code
crazyzlj Aug 18, 2017
56c505b
separate README
crazyzlj Aug 18, 2017
6997620
redesign the code structure
crazyzlj Aug 18, 2017
602ca39
toc update
crazyzlj Aug 18, 2017
793a9ce
update
crazyzlj Aug 21, 2017
48cd4b1
update
crazyzlj Aug 21, 2017
28f26c1
no change
crazyzlj Aug 21, 2017
aa588b5
add decode_strs_in_dict
crazyzlj Aug 21, 2017
54a2f21
iteritems() -> items()
crazyzlj Aug 21, 2017
a90bb55
several updates
crazyzlj Aug 21, 2017
69fcbdb
refactor SA module
crazyzlj Aug 21, 2017
1c70355
bug fixed of set projection
crazyzlj Aug 23, 2017
468e98c
refactor of SA module
crazyzlj Aug 23, 2017
1992cce
update ImportObservedData.workflow function
crazyzlj Aug 23, 2017
a1bdf1b
update comment
crazyzlj Aug 23, 2017
d24e462
update comment
crazyzlj Aug 23, 2017
340838e
add todo of sediment routing algorithm
crazyzlj Aug 25, 2017
e8478ca
update test data
crazyzlj Aug 25, 2017
b136061
debug for youwuzhen
crazyzlj Aug 25, 2017
ef236ac
add PBIAS, RSR, etc
crazyzlj Aug 25, 2017
4035b65
calibration for youwuzhen
crazyzlj Aug 25, 2017
df65d90
improve postprocess
crazyzlj Aug 25, 2017
3c2f8ad
some code for function test
crazyzlj Aug 25, 2017
569194e
update preprocess code
crazyzlj Aug 25, 2017
16adf98
add get_config_parser
crazyzlj Aug 25, 2017
3c46da5
debug for scoop
crazyzlj Aug 25, 2017
55c698a
debug for linux
crazyzlj Aug 25, 2017
500bf8b
ignore .nfs files on linux
crazyzlj Aug 25, 2017
0a12ae5
Merge branch 'dev' of github.com:lreis2415/SEIMS into dev
crazyzlj Aug 25, 2017
5064dc7
add ouput of logbook
crazyzlj Aug 25, 2017
b3ec188
add communicate() of subprocess
crazyzlj Aug 25, 2017
c5db6c0
add communicate() of subprocess
crazyzlj Aug 25, 2017
0fc525c
little update
crazyzlj Aug 26, 2017
ee26056
update func name
crazyzlj Aug 26, 2017
948a195
update func name
crazyzlj Aug 26, 2017
0d3731e
add env cal func
crazyzlj Aug 26, 2017
eb212eb
separate usle_k calculate func
crazyzlj Aug 26, 2017
7fbb7d0
add initial calibration parameter
crazyzlj Aug 26, 2017
5106160
update
crazyzlj Aug 26, 2017
9df5e4a
Fix TypeError: execv() arg 2 must contain only strings
crazyzlj Aug 26, 2017
6cd806a
Fix TypeError: execv() arg 2 must contain only strings
crazyzlj Aug 26, 2017
d8029e1
add plot pareto fronts of different methods
crazyzlj Aug 27, 2017
b0164cf
add ref point for hypervolume cal
crazyzlj Aug 27, 2017
1929265
add scenairo id output, update economy calc
crazyzlj Aug 27, 2017
20825f5
add scenairo id output, update economy calc
crazyzlj Aug 27, 2017
f099268
update mongodb connect
crazyzlj Aug 28, 2017
1ab19b6
add plot pop size
crazyzlj Aug 28, 2017
57ab1b1
update mongodb connect func
crazyzlj Aug 28, 2017
04de119
update mongodb connect func
crazyzlj Aug 28, 2017
78629ce
add no_cursor_timeout=True for find()
crazyzlj Aug 28, 2017
1b41cfd
add no_cursor_timeout=True for find()
crazyzlj Aug 28, 2017
1c85233
update scenario test code
crazyzlj Aug 28, 2017
71293a6
change the serial method of sp units
crazyzlj Aug 28, 2017
b18bd23
add rule method 2 and 3
crazyzlj Aug 29, 2017
f30612f
add some test code
crazyzlj Aug 29, 2017
3107806
update
crazyzlj Aug 29, 2017
b14b312
add nogit directory for personal test code
crazyzlj Sep 4, 2017
a7a6c72
add nogit directory for personal test code
crazyzlj Sep 4, 2017
a45e7b0
tidy code
crazyzlj Sep 4, 2017
0e07bab
tidy code
crazyzlj Sep 4, 2017
abec3a5
tidy code
crazyzlj Sep 4, 2017
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -66,3 +66,9 @@ dist
# ignore doxygen files
doc/html
doc/img/
#nfs files on linux
.nfs*

# add nogit directory which contains personal test code
seims/nogit
seims/nogit/*
5 changes: 5 additions & 0 deletions TODO/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -31,5 +31,10 @@
~~利用[DownloadProject](https://github.com/Crascit/DownloadProject)在CMake构建工程的时候自动克隆[GoogleTest](https://github.com/google/googletest),并在项目编译之前自动编译,从而可供UnitTest自动构建、测试。在CMake命令后追加`-DUNITTEST=1`开启单元测试。参考[这篇博客](https://crascit.com/2015/07/25/cmake-gtest/)~~。
目前,基于gtest/gmock的单元测试框架已经搭建好,后续写模块的过程中应当同步写单元测试代码!
+ 9.增加flood模拟方法。如openLISEM
+ 10.增加泥沙汇流模块,采用水流功率模型计算,目前需将SWAT中的4种模型集成进来:
+ ~~Simplified Bagnold model (DONE)~~
+ Kodatie model (for streams with bed material size ranging from silt to gravel)
+ Molinas and Wu model (for primarily sand size particles)
+ Yang sand and gravel model (for primarily sand and gravel size particles)


Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,6 @@
## ORGP: Organic phosphorus concentration kg/'size'/day
## CAPEX: capital expenditures RMB/'size'
## OPEX: operation expenses RMB/'size'/year
## INCOME: additional incoime RMB/'size'/year
## INCOME: additional income RMB/'size'/year
SUBSCENARIO,NAME,ARSRC,SEQUENCE,SYear,SMonth,SDay,EYear,EMonth,EDay,Q,SED,TN,NO3,NH4,ORGN,TP,SOLP,ORGP,COD,CAPEX,OPEX,INCOME
10001,traditional,10000,0,-9999,-9999,-9999,-9999,-9999,-9999,0,0,0,0,0,0,0,0,0,0,0,0,0
9 changes: 7 additions & 2 deletions data/dianbu/data_prepare/management2/BMP_scenarios.txt
Original file line number Diff line number Diff line change
@@ -1,6 +1,11 @@
ID,NAME,BMPID,SUBSCENARIO,DISTRIBUTION,COLLECTION,LOCATION
0,Base1,12,0,RASTER|MGT_FIELDS,plant_management,ALL
0,Base1,12,1,RASTER|MGT_FIELDS,plant_management,ALL
0,Base1,17,1,RASTER|MGT_FIELDS,areal_struct_management,1-2-3
0,Base1,17,2,RASTER|MGT_FIELDS,areal_struct_management,4-5-6
0,Base1,17,3,RASTER|MGT_FIELDS,areal_struct_management,7-8-9
0,Base1,17,4,RASTER|MGT_FIELDS,areal_struct_management,10-11
0,Base1,17,5,RASTER|MGT_FIELDS,areal_struct_management,12
0,Base1,12,0,RASTER|LANDUSE,plant_management,ALL
0,Base1,12,1,RASTER|LANDUSE,plant_management,ALL
0,Base1,1,10001,ARRAY|point_source_distribution|10000,point_source_management,10001-10002
0,Base1,1,20001,ARRAY|point_source_distribution|20000,point_source_management,20001-20002-20003-20004-20005-20006-20007-20008-20009-20010-20011-20012-20013-20014-20015-20016-20017-20018-20019-20020-20021-20022-20023-20024-20025-20026-20027-20028
0,Base1,1,40001,ARRAY|point_source_distribution|40000,point_source_management,40001
Expand Down
18 changes: 18 additions & 0 deletions data/dianbu/data_prepare/management2/areal_struct_management.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
## This file define areal structural BMPs parameters.
# SUBSCENARIO: BMP unique ID
# NAME: BMP Name
# DESC: BMP Description
# REFERENCE: Literature reference
# LANDUSE: Suitable landuse ID, if not sure, please fill in 'ALL', separated by '-', such as '2-4'
# PARAMETERS: Spatial parameters that the BMP affects, the format MUST be:
# NAME1:DESC1:CHANGE1:IMPACT1-NAME2:DESC2:CHANGE2:IMPACT2-...
# where, NAME is the parameter's ID, which will be one of the GridFS file in SPATIAL.files
# DESC is the corresponding description
# CHANGE is the change method, which can be VC,RC,AC. VC: replace, RC: multiply, AC: add.
# IMPACT is the impact value.
SUBSCENARIO,NAME,DESC,REFERENCE,LANDUSE,PARAMETERS
1,fengjin,fengjin,fengjin,7-16,Interc_max:Maximum Interception Capacity:AC:1-Conductivity:Soil hydraulic conductivity:RC:3.5-USLE_C:Cover management factor:VC:0.0008-USLE_K:Soil erodibility factor:RC:0.64
2,shengtailincao,shengtailincao,shengtailincao,4-7-16-33,Interc_max:Maximum Interception Capacity:AC:2.5-Depression:Depression storage capacity:RC:2-Conductivity:Soil hydraulic conductivity:RC:5-USLE_C:Cover management factor:VC:0.0012-USLE_K:Soil erodibility factor:RC:0.095-USLE_P:the erosion control practice factor:RC:0.8
3,jingjilinguo,jingjilinguo,jingjilinguo,4-7-16-33,Interc_max:Maximum Interception Capacity:AC:1.5-Depression:Depression storage capacity:RC:5-Conductivity:Soil hydraulic conductivity:RC:4-USLE_C:Cover management factor:VC:0.0015-USLE_K:Soil erodibility factor:RC:0.65-USLE_P:the erosion control practice factor:RC:0.6
4,dixiaolingaizao,dixiaolingaizao,dixiaolingaizao,7-16,Interc_max:Maximum Interception Capacity:AC:2.5-Depression:Depression storage capacity:RC:1.5-Conductivity:Soil hydraulic conductivity:RC:3.5-USLE_C:Cover management factor:VC:0.0024-USLE_K:Soil erodibility factor:RC:0.98-USLE_P:the erosion control practice factor:RC:0.8
5,chaguoyuanpogaiti,chaguoyuanpogaiti,chaguoyuanpogaiti,4-7-16,Interc_max:Maximum Interception Capacity:AC:1-Depression:Depression storage capacity:RC:5-Conductivity:Soil hydraulic conductivity:RC:3-USLE_C:Cover management factor:VC:0.0008-USLE_K:Soil erodibility factor:RC:0.78-USLE_P:the erosion control practice factor:RC:0.3-Slope:Slope:VC:0.001
3 changes: 2 additions & 1 deletion data/examples/1.preprocess/dianbu2_30m_omp_dgpm.ini
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,8 @@ landuseFile = landuse_30m.tif
landcoverInitFile = landcover_initial_parameters.txt
soilSEQNFile = soil_SEQN_30m.tif
soilSEQNText = soil_properties_lookup.txt
mgtFieldFile = mgtfield_t100_2.tif

additionalFile = {"MGT_FIELDS": "mgtfield_t100_2.tif"}

[OPTIONAL_PARAMETERS]
isTauDEMD8 = True
Expand Down
3 changes: 2 additions & 1 deletion data/examples/1.preprocess/dianbu2_30m_omp_mac.ini
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,8 @@ landuseFile = landuse_30m.tif
landcoverInitFile = landcover_initial_parameters.txt
soilSEQNFile = soil_SEQN_30m.tif
soilSEQNText = soil_properties_lookup.txt
mgtFieldFile = mgtfield_t100_2.tif

additionalFile = {"MGT_FIELDS": "mgtfield_t100_2.tif"}

[OPTIONAL_PARAMETERS]
isTauDEMD8 = True
Expand Down
3 changes: 2 additions & 1 deletion data/examples/1.preprocess/dianbu2_30m_omp_win.ini
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,8 @@ landuseFile = landuse_30m.tif
landcoverInitFile = landcover_initial_parameters.txt
soilSEQNFile = soil_SEQN_30m.tif
soilSEQNText = soil_properties_lookup.txt
mgtFieldFile = mgtfield_t100_2.tif

additionalFile = {"MGT_FIELDS": "mgtfield_t100_2.tif"}

[OPTIONAL_PARAMETERS]
isTauDEMD8 = True
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
### ZHU LJ-Windows-T430
[PATH]
MODEL_DIR = C:\z_code\Hydro\SEIMS\data\dianbu\model_dianbu2_30m_demo
ScenarioID = 0

[MONGODB]
HOSTNAME = 127.0.0.1
PORT = 27017
ClimateDBName = HydroClimate_dianbu2_demo
BMPScenarioDBName = BMP_Scenario_dianbu2_30m_demo
SpatialDBName = model_dianbu2_30m_demo

[PARAMETERS]
PLOT_SUBBASINID = 4
PLOT_VARIABLES = Q QI QG QS CH_COD CH_TP CH_TN CH_NO3 CH_NH4 CH_ORGN SED GWNO3 PERCO_N_GW SUR_NO3_TOCH SUR_SOLP_TOCH CH_SOLP
[OPTIONAL_PARAMETERS]
#UTCTIME
Time_start = 2013-01-01
Time_end = 2013-12-31
Resolution = 300
[SWITCH]
LANG_CN = False
18 changes: 0 additions & 18 deletions data/examples/3.postprocess/post_dianbu_30m_longterm_omp_dgpm.ini

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

8 changes: 4 additions & 4 deletions data/examples/5.scenarios/dgpm_hosts_SCOOP
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
dgpm-cluster.local 1
dgpm-compute-1.local 2
dgpm-compute-2.local 2
dgpm-compute-3.local 2
dgpm-cluster.local 1
dgpm-compute-1.local 2
dgpm-compute-2.local 2
dgpm-compute-3.local 2
dgpm-compute-4.local 2
78 changes: 39 additions & 39 deletions data/examples/5.scenarios/nsgaii_dianbu2_30m_longterm_omp_dgpm.ini
Original file line number Diff line number Diff line change
@@ -1,40 +1,40 @@
# Linux-cluster 192.168.6.55, logged in with user: zhulj
[PATH]
MODEL_DIR = /home/zhulj/SEIMS/models
fieldFile = /home/zhulj/SEIMS/models/dianbu/data_prepare/spatial/mgtfield_t100_2.txt
pointFile = /home/zhulj/SEIMS/models/dianbu/data_prepare/management2/point_source_distribution.txt
pointBMPsFile = /home/zhulj/SEIMS/models/dianbu/data_prepare/management2/point_source_management.txt
[NSGAII]
GenerationsNum = 2
PopulationSize = 4
CrossoverRate = 0.75
MutateRate = 0.05
[MONGODB]
HOSTNAME = 192.168.6.55
PORT = 27017
BMPScenarioDBName = BMP_Scenario_dianbu2_30m_longterm
[SEIMS_Model]
model_Exe = /home/zhulj/SEIMS/seims_omp_rel_x86-201611/seims_omp
model_Workdir = /home/zhulj/SEIMS/models/dianbu/model_dianbu2_30m_longterm
threadsNum = 4
layeringMethod = 0
timeStart = 2014-01-01
timeEnd = 2014-12-31
[BMPs]
# BMPs
bmps_farm = 0 1
# bmps_cattle = 1 2 3 4
bmps_cattle = 2 3
# bmps_pig = 1 2 3 4
bmps_pig = 2 3
bmps_sewage = 1 2 3 4 5 6 7 8
# BMPs cost (Index Correspond with BMPs id, e.g.)
bmps_farm_cost = 208. 166.
bmps_cattle_cost = 0. 15. 15. 160. 15.
bmps_pig_cost = 0. 6. 6. 70. 6.
# Linux-cluster 192.168.6.55, logged in with user: zhulj

[PATH]
MODEL_DIR = /home/zhulj/SEIMS/models
fieldFile = /home/zhulj/SEIMS/models/dianbu/data_prepare/spatial/mgtfield_t100_2.txt
pointFile = /home/zhulj/SEIMS/models/dianbu/data_prepare/management2/point_source_distribution.txt
pointBMPsFile = /home/zhulj/SEIMS/models/dianbu/data_prepare/management2/point_source_management.txt

[NSGAII]
GenerationsNum = 2
PopulationSize = 4
CrossoverRate = 0.75
MutateRate = 0.05

[MONGODB]
HOSTNAME = 192.168.6.55
PORT = 27017
BMPScenarioDBName = BMP_Scenario_dianbu2_30m_longterm

[SEIMS_Model]
model_Exe = /home/zhulj/SEIMS/seims_omp_rel_x86-201611/seims_omp
model_Workdir = /home/zhulj/SEIMS/models/dianbu/model_dianbu2_30m_longterm
threadsNum = 4
layeringMethod = 0
timeStart = 2014-01-01
timeEnd = 2014-12-31

[BMPs]
# BMPs
bmps_farm = 0 1
# bmps_cattle = 1 2 3 4
bmps_cattle = 2 3
# bmps_pig = 1 2 3 4
bmps_pig = 2 3
bmps_sewage = 1 2 3 4 5 6 7 8
# BMPs calculate_economy (Index Correspond with BMPs id, e.g.)
bmps_farm_cost = 208. 166.
bmps_cattle_cost = 0. 15. 15. 160. 15.
bmps_pig_cost = 0. 6. 6. 70. 6.
bmps_sewage_cost = 0. 1000. 1000. 1000. 1000. 8000.15 8000.15 8000.15 8000.15
Original file line number Diff line number Diff line change
@@ -1,43 +1,43 @@
## GaoHR-Windows
[PATH]
MODEL_DIR = D:\GaohrWS\GithubPrj\SEIMS\model_data
fieldFile = D:\GaohrWS\GithubPrj\SEIMS\model_data\dianbu\data_prepare\spatial\mgtfield_t100_2.txt
pointFile = D:\GaohrWS\GithubPrj\SEIMS\model_data\dianbu\data_prepare\management2\point_source_distribution.txt
pointBMPsFile = D:\GaohrWS\GithubPrj\SEIMS\model_data\dianbu\data_prepare\management2\point_source_management.txt
scenariosInfo = D:\SEIMS_model\Model_data\model_dianbu2_30m_longterm\NSGAII_OUTPUT\scenarios_info.txt
[NSGAII]
GenerationsNum = 2
PopulationSize = 4
CrossoverRate = 0.75
MutateRate = 0.1
SelectRate = 0.25
[MONGODB]
HOSTNAME = 192.168.6.55
PORT = 27017
BMPScenarioDBName = BMP_Scenario_dianbu2_30m_longterm
[SEIMS_Model]
model_Exe = D:\SEIMS_model\SEIMS\Release\seims_omp
model_Workdir = D:\SEIMS_model\Model_data\model_dianbu2_30m_longterm
threadsNum = 2
layeringMethod = 0
timeStart = 2014-01-01
timeEnd = 2014-12-31
[BMPs]
# BMPs
bmps_farm = 0 1
# bmps_cattle = 1 2 3 4
bmps_cattle = 2 3
# bmps_pig = 1 2 3 4
bmps_pig = 2 3
bmps_sewage = 1 2 3 4 5 6 7 8
# BMPs cost (Index Correspond with BMPs id, e.g.)
bmps_farm_cost = 208000. 166000.
bmps_cattle_cost = 0. 15. 15. 160. 15.
bmps_pig_cost = 0. 6. 6. 70. 6.
bmps_sewage_cost = 0. 2000. 2000. 2000. 2000. 8000.15 8000.15 8000.15 8000.15
## GaoHR-Windows

[PATH]
MODEL_DIR = D:\GaohrWS\GithubPrj\SEIMS\model_data
fieldFile = D:\GaohrWS\GithubPrj\SEIMS\model_data\dianbu\data_prepare\spatial\mgtfield_t100_2.txt
pointFile = D:\GaohrWS\GithubPrj\SEIMS\model_data\dianbu\data_prepare\management2\point_source_distribution.txt
pointBMPsFile = D:\GaohrWS\GithubPrj\SEIMS\model_data\dianbu\data_prepare\management2\point_source_management.txt
scenariosInfo = D:\SEIMS_model\Model_data\model_dianbu2_30m_longterm\NSGAII_OUTPUT\scenarios_info.txt

[NSGAII]
GenerationsNum = 2
PopulationSize = 4
CrossoverRate = 0.75
MutateRate = 0.1
SelectRate = 0.25

[MONGODB]
HOSTNAME = 192.168.6.55
PORT = 27017
BMPScenarioDBName = BMP_Scenario_dianbu2_30m_longterm

[SEIMS_Model]
model_Exe = D:\SEIMS_model\SEIMS\Release\seims_omp
model_Workdir = D:\SEIMS_model\Model_data\model_dianbu2_30m_longterm
threadsNum = 2
layeringMethod = 0
timeStart = 2014-01-01
timeEnd = 2014-12-31

[BMPs]
# BMPs
bmps_farm = 0 1
# bmps_cattle = 1 2 3 4
bmps_cattle = 2 3
# bmps_pig = 1 2 3 4
bmps_pig = 2 3
bmps_sewage = 1 2 3 4 5 6 7 8
# BMPs calculate_economy (Index Correspond with BMPs id, e.g.)
bmps_farm_cost = 208000. 166000.
bmps_cattle_cost = 0. 15. 15. 160. 15.
bmps_pig_cost = 0. 6. 6. 70. 6.
bmps_sewage_cost = 0. 2000. 2000. 2000. 2000. 8000.15 8000.15 8000.15 8000.15

Loading