Hi Byungsuk, We provide the TIPS as published by HITRAN via an XML file in: arts-xml-data/spectroscopy/PartitionSums/TIPS/tips.xml. The README contains some more information.
About the 300 K limit today, I do not know where it is from and the differences between it and the TIPS data is not strongly defined. The builtin partition_functions are historical, and tests show that it should be mostly reliable up to 300 K but not much more than that. If you need a comparison for the temperature ranges you are interested in, you can run "nlte_fieldSetLteInternalPartitionFunction" and "nlte_fieldSetLteExternalPartitionFunction" after having set partition_functions to tips.xml. The NLTE field is a the size of your atmosphere times the size of the energy levels you are interested in. With hope, //Richard 2018-09-18 2:33 GMT+02:00 이병석 <cb...@aracnt.com>: > Hello Richard, > > Thank you for your reply. > > May I ask which tips xml files you are referring to? > > Also a question: it seems that the bad partition function warning occurs > for any input t_field temperature beyond the range between 150 K and 300 K. > In reality the surface temperature of the Earth frequently exceeds 300 K > (26.85 deg C). For input values such as 30 deg C or a little higher (e.g. > 30-40 deg C, early 300's K), would the results still be bad if the warning > is suppressed? > > Regards, > > > Byungsuk Lee > > ARA Consulting & Technology > > 30 Songdomirae-ro D-1510, Yeonsu-gu, Incheon 21990, South Korea > > -----Original Message----- > *From:* "Richard Larsson"<ric.lars...@gmail.com> > *To:* "이병석"<cb...@aracnt.com>; > *Cc:* "Simon Pfreundschuh"<simon.pfreundsc...@chalmers.se>; < > arts_users...@mailman.rrz.uni-hamburg.de>; > *Sent:* 2018-09-17 (월) 18:21:57 > *Subject:* Re: [arts-users] ARTS OEM > > Hi, > > Just as a warning, suppressing the bad partition function error is not > good practice since it is known that they are, you know, bad. Standard > tests in ARTS fail by several tenths of Kelvin because the partition > functions in ARTS are that bad. Just run with the provided tips xml-files > instead, because if your temperatures are lower than 70 K or higher than > 3000 K you probably have another problem. > > With hope, > //Richard > > 2018-09-17 10:31 GMT+02:00 이병석 <cb...@aracnt.com>: > > Hello Simon Pfreundschuh, > > Thank you for your reply. > > I have employed both of the suggestions and still get the irregular > errors. From the same controlfile modified in the previous email, I have > included and changed to the following lines: > > OEM(method="lm", > max_iter=15, > display_progress=1, > lm_ga_settings=[100,5,2,1000,1,99]) > > and > > AgendaSet( inversion_iterate_agenda ){ > > xClip(ijq = 0, limit_low = 150.0, limit_high = 350) > > Ignore(inversion_iteration_counter) > # Map x to ARTS' variables > x2artsStandard > > # To be safe, rerun checks dealing with the atmosphere > atmfields_checkedCalc > atmgeom_checkedCalc > > # Calculate yf and Jacobian matching x. > yCalc( y=yf ) > > # Add baseline term > VectorAddVector( yf, yf, y_baseline ) > > # This method takes cares of some "fixes" that are needed to get the > Jacobian > # right for iterative solutions. No need to call this WSM for linear > inversions. > jacobianAdjustAndTransform > } > > I included both of the suggestions, and from there > increased the maximum number of iterations to 15 > and set the temperature limits to be between 150 K and 350 K. > All other lines remain the same, including the input absorption line and > atmospheric fields data. > > Now I irregularly get the errors during the OEM computation as before, of > t_field having NaN values or of bad partition function warning (which > happens for any t_field value outside between 150 K and 300 K). While the > bad partition function warning could be suppressed in the code, it seems > that the same problem as before persists. > > Could you please look into this issue a little more? I am not sure how to > tackle the problem. > > Thank you for your service. > > Regards, > > > Byungsuk Lee > > ARA Consulting & Technology > > 30 Songdomirae-ro D-1510, Yeonsu-gu, Incheon 21990, South Korea > > > > -----Original Message----- > *From:* "Simon Pfreundschuh"<simon.pfreundsc...@chalmers.se> > *To:* "이병석"<cb...@aracnt.com>; "arts_users...@mailman.rrz.uni-hamburg.de"< > arts_users...@mailman.rrz.uni-hamburg.de>; > *Cc:* > *Sent:* 2018-09-14 (금) 15:13:55 > *Subject:* Re: [arts-users] ARTS OEM > > Hi Byungsuk Lee, > > It is a bit surprising that these errors occur irregularly, since there is > no randomness > in the test setup. However, if you are running retrievals with external > observation data > it may well happen that the iteration ends up in a state that produces > invalid values. > > For your temperature retrieval I would recommend one or both of the > following solutions: > > 1. Use the Levenberg-Marquardt (LM) iteration scheme: Using the LM scheme > with a high start > value for the gamma parameter can help avoid reaching invalid values > when the forward > model is non-linear: > > OEM(method="lm", > max_iter=5, > display_progress=1, > lm_ga_settings=[100,5,2,1000,1,99]) > > 2. Clip the x-vector: Using the xClip WSM inside your inversion iterate > agenda you can force the > x vector to contain only temperatures within a certain range. If you > use this approach you > should check that none of the retrieved temperatures in your final > state are clipped otherwise your > results may not be valid. > > AgendaSet( inversion_iterate_agenda ){ > > xClip(ijq = 0, limit_low = 100.0) > Ignore(inversion_iteration_counter) > # Map x to ARTS' variables > x2artsStandard > > # To be safe, rerun checks dealing with the atmosphere > atmfields_checkedCalc > atmgeom_checkedCalc > > # Calculate yf and Jacobian matching x. > yCalc( y=yf ) > > # Add baseline term > VectorAddVector( yf, yf, y_baseline ) > > # This method takes cares of some "fixes" that are needed to get the > Jacobian > # right for iterative solutions. No need to call this WSM for linear > inversions. > jacobianAdjustAndTransform > } > > > Regards, > > Simon > > ------------------------------ > *From:* arts_users.mi-boun...@mailman.rrz.uni-hamburg.de < > arts_users.mi-boun...@mailman.rrz.uni-hamburg.de> on behalf of 이병석 < > cb...@aracnt.com> > *Sent:* Friday, September 14, 2018 2:31:25 AM > *To:* arts_users...@mailman.rrz.uni-hamburg.de > *Subject:* [arts-users] ARTS OEM > > Dear ARTS users, > > I am writing to address a question with the use of OEM in the ARTS > development version. > > From the "TestOEM.arts" in "ARTS/controlfiles/artscomponents/oem", this > time I changed the codes as follows. > > 1) From (line 115): > retrievalAddAbsSpecies( > species = "O3", > unit = "vmr", > g1 = p_ret_grid, > g2 = lat_grid, > g3 = lon_grid > ) > To: > retrievalAddTemperature ( > g1 = p_ret_grid, > g2 = lat_grid, > g3 = lon_grid, > hse = "off" ) > > 2) From (line 125): > VectorSetConstant(vars, nelem, 1e-12) > DiagonalMatrix(sparse_block, vars) > covmat_sxAddBlock(block = sparse_block) > To: > VectorSetConstant(vars, nelem, 0.1) > DiagonalMatrix(sparse_block, vars) > covmat_sxAddBlock(block = sparse_block) > > 3) From (line 37): > NumericSet( f_start, 110.436e9 ) > NumericSet( f_end, 111.236e9 ) > IndexSet( nf, 801 ) > IndexSet( np, 81 ) > To: > NumericSet( f_start, 110.436e9 ) > NumericSet( f_end, 111.236e9 ) > IndexSet( nf, 18 ) > IndexSet( np, 18 ) > > 4) From (line 42): > VectorNLinSpace( f_grid, nf, f_start, f_end ) > VectorNLogSpace( p_grid, 361, 500e2, 0.1 ) > VectorNLogSpace( p_ret_grid, np, 500e2, 0.1 ) > To: > VectorNLinSpace( f_grid, nf, f_start, f_end ) > VectorNLogSpace( p_grid, 18, 500e2, 0.1 ) > VectorNLogSpace( p_ret_grid, np, 500e2, 0.1 ) > > Overall, I changed the ozone VMR retrieval to temperature retrieval and > reduced the number of frequencies and pressure layers. > > When I run the controlfile multiple times, I irregularly get errors. The > error messages are > > > Run-time error in oem computation: Forward Model Evaluation Error > > Run-time error in agenda: inversion_iterate_agenda > > Run-time error in method: atmfields_checkedCalc > > The variable *t_field* contains one or several NaNs. This is not > allowed! > > > > or > > > > All temperatures in *t_field* must be > 0. > > or seldom the bad partition function warning. > > Here are my questions: > 1) Is this an anticipated error, simply coming from failing to find a > converging solution? Is it expected that the OEM sometimes throws an error > as above? > 2) Are there mechanisms (e.g. workspace methods) within the ARTS that can > prevent the t_field or vmr_field from becoming either negative or NaN > during the OEM iterations? > > Thank you for your assistance. > > Regards, > > > Byungsuk Lee > > ARA Consulting & Technology > > 30 Songdomirae-ro D-1510, Yeonsu-gu, Incheon 21990, South Korea > > *Email: * cb...@aracnt.com > > _______________________________________________ > arts_users.mi mailing list > arts_users.mi@lists.uni-hamburg.de > <https://mailman.rrz.uni-hamburg.de/mailman/listinfo/arts_users.mi> > https://mailman.rrz.uni-hamburg.de/mailman/listinfo/arts_users.mi > > >
_______________________________________________ arts_users.mi mailing list arts_users.mi@lists.uni-hamburg.de https://mailman.rrz.uni-hamburg.de/mailman/listinfo/arts_users.mi