jneme910 / ceap-grazing-lands Goto Github PK
View Code? Open in Web Editor NEWCEAP Grazing Lands
Home Page: https://jneme910.github.io/CEAP-Grazing-Lands/
CEAP Grazing Lands
Home Page: https://jneme910.github.io/CEAP-Grazing-Lands/
Soil Characteristics GUI / Mapping Tool
• Primarily interested in using the tool to group soils into ecological sites and ecological site groups within a Major Land Resource Area or Land Resource Unit.
o Choose soil characteristics that I want grouped
Those characteristics are captured on the spreadsheet and in Jason’s SQL.
o Identify map unit components that have those soil characteristics
Already captured in Jason’s SQL via MUKEY.
o View the dominant component, dominant condition map units. Be able to set minimum percent of dominant component or condition (ie map units with 100%, at least 70% etc)
Can this be a user-entry box in the GUI, allowing user to enter a positive integer between 1-100?
o Be able to turn on/view (separately) additional map units with minor component having those characteristics. Be able to set minimum percent of minor component (ie >0% of map unit, or at least 25% of map unit)
Similar to above it re: dominant component/dominant condition?... Just let the user enter the value they want? The value might ideally be captured as something like, “Percent of component acres in the mapunit is greater than ___ and less than ___.” User would enter values in each blank; limited to a value between 1-100.
o View the data as aggregated by the Normalized Major Component display.
All calculations within the “analytical” GUI would be performed on this normalized major component data. Calculations should not be performed on any of the other scripts (those run to extract Dominant Component or All Components).
o View the map result online (visual check review)
o Download the result as a geodatabase or shapefile (I like the shapefile idea because it is easier for me to add to the maps that I have created for the work I am doing)
• Ideally, I would be able to create multiple ecological site or ecological site groups at once -ie set up “ecosite units” each with their own soil characteristics, to create the ecological site or site group map for the MLRA or LRU, or even a ranch.
• The dream is to incorporate the scripts+GUIs into web soil survey so everyone can use them. Web soil survey is hooked to EDIT, so the user could potentially get some state and transition information, production ranges, species lists for the ecosite units built.
• Simplify some of the outputs:
o Within both GUIs (the “non-analytical” and the “analytical”), group the Landforms from SSURGO into CEAP-GL categories: Bottom, Terrace, Depression, Upland.
o What else can we have the GUI group into categories, for ease of data interpretation and/or mapping concepts?
• Perform the following selections/calculations in the “analytical” GUI, using only the script that contains the Normalized Component Percents:
o What are the most important drivers of a vegetation and/or ecological site change or concept?
Least limiting soil properties:
Most limiting soil properties: Profile Depth, Restriction Depth, Chemistry, Slope, Coarse Frag Volume in Profile, AWS, …..
Are weighted averages helpful, or do we just need min/max values?
• Some properties aren’t calculatable. For those, have users select the criteria for each property. Eg, if Profile Depth is a concern, I could select all the “Very Shallow” components.
• Some properties can be calculated. For those, a weighted average may be helpful, or the Min or Max might be preferred. Eg, If SAR is the concern, I’d select SAR when weighted avg for the profile is greater than {user entry}. Or could select it based on Min value = {user entry}. Or on Max value = {user entry}.
• Due to processing speed, it might be good to have those weighted averages, mins and maxs pre-calculated for each mapunit component, and when a calculated value is desired, the GUI calls on that pre-calculated table, rather than performing the calc in realtime?
• Add Rainfall Erosivity Values (from the Global Rainfall Erosivity ArcGIS datalayer available thru data request at https://esdac.jrc.ec.europa.eu/content/global-rainfall-erosivity) to the map layer, so we can spatially join the R-Factor to each mapunit. The R-factors in NASIS are unreliable, so prefer to use the R-Factors developed in the Global Rainfall Erosivity data layer.
o R-Factor joined/related to Jason’s tabular SQL output in ArcGIS, and then just displayed as a selection within the GUI. Mike, this would be an extra step for your team to perform. Is this okay?
Request: Could two different GUIs be developed? The first would be “non-analytical” where no calculations would be performed on any of the data.
The second GUI would be for “analytical” users, and the data calculations presented in this document would be performed as described. This analytical GUI would be for users who need to evaluate large landscapes, perform environmental modeling, or perhaps develop ecological site group concepts.
Calcs would only be performed on the Major Components, using Jason’s new datafield, that identifies and calculates the normalized component percents
Jason it looks like January is missing from your water table script.
Was this intentional?
| INSERT INTO #water2 (mukey, compname , avg_h20_apr2sept , avg_h20_oct2march ,cokey)
| SELECT DISTINCT mukey, compname, (SELECT AVG (min_water) FROM #water AS w2 WHERE w2.cokey=#water.cokey AND CASE WHEN month = 'April' THEN 1
| WHEN month = 'May'THEN 1
| WHEN month = 'June' THEN 1
| WHEN month = 'July' THEN 1
| WHEN month = 'August' THEN 1
| WHEN month = 'September' THEN 1 ElSE 2 END = 1) AS avg_h20_apr2sept,
| (SELECT AVG (min_water) FROM #water AS w3 WHERE w3.cokey=#water.cokey AND CASE WHEN month = 'October' THEN 1
| WHEN month = 'November' THEN 1
| WHEN month = 'December' THEN 1
| WHEN month = 'February' THEN 1
| WHEN month = 'March' THEN 1
| ElSE 2 END = 1) AS avg_h20_oct2march, cokey
| FROM #water
Kevin Godsey
if data is being extracted for a point, then pull the data to the map unit extent right? Not the survey extent of the soil concept, correct? I told him that you were hoping for component level, so that extent of the data would be map unit at coarsest. So there are two options here: A) extracting data for a point (eg, NRI), or; B) extracting data by mapunit component. My hope was to have it by (B), mapunit component. Not by point. As we overlay specific points onto the completed spatial product, we could be intersecting with a mapunit component, and that would yield all the soil characteristic data that he’s extracting for us. So essentially, we end up with both if we do it at the mapunit component scale.
We typically use it directly from the gSSURGO download, and they would write scripts extracting data from that. But Jason makes a good point, that if it’s done through Soil Data Access, it would always be a solid link on the web, available to anyone to use. So I think that would be the best approach.
I think you will at least need a percent sign after the d.
The suffix d is not always last as indicated in list of horizon names in NASIS.
However this query will also pick out the word “and” in the Hzname field.
| --WHEN hzname LIKE '%R%' THEN 'lithic'
| --WHEN hzname LIKE '%d' THEN 'densic'
| --WHEN hzname LIKE '%qm%' THEN 'duripan'
| --WHEN hzname LIKE '%km%' THEN 'petrocalcic'
| --WHEN hzname LIKE '%ym%' THEN 'petrogypsic'
| --WHEN hzname LIKE '%x%' THEN 'fragipan' -- may not meet fragipan
| --WHEN hzname LIKE '%hs%' THEN 'spodic'
| --WHEN hzname LIKE '%m%' THEN 'petro' END AS hz_diag_kind
Kevin Godsey
Link to Data Def ID | Soil Characteristic/Criteria by Component | gSSURGO table name | gSSURGO physical name | gSSURGO column label (appears in ArcGIS attribute tables) | Extra Criteria if Noted Below | Notes | gSSURGO physical name | Logical Data Type | Physical Data Type |
---|---|---|---|---|---|---|---|---|---|
** | Jason: You have a separate SQL that you named "MLRA+SMTR_SQL". If you could just add that to the main CEAP-GL SSURGO-QT SQL, alongwith all the items above? Thanks! | ||||||||
New data that needs to be added to SQL, based on Reviewer Comments (9-1-2021) | |||||||||
109 | pH 1:1 H2O, low | chorizon; uppermost | ph1to1h2o_l | 15cm depth, or surface horizon, whichever is "best" or "comes first". | |||||
110 | pH 1:1 H2O, high | chorizon; uppermost | ph1to1h2o_h | 15cm depth, or surface horizon, whichever is "best" or "comes first". | |||||
111 | pH 0.01M CaCl2, low | chorizon; uppermost | ph01mcacl2_l | 15cm depth, or surface horizon, whichever is "best" or "comes first". | |||||
112 | pH 0.01M CaCl2, high | chorizon; uppermost | ph01mcacl2_h | 15cm depth, or surface horizon, whichever is "best" or "comes first". | |||||
113 | CEC-7, low | chorizon; uppermost | cec7_l | 15cm depth, or surface horizon, whichever is "best" or "comes first". | |||||
114 | CEC-7, high | chorizon; uppermost | cec7_h | 15cm depth, or surface horizon, whichever is "best" or "comes first". | |||||
115 | add verti to Subgroup data pull in the SQL | component | taxsubgrp | Subgroup | |||||
116 | add Vertisol to Greatgroup data pull in the SQL | component | taxgrtgroup | Greatgroup | |||||
117 | avg_h20_mar2oct | (comonth; water table depth representative value) | |||||||
118 | avg_h20_nov2feb | (comonth; water table depth representative value) | |||||||
119 | Flood_Freq | Five flooding frequency classes are needed in SQT: 1. None and Very Rare will be combined. 2. Rare 3. Occasional 4. Frequent 5. Very Frequent | |||||||
120 | Flood_Dur | Four flooding duration classes are needed in SQT: 1. Extremely Brief and Very Brief (0.1 hrs to <2 days) will be combined. 2. Brief (2 days to <7 days) 3. Long (7 days to <30 days) 4. Very Long (>=30 days) | |||||||
121 | Flood_Month | Only need June, July, August as selections in SQT. | |||||||
122 | Ponding_Freq | Ponding Frequency classes for SQT: 1. None 2. Rare 3. Occasional 4. Frequent | |||||||
123 | Ponding_Dur | Ponding Duration classes for SQT: 1. Very Brief 2. Brief 3. Long 4. Very Long | |||||||
124 | Ponding_Month | Only need June, July, August as selections in SQT. |
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.