Open guilherber opened 9 months ago
By reading the Traceback I think there might be a type problem with your new data. Probably that API returns numeric values represented as strings. Make sure that all the fields in the dataframe have a numeric type.
After I have solved the problem with the numerical data, I now encounter problem in my output. How do I ensure that I have all the necessary files in %TMP% to be able to continue the simulation?
Traceback (most recent call last):
File "main.py", line 41, in
Process finished with exit code 1
It is a problem with the output. The model is running but it fails when fetching that specific file. What crop are you running?
I'm using crop = Crop('soybean', '990004')
Just tested it and I did not find anything wrong with it. Can you zip the content of the DSSAT run path (Temp\dssatnihmuhyf) and attach it here? that would really help to catch the problem.
Your Weather data seems to be incomplete. In 2022 it jumps from day 268 to day 296. Also, it seems that your solar radiation values are in the wrong units. The units must be MJ/m2-d. Thanks for reporting this, I'll add some extra checks to the Weather routines to make sure no data is missing in the input dataframe.
Thank you for your reply, it was effective. Despite the corrections, I still have a zero simulation as output, can you recommend changes for me to reach variable values? Thank you!
RUN TRT FLO MAT TOPWT HARWT RAIN TIRR CET PESW TNUP TNLF TSON TSOC dap dap kg/ha kg/ha mm mm mm mm kg/ha kg/ha kg/ha t/ha 1 SB 1 26 88 1 0 -99 0 -99 -99 0 -99 0 217
RUN TRT FLO MAT TOPWT HARWT RAIN TIRR CET PESW TNUP TNLF TSON TSOC dap dap kg/ha kg/ha mm mm mm mm kg/ha kg/ha kg/ha t/ha 1 SB 1 26 88 1 0 -99 0 -99 -99 0 -99 0 217
RUN TRT FLO MAT TOPWT HARWT RAIN TIRR CET PESW TNUP TNLF TSON TSOC dap dap kg/ha kg/ha mm mm mm mm kg/ha kg/ha kg/ha t/ha 1 SB 1 26 88 1 0 -99 0 -99 -99 0 -99 0 217
RUN TRT FLO MAT TOPWT HARWT RAIN TIRR CET PESW TNUP TNLF TSON TSOC dap dap kg/ha kg/ha mm mm mm mm kg/ha kg/ha kg/ha t/ha 1 SB 1 26 88 1 0 -99 0 -99 -99 0 -99 0 217
RUN TRT FLO MAT TOPWT HARWT RAIN TIRR CET PESW TNUP TNLF TSON TSOC dap dap kg/ha kg/ha mm mm mm mm kg/ha kg/ha kg/ha t/ha 1 SB 1 26 88 1 0 -99 0 -99 -99 0 -99 0 217
RUN TRT FLO MAT TOPWT HARWT RAIN TIRR CET PESW TNUP TNLF TSON TSOC dap dap kg/ha kg/ha mm mm mm mm kg/ha kg/ha kg/ha t/ha 1 SB 1 26 88 1 0 -99 0 -99 -99 0 -99 0 217
RUN TRT FLO MAT TOPWT HARWT RAIN TIRR CET PESW TNUP TNLF TSON TSOC dap dap kg/ha kg/ha mm mm mm mm kg/ha kg/ha kg/ha t/ha
1 SB 1 26 88 1 0 -99 0 -99 -99 0 -99 0 217 RUN TRT FLO MAT TOPWT HARWT RAIN TIRR CET PESW TNUP TNLF TSON TSOC dap dap kg/ha kg/ha mm mm mm mm kg/ha kg/ha kg/ha t/ha 1 SB 1 26 88 1 0 -99 0 -99 -99 0 -99 0 217
RUN TRT FLO MAT TOPWT HARWT RAIN TIRR CET PESW TNUP TNLF TSON TSOC dap dap kg/ha kg/ha mm mm mm mm kg/ha kg/ha kg/ha t/ha 1 SB 1 26 88 1 0 -99 0 -99 -99 0 -99 0 217
RUN TRT FLO MAT TOPWT HARWT RAIN TIRR CET PESW TNUP TNLF TSON TSOC
dap dap kg/ha kg/ha mm mm mm mm kg/ha kg/ha kg/ha t/ha
1 SB 1 26 88 1 0 -99 0 -99 -99 0 -99 0 217
0 1 2 3 4 5 6 7 8 9 10
Profile_Index
0 0 0 0 0 0 0 0 0 0 0
1 0 0 0 0 0 0 0 0 0 0
2 0 0 0 0 0 0 0 0 0 0
3 0 0 0 0 0 0 0 0 0 0
4 0 0 0 0 0 0 0 0 0 0
... .. .. .. .. .. .. .. .. .. ..
130 0 0 0 0 0 0 0 0 0 0
131 0 0 0 0 0 0 0 0 0 0
132 0 0 0 0 0 0 0 0 0 0
133 0 0 0 0 0 0 0 0 0 0
134 0 0 0 0 0 0 0 0 0 0
[135 rows x 10 columns]
Process finished with exit code 0
After I changed my weather database, the algorithm finds problems to continue the simulation. I just changed it from csv to a json API, the data is the same and the Weather function works normally. I'm using version 2.1.3. I encounter errors during the DSSAT run.
Traceback (most recent call last): File "fortranformat_output.py", line 595, in _compose_i_string val = int(val) ValueError: invalid literal for int() with base 10: '375.18'
During handling of the above exception, another exception occurred:
Traceback (most recent call last): File "main.py", line 39, in
thread = int(future.result()['Profile'].str.extract('(\d+)').iloc[0].iloc[0]) - 1
File "lib\concurrent\futures_base.py", line 437, in result
return self.get_result()
File "lib\concurrent\futures_base.py", line 389, in get_result
raise self._exception
File "ib\concurrent\futures\thread.py", line 57, in run
result = self.fn(*self.args, **self.kwargs)
File "\main.py", line 15, in run_dssat
dssat_env.run(crop=crop, weather=dados_clima(), management=man, soil=soil_profile)
File "\run.py", line 216, in run
management.write(filename=management_filename)
File "management.py", line 325, in write
outstr += section_obj.write() + '\n'
File "sections.py", line 544, in write
outstr += rowbased_write(
File "\sections.py", line 351, in rowbased_write
return writer.write(fields)
File "FortranRecordWriter.py", line 42, in write
return _output(self._eds, self._rev_eds, values)
File "output.py", line 98, in output
sub_string = _compose_i_string(
File "fortranformat_output.py", line 597, in _compose_i_string
raise ValueError("cannot convert '%s' to a integer" % str(val))
ValueError: cannot convert '375.18' to a integer
Maybe the problem is during the formation of topics, even changing the condition, the error follows...
def run_dssat(thread, crop, man, soil_profile, dssat_envs): dssat_env = DSSAT() dssat_env.setup() dssat_env.run(crop=crop, weather=dados_clima(), management=man, soil=soil_profile)
Number of threads equal to soil_profiles number
threads = len(soil_profiles)
List to store results
output_dataframes = [None] * threads # Initialize with None for each thread
List to store DSSAT instances
dssat_envs = [None] * threads
with concurrent.futures.ThreadPoolExecutor(max_workers=threads) as executor: futures = [executor.submit(run_dssat, thread, crop, deepcopy(man), soil_profile, dssat_envs) for thread, soil_profile in enumerate(soil_profiles)]