from tradssat.tmpl.output import OutFile from tradssat.tmpl.var import FloatVar, IntegerVar class ETOut(OutFile): filename = 'ET.OUT' def _get_var_info(self): return vars_ vars_ = { IntegerVar('YEAR', 4, info='Year'), IntegerVar('DOY', 3, info='Day of year starting on Jan 1.'), IntegerVar('DAS', 3, info='Day after start'), FloatVar('SRAA', 4, 2, info='Average solar radiation (MJ/(m2.day'), FloatVar('TMAXA', 5, 2, info='Average maximum air temperature (°C)'), FloatVar('TMINA', 5, 2, info='Average minimum air temperature (°C)'), FloatVar('EOAA', 4, 3, info='Average potential evapotranspiration (mm/d)'), FloatVar('EOPA', 4, 3, info=' Average potential transpiration (mm/d)'), FloatVar('EOSA', 4, 3, info='Average potential soil evaporation per day (mm/day)'), FloatVar('ETAA', 4, 3, info='Average evapotranspiration (mm/d)'), FloatVar('EPAA', 4, 0, info=' Average plant transpiration (mm/d)'), FloatVar('ESAA', 4, 3, info='Average soil evaporation (mm/d)'), FloatVar('EFAA', 4, 0, info='Average flood evaporation (mm/d)'), FloatVar('EMAA', 4, 3, info='Average mulch evaporation (mm/d)'), FloatVar('EOAC', 4, 2, info='Cumulative potential evapotranspiration (mm)'), FloatVar('ETAC', 4, 2, info='Cumulative evapotranspiration (mm)'), FloatVar('EPAC', 4, 0, info=' Cumulative transpiration (mm)'), FloatVar('ESAC', 4, 2, info='Cumulative soil evaporation (mm)'), FloatVar('EFAC', 4, 0, info='Cumulative floodwater evaporation (mm)'),
from tradssat.tmpl.var import CharacterVar, FloatVar, IntegerVar vars_ = { CharacterVar('INSI', 4, spc=2, info='Institute + Site code'), FloatVar('LAT', 8, 3, info='Latitude, degrees (decimals)'), FloatVar('LONG', 8, 3, info='Longitude, degrees (decimals)'), FloatVar('ELEV', 5, 0, info='Elevation, m'), FloatVar('TAV', 5, 1, info='Air temperature average, °C'), FloatVar('AMP', 5, 1, info='Air temperature amplitude, monthly averages, °C'), FloatVar('REFHT', 5, 1, info='Height of temperature measurements, m'), FloatVar('WNDHT', 5, 1, info='Height of wind measurements, m'), IntegerVar('CCO2', 4, info='Atmospheric CO2, ppm'), CharacterVar('DATE', 5, spc=0, info='Year + days from Jan. 1'), FloatVar('SRAD', 5, 1, info='Solar radiation, MJ m-2 day-1'), FloatVar('TMAX', 5, 1, info='Air temperature maximum, °C'), FloatVar('TMIN', 5, 1, info='Air temperature minimum, °C'), FloatVar('RAIN', 5, 1, info='Precipitation, mm'), FloatVar('DEWP', 5, 1, info='Dewpoint temperature5, °C'), FloatVar('WIND', 5, 1, info='Wind run, km day-1'), FloatVar('PAR', 5, 1, info='Photosynthetic active radiation (PAR)5, moles m-2 day-1'), FloatVar('EVAP', 5, 1), FloatVar('RHUM', 5, 1) }
from tradssat.tmpl.output import OutFile from tradssat.tmpl.var import FloatVar, IntegerVar class SoilWatOut(OutFile): filename = 'SoilWat.Out' def _get_var_info(self): return vars_ vars_ = { IntegerVar('YEAR', 4, info='Year'), IntegerVar('DOY', 3, info='Day of year starting on Jan 1.'), IntegerVar('DAS', 3, info='Day after start'), IntegerVar('SWTD', 4, info='total soil water in profile, mm'), IntegerVar('SWXD', 4, info='potentially extractable water, cm'), IntegerVar('ROFC', 4, info='cumulative runoff'), IntegerVar('DRNC', 4, info='cumulative drainage'), IntegerVar('PREC', 4, info='cumulative precipitation'), IntegerVar('IR#C', 4, info='irrigation'), IntegerVar('IRRC', 4, info='cumulative irrigation'), IntegerVar('DTWT', 4, info='water table depth, cm'), FloatVar('MWTD', 4, 2, info='water stored in mulch layer, mm'), FloatVar('TDFD', 4, 0, info='water lost to tile drainage, mm/d'), FloatVar('TDFC', 4, 0, info='cumulative water lost to tile drainage, mm'), FloatVar('ROFD', 4, 0, info='total daily surface runoff, mm/d'), FloatVar('SW1D', 4, 3, info='soil water content at 0-5 cm depth, mm3/mm3'), FloatVar('SW2D', 4, 3, info='soil water content at 5-15 cm depth, mm3/mm3'), FloatVar('SW3D', 4, 3, info='soil water content at 15-30 cm depth, mm3/mm3'), FloatVar('SW4D', 4, 3, info='soil water content at 30-45 cm depth, mm3/mm3'),
from tradssat.tmpl.output import OutFile from tradssat.tmpl.var import FloatVar, IntegerVar class SoilNiOut(OutFile): """ Reader for DSSAT soil nitrogen (SOILNI.OUT) files. """ filename = 'SoilNi.Out' def _get_var_info(self): return vars_ vars_ = { IntegerVar('YEAR', 4, info='Year'), IntegerVar('DOY', 3, info='Day of year starting on Jan 1.'), IntegerVar('DAS', 3, info='Day after start'), IntegerVar('NAPC', 4, info='Cumulative inorganic N applied, kg/ha'), IntegerVar('NI#M', 4, info='N application numbers'), FloatVar('NIAD', 4, 1, info='Inorganic N in soil, kg/ha'), FloatVar('NITD', 4, 1, info='Amount of total NO3, kg/ha'), FloatVar('NHTD', 4, 1, info='Amount of total NH4, kg/ha'), FloatVar('NI1D', 4, 2, info='NO3 at 0-5 cm soil depth, ppm'), FloatVar('NI2D', 4, 2, info='NO3 at 5-15 cm soil depth, ppm'), FloatVar('NI3D', 4, 2, info='NO3 at 15-30 cm soil depth, ppm'), FloatVar('NI4D', 4, 2, info='NO3 at 30-45 cm soil depth, ppm'), FloatVar('NI5D', 4, 2, info='NO3 at 45-60 cm soil depth, ppm'), FloatVar('NI6D', 4, 2, info='NO3 at 60-90 cm soil depth, ppm'), FloatVar('NI7D', 4, 2, info='NO3 at 90-110 cm soil depth, ppm'), FloatVar('NH1D', 4, 2, info='NH4 at 0-5 cm soil depth, ppm'),
GENERAL = 'GENERAL' header_vars = [ CharacterVar('EXPCODE', 10, info='Experiment identifier'), CharacterVar('ENAME', 60, info='Experiment name') ] main_vars = { # General CharacterVar('PEOPLE', 75, sect=GENERAL, info='Names of scientists'), CharacterVar('ADDRESS', 75, sect=GENERAL, info='Contact address of principal scientist'), CharacterVar('SITE', 75, sect=GENERAL, info='Name and location of experimental site(s)'), FloatVar('PAREA', 6, 1, sect=GENERAL, spc=3, info='Gross plot area per rep, m-2'), IntegerVar('PRNO', 5, sect=GENERAL, info='Rows per plot'), FloatVar('PLEN', 5, 1, sect=GENERAL, info='Plot length, m'), IntegerVar('PLDR', 5, sect=GENERAL, info='Plots relative to drains, degrees'), IntegerVar('PLSP', 5, sect=GENERAL, info='Plot spacing, cm'), CharacterVar('PLAY', 5, sect=GENERAL, info='Plot layout'), FloatVar('HAREA', 5, 1, sect=GENERAL, info='Harvest area, m-2'), IntegerVar('HRNO', 5, sect=GENERAL, info='Harvest row number'), FloatVar('HLEN', 5, 1, sect=GENERAL, info='Harvest row length, m'), CharacterVar('HARM', 15, sect=GENERAL, info='Harvest method'), CharacterVar('NOTES', 500, sect=GENERAL, info='Notes'), # Treatments IntegerVar('N', 2, spc=0, sect=TRT_HEAD, info='Treatment number'), IntegerVar('R', 1, sect=TRT_HEAD, info='Rotation component: number (default=1)'), IntegerVar('O', 1, sect=TRT_HEAD, info='Rotation component: option (default=1)'),
CharacterVar( 'VAR-NAME', 16, header_fill='.', info='Name of cultivar as recognized commercially or within industry.' ), CharacterVar('EXPNO', 5, miss='.', info='Number of experiments used to estimate cultivar parameters.'), CharacterVar('ECO#', 6, info='Ecotype code of this cultivar in the ECO input file'), FloatVar( 'LFMAX', 5, 3, info='Maximum leaf photosynthesis rate, 30 C, 350 ppm CO2 and high ' 'light (used in leaf-level ET routine - Not yet in CASUPRO). mg CO2/m2-s'), FloatVar( 'PHTMX', 5, 1, info='Maximum amount of CH20 which can be produced if PAR is very high, g[CH2O]/m2-d' ), FloatVar('Stalk', 5, 3), FloatVar('Sucro', 5, 3), IntegerVar('Null1', 5), FloatVar('PLF1', 5, 3), FloatVar('PLF2', 5, 3), FloatVar('Gamma', 5, 3), FloatVar('StkB', 5, 3), FloatVar('StkM', 5, 3), IntegerVar('Null3', 5), FloatVar('SIZLF', 5, 2), FloatVar('PLF2', 5, 3), FloatVar('LIsun', 5, 3), FloatVar('LIshd', 5, 3), IntegerVar('Null4', 5), FloatVar('TB(1)', 5, 3), FloatVar('TO1(1)', 5, 2), FloatVar('TO2(1)', 5, 2), FloatVar('TM(1)', 5, 2),
from tradssat.tmpl.var import CharacterVar, FloatVar, IntegerVar vars_ = { CharacterVar('INSI', 4, spc=2, info='Institute + Site code'), FloatVar('LAT', 8, 3, info='Latitude, degrees (decimals)'), FloatVar('LONG', 8, 3, info='Longitude, degrees (decimals)'), FloatVar('ELEV', 5, 0, info='Elevation, m'), FloatVar('TAV', 5, 1, info='Air temperature average, °C'), FloatVar('AMP', 5, 1, info='Air temperature amplitude, monthly averages, °C'), FloatVar('SRAY', 5, 1, info=''), FloatVar('TMXY', 5, 1, info=''), FloatVar('TMNY', 5, 1, info=''), IntegerVar('RAIY', 5, info=''), IntegerVar('START', 5, spc=0, info=''), IntegerVar('DURN', 5, info=''), FloatVar('ANGA', 5, 2, info=''), FloatVar('ANGB', 5, 2, info=''), FloatVar('REFHT', 5, 1, info=''), FloatVar('WNDHT', 5, 1, info=''), CharacterVar('SOURCE', 50, info=''), IntegerVar('GSST', 5, info=''), IntegerVar('GSDU', 5), }
info='Fr.of assimilate designated for tops sent to storage root (#)'), FloatVar('HMPC', 5, 0, info='Harvest product moisture content (%)'), FloatVar( 'PHINT', 5, 0, info='Interval between leaf tip appearances for first leaves (oC.d)'), FloatVar( 'LA1S', 5, 0, info='Area/leaf (cm2) of the first leaves when growing without stress.' ), FloatVar('LAXS', 5, 0, info='Area/leaf at maximum area/leaf (cm2)'), IntegerVar('LAXND', 5, info='Node # at which maximum potential area/leaf reached (#)'), IntegerVar( 'LAXN2', 5, info='Node # at which potential area/leaf begins to decline (#)'), FloatVar('LAFS', 5, 0, info='End of cycle area/leaf (cm2)'), IntegerVar('LAFND', 5, info='Node # at which the end of cycle area/leaf reached (#)'), IntegerVar( 'SLAS', 5, info= 'Specific leaf lamina area when crop growing without stress (cm2/g)'), FloatVar(
from tradssat.tmpl.output import OutFile from tradssat.tmpl.var import FloatVar, IntegerVar class MulchOut(OutFile): filename = 'Mulch.Out' def _get_var_info(self): return vars_ vars_ = { IntegerVar('YEAR', 4, info='Year'), IntegerVar('DOY', 3, info='Day of year starting on Jan 1.'), IntegerVar('DAS', 5, info='Day after start'), FloatVar('MCFD', 7, 3, info='fraction of soil covered by mulch'), FloatVar('MDEPD', 7, 2, info='thickness of mulch layer, cm'), IntegerVar('MWAD', 7, info='mass of mulch layer, kg/ha'), FloatVar('MWTD', 7, 2, info='water stored in mulch layer, mm'), }
from tradssat.tmpl.output import FinalOutFile from tradssat.tmpl.var import IntegerVar, CharacterVar, FloatVar class SummaryOut(FinalOutFile): """ Reader for DSSAT run summary (SUMMARY.OUT) output files. """ filename = 'Summary.OUT' def _get_var_info(self): return _vars _vars = { IntegerVar('RUNNO', 5, spc=4, info='Run number'), IntegerVar('TRNO', 5, spc=2, info='Run number'), IntegerVar('R#', 2, info='Repetition number'), IntegerVar('O#', 2, info=''), IntegerVar('C#', 2, info=''), CharacterVar('CR', 2, info='Crop code'), CharacterVar('MODEL', 8, header_fill='.', info='DSSAT crop model used'), CharacterVar('EXNAME', 8, header_fill='.', info='Experiment file name'), CharacterVar('TNAM', 25, header_fill='.', info='Treatment name'), CharacterVar('FNAM', 8, header_fill='.', info='Field name'), CharacterVar('WSTA', 8, header_fill='.', info='Weather station name'), CharacterVar('SOIL_ID', 10, header_fill='.', info='Soil name'), IntegerVar('SDAT', 7, info='Start date, YYYYDDD'), IntegerVar('PDAT', 7, info='Planting date, YYYYDDD'), IntegerVar('EDAT', 7, info='Emergence date, YYYYDDD'), IntegerVar('ADAT', 7, info='Anthesis date, start, YYYYDDD'),
from tradssat.tmpl.var import FloatVar, IntegerVar vars_ = { IntegerVar('StYr', 5, info='Start year'), IntegerVar('StMn', 5, info='Start month'), IntegerVar('SpYr', 5, info='Stop year'), IntegerVar('SpMn', 5, info='Stop month'), IntegerVar('yr', 4, spc=0, info='Year'), IntegerVar('mo', 2, info='Month'), FloatVar('srmn', 5, 2, info='Solar radiation mean, MJ m-2 day-1'), FloatVar('srsd', 5, 2, info='Solar radiation standard deviation, MJ m-2 day-1'), FloatVar('txmn', 5, 2, info='Temperature maximum mean, °C'), FloatVar('txsd', 5, 2, info='Temperature maximum standard deviation, °C'), FloatVar('tnmn', 5, 2, info='Temperature minimum mean, °C'), FloatVar('tnsd', 5, 2, info='Temperature minimum standard deviation, °C'), FloatVar('ramn', 5, 2, info='Rainfall mean, mm'), FloatVar('rasd', 5, 2, info='Rainfall standard deviation, mm'), }
from tradssat.tmpl.output import OutFile from tradssat.tmpl.var import FloatVar, IntegerVar class PlantGroOut(OutFile): """ File reader for DSSAT plant growth (PLANTGRO.OUT) output files. """ filename = 'PlantGro.OUT' def _get_var_info(self): return vars_ vars_ = { IntegerVar('TREATMENT', 2, info='Treatment number'), IntegerVar('YEAR', 4, info='Year'), IntegerVar('DOY', 3, info='Day of year starting on Jan 1.'), IntegerVar('DAS', 5, info='Day after start'), IntegerVar('DAP', 5, info='Days after planting'), FloatVar('L#SD', 6, 0, info='Leaf number'), IntegerVar('GSTD', 6, info='Growth stage'), FloatVar('LAID', 6, 2, info='Leaf Area Index'), IntegerVar('CWAD', 6, info='Tops dry weight, kg/Ha'), IntegerVar('VWAD', 6, info='Veg dry weight, kg/Ha'), IntegerVar('LWAD', 6, info='Leaf dry weight, kg/Ha'), IntegerVar('SWAD', 6, info='Stem dry weight, kg/Ha'), IntegerVar('FLWAD', 6, info='Flower dry weight, kg/Ha'), IntegerVar('FWAD', 6, info='Fruit dry weight, kg/Ha'), IntegerVar('CRAD', 6, info='Crown dry weight, kg/Ha'), IntegerVar('BWAD', 6, info='Basal dry weight, kg/Ha'),
from tradssat.tmpl.output import OutFile from tradssat.tmpl.var import FloatVar, IntegerVar class PlantGroOut(OutFile): """ File reader for DSSAT plant growth (PLANTGRO.OUT) output files. """ filename = 'PlantGro.OUT' def _get_var_info(self): return vars_ vars_ = { IntegerVar('TREATMENT', 2, info='Treatment number'), IntegerVar('YEAR', 4, info='Year'), IntegerVar('DOY', 3, info='Day of year starting on Jan 1.'), IntegerVar('DAS', 3, info='Day after start'), IntegerVar('DAP', 3, info='Days after planting'), FloatVar('L#SD', 4, 0, info='Leaf number'), FloatVar('GSTD', 4, 4, info='Growth stage'), FloatVar('LAID', 4, 2, info='Leaf Area Index'), IntegerVar('CWAD', 4, info='Tops dry weight, kg/Ha'), IntegerVar('VWAD', 4, info='Veg dry weight, kg/Ha'), IntegerVar('LWAD', 4, info='Leaf dry weight, kg/Ha'), IntegerVar('SWAD', 4, info='Stem dry weight, kg/Ha'), IntegerVar('FLWAD', 5, info='Flower dry weight, kg/Ha'), IntegerVar('FWAD', 4, info='Fruit dry weight, kg/Ha'), IntegerVar('CRAD', 4, info='Crown dry weight, kg/Ha'), IntegerVar('BWAD', 4, info='Basal dry weight, kg/Ha'),
from tradssat.tmpl.var import CharacterVar, FloatVar, IntegerVar vars_ = { CharacterVar('INSI', 4, spc=2, info='Institute + Site code'), FloatVar('LAT', 8, 3, info='Latitude, degrees (decimals)'), FloatVar('LONG', 8, 3, info='Longitude, degrees (decimals)'), FloatVar('ELEV', 5, 0, info='Elevation, m'), FloatVar('TAV', 5, 1, info='Air temperature average, °C'), FloatVar('AMP', 5, 1, info='Air temperature amplitude, monthly averages, °C'), FloatVar('REFHT', 5, 1, info='Height of temperature measurements, m'), FloatVar('WNDHT', 5, 1, info='Height of wind measurements, m'), IntegerVar('DATE', 5, spc=0, info='Year + days from Jan. 1'), FloatVar('SRAD', 5, 1, info='Solar radiation, MJ m-2 day-1'), FloatVar('TMAX', 5, 1, info='Air temperature maximum, °C'), FloatVar('TMIN', 5, 1, info='Air temperature minimum, °C'), FloatVar('RAIN', 5, 1, info='Precipitation, mm'), FloatVar('DEWP', 5, 1, info='Dewpoint temperature5, °C'), FloatVar('WIND', 5, 1, info='Wind run5, km day-1'), FloatVar('PAR', 5, 1, info='Photosynthetic active radiation (PAR)5, moles m-2 day-1'), FloatVar('EVAP', 5, 1), FloatVar('RHUM', 5, 1) }