Closed lie112 closed 1 year ago
You can get the BoM AGCD from our web API.
It may be best to upload the problem simulation file. I'm not familiar with the 'base template example from DARPA'.
GRange in APSIM is the same one as used in the DARPA project. It is not a cut down version.
The problem appears that when standardise() is called in the soil object there are no child models present
Yes, standardise is called. A soil should always have child models. A soil without child models is not a valid soil and won't run.
Is there a way to get a soil model from the ACRIS database
Do you mean ASRIS? If so then no we don't have a connection to ASRIS. You can right click on a field and download a soil from various sources e.g. APSOIL
Is there a way to automate the generation of a weather .met file from a BOM weather station?
Likewise you can right click on a simulation and download a weather file from various source e.g. SILO, BOM.
Thanks.. Steep learning curve. I think Experiment_2020-01 is the best. The files I have been looking at DeansTemplate.apsimx from Sept 2020. I've grabbed another apsimx file from the DARPA shared area and with a bit of fiddling I am past the last choke point and into a problem in the G_range database. I'm not sure I can repeat the previous problem. It was odd in that the soil model had all the required child models in the UI, but in standardise() there were no children initialised. I was wondering if somehow in the Experiment it got there before the children were created,
I'll wait for Eric to give me some pointers as I need a bit more guidance than the help docs provide.
As for right click Field/Zone download soil... very cool! And right click simulation and download weather.... How have I never seen that menu option? I must have my CLEM spectacles on or never right click Simulations, given the download soil is under CLEM given it's a Zone too.
@lie112 - Putting G-Range into Apsim was a case of forcing a round peg into a square hole. They take very different approaches: specifically, G-Range was designed as a global model with a monthly timestep, whereas Apsim is a "point" model with (usually) a daily timestep. They also differ considerably in their treatment of soils (G-Range pretty much works from sand/soil/clay/organic carbon, whereas Apsim focuses on hydraulic properties like lower limit and drained upper limit). Although I was able to implement G-Range under Apsim, I did so specifically for the DARPA World Modellers project, and was never really very satisfied with the result. Partly for that reason, but largely because of my overall laziness, I never documented it as an Apsim model in any detail. The few bits of documentation that I can still access largely focus on the mechanics of running the suite of simulations used in the project rather than on the G-Range model itself.
To really understand things, you'd need to go to the original G-Range documentation of Boone et al. Here's a snippet from a project report that describes the overall picture:
soils are simulated using four layers, in the baseline simulation set to be 0-15 cm, 15-30 cm, 30-45 cm, and 45-60 cm. Three kinds of vegetation are simulated: herbs, shrubs, and trees. Within those types, vegetation layers are represented, including 1) herbs within the herbaceous facet, 2) herbs under shrubs and 3) shrubs in the shrub facet, and 4) herbs under trees, 5) shrubs under trees, and 6) trees in the tree facet. Herbaceous plants are divided into a perennial and annual portion, and shrubs and trees include seasonal or drought deciduous and evergreen portions. Lastly, herbaceous plants are divided into leaves and shoots plus fine roots. Woody plants are divided into five parts. Those are leaves (and shoots), fine branches, coarse branches, fine roots, and coarse roots.
The model dynamics were summarized as:
• G- Range begins with initialization. First, general parameters used in the model are read, including the attributes of the simulation and locations of files needed (in Initialize_Parms). Next, a suite of parameters are read in that describe the ecosystem processes for each landscape unit represented in the global simulation (Initialize_Landscape_Parms). A series of global spatial layers are then read in, describing things such as soil attributes, vegetation types, landscape unit identifiers, and tree cover (Initialize_Globe). From a list of vegetation types considered rangelands and the global maps, the next module creates a list of landscape cells that are rangelands, and initializes their conditions, such as field capacity, the proportion of each cell occupied by herbs, shrubs, and trees (i.e., facet proportions), and initial carbon concentrations (Initialize_Rangelands). Lastly, the many output files produced by G-Range are initialized, opening the files and placing in them appropriate headers (Initialize_Outputs). • The loops representing the monthly time-step used in G-Range are simulated, in a series of two loops, one for the years modeled, and inside that, the 12 months modeled. Following the yearly loop, a module runs that executes processes needed annually, which include setting annual accumulators back to zero, and adjusting the allocation of carbon and lignin in plant parts based on current biomasses (Each_Year). The monthly loop then begins, with a report of the progress of the simulation written to screen (Progress). Weather spatial layers are then read for the month, including precipitation, and maximum and minimum temperatures for the globe (Read_Weather). Spatial layers that describe management or fire are then read in, if the user has indicated that they should be used (Read_Other). • The main ecological processes are then simulated, within a loop that steps through the rangeland cells included in the simulation. (Calling each procedure thousands of times may appear inefficient, but this looping structure was adopted to ease the task of future parallelization of the G-Range code. Individual processors would be asked to simulate changes on a subset of rangeland cells). First, some attributes and indices of vegetation are updated, such as leaf area indices, carbon-nitrogen ratios, phenology based on heat accumulation, and tree basal area (Update_Vegetation). Weather for rangeland cells is updated next, included storm flow, heat accumulation, potential evapotransportation, day length, and snow accumulation (Update_Weather). • The potential production of plant facets is calculated for each rangeland cell (Potential_Production). This potential is based on aspects such as soil temperature, precipitation, soil water availability, and shading. Potential production is then restricted based on nutrient limitations and nutrient ratios, for herbs (Herb_Growth), shrubs, and trees (Woody_Growth) to yield actual growth. Growth is distributed among plant parts based on allometrics. Removal of plant matter from grazing is then simulated (Grazing). The death of plant parts is then simulated (Plant_Part_Death), followed by the death of whole plants (Whole_Plant_Death). Land management, such as fertilization of landscapes, is then simulated (Management). Plant reproduction is simulated, with plants being established in accordance with several constraints (e.g., seed production, soil moisture, woody cover, herbaceous cover) (Plant_Reproduction). Metrics and indices of vegetation are recalculated (Update_Vegetation, as cited above). Water loss through transpiration, evaporation, and base flows is calculated (Water_Loss), then decomposition within the rangeland cell is simulated (Decomposition). The last set of processes simulated for the rangeland cells is for nitrogen leaching and volatilization (Nitrogen_Losses). • After processes for the rangeland cells are complete, the vegetation indices are updated a final time for the month (Update_Vegetation), then processes that must be done each month are simulated (Each_Month). Primarily this entails testing to see if state variables are mistakenly below zero, or extremely large values, and if so, resetting the variables to more appropriate values and tallying the number of times resetting is required (see below). Lastly, output surfaces are produced (Output_Surfaces). That concludes the monthly and yearly looping in G-Range. The final module called (Wrap_Up) produces the files that report the number of times throughout the simulation that each rangeland cell had to have its state variables reset to values above zero or below a very large number
I'm sure that makes everything crystal clear :smirk:.
Thanks @zur003 for the detailed response. All very clear. I'm curious to see how it performs in north Queensland. It is quite similar to the Savanna model (Coughenour, Colorado State) that I re-developed into Savanna.au during my post-doc in 1999-2001. I'm not sure many people are using G-Range or Savanna recently given retirements of developers, citations, and web page last updates (parked as legacy), and if anything, people are now using the DayCENT, daily CENTURY model. I assume Randy Boone was happy to have G-Range ported to APSIM and it's open source for further development. Given there's unlikely to be another World Modellers in a hurry, it may receive little attention unless someone like me is interested. What is the situation with further development?
I'm trying to get my hands on a parameterised version of GRASP for comparisons.
I had trouble finding FNQ grasp parameters last year. I'd be keen to know how you go.
This issue has been automatically marked as stale because it has not had any activity in the last 30 days. It will be closed in one week if no further activity occurs. Thank you for your contributions.
This issue is being closed because there has been no recent activity. Feel free to re-open or open a new issue if needed.
I'm trying to do some test runs of G-Range for north Qld gulf country to see how it might perform as a tropical pasture model for CLEM simulations. Is it cut down from the original G-Range for DARPA or does it also include the shrub and forb components?
I am using the base template example from DARPA stored files to learn how it works. I am having trouble getting the soil to work. I have disabled the soil in the factors of the experiment as it has no sand, silt, clay values and trying to run with the base soil in the simulation. I assume the factor soil model gets propagated from the DARPA R code.
It seems that in Prepare() section of the Simulations model the soil.Standardise() is called. The problem appears that when standardise() is called in the soil object there are no child models present and thus all the assignments of physical, chemical... and waterbalance are null and physical.Thickness throws an error. Am I missing something fundamental with soils? I haven't used them yet.
Is there a way to get a soil model from the ACRIS database, or do they need to be built by hand? Is there a way to automate the generation of a weather .met file from a BOM weather station?