From 6642f728a6bc89cc4b79714e6fc8bc8b5bc66256 Mon Sep 17 00:00:00 2001 From: garo Date: Wed, 1 Oct 2025 13:04:28 -0700 Subject: [PATCH 1/7] fix: resolve URL mapping and non-deterministic ordering issues in US soil identification - Replace index-based URL storage with component key mapping to fix URL mismatches - Add deterministic sorting to groupby operations for consistent component ordering - Improve component name duplication handling with sorted processing - Fix Series URL generation logic to properly match components with their URLs Resolves issues where soil components received incorrect SDE/SEE URLs due to sorting misalignment between URL lists and component data ordering. --- soil_id/us_soil.py | 78 +++++++++++++++++++++------------------------- 1 file changed, 36 insertions(+), 42 deletions(-) diff --git a/soil_id/us_soil.py b/soil_id/us_soil.py index 51a268c..3c6e0ab 100644 --- a/soil_id/us_soil.py +++ b/soil_id/us_soil.py @@ -218,7 +218,7 @@ def list_soils(lon, lat): # Add distance column from mucompdata_pd using cokey link muhorzdata_pd = pd.merge( muhorzdata_pd, - mucompdata_pd[["cokey", "distance", "distance_score"]], + mucompdata_pd[["cokey", "distance", "distance_score"]], on="cokey", how="left", ) @@ -235,9 +235,7 @@ def list_soils(lon, lat): mucompdata_pd = mucompdata_pd[mucompdata_pd["cokey"].isin(comp_key)] # Sort mucompdata_pd based on 'cond_prob' and 'distance' - mucompdata_pd.sort_values( - ["cond_prob", "distance", "compname"], ascending=[False, True, True], inplace=True - ) + mucompdata_pd.sort_values(["cond_prob", "distance", "compname"], ascending=[False, True, True], inplace=True) mucompdata_pd.reset_index(drop=True, inplace=True) # Duplicate the 'compname' column for grouping purposes @@ -261,13 +259,16 @@ def list_soils(lon, lat): component_names = mucompdata_pd["compname"].tolist() name_counts = collections.Counter(component_names) + # Track which indices have been processed for each name + processed_indices = {} + for name, count in sorted(name_counts.items()): # Sort for deterministic order if count > 1: # If a component name is duplicated # Find all indices for this name indices = [i for i, comp_name in enumerate(component_names) if comp_name == name] # Sort indices for deterministic order indices.sort() - + # Add suffixes to all occurrences except the first for i, idx in enumerate(indices): if i > 0: # Skip the first occurrence (keep original name) @@ -665,9 +666,7 @@ def list_soils(lon, lat): if mucompdata_pd["compkind"].isin(OSD_compkind).any(): # Group data by cokey - OSDhorzdata_group_cokey = [ - group for _, group in OSDhorzdata_pd.groupby("cokey", sort=False) - ] + OSDhorzdata_group_cokey = [group for _, group in OSDhorzdata_pd.groupby("cokey")] # Initialize empty lists lab_lyrs = [] @@ -976,39 +975,39 @@ def list_soils(lon, lat): munsell_lyrs.append(dict(zip(hzb_lyrs[index].keys(), munsell_dummy))) # Series URL Generation - # Initialize lists to store series URLs - SDE_URL = [] - SEE_URL = [] + # Create a mapping of cokey to URLs for safe lookup + cokey_to_urls = {} - # Group data by 'cokey' - OSDhorzdata_group_cokey = [g for _, g in OSDhorzdata_pd.groupby("cokey", sort=False)] + # Group data by 'cokey' - use sort=True for deterministic ordering + OSDhorzdata_group_cokey = [g for _, g in OSDhorzdata_pd.groupby("cokey", sort=True)] for index, group in enumerate(OSDhorzdata_group_cokey): + cokey = group["cokey"].iloc[0] # Get the cokey for this group + # Check if compkind is not in OSD_compkind or if series contains any null values if ( - mucompdata_pd.loc[index]["compkind"] not in OSD_compkind + mucompdata_pd[mucompdata_pd["cokey"] == cokey]["compkind"].iloc[0] not in OSD_compkind or group["series"].isnull().any() ): - SDE_URL.append("") - SEE_URL.append("") + cokey_to_urls[cokey] = {"sde": "", "see": ""} else: - # Extract compname, convert to lowercase, remove trailing numbers, and replace - # spaces with underscores + # Extract compname, convert to lowercase, remove trailing numbers, and replace spaces with underscores comp = group["compname"].iloc[0].lower() comp = re.sub(r"\d+$", "", comp) comp = comp.replace(" ", "_") - # Create and append URLs - SDE_URL.append(f"https://casoilresource.lawr.ucdavis.edu/sde/?series={comp}") - SEE_URL.append(f"https://casoilresource.lawr.ucdavis.edu/see/#{comp}") + # Create URLs + cokey_to_urls[cokey] = { + "sde": f"https://casoilresource.lawr.ucdavis.edu/sde/?series={comp}", + "see": f"https://casoilresource.lawr.ucdavis.edu/see/#{comp}" + } else: # Initialize lists to store data layers and URLs lab_lyrs = [] lab_intpl_lyrs = [] munsell_lyrs = [] - SDE_URL = [] - SEE_URL = [] + cokey_to_urls = {} # Iterate over each entry in mucompdata_pd for i in range(len(mucompdata_pd)): @@ -1029,17 +1028,16 @@ def list_soils(lon, lat): lab_lyrs.append(dict(zip(keys, lab_dummy))) munsell_lyrs.append(dict(zip(keys, munsell_dummy))) - # Append empty URLs - SDE_URL.append("") - SEE_URL.append("") + # Create empty URLs for each component + cokey = mucompdata_pd.iloc[i]["cokey"] + cokey_to_urls[cokey] = {"sde": "", "see": ""} else: # Initialize lists to store data layers and URLs lab_lyrs = [] lab_intpl_lyrs = [] munsell_lyrs = [] - SDE_URL = [] - SEE_URL = [] + cokey_to_urls = {} # Iterate over each entry in mucompdata_pd for i in range(len(mucompdata_pd)): @@ -1060,9 +1058,9 @@ def list_soils(lon, lat): lab_lyrs.append(dict(zip(keys, lab_dummy))) munsell_lyrs.append(dict(zip(keys, munsell_dummy))) - # Append empty URLs - SDE_URL.append("") - SEE_URL.append("") + # Create empty URLs for each component + cokey = mucompdata_pd.iloc[i]["cokey"] + cokey_to_urls[cokey] = {"sde": "", "see": ""} # Subset datasets to exclude pedons without any depth information cokeys_with_depth = mucompdata_pd[mucompdata_pd["comp_max_bottom"] > 0].cokey.unique() @@ -1429,7 +1427,7 @@ def list_soils(lon, lat): # Replace NaN values with an empty string mucompdata_cond_prob = mucompdata_cond_prob.fillna("") - # Generate the Site list + # Generate the Site list using cokey-based URL lookup Site = [ { "siteData": { @@ -1450,8 +1448,8 @@ def list_soils(lon, lat): "irrcapscl": row["irrcapscl"], "irrcapunit": row["irrcapunit"], "taxsubgrp": row["taxsubgrp"], - "sdeURL": SDE_URL[idx], - "seeURL": SEE_URL[idx], + "sdeURL": cokey_to_urls.get(row["cokey"], {"sde": ""})["sde"], + "seeURL": cokey_to_urls.get(row["cokey"], {"see": ""})["see"], }, "siteDescription": row["brief_narrative"], } @@ -1583,7 +1581,7 @@ def rank_soils( # Check if list_output_data is a string (error message) instead of expected object if isinstance(list_output_data, str): return {"error": f"Cannot rank soils: {list_output_data}"} - + # --------------------------------------------------------------------------------------- # ------ Load in user data --------# # Initialize the DataFrame from the input data @@ -2070,14 +2068,12 @@ def rank_soils( # Concatenate the sorted and ranked groups D_final = pd.concat(soilIDList_data).reset_index(drop=True) - + # Merge with the Rank_Filter data D_final = pd.merge(D_final, Rank_Filter, on="compname", how="left") # Sort dataframe to correctly assign Rank_Data - D_final = D_final.sort_values( - by=["soilID_rank_data", "Score_Data", "compname"], ascending=[False, False, True] - ) + D_final = D_final.sort_values(by=["soilID_rank_data", "Score_Data", "compname"], ascending=[False, False, True]) # Assigning rank based on the soilID rank and rank status rank_id = 1 @@ -2171,9 +2167,7 @@ def rank_soils( soilIDList_out = [] for _, group in D_final_loc.groupby("compname_grp", sort=True): - group = group.sort_values( - ["Score_Data_Loc", "compname"], ascending=[False, True] - ).reset_index(drop=True) + group = group.sort_values(["Score_Data_Loc", "compname"], ascending=[False, True]).reset_index(drop=True) group["soilID_rank_final"] = [True if idx == 0 else False for idx in range(len(group))] soilIDList_out.append(group) From 339bbd67c73060d8763f0b8e5b130df7043753e7 Mon Sep 17 00:00:00 2001 From: jjmaynard Date: Tue, 30 Sep 2025 16:43:45 -0700 Subject: [PATCH 2/7] fix: refactor sorting and formatting for readability Improves code readability by reformatting long sort_values and other function calls across the file. No functional changes were made; only code style and formatting were updated for clarity and consistency. --- soil_id/us_soil.py | 30 +++++++++++++++++------------- 1 file changed, 17 insertions(+), 13 deletions(-) diff --git a/soil_id/us_soil.py b/soil_id/us_soil.py index 3c6e0ab..e3d6021 100644 --- a/soil_id/us_soil.py +++ b/soil_id/us_soil.py @@ -218,7 +218,7 @@ def list_soils(lon, lat): # Add distance column from mucompdata_pd using cokey link muhorzdata_pd = pd.merge( muhorzdata_pd, - mucompdata_pd[["cokey", "distance", "distance_score"]], + mucompdata_pd[["cokey", "distance", "distance_score"]], on="cokey", how="left", ) @@ -235,7 +235,9 @@ def list_soils(lon, lat): mucompdata_pd = mucompdata_pd[mucompdata_pd["cokey"].isin(comp_key)] # Sort mucompdata_pd based on 'cond_prob' and 'distance' - mucompdata_pd.sort_values(["cond_prob", "distance", "compname"], ascending=[False, True, True], inplace=True) + mucompdata_pd.sort_values( + ["cond_prob", "distance", "compname"], ascending=[False, True, True], inplace=True + ) mucompdata_pd.reset_index(drop=True, inplace=True) # Duplicate the 'compname' column for grouping purposes @@ -259,16 +261,13 @@ def list_soils(lon, lat): component_names = mucompdata_pd["compname"].tolist() name_counts = collections.Counter(component_names) - # Track which indices have been processed for each name - processed_indices = {} - for name, count in sorted(name_counts.items()): # Sort for deterministic order if count > 1: # If a component name is duplicated # Find all indices for this name indices = [i for i, comp_name in enumerate(component_names) if comp_name == name] # Sort indices for deterministic order indices.sort() - + # Add suffixes to all occurrences except the first for i, idx in enumerate(indices): if i > 0: # Skip the first occurrence (keep original name) @@ -983,10 +982,11 @@ def list_soils(lon, lat): for index, group in enumerate(OSDhorzdata_group_cokey): cokey = group["cokey"].iloc[0] # Get the cokey for this group - + # Check if compkind is not in OSD_compkind or if series contains any null values if ( - mucompdata_pd[mucompdata_pd["cokey"] == cokey]["compkind"].iloc[0] not in OSD_compkind + mucompdata_pd[mucompdata_pd["cokey"] == cokey]["compkind"].iloc[0] + not in OSD_compkind or group["series"].isnull().any() ): cokey_to_urls[cokey] = {"sde": "", "see": ""} @@ -999,7 +999,7 @@ def list_soils(lon, lat): # Create URLs cokey_to_urls[cokey] = { "sde": f"https://casoilresource.lawr.ucdavis.edu/sde/?series={comp}", - "see": f"https://casoilresource.lawr.ucdavis.edu/see/#{comp}" + "see": f"https://casoilresource.lawr.ucdavis.edu/see/#{comp}", } else: @@ -1581,7 +1581,7 @@ def rank_soils( # Check if list_output_data is a string (error message) instead of expected object if isinstance(list_output_data, str): return {"error": f"Cannot rank soils: {list_output_data}"} - + # --------------------------------------------------------------------------------------- # ------ Load in user data --------# # Initialize the DataFrame from the input data @@ -2068,12 +2068,14 @@ def rank_soils( # Concatenate the sorted and ranked groups D_final = pd.concat(soilIDList_data).reset_index(drop=True) - + # Merge with the Rank_Filter data D_final = pd.merge(D_final, Rank_Filter, on="compname", how="left") # Sort dataframe to correctly assign Rank_Data - D_final = D_final.sort_values(by=["soilID_rank_data", "Score_Data", "compname"], ascending=[False, False, True]) + D_final = D_final.sort_values( + by=["soilID_rank_data", "Score_Data", "compname"], ascending=[False, False, True] + ) # Assigning rank based on the soilID rank and rank status rank_id = 1 @@ -2167,7 +2169,9 @@ def rank_soils( soilIDList_out = [] for _, group in D_final_loc.groupby("compname_grp", sort=True): - group = group.sort_values(["Score_Data_Loc", "compname"], ascending=[False, True]).reset_index(drop=True) + group = group.sort_values( + ["Score_Data_Loc", "compname"], ascending=[False, True] + ).reset_index(drop=True) group["soilID_rank_final"] = [True if idx == 0 else False for idx in range(len(group))] soilIDList_out.append(group) From 099c4652173e85477f091d5318c84f4a70972b0f Mon Sep 17 00:00:00 2001 From: garo Date: Thu, 26 Feb 2026 16:27:07 -0800 Subject: [PATCH 3/7] chore: update snapshots --- ...il_location[33.81246789,-101.9733687].json | 208 ++++++------- ...t_soil_location[35.59918,-120.491439].json | 48 +-- .../test_soil_location[37.422,-122.084].json | 114 +++---- ...il_location[37.48216451,-99.55016693].json | 236 +++++++------- ...il_location[39.26009312,-85.50621214].json | 292 +++++++++--------- ..._soil_location[42.494912,-123.064531].json | 204 ++++++------ ...il_location[42.63413723,-94.31005777].json | 140 ++++----- ...il_location[43.06450312,-119.4596489].json | 158 +++++----- ...il_location[45.88932423,-121.0347381].json | 16 +- ...soil_location[47.213922,-69.28246582].json | 74 ++--- 10 files changed, 745 insertions(+), 745 deletions(-) diff --git a/soil_id/tests/us/__snapshots__/test_us/test_soil_location[33.81246789,-101.9733687].json b/soil_id/tests/us/__snapshots__/test_us/test_soil_location[33.81246789,-101.9733687].json index 8b1a6bf..96f581b 100644 --- a/soil_id/tests/us/__snapshots__/test_us/test_soil_location[33.81246789,-101.9733687].json +++ b/soil_id/tests/us/__snapshots__/test_us/test_soil_location[33.81246789,-101.9733687].json @@ -663,16 +663,16 @@ "componentID": 27108933, "name": "Randall", "not_displayed": false, - "rank_data": "5", - "rank_data_group": "5", + "rank_data": "9", + "rank_data_group": "9", "rank_data_loc": "1", "rank_data_loc_group": "1", "rank_loc": "1", "rank_loc_group": "1", - "score_data": 0.533, - "score_data_group": 0.533, - "score_data_loc": 0.504, - "score_data_loc_group": 0.504, + "score_data": 0.415, + "score_data_group": 0.415, + "score_data_loc": 0.445, + "score_data_loc_group": 0.445, "score_loc": 0.474, "score_loc_group": 0.474 }, @@ -682,94 +682,56 @@ "componentID": 27108855, "name": "Acuff2", "not_displayed": false, - "rank_data": "6", - "rank_data_group": "6", + "rank_data": "2", + "rank_data_group": "2", "rank_data_loc": "2", "rank_data_loc_group": "2", "rank_loc": "Not Displayed", "rank_loc_group": "2", - "score_data": 0.504, - "score_data_group": 0.504, - "score_data_loc": 0.379, - "score_data_loc_group": 0.379, + "score_data": 0.617, + "score_data_group": 0.617, + "score_data_loc": 0.435, + "score_data_loc_group": 0.435, "score_loc": 0.253, "score_loc_group": 0.253 }, { - "component": "Olton", + "component": "Amarillo", "componentData": "Data Complete", - "componentID": 27108854, - "name": "Olton", + "componentID": 27108890, + "name": "Amarillo", "not_displayed": false, - "rank_data": "4", - "rank_data_group": "4", + "rank_data": "1", + "rank_data_group": "1", "rank_data_loc": "3", "rank_data_loc_group": "3", - "rank_loc": "3", - "rank_loc_group": "3", - "score_data": 0.546, - "score_data_group": 0.546, - "score_data_loc": 0.336, - "score_data_loc_group": 0.336, - "score_loc": 0.126, - "score_loc_group": 0.126 + "rank_loc": "8", + "rank_loc_group": "8", + "score_data": 0.645, + "score_data_group": 0.645, + "score_data_loc": 0.328, + "score_data_loc_group": 0.328, + "score_loc": 0.011, + "score_loc_group": 0.011 }, { - "component": "Friona", + "component": "Olton", "componentData": "Data Complete", - "componentID": 27108892, - "name": "Friona", + "componentID": 27108854, + "name": "Olton", "not_displayed": false, - "rank_data": "1", - "rank_data_group": "1", + "rank_data": "7", + "rank_data_group": "7", "rank_data_loc": "4", "rank_data_loc_group": "4", - "rank_loc": "7", - "rank_loc_group": "7", - "score_data": 0.57, - "score_data_group": 0.57, - "score_data_loc": 0.292, - "score_data_loc_group": 0.292, - "score_loc": 0.014, - "score_loc_group": 0.014 - }, - { - "component": "Estacado", - "componentData": "Data Complete", - "componentID": 27108891, - "name": "Estacado", - "not_displayed": false, - "rank_data": "3", - "rank_data_group": "3", - "rank_data_loc": "5", - "rank_data_loc_group": "5", - "rank_loc": "6", - "rank_loc_group": "6", - "score_data": 0.548, - "score_data_group": 0.548, - "score_data_loc": 0.285, - "score_data_loc_group": 0.285, - "score_loc": 0.021, - "score_loc_group": 0.021 - }, - { - "component": "Amarillo", - "componentData": "Data Complete", - "componentID": 27108890, - "name": "Amarillo", - "not_displayed": false, - "rank_data": "2", - "rank_data_group": "2", - "rank_data_loc": "6", - "rank_data_loc_group": "6", - "rank_loc": "8", - "rank_loc_group": "8", - "score_data": 0.553, - "score_data_group": 0.553, - "score_data_loc": 0.282, - "score_data_loc_group": 0.282, - "score_loc": 0.011, - "score_loc_group": 0.011 + "rank_loc": "3", + "rank_loc_group": "3", + "score_data": 0.487, + "score_data_group": 0.487, + "score_data_loc": 0.306, + "score_data_loc_group": 0.306, + "score_loc": 0.126, + "score_loc_group": 0.126 }, { "component": "Mclean", @@ -777,10 +739,10 @@ "componentID": 27108934, "name": "Mclean", "not_displayed": false, - "rank_data": "7", - "rank_data_group": "7", - "rank_data_loc": "7", - "rank_data_loc_group": "7", + "rank_data": "5", + "rank_data_group": "5", + "rank_data_loc": "5", + "rank_data_loc_group": "5", "rank_loc": "4", "rank_loc_group": "4", "score_data": 0.5, @@ -790,25 +752,63 @@ "score_loc": 0.059, "score_loc_group": 0.059 }, + { + "component": "Friona", + "componentData": "Data Complete", + "componentID": 27108892, + "name": "Friona", + "not_displayed": false, + "rank_data": "3", + "rank_data_group": "3", + "rank_data_loc": "6", + "rank_data_loc_group": "6", + "rank_loc": "7", + "rank_loc_group": "7", + "score_data": 0.543, + "score_data_group": 0.543, + "score_data_loc": 0.279, + "score_data_loc_group": 0.279, + "score_loc": 0.014, + "score_loc_group": 0.014 + }, { "component": "Lockney", "componentData": "Missing Data", "componentID": 27108935, "name": "Lockney", "not_displayed": false, - "rank_data": "9", - "rank_data_group": "9", - "rank_data_loc": "8", - "rank_data_loc_group": "8", + "rank_data": "4", + "rank_data_group": "4", + "rank_data_loc": "7", + "rank_data_loc_group": "7", "rank_loc": "5", "rank_loc_group": "5", - "score_data": 0.447, - "score_data_group": 0.447, - "score_data_loc": 0.239, - "score_data_loc_group": 0.239, + "score_data": 0.504, + "score_data_group": 0.504, + "score_data_loc": 0.267, + "score_data_loc_group": 0.267, "score_loc": 0.03, "score_loc_group": 0.03 }, + { + "component": "Estacado", + "componentData": "Data Complete", + "componentID": 27108857, + "name": "Estacado2", + "not_displayed": false, + "rank_data": "6", + "rank_data_group": "6", + "rank_data_loc": "8", + "rank_data_loc_group": "8", + "rank_loc": "Not Displayed", + "rank_loc_group": "6", + "score_data": 0.499, + "score_data_group": 0.499, + "score_data_loc": 0.26, + "score_data_loc_group": 0.26, + "score_loc": 0.021, + "score_loc_group": 0.021 + }, { "component": "Pullman", "componentData": "Data Complete", @@ -821,10 +821,10 @@ "rank_data_loc_group": "9", "rank_loc": "9", "rank_loc_group": "9", - "score_data": 0.462, - "score_data_group": 0.462, - "score_data_loc": 0.237, - "score_data_loc_group": 0.237, + "score_data": 0.483, + "score_data_group": 0.483, + "score_data_loc": 0.247, + "score_data_loc_group": 0.247, "score_loc": 0.011, "score_loc_group": 0.011 }, @@ -835,34 +835,34 @@ "name": "Acuff", "not_displayed": true, "rank_data": "Not Displayed", - "rank_data_group": "6", + "rank_data_group": "2", "rank_data_loc": "Not Displayed", "rank_data_loc_group": "2", "rank_loc": "2", "rank_loc_group": "2", "score_data": 0.49, - "score_data_group": 0.504, + "score_data_group": 0.617, "score_data_loc": 0.372, - "score_data_loc_group": 0.379, + "score_data_loc_group": 0.435, "score_loc": 0.253, "score_loc_group": 0.253 }, { "component": "Estacado", "componentData": "Data Complete", - "componentID": 27108857, - "name": "Estacado2", + "componentID": 27108891, + "name": "Estacado", "not_displayed": true, "rank_data": "Not Displayed", - "rank_data_group": "3", + "rank_data_group": "6", "rank_data_loc": "Not Displayed", - "rank_data_loc_group": "5", - "rank_loc": "Not Displayed", + "rank_data_loc_group": "8", + "rank_loc": "6", "rank_loc_group": "6", - "score_data": 0.441, - "score_data_group": 0.548, - "score_data_loc": 0.231, - "score_data_loc_group": 0.285, + "score_data": 0.414, + "score_data_group": 0.499, + "score_data_loc": 0.218, + "score_data_loc_group": 0.26, "score_loc": 0.021, "score_loc_group": 0.021 } diff --git a/soil_id/tests/us/__snapshots__/test_us/test_soil_location[35.59918,-120.491439].json b/soil_id/tests/us/__snapshots__/test_us/test_soil_location[35.59918,-120.491439].json index 8583b38..a48718f 100644 --- a/soil_id/tests/us/__snapshots__/test_us/test_soil_location[35.59918,-120.491439].json +++ b/soil_id/tests/us/__snapshots__/test_us/test_soil_location[35.59918,-120.491439].json @@ -134,8 +134,8 @@ "nirrcapscl": "e", "nirrcapunit": "nan", "rfvInfill": "No", - "sdeURL": "https://casoilresource.lawr.ucdavis.edu/sde/?series=balcom", - "seeURL": "https://casoilresource.lawr.ucdavis.edu/see/#balcom", + "sdeURL": "https://casoilresource.lawr.ucdavis.edu/sde/?series=los_osos", + "seeURL": "https://casoilresource.lawr.ucdavis.edu/see/#los_osos", "slope": 40.0, "taxsubgrp": "Typic Argixerolls", "textureInfill": "Yes" @@ -271,16 +271,16 @@ "componentID": 26734851, "name": "Balcom3", "not_displayed": false, - "rank_data": "2", - "rank_data_group": "2", + "rank_data": "1", + "rank_data_group": "1", "rank_data_loc": "1", "rank_data_loc_group": "1", "rank_loc": "Not Displayed", "rank_loc_group": "1", - "score_data": 0.541, - "score_data_group": 0.541, - "score_data_loc": 0.396, - "score_data_loc_group": 0.396, + "score_data": 0.659, + "score_data_group": 0.659, + "score_data_loc": 0.455, + "score_data_loc_group": 0.455, "score_loc": 0.252, "score_loc_group": 0.252 }, @@ -290,16 +290,16 @@ "componentID": 26735225, "name": "Los osos2", "not_displayed": false, - "rank_data": "1", - "rank_data_group": "1", + "rank_data": "2", + "rank_data_group": "2", "rank_data_loc": "2", "rank_data_loc_group": "2", "rank_loc": "Not Displayed", "rank_loc_group": "2", - "score_data": 0.558, - "score_data_group": 0.558, - "score_data_loc": 0.341, - "score_data_loc_group": 0.341, + "score_data": 0.565, + "score_data_group": 0.565, + "score_data_loc": 0.345, + "score_data_loc_group": 0.345, "score_loc": 0.125, "score_loc_group": 0.125 }, @@ -310,15 +310,15 @@ "name": "Balcom2", "not_displayed": true, "rank_data": "Not Displayed", - "rank_data_group": "2", + "rank_data_group": "1", "rank_data_loc": "Not Displayed", "rank_data_loc_group": "1", "rank_loc": "1", "rank_loc_group": "1", - "score_data": 0.37, - "score_data_group": 0.541, - "score_data_loc": 0.311, - "score_data_loc_group": 0.396, + "score_data": 0.435, + "score_data_group": 0.659, + "score_data_loc": 0.344, + "score_data_loc_group": 0.455, "score_loc": 0.252, "score_loc_group": 0.252 }, @@ -329,15 +329,15 @@ "name": "Los osos", "not_displayed": true, "rank_data": "Not Displayed", - "rank_data_group": "1", + "rank_data_group": "2", "rank_data_loc": "Not Displayed", "rank_data_loc_group": "2", "rank_loc": "2", "rank_loc_group": "2", - "score_data": 0.363, - "score_data_group": 0.558, - "score_data_loc": 0.244, - "score_data_loc_group": 0.341, + "score_data": 0.47, + "score_data_group": 0.565, + "score_data_loc": 0.298, + "score_data_loc_group": 0.345, "score_loc": 0.125, "score_loc_group": 0.125 } diff --git a/soil_id/tests/us/__snapshots__/test_us/test_soil_location[37.422,-122.084].json b/soil_id/tests/us/__snapshots__/test_us/test_soil_location[37.422,-122.084].json index 48f4cb3..2233be7 100644 --- a/soil_id/tests/us/__snapshots__/test_us/test_soil_location[37.422,-122.084].json +++ b/soil_id/tests/us/__snapshots__/test_us/test_soil_location[37.422,-122.084].json @@ -435,7 +435,7 @@ "soilRank": [ { "component": "Xerorthents", - "componentData": "Data Complete", + "componentData": "Missing Data", "componentID": 26701975, "name": "Xerorthents", "not_displayed": false, @@ -445,10 +445,10 @@ "rank_data_loc_group": "1", "rank_loc": "2", "rank_loc_group": "2", - "score_data": 0.75, - "score_data_group": 0.75, - "score_data_loc": 0.568, - "score_data_loc_group": 0.568, + "score_data": 0.76, + "score_data_group": 0.76, + "score_data_loc": 0.573, + "score_data_loc_group": 0.573, "score_loc": 0.386, "score_loc_group": 0.386 }, @@ -458,46 +458,46 @@ "componentID": 26701950, "name": "Hangerone", "not_displayed": false, - "rank_data": "6", - "rank_data_group": "6", + "rank_data": "5", + "rank_data_group": "5", "rank_data_loc": "2", "rank_data_loc_group": "2", "rank_loc": "1", "rank_loc_group": "1", - "score_data": 0.534, - "score_data_group": 0.534, - "score_data_loc": 0.462, - "score_data_loc_group": 0.462, + "score_data": 0.554, + "score_data_group": 0.554, + "score_data_loc": 0.472, + "score_data_loc_group": 0.472, "score_loc": 0.39, "score_loc_group": 0.39 }, { - "component": "Aquic xerorthents", + "component": "Embarcadero", "componentData": "Data Complete", - "componentID": 26701978, - "name": "Aquic xerorthents", + "componentID": 26701952, + "name": "Embarcadero", "not_displayed": false, - "rank_data": "3", - "rank_data_group": "3", + "rank_data": "2", + "rank_data_group": "2", "rank_data_loc": "3", "rank_data_loc_group": "3", - "rank_loc": "3", - "rank_loc_group": "3", - "score_data": 0.626, - "score_data_group": 0.626, - "score_data_loc": 0.395, - "score_data_loc_group": 0.395, - "score_loc": 0.165, - "score_loc_group": 0.165 + "rank_loc": "6", + "rank_loc_group": "6", + "score_data": 0.732, + "score_data_group": 0.732, + "score_data_loc": 0.372, + "score_data_loc_group": 0.372, + "score_loc": 0.012, + "score_loc_group": 0.012 }, { "component": "Bayshore", - "componentData": "Missing Data", + "componentData": "Data Complete", "componentID": 26701953, "name": "Bayshore", "not_displayed": false, - "rank_data": "2", - "rank_data_group": "2", + "rank_data": "3", + "rank_data_group": "3", "rank_data_loc": "4", "rank_data_loc_group": "4", "rank_loc": "5", @@ -510,46 +510,46 @@ "score_loc_group": 0.019 }, { - "component": "Clear lake", + "component": "Aquic xerorthents", "componentData": "Missing Data", - "componentID": 26701951, - "name": "Clear lake", + "componentID": 26701978, + "name": "Aquic xerorthents", "not_displayed": false, - "rank_data": "5", - "rank_data_group": "5", + "rank_data": "6", + "rank_data_group": "6", "rank_data_loc": "5", "rank_data_loc_group": "5", - "rank_loc": "4", - "rank_loc_group": "4", - "score_data": 0.617, - "score_data_group": 0.617, - "score_data_loc": 0.323, - "score_data_loc_group": 0.323, - "score_loc": 0.029, - "score_loc_group": 0.029 + "rank_loc": "3", + "rank_loc_group": "3", + "score_data": 0.514, + "score_data_group": 0.514, + "score_data_loc": 0.339, + "score_data_loc_group": 0.339, + "score_loc": 0.165, + "score_loc_group": 0.165 }, { - "component": "Embarcadero", - "componentData": "Missing Data", - "componentID": 26701952, - "name": "Embarcadero", + "component": "Clear lake", + "componentData": "Data Complete", + "componentID": 26701951, + "name": "Clear lake", "not_displayed": false, "rank_data": "4", "rank_data_group": "4", "rank_data_loc": "6", "rank_data_loc_group": "6", - "rank_loc": "6", - "rank_loc_group": "6", - "score_data": 0.62, - "score_data_group": 0.62, - "score_data_loc": 0.316, - "score_data_loc_group": 0.316, - "score_loc": 0.012, - "score_loc_group": 0.012 + "rank_loc": "4", + "rank_loc_group": "4", + "score_data": 0.597, + "score_data_group": 0.597, + "score_data_loc": 0.313, + "score_data_loc_group": 0.313, + "score_loc": 0.029, + "score_loc_group": 0.029 }, { "component": "Xerorthents", - "componentData": "Data Complete", + "componentData": "Missing Data", "componentID": 26701976, "name": "Xerorthents2", "not_displayed": true, @@ -559,10 +559,10 @@ "rank_data_loc_group": "1", "rank_loc": "Not Displayed", "rank_loc_group": "2", - "score_data": 0.672, - "score_data_group": 0.75, - "score_data_loc": 0.529, - "score_data_loc_group": 0.568, + "score_data": 0.662, + "score_data_group": 0.76, + "score_data_loc": 0.524, + "score_data_loc_group": 0.573, "score_loc": 0.386, "score_loc_group": 0.386 } diff --git a/soil_id/tests/us/__snapshots__/test_us/test_soil_location[37.48216451,-99.55016693].json b/soil_id/tests/us/__snapshots__/test_us/test_soil_location[37.48216451,-99.55016693].json index f28d357..b170833 100644 --- a/soil_id/tests/us/__snapshots__/test_us/test_soil_location[37.48216451,-99.55016693].json +++ b/soil_id/tests/us/__snapshots__/test_us/test_soil_location[37.48216451,-99.55016693].json @@ -881,6 +881,25 @@ "model": "v2" }, "soilRank": [ + { + "component": "Uly", + "componentData": "Data Complete", + "componentID": 26356407, + "name": "Uly2", + "not_displayed": false, + "rank_data": "6", + "rank_data_group": "6", + "rank_data_loc": "1", + "rank_data_loc_group": "1", + "rank_loc": "Not Displayed", + "rank_loc_group": "1", + "score_data": 0.612, + "score_data_group": 0.612, + "score_data_loc": 0.453, + "score_data_loc_group": 0.453, + "score_loc": 0.295, + "score_loc_group": 0.295 + }, { "component": "Harney", "componentData": "Data Complete", @@ -889,14 +908,14 @@ "not_displayed": false, "rank_data": "4", "rank_data_group": "4", - "rank_data_loc": "1", - "rank_data_loc_group": "1", + "rank_data_loc": "2", + "rank_data_loc_group": "2", "rank_loc": "2", "rank_loc_group": "2", - "score_data": 0.65, - "score_data_group": 0.65, - "score_data_loc": 0.457, - "score_data_loc_group": 0.457, + "score_data": 0.636, + "score_data_group": 0.636, + "score_data_loc": 0.45, + "score_data_loc_group": 0.45, "score_loc": 0.263, "score_loc_group": 0.263 }, @@ -906,10 +925,10 @@ "componentID": 26356406, "name": "Coly2", "not_displayed": false, - "rank_data": "2", - "rank_data_group": "2", - "rank_data_loc": "2", - "rank_data_loc_group": "2", + "rank_data": "3", + "rank_data_group": "3", + "rank_data_loc": "3", + "rank_data_loc_group": "3", "rank_loc": "Not Displayed", "rank_loc_group": "3", "score_data": 0.662, @@ -920,23 +939,23 @@ "score_loc_group": 0.215 }, { - "component": "Uly", + "component": "Canlon", "componentData": "Data Complete", - "componentID": 26356407, - "name": "Uly2", + "componentID": 26356405, + "name": "Canlon", "not_displayed": false, - "rank_data": "7", - "rank_data_group": "7", - "rank_data_loc": "3", - "rank_data_loc_group": "3", - "rank_loc": "Not Displayed", - "rank_loc_group": "1", - "score_data": 0.571, - "score_data_group": 0.571, - "score_data_loc": 0.433, - "score_data_loc_group": 0.433, - "score_loc": 0.295, - "score_loc_group": 0.295 + "rank_data": "1", + "rank_data_group": "1", + "rank_data_loc": "4", + "rank_data_loc_group": "4", + "rank_loc": "11", + "rank_loc_group": "11", + "score_data": 0.71, + "score_data_group": 0.71, + "score_data_loc": 0.356, + "score_data_loc_group": 0.356, + "score_loc": 0.002, + "score_loc_group": 0.002 }, { "component": "Penden", @@ -944,10 +963,10 @@ "componentID": 26356232, "name": "Penden", "not_displayed": false, - "rank_data": "1", - "rank_data_group": "1", - "rank_data_loc": "4", - "rank_data_loc_group": "4", + "rank_data": "2", + "rank_data_group": "2", + "rank_data_loc": "5", + "rank_data_loc_group": "5", "rank_loc": "7", "rank_loc_group": "7", "score_data": 0.667, @@ -957,25 +976,6 @@ "score_loc": 0.016, "score_loc_group": 0.016 }, - { - "component": "Canlon", - "componentData": "Data Complete", - "componentID": 26356405, - "name": "Canlon", - "not_displayed": false, - "rank_data": "3", - "rank_data_group": "3", - "rank_data_loc": "5", - "rank_data_loc_group": "5", - "rank_loc": "11", - "rank_loc_group": "11", - "score_data": 0.659, - "score_data_group": 0.659, - "score_data_loc": 0.331, - "score_data_loc_group": 0.331, - "score_loc": 0.002, - "score_loc_group": 0.002 - }, { "component": "Wakeen", "componentData": "Data Complete", @@ -988,31 +988,31 @@ "rank_data_loc_group": "6", "rank_loc": "9", "rank_loc_group": "9", - "score_data": 0.612, - "score_data_group": 0.612, - "score_data_loc": 0.311, - "score_data_loc_group": 0.311, + "score_data": 0.625, + "score_data_group": 0.625, + "score_data_loc": 0.318, + "score_data_loc_group": 0.318, "score_loc": 0.01, "score_loc_group": 0.01 }, { - "component": "Aquolls", + "component": "Case", "componentData": "Data Complete", - "componentID": 26356437, - "name": "Aquolls", + "componentID": 26356380, + "name": "Case", "not_displayed": false, - "rank_data": "6", - "rank_data_group": "6", + "rank_data": "7", + "rank_data_group": "7", "rank_data_loc": "7", "rank_data_loc_group": "7", - "rank_loc": "10", - "rank_loc_group": "10", - "score_data": 0.594, - "score_data_group": 0.594, - "score_data_loc": 0.298, - "score_data_loc_group": 0.298, - "score_loc": 0.003, - "score_loc_group": 0.003 + "rank_loc": "6", + "rank_loc_group": "6", + "score_data": 0.593, + "score_data_group": 0.593, + "score_data_loc": 0.308, + "score_data_loc_group": 0.308, + "score_loc": 0.023, + "score_loc_group": 0.023 }, { "component": "Tobin", @@ -1045,31 +1045,31 @@ "rank_data_loc_group": "9", "rank_loc": "8", "rank_loc_group": "8", - "score_data": 0.566, - "score_data_group": 0.566, - "score_data_loc": 0.289, - "score_data_loc_group": 0.289, + "score_data": 0.563, + "score_data_group": 0.563, + "score_data_loc": 0.288, + "score_data_loc_group": 0.288, "score_loc": 0.012, "score_loc_group": 0.012 }, { - "component": "Case", - "componentData": "Data Complete", - "componentID": 26356380, - "name": "Case", + "component": "Aquolls", + "componentData": "Missing Data", + "componentID": 26356437, + "name": "Aquolls", "not_displayed": false, "rank_data": "9", "rank_data_group": "9", "rank_data_loc": "10", "rank_data_loc_group": "10", - "rank_loc": "6", - "rank_loc_group": "6", - "score_data": 0.553, - "score_data_group": 0.553, - "score_data_loc": 0.288, - "score_data_loc_group": 0.288, - "score_loc": 0.023, - "score_loc_group": 0.023 + "rank_loc": "10", + "rank_loc_group": "10", + "score_data": 0.563, + "score_data_group": 0.563, + "score_data_loc": 0.283, + "score_data_loc_group": 0.283, + "score_loc": 0.003, + "score_loc_group": 0.003 }, { "component": "Holdrege", @@ -1083,32 +1083,13 @@ "rank_data_loc_group": "11", "rank_loc": "4", "rank_loc_group": "4", - "score_data": 0.44, - "score_data_group": 0.44, - "score_data_loc": 0.272, - "score_data_loc_group": 0.272, + "score_data": 0.4, + "score_data_group": 0.4, + "score_data_loc": 0.252, + "score_data_loc_group": 0.252, "score_loc": 0.104, "score_loc_group": 0.104 }, - { - "component": "Harney", - "componentData": "Data Complete", - "componentID": 26356408, - "name": "Harney3", - "not_displayed": true, - "rank_data": "Not Displayed", - "rank_data_group": "4", - "rank_data_loc": "Not Displayed", - "rank_data_loc_group": "1", - "rank_loc": "Not Displayed", - "rank_loc_group": "2", - "score_data": 0.585, - "score_data_group": 0.65, - "score_data_loc": 0.424, - "score_data_loc_group": 0.457, - "score_loc": 0.263, - "score_loc_group": 0.263 - }, { "component": "Uly", "componentData": "Data Complete", @@ -1116,34 +1097,53 @@ "name": "Uly", "not_displayed": true, "rank_data": "Not Displayed", - "rank_data_group": "7", + "rank_data_group": "6", "rank_data_loc": "Not Displayed", - "rank_data_loc_group": "3", + "rank_data_loc_group": "1", "rank_loc": "1", "rank_loc_group": "1", - "score_data": 0.535, - "score_data_group": 0.571, - "score_data_loc": 0.415, - "score_data_loc_group": 0.433, + "score_data": 0.547, + "score_data_group": 0.612, + "score_data_loc": 0.421, + "score_data_loc_group": 0.453, "score_loc": 0.295, "score_loc_group": 0.295 }, { "component": "Harney", - "componentData": "Missing Data", + "componentData": "Data Complete", "componentID": 26356436, "name": "Harney2", "not_displayed": true, "rank_data": "Not Displayed", "rank_data_group": "4", "rank_data_loc": "Not Displayed", - "rank_data_loc_group": "1", + "rank_data_loc_group": "2", "rank_loc": "Not Displayed", "rank_loc_group": "2", "score_data": 0.55, - "score_data_group": 0.65, + "score_data_group": 0.636, "score_data_loc": 0.407, - "score_data_loc_group": 0.457, + "score_data_loc_group": 0.45, + "score_loc": 0.263, + "score_loc_group": 0.263 + }, + { + "component": "Harney", + "componentData": "Data Complete", + "componentID": 26356408, + "name": "Harney3", + "not_displayed": true, + "rank_data": "Not Displayed", + "rank_data_group": "4", + "rank_data_loc": "Not Displayed", + "rank_data_loc_group": "2", + "rank_loc": "Not Displayed", + "rank_loc_group": "2", + "score_data": 0.534, + "score_data_group": 0.636, + "score_data_loc": 0.399, + "score_data_loc_group": 0.45, "score_loc": 0.263, "score_loc_group": 0.263 }, @@ -1154,14 +1154,14 @@ "name": "Coly", "not_displayed": true, "rank_data": "Not Displayed", - "rank_data_group": "2", + "rank_data_group": "3", "rank_data_loc": "Not Displayed", - "rank_data_loc_group": "2", + "rank_data_loc_group": "3", "rank_loc": "3", "rank_loc_group": "3", - "score_data": 0.597, + "score_data": 0.578, "score_data_group": 0.662, - "score_data_loc": 0.406, + "score_data_loc": 0.396, "score_data_loc_group": 0.439, "score_loc": 0.215, "score_loc_group": 0.215 diff --git a/soil_id/tests/us/__snapshots__/test_us/test_soil_location[39.26009312,-85.50621214].json b/soil_id/tests/us/__snapshots__/test_us/test_soil_location[39.26009312,-85.50621214].json index 025084d..b3b6c6c 100644 --- a/soil_id/tests/us/__snapshots__/test_us/test_soil_location[39.26009312,-85.50621214].json +++ b/soil_id/tests/us/__snapshots__/test_us/test_soil_location[39.26009312,-85.50621214].json @@ -1005,32 +1005,13 @@ "rank_data_loc_group": "1", "rank_loc": "2", "rank_loc_group": "2", - "score_data": 0.653, - "score_data_group": 0.653, - "score_data_loc": 0.353, - "score_data_loc_group": 0.353, + "score_data": 0.671, + "score_data_group": 0.671, + "score_data_loc": 0.363, + "score_data_loc_group": 0.363, "score_loc": 0.054, "score_loc_group": 0.054 }, - { - "component": "Crosby", - "componentData": "Data Complete", - "componentID": 26772436, - "name": "Crosby", - "not_displayed": false, - "rank_data": "3", - "rank_data_group": "3", - "rank_data_loc": "2", - "rank_data_loc_group": "2", - "rank_loc": "4", - "rank_loc_group": "4", - "score_data": 0.651, - "score_data_group": 0.651, - "score_data_loc": 0.349, - "score_data_loc_group": 0.349, - "score_loc": 0.048, - "score_loc_group": 0.048 - }, { "component": "Bonnell", "componentData": "Data Complete", @@ -1039,54 +1020,73 @@ "not_displayed": false, "rank_data": "1", "rank_data_group": "1", - "rank_data_loc": "3", - "rank_data_loc_group": "3", + "rank_data_loc": "2", + "rank_data_loc_group": "2", "rank_loc": "9", "rank_loc_group": "9", - "score_data": 0.671, - "score_data_group": 0.671, - "score_data_loc": 0.336, - "score_data_loc_group": 0.336, + "score_data": 0.689, + "score_data_group": 0.689, + "score_data_loc": 0.345, + "score_data_loc_group": 0.345, "score_loc": 0.002, "score_loc_group": 0.002 }, { - "component": "Grayford", + "component": "Hennepin", "componentData": "Data Complete", - "componentID": 26772427, - "name": "Grayford", + "componentID": 26772448, + "name": "Hennepin3", + "not_displayed": false, + "rank_data": "6", + "rank_data_group": "6", + "rank_data_loc": "3", + "rank_data_loc_group": "3", + "rank_loc": "Not Displayed", + "rank_loc_group": "1", + "score_data": 0.624, + "score_data_group": 0.624, + "score_data_loc": 0.343, + "score_data_loc_group": 0.343, + "score_loc": 0.061, + "score_loc_group": 0.061 + }, + { + "component": "Crosby", + "componentData": "Data Complete", + "componentID": 26772446, + "name": "Crosby3", "not_displayed": false, "rank_data": "4", "rank_data_group": "4", "rank_data_loc": "4", "rank_data_loc_group": "4", - "rank_loc": "11", - "rank_loc_group": "11", - "score_data": 0.648, - "score_data_group": 0.648, - "score_data_loc": 0.325, - "score_data_loc_group": 0.325, - "score_loc": 0.001, - "score_loc_group": 0.001 + "rank_loc": "Not Displayed", + "rank_loc_group": "4", + "score_data": 0.637, + "score_data_group": 0.637, + "score_data_loc": 0.342, + "score_data_loc_group": 0.342, + "score_loc": 0.048, + "score_loc_group": 0.048 }, { - "component": "Hennepin", + "component": "Brookston", "componentData": "Data Complete", - "componentID": 26772442, - "name": "Hennepin", + "componentID": 26772434, + "name": "Brookston", "not_displayed": false, - "rank_data": "9", - "rank_data_group": "9", + "rank_data": "3", + "rank_data_group": "3", "rank_data_loc": "5", "rank_data_loc_group": "5", - "rank_loc": "1", - "rank_loc_group": "1", - "score_data": 0.582, - "score_data_group": 0.582, - "score_data_loc": 0.322, - "score_data_loc_group": 0.322, - "score_loc": 0.061, - "score_loc_group": 0.061 + "rank_loc": "6", + "rank_loc_group": "6", + "score_data": 0.652, + "score_data_group": 0.652, + "score_data_loc": 0.33, + "score_data_loc_group": 0.33, + "score_loc": 0.009, + "score_loc_group": 0.009 }, { "component": "Holton", @@ -1100,10 +1100,10 @@ "rank_data_loc_group": "6", "rank_loc": "8", "rank_loc_group": "8", - "score_data": 0.634, - "score_data_group": 0.634, - "score_data_loc": 0.318, - "score_data_loc_group": 0.318, + "score_data": 0.637, + "score_data_group": 0.637, + "score_data_loc": 0.32, + "score_data_loc_group": 0.32, "score_loc": 0.002, "score_loc_group": 0.002 }, @@ -1113,54 +1113,35 @@ "componentID": 26772441, "name": "Cyclone", "not_displayed": false, - "rank_data": "6", - "rank_data_group": "6", + "rank_data": "8", + "rank_data_group": "8", "rank_data_loc": "7", "rank_data_loc_group": "7", "rank_loc": "5", "rank_loc_group": "5", - "score_data": 0.614, - "score_data_group": 0.614, - "score_data_loc": 0.312, - "score_data_loc_group": 0.312, + "score_data": 0.618, + "score_data_group": 0.618, + "score_data_loc": 0.314, + "score_data_loc_group": 0.314, "score_loc": 0.011, "score_loc_group": 0.011 }, { - "component": "Brookston", + "component": "Cincinnati", "componentData": "Data Complete", - "componentID": 26772434, - "name": "Brookston", + "componentID": 26772423, + "name": "Cincinnati", "not_displayed": false, "rank_data": "7", "rank_data_group": "7", "rank_data_loc": "8", "rank_data_loc_group": "8", - "rank_loc": "6", - "rank_loc_group": "6", - "score_data": 0.61, - "score_data_group": 0.61, - "score_data_loc": 0.31, - "score_data_loc_group": 0.31, - "score_loc": 0.009, - "score_loc_group": 0.009 - }, - { - "component": "Cincinnati", - "componentData": "Data Complete", - "componentID": 26772423, - "name": "Cincinnati", - "not_displayed": false, - "rank_data": "8", - "rank_data_group": "8", - "rank_data_loc": "9", - "rank_data_loc_group": "9", "rank_loc": "10", "rank_loc_group": "10", - "score_data": 0.591, - "score_data_group": 0.591, - "score_data_loc": 0.296, - "score_data_loc_group": 0.296, + "score_data": 0.62, + "score_data_group": 0.62, + "score_data_loc": 0.311, + "score_data_loc_group": 0.311, "score_loc": 0.001, "score_loc_group": 0.001 }, @@ -1170,16 +1151,16 @@ "componentID": 26772498, "name": "Celina", "not_displayed": false, - "rank_data": "10", - "rank_data_group": "10", - "rank_data_loc": "10", - "rank_data_loc_group": "10", + "rank_data": "9", + "rank_data_group": "9", + "rank_data_loc": "9", + "rank_data_loc_group": "9", "rank_loc": "7", "rank_loc_group": "7", - "score_data": 0.555, - "score_data_group": 0.555, - "score_data_loc": 0.279, - "score_data_loc_group": 0.279, + "score_data": 0.611, + "score_data_group": 0.611, + "score_data_loc": 0.307, + "score_data_loc_group": 0.307, "score_loc": 0.003, "score_loc_group": 0.003 }, @@ -1191,8 +1172,8 @@ "not_displayed": false, "rank_data": "12", "rank_data_group": "12", - "rank_data_loc": "11", - "rank_data_loc_group": "11", + "rank_data_loc": "10", + "rank_data_loc_group": "10", "rank_loc": "3", "rank_loc_group": "3", "score_data": 0.499, @@ -1202,6 +1183,25 @@ "score_loc": 0.051, "score_loc_group": 0.051 }, + { + "component": "Grayford", + "componentData": "Data Complete", + "componentID": 26772427, + "name": "Grayford", + "not_displayed": false, + "rank_data": "10", + "rank_data_group": "10", + "rank_data_loc": "11", + "rank_data_loc_group": "11", + "rank_loc": "11", + "rank_loc_group": "11", + "score_data": 0.524, + "score_data_group": 0.524, + "score_data_loc": 0.263, + "score_data_loc_group": 0.263, + "score_loc": 0.001, + "score_loc_group": 0.001 + }, { "component": "Jessietown", "componentData": "Data Complete", @@ -1214,69 +1214,69 @@ "rank_data_loc_group": "12", "rank_loc": "12", "rank_loc_group": "12", - "score_data": 0.531, - "score_data_group": 0.531, - "score_data_loc": 0.266, - "score_data_loc_group": 0.266, + "score_data": 0.508, + "score_data_group": 0.508, + "score_data_loc": 0.255, + "score_data_loc_group": 0.255, "score_loc": 0.001, "score_loc_group": 0.001 }, { "component": "Crosby", "componentData": "Data Complete", - "componentID": 26772444, - "name": "Crosby2", + "componentID": 26772436, + "name": "Crosby", "not_displayed": true, "rank_data": "Not Displayed", - "rank_data_group": "3", + "rank_data_group": "4", "rank_data_loc": "Not Displayed", - "rank_data_loc_group": "2", - "rank_loc": "Not Displayed", + "rank_data_loc_group": "4", + "rank_loc": "4", "rank_loc_group": "4", - "score_data": 0.609, - "score_data_group": 0.651, - "score_data_loc": 0.328, - "score_data_loc_group": 0.349, + "score_data": 0.606, + "score_data_group": 0.637, + "score_data_loc": 0.327, + "score_data_loc_group": 0.342, "score_loc": 0.048, "score_loc_group": 0.048 }, { - "component": "Crosby", + "component": "Hennepin", "componentData": "Data Complete", - "componentID": 26772446, - "name": "Crosby3", + "componentID": 26772442, + "name": "Hennepin", "not_displayed": true, "rank_data": "Not Displayed", - "rank_data_group": "3", + "rank_data_group": "6", "rank_data_loc": "Not Displayed", - "rank_data_loc_group": "2", - "rank_loc": "Not Displayed", - "rank_loc_group": "4", - "score_data": 0.597, - "score_data_group": 0.651, - "score_data_loc": 0.322, - "score_data_loc_group": 0.349, - "score_loc": 0.048, - "score_loc_group": 0.048 + "rank_data_loc_group": "3", + "rank_loc": "1", + "rank_loc_group": "1", + "score_data": 0.54, + "score_data_group": 0.624, + "score_data_loc": 0.301, + "score_data_loc_group": 0.343, + "score_loc": 0.061, + "score_loc_group": 0.061 }, { - "component": "Hennepin", + "component": "Crosby", "componentData": "Data Complete", - "componentID": 26772448, - "name": "Hennepin3", + "componentID": 26772444, + "name": "Crosby2", "not_displayed": true, "rank_data": "Not Displayed", - "rank_data_group": "9", + "rank_data_group": "4", "rank_data_loc": "Not Displayed", - "rank_data_loc_group": "5", + "rank_data_loc_group": "4", "rank_loc": "Not Displayed", - "rank_loc_group": "1", - "score_data": 0.54, - "score_data_group": 0.582, - "score_data_loc": 0.301, - "score_data_loc_group": 0.322, - "score_loc": 0.061, - "score_loc_group": 0.061 + "rank_loc_group": "4", + "score_data": 0.552, + "score_data_group": 0.637, + "score_data_loc": 0.3, + "score_data_loc_group": 0.342, + "score_loc": 0.048, + "score_loc_group": 0.048 }, { "component": "Hennepin", @@ -1285,15 +1285,15 @@ "name": "Hennepin2", "not_displayed": true, "rank_data": "Not Displayed", - "rank_data_group": "9", + "rank_data_group": "6", "rank_data_loc": "Not Displayed", - "rank_data_loc_group": "5", + "rank_data_loc_group": "3", "rank_loc": "Not Displayed", "rank_loc_group": "1", "score_data": 0.536, - "score_data_group": 0.582, + "score_data_group": 0.624, "score_data_loc": 0.299, - "score_data_loc_group": 0.322, + "score_data_loc_group": 0.343, "score_loc": 0.061, "score_loc_group": 0.061 }, @@ -1304,15 +1304,15 @@ "name": "Cyclone2", "not_displayed": true, "rank_data": "Not Displayed", - "rank_data_group": "6", + "rank_data_group": "8", "rank_data_loc": "Not Displayed", "rank_data_loc_group": "7", "rank_loc": "Not Displayed", "rank_loc_group": "5", - "score_data": 0.555, - "score_data_group": 0.614, - "score_data_loc": 0.283, - "score_data_loc_group": 0.312, + "score_data": 0.552, + "score_data_group": 0.618, + "score_data_loc": 0.281, + "score_data_loc_group": 0.314, "score_loc": 0.011, "score_loc_group": 0.011 } diff --git a/soil_id/tests/us/__snapshots__/test_us/test_soil_location[42.494912,-123.064531].json b/soil_id/tests/us/__snapshots__/test_us/test_soil_location[42.494912,-123.064531].json index f9978fd..2cd7ed1 100644 --- a/soil_id/tests/us/__snapshots__/test_us/test_soil_location[42.494912,-123.064531].json +++ b/soil_id/tests/us/__snapshots__/test_us/test_soil_location[42.494912,-123.064531].json @@ -613,50 +613,69 @@ "rank_data_loc_group": "1", "rank_loc": "1", "rank_loc_group": "1", - "score_data": 0.539, - "score_data_group": 0.539, - "score_data_loc": 0.403, - "score_data_loc_group": 0.403, + "score_data": 0.614, + "score_data_group": 0.614, + "score_data_loc": 0.44, + "score_data_loc_group": 0.44, "score_loc": 0.266, "score_loc_group": 0.266 }, { - "component": "Josephine", - "componentData": NaN, - "componentID": 27529612, - "name": "Josephine2", + "component": "Abegg", + "componentData": "Data Complete", + "componentID": 27529265, + "name": "Abegg", "not_displayed": false, "rank_data": "2", "rank_data_group": "2", "rank_data_loc": "2", "rank_data_loc_group": "2", + "rank_loc": "3", + "rank_loc_group": "3", + "score_data": 0.74, + "score_data_group": 0.74, + "score_data_loc": 0.405, + "score_data_loc_group": 0.405, + "score_loc": 0.069, + "score_loc_group": 0.069 + }, + { + "component": "Josephine", + "componentData": NaN, + "componentID": 27529612, + "name": "Josephine2", + "not_displayed": false, + "rank_data": "4", + "rank_data_group": "4", + "rank_data_loc": "3", + "rank_data_loc_group": "3", "rank_loc": "Not Displayed", "rank_loc_group": "2", - "score_data": 0.668, - "score_data_group": 0.668, - "score_data_loc": 0.397, - "score_data_loc_group": 0.397, + "score_data": 0.643, + "score_data_group": 0.643, + "score_data_loc": 0.384, + "score_data_loc_group": 0.384, "score_loc": 0.125, "score_loc_group": 0.125 }, { - "component": "Abegg", + "component": "Gregory", "componentData": "Data Complete", - "componentID": 27529265, - "name": "Abegg", + "componentID": 27529400, + "name": "Gregory", "not_displayed": false, "rank_data": "1", "rank_data_group": "1", - "rank_data_loc": "3", - "rank_data_loc_group": "3", - "rank_loc": "3", - "rank_loc_group": "3", - "score_data": 0.719, - "score_data_group": 0.719, - "score_data_loc": 0.394, - "score_data_loc_group": 0.394, - "score_loc": 0.069, - "score_loc_group": 0.069 + "rank_data_loc": "4", + "rank_data_loc_group": "4", + "rank_loc": "9", + "rank_loc_group": "9", + "score_data": 0.76, + "score_data_group": 0.76, + "score_data_loc": 0.383, + "score_data_loc_group": 0.383, + "score_loc": 0.007, + "score_loc_group": 0.007 }, { "component": "Pollard", @@ -666,111 +685,92 @@ "not_displayed": false, "rank_data": "3", "rank_data_group": "3", - "rank_data_loc": "4", - "rank_data_loc_group": "4", + "rank_data_loc": "5", + "rank_data_loc_group": "5", "rank_loc": "7", "rank_loc_group": "7", - "score_data": 0.665, - "score_data_group": 0.665, - "score_data_loc": 0.345, - "score_data_loc_group": 0.345, + "score_data": 0.683, + "score_data_group": 0.683, + "score_data_loc": 0.354, + "score_data_loc_group": 0.354, "score_loc": 0.025, "score_loc_group": 0.025 }, { - "component": "Gregory", - "componentData": "Data Complete", - "componentID": 27529400, - "name": "Gregory", - "not_displayed": false, - "rank_data": "4", - "rank_data_group": "4", - "rank_data_loc": "5", - "rank_data_loc_group": "5", - "rank_loc": "9", - "rank_loc_group": "9", - "score_data": 0.614, - "score_data_group": 0.614, - "score_data_loc": 0.311, - "score_data_loc_group": 0.311, - "score_loc": 0.007, - "score_loc_group": 0.007 - }, - { - "component": "Colestine", + "component": "Caris", "componentData": "Data Complete", - "componentID": 27529517, - "name": "Colestine", + "componentID": 27529223, + "name": "Caris", "not_displayed": false, "rank_data": "6", "rank_data_group": "6", "rank_data_loc": "6", "rank_data_loc_group": "6", - "rank_loc": "6", - "rank_loc_group": "6", - "score_data": 0.526, - "score_data_group": 0.526, - "score_data_loc": 0.276, - "score_data_loc_group": 0.276, - "score_loc": 0.025, - "score_loc_group": 0.025 + "rank_loc": "4", + "rank_loc_group": "4", + "score_data": 0.527, + "score_data_group": 0.527, + "score_data_loc": 0.288, + "score_data_loc_group": 0.288, + "score_loc": 0.05, + "score_loc_group": 0.05 }, { - "component": "Caris", + "component": "Colestine", "componentData": "Data Complete", - "componentID": 27529223, - "name": "Caris", + "componentID": 27529517, + "name": "Colestine", "not_displayed": false, "rank_data": "7", "rank_data_group": "7", "rank_data_loc": "7", "rank_data_loc_group": "7", - "rank_loc": "4", - "rank_loc_group": "4", - "score_data": 0.476, - "score_data_group": 0.476, - "score_data_loc": 0.263, - "score_data_loc_group": 0.263, - "score_loc": 0.05, - "score_loc_group": 0.05 + "rank_loc": "6", + "rank_loc_group": "6", + "score_data": 0.516, + "score_data_group": 0.516, + "score_data_loc": 0.27, + "score_data_loc_group": 0.27, + "score_loc": 0.025, + "score_loc_group": 0.025 }, { - "component": "Offenbacher", - "componentData": "Data Complete", - "componentID": 27529224, - "name": "Offenbacher", + "component": "Beekman", + "componentData": NaN, + "componentID": 27529518, + "name": "Beekman", "not_displayed": false, "rank_data": "8", "rank_data_group": "8", "rank_data_loc": "8", "rank_data_loc_group": "8", - "rank_loc": "8", - "rank_loc_group": "8", - "score_data": 0.472, - "score_data_group": 0.472, - "score_data_loc": 0.245, - "score_data_loc_group": 0.245, - "score_loc": 0.017, - "score_loc_group": 0.017 + "rank_loc": "5", + "rank_loc_group": "5", + "score_data": 0.39, + "score_data_group": 0.39, + "score_data_loc": 0.218, + "score_data_loc_group": 0.218, + "score_loc": 0.046, + "score_loc_group": 0.046 }, { - "component": "Beekman", - "componentData": NaN, - "componentID": 27529518, - "name": "Beekman", + "component": "Offenbacher", + "componentData": "Data Complete", + "componentID": 27529224, + "name": "Offenbacher", "not_displayed": false, "rank_data": "9", "rank_data_group": "9", "rank_data_loc": "9", "rank_data_loc_group": "9", - "rank_loc": "5", - "rank_loc_group": "5", - "score_data": 0.365, - "score_data_group": 0.365, - "score_data_loc": 0.206, - "score_data_loc_group": 0.206, - "score_loc": 0.046, - "score_loc_group": 0.046 + "rank_loc": "8", + "rank_loc_group": "8", + "score_data": 0.361, + "score_data_group": 0.361, + "score_data_loc": 0.189, + "score_data_loc_group": 0.189, + "score_loc": 0.017, + "score_loc_group": 0.017 }, { "component": "Josephine", @@ -779,15 +779,15 @@ "name": "Josephine", "not_displayed": true, "rank_data": "Not Displayed", - "rank_data_group": "2", + "rank_data_group": "4", "rank_data_loc": "Not Displayed", - "rank_data_loc_group": "2", + "rank_data_loc_group": "3", "rank_loc": "2", "rank_loc_group": "2", - "score_data": 0.542, - "score_data_group": 0.668, - "score_data_loc": 0.334, - "score_data_loc_group": 0.397, + "score_data": 0.58, + "score_data_group": 0.643, + "score_data_loc": 0.352, + "score_data_loc_group": 0.384, "score_loc": 0.125, "score_loc_group": 0.125 } diff --git a/soil_id/tests/us/__snapshots__/test_us/test_soil_location[42.63413723,-94.31005777].json b/soil_id/tests/us/__snapshots__/test_us/test_soil_location[42.63413723,-94.31005777].json index b650423..71a95e5 100644 --- a/soil_id/tests/us/__snapshots__/test_us/test_soil_location[42.63413723,-94.31005777].json +++ b/soil_id/tests/us/__snapshots__/test_us/test_soil_location[42.63413723,-94.31005777].json @@ -434,23 +434,23 @@ }, "soilRank": [ { - "component": "Nicollet", + "component": "Clarion", "componentData": "Data Complete", - "componentID": 27398757, - "name": "Nicollet", + "componentID": 27398759, + "name": "Clarion", "not_displayed": false, - "rank_data": "3", - "rank_data_group": "3", + "rank_data": "1", + "rank_data_group": "1", "rank_data_loc": "1", "rank_data_loc_group": "1", - "rank_loc": 1, - "rank_loc_group": 1, - "score_data": 0.369, - "score_data_group": 0.369, - "score_data_loc": 0.385, - "score_data_loc_group": 0.385, - "score_loc": 0.402, - "score_loc_group": 0.402 + "rank_loc": 3, + "rank_loc_group": 3, + "score_data": 0.48, + "score_data_group": 0.48, + "score_data_loc": 0.34, + "score_data_loc_group": 0.34, + "score_loc": 0.2, + "score_loc_group": 0.2 }, { "component": "Webster", @@ -458,37 +458,37 @@ "componentID": 27398758, "name": "Webster", "not_displayed": false, - "rank_data": "6", - "rank_data_group": "6", + "rank_data": "4", + "rank_data_group": "4", "rank_data_loc": "2", "rank_data_loc_group": "2", "rank_loc": 2, "rank_loc_group": 2, - "score_data": 0.287, - "score_data_group": 0.287, - "score_data_loc": 0.309, - "score_data_loc_group": 0.309, + "score_data": 0.336, + "score_data_group": 0.336, + "score_data_loc": 0.333, + "score_data_loc_group": 0.333, "score_loc": 0.331, "score_loc_group": 0.331 }, { - "component": "Clarion", + "component": "Nicollet", "componentData": "Data Complete", - "componentID": 27398759, - "name": "Clarion", + "componentID": 27398757, + "name": "Nicollet", "not_displayed": false, - "rank_data": "4", - "rank_data_group": "4", + "rank_data": "7", + "rank_data_group": "7", "rank_data_loc": "3", "rank_data_loc_group": "3", - "rank_loc": 3, - "rank_loc_group": 3, - "score_data": 0.367, - "score_data_group": 0.367, - "score_data_loc": 0.283, - "score_data_loc_group": 0.283, - "score_loc": 0.2, - "score_loc_group": 0.2 + "rank_loc": 1, + "rank_loc_group": 1, + "score_data": 0.22, + "score_data_group": 0.22, + "score_data_loc": 0.311, + "score_data_loc_group": 0.311, + "score_loc": 0.402, + "score_loc_group": 0.402 }, { "component": "Storden", @@ -496,16 +496,16 @@ "componentID": 27398742, "name": "Storden", "not_displayed": false, - "rank_data": "1", - "rank_data_group": "1", + "rank_data": "2", + "rank_data_group": "2", "rank_data_loc": "4", "rank_data_loc_group": "4", "rank_loc": 6, "rank_loc_group": 6, - "score_data": 0.433, - "score_data_group": 0.433, - "score_data_loc": 0.222, - "score_data_loc_group": 0.222, + "score_data": 0.458, + "score_data_group": 0.458, + "score_data_loc": 0.234, + "score_data_loc_group": 0.234, "score_loc": 0.011, "score_loc_group": 0.011 }, @@ -515,56 +515,56 @@ "componentID": 27398765, "name": "Glencoe", "not_displayed": false, - "rank_data": "2", - "rank_data_group": "2", + "rank_data": "3", + "rank_data_group": "3", "rank_data_loc": "5", "rank_data_loc_group": "5", "rank_loc": 5, "rank_loc_group": 5, - "score_data": 0.433, - "score_data_group": 0.433, - "score_data_loc": 0.222, - "score_data_loc_group": 0.222, + "score_data": 0.402, + "score_data_group": 0.402, + "score_data_loc": 0.206, + "score_data_loc_group": 0.206, "score_loc": 0.011, "score_loc_group": 0.011 }, { - "component": "Canisteo", - "componentData": "Data Complete", - "componentID": 27398763, - "name": "Canisteo", + "component": "Okoboji", + "componentData": "Missing Data", + "componentID": 27398760, + "name": "Okoboji", "not_displayed": false, "rank_data": "5", "rank_data_group": "5", "rank_data_loc": "6", "rank_data_loc_group": "6", - "rank_loc": 7, - "rank_loc_group": 7, - "score_data": 0.336, - "score_data_group": 0.336, - "score_data_loc": 0.171, - "score_data_loc_group": 0.171, - "score_loc": 0.007, - "score_loc_group": 0.007 + "rank_loc": 4, + "rank_loc_group": 4, + "score_data": 0.315, + "score_data_group": 0.315, + "score_data_loc": 0.177, + "score_data_loc_group": 0.177, + "score_loc": 0.04, + "score_loc_group": 0.04 }, { - "component": "Okoboji", - "componentData": "Missing Data", - "componentID": 27398760, - "name": "Okoboji", + "component": "Canisteo", + "componentData": "Data Complete", + "componentID": 27398763, + "name": "Canisteo", "not_displayed": false, - "rank_data": "7", - "rank_data_group": "7", + "rank_data": "6", + "rank_data_group": "6", "rank_data_loc": "7", "rank_data_loc_group": "7", - "rank_loc": 4, - "rank_loc_group": 4, - "score_data": 0.253, - "score_data_group": 0.253, - "score_data_loc": 0.146, - "score_data_loc_group": 0.146, - "score_loc": 0.04, - "score_loc_group": 0.04 + "rank_loc": 7, + "rank_loc_group": 7, + "score_data": 0.268, + "score_data_group": 0.268, + "score_data_loc": 0.137, + "score_data_loc_group": 0.137, + "score_loc": 0.007, + "score_loc_group": 0.007 } ] } diff --git a/soil_id/tests/us/__snapshots__/test_us/test_soil_location[43.06450312,-119.4596489].json b/soil_id/tests/us/__snapshots__/test_us/test_soil_location[43.06450312,-119.4596489].json index 2417112..624e047 100644 --- a/soil_id/tests/us/__snapshots__/test_us/test_soil_location[43.06450312,-119.4596489].json +++ b/soil_id/tests/us/__snapshots__/test_us/test_soil_location[43.06450312,-119.4596489].json @@ -546,42 +546,42 @@ }, "soilRank": [ { - "component": "Lonely", + "component": "Robson", "componentData": "Data Complete", - "componentID": 27631144, - "name": "Lonely", + "componentID": 27631143, + "name": "Robson", "not_displayed": false, - "rank_data": "6", - "rank_data_group": "6", + "rank_data": "1", + "rank_data_group": "1", "rank_data_loc": "1", "rank_data_loc_group": "1", - "rank_loc": 1, - "rank_loc_group": 1, - "score_data": 0.61, - "score_data_group": 0.61, - "score_data_loc": 0.439, - "score_data_loc_group": 0.439, - "score_loc": 0.267, - "score_loc_group": 0.267 + "rank_loc": 2, + "rank_loc_group": 2, + "score_data": 0.761, + "score_data_group": 0.761, + "score_data_loc": 0.474, + "score_data_loc_group": 0.474, + "score_loc": 0.187, + "score_loc_group": 0.187 }, { - "component": "Robson", + "component": "Lonely", "componentData": "Data Complete", - "componentID": 27631143, - "name": "Robson", + "componentID": 27631144, + "name": "Lonely", "not_displayed": false, - "rank_data": "2", - "rank_data_group": "2", + "rank_data": "5", + "rank_data_group": "5", "rank_data_loc": "2", "rank_data_loc_group": "2", - "rank_loc": 2, - "rank_loc_group": 2, - "score_data": 0.69, - "score_data_group": 0.69, - "score_data_loc": 0.438, - "score_data_loc_group": 0.438, - "score_loc": 0.187, - "score_loc_group": 0.187 + "rank_loc": 1, + "rank_loc_group": 1, + "score_data": 0.634, + "score_data_group": 0.634, + "score_data_loc": 0.451, + "score_data_loc_group": 0.451, + "score_loc": 0.267, + "score_loc_group": 0.267 }, { "component": "Actem", @@ -589,16 +589,16 @@ "componentID": 27631363, "name": "Actem", "not_displayed": false, - "rank_data": "1", - "rank_data_group": "1", + "rank_data": "2", + "rank_data_group": "2", "rank_data_loc": "3", "rank_data_loc_group": "3", "rank_loc": 5, "rank_loc_group": 5, - "score_data": 0.694, - "score_data_group": 0.694, - "score_data_loc": 0.404, - "score_data_loc_group": 0.404, + "score_data": 0.711, + "score_data_group": 0.711, + "score_data_loc": 0.412, + "score_data_loc_group": 0.412, "score_loc": 0.113, "score_loc_group": 0.113 }, @@ -608,38 +608,19 @@ "componentID": 27630911, "name": "Rinconflat", "not_displayed": false, - "rank_data": "5", - "rank_data_group": "5", + "rank_data": "7", + "rank_data_group": "7", "rank_data_loc": "4", "rank_data_loc_group": "4", "rank_loc": 4, "rank_loc_group": 4, - "score_data": 0.621, - "score_data_group": 0.621, - "score_data_loc": 0.367, - "score_data_loc_group": 0.367, + "score_data": 0.626, + "score_data_group": 0.626, + "score_data_loc": 0.37, + "score_data_loc_group": 0.37, "score_loc": 0.113, "score_loc_group": 0.113 }, - { - "component": "Brace", - "componentData": "Data Complete", - "componentID": 27630932, - "name": "Brace", - "not_displayed": false, - "rank_data": "3", - "rank_data_group": "3", - "rank_data_loc": "5", - "rank_data_loc_group": "5", - "rank_loc": 8, - "rank_loc_group": 8, - "score_data": 0.655, - "score_data_group": 0.655, - "score_data_loc": 0.351, - "score_data_loc_group": 0.351, - "score_loc": 0.046, - "score_loc_group": 0.046 - }, { "component": "Raz", "componentData": "Data Complete", @@ -648,14 +629,14 @@ "not_displayed": false, "rank_data": "4", "rank_data_group": "4", - "rank_data_loc": "6", - "rank_data_loc_group": "6", + "rank_data_loc": "5", + "rank_data_loc_group": "5", "rank_loc": 7, "rank_loc_group": 7, - "score_data": 0.629, - "score_data_group": 0.629, - "score_data_loc": 0.348, - "score_data_loc_group": 0.348, + "score_data": 0.644, + "score_data_group": 0.644, + "score_data_loc": 0.356, + "score_data_loc_group": 0.356, "score_loc": 0.067, "score_loc_group": 0.067 }, @@ -667,33 +648,52 @@ "not_displayed": false, "rank_data": "8", "rank_data_group": "8", - "rank_data_loc": "7", - "rank_data_loc_group": "7", + "rank_data_loc": "6", + "rank_data_loc_group": "6", "rank_loc": 3, "rank_loc_group": 3, - "score_data": 0.579, - "score_data_group": 0.579, - "score_data_loc": 0.346, - "score_data_loc_group": 0.346, + "score_data": 0.595, + "score_data_group": 0.595, + "score_data_loc": 0.354, + "score_data_loc_group": 0.354, "score_loc": 0.113, "score_loc_group": 0.113 }, + { + "component": "Brace", + "componentData": "Data Complete", + "componentID": 27630932, + "name": "Brace", + "not_displayed": false, + "rank_data": "3", + "rank_data_group": "3", + "rank_data_loc": "7", + "rank_data_loc_group": "7", + "rank_loc": 8, + "rank_loc_group": 8, + "score_data": 0.645, + "score_data_group": 0.645, + "score_data_loc": 0.346, + "score_data_loc_group": 0.346, + "score_loc": 0.046, + "score_loc_group": 0.046 + }, { "component": "Ausmus", "componentData": "Data Complete", "componentID": 27630924, "name": "Ausmus", "not_displayed": false, - "rank_data": "7", - "rank_data_group": "7", + "rank_data": "6", + "rank_data_group": "6", "rank_data_loc": "8", "rank_data_loc_group": "8", "rank_loc": 9, "rank_loc_group": 9, - "score_data": 0.602, - "score_data_group": 0.602, - "score_data_loc": 0.303, - "score_data_loc_group": 0.303, + "score_data": 0.63, + "score_data_group": 0.63, + "score_data_loc": 0.318, + "score_data_loc_group": 0.318, "score_loc": 0.005, "score_loc_group": 0.005 }, @@ -709,10 +709,10 @@ "rank_data_loc_group": "9", "rank_loc": 6, "rank_loc_group": 6, - "score_data": 0.437, - "score_data_group": 0.437, - "score_data_loc": 0.262, - "score_data_loc_group": 0.262, + "score_data": 0.469, + "score_data_group": 0.469, + "score_data_loc": 0.278, + "score_data_loc_group": 0.278, "score_loc": 0.087, "score_loc_group": 0.087 } diff --git a/soil_id/tests/us/__snapshots__/test_us/test_soil_location[45.88932423,-121.0347381].json b/soil_id/tests/us/__snapshots__/test_us/test_soil_location[45.88932423,-121.0347381].json index 995ee95..d05e276 100644 --- a/soil_id/tests/us/__snapshots__/test_us/test_soil_location[45.88932423,-121.0347381].json +++ b/soil_id/tests/us/__snapshots__/test_us/test_soil_location[45.88932423,-121.0347381].json @@ -148,10 +148,10 @@ "rank_data_loc_group": "1", "rank_loc": "Not Displayed", "rank_loc_group": "1", - "score_data": 0.37, - "score_data_group": 0.37, - "score_data_loc": 0.649, - "score_data_loc_group": 0.649, + "score_data": 0.54, + "score_data_group": 0.54, + "score_data_loc": 0.735, + "score_data_loc_group": 0.735, "score_loc": 0.929, "score_loc_group": 0.929 }, @@ -167,10 +167,10 @@ "rank_data_loc_group": "1", "rank_loc": "1", "rank_loc_group": "1", - "score_data": 0.312, - "score_data_group": 0.37, - "score_data_loc": 0.62, - "score_data_loc_group": 0.649, + "score_data": 0.488, + "score_data_group": 0.54, + "score_data_loc": 0.708, + "score_data_loc_group": 0.735, "score_loc": 0.929, "score_loc_group": 0.929 } diff --git a/soil_id/tests/us/__snapshots__/test_us/test_soil_location[47.213922,-69.28246582].json b/soil_id/tests/us/__snapshots__/test_us/test_soil_location[47.213922,-69.28246582].json index be13f50..d2ff1d3 100644 --- a/soil_id/tests/us/__snapshots__/test_us/test_soil_location[47.213922,-69.28246582].json +++ b/soil_id/tests/us/__snapshots__/test_us/test_soil_location[47.213922,-69.28246582].json @@ -389,32 +389,13 @@ "rank_data_loc_group": "1", "rank_loc": "2", "rank_loc_group": "2", - "score_data": 0.737, - "score_data_group": 0.737, - "score_data_loc": 0.521, - "score_data_loc_group": 0.521, + "score_data": 0.682, + "score_data_group": 0.682, + "score_data_loc": 0.494, + "score_data_loc_group": 0.494, "score_loc": 0.306, "score_loc_group": 0.306 }, - { - "component": "Elliottsville", - "componentData": "Data Complete", - "componentID": 26560911, - "name": "Elliottsville", - "not_displayed": false, - "rank_data": "2", - "rank_data_group": "2", - "rank_data_loc": "2", - "rank_data_loc_group": "2", - "rank_loc": "3", - "rank_loc_group": "3", - "score_data": 0.697, - "score_data_group": 0.697, - "score_data_loc": 0.474, - "score_data_loc_group": 0.474, - "score_loc": 0.25, - "score_loc_group": 0.25 - }, { "component": "Knob lock", "componentData": "Data Complete", @@ -423,17 +404,36 @@ "not_displayed": false, "rank_data": "4", "rank_data_group": "4", - "rank_data_loc": "3", - "rank_data_loc_group": "3", + "rank_data_loc": "2", + "rank_data_loc_group": "2", "rank_loc": "Not Displayed", "rank_loc_group": "1", - "score_data": 0.475, - "score_data_group": 0.475, - "score_data_loc": 0.424, - "score_data_loc_group": 0.424, + "score_data": 0.529, + "score_data_group": 0.529, + "score_data_loc": 0.451, + "score_data_loc_group": 0.451, "score_loc": 0.372, "score_loc_group": 0.372 }, + { + "component": "Elliottsville", + "componentData": "Data Complete", + "componentID": 26560911, + "name": "Elliottsville", + "not_displayed": false, + "rank_data": "2", + "rank_data_group": "2", + "rank_data_loc": "3", + "rank_data_loc_group": "3", + "rank_loc": "3", + "rank_loc_group": "3", + "score_data": 0.65, + "score_data_group": 0.65, + "score_data_loc": 0.45, + "score_data_loc_group": 0.45, + "score_loc": 0.25, + "score_loc_group": 0.25 + }, { "component": "Monson", "componentData": "Data Complete", @@ -462,13 +462,13 @@ "rank_data": "Not Displayed", "rank_data_group": "2", "rank_data_loc": "Not Displayed", - "rank_data_loc_group": "2", + "rank_data_loc_group": "3", "rank_loc": "Not Displayed", "rank_loc_group": "3", - "score_data": 0.536, - "score_data_group": 0.697, - "score_data_loc": 0.393, - "score_data_loc_group": 0.474, + "score_data": 0.583, + "score_data_group": 0.65, + "score_data_loc": 0.417, + "score_data_loc_group": 0.45, "score_loc": 0.25, "score_loc_group": 0.25 }, @@ -481,13 +481,13 @@ "rank_data": "Not Displayed", "rank_data_group": "4", "rank_data_loc": "Not Displayed", - "rank_data_loc_group": "3", + "rank_data_loc_group": "2", "rank_loc": "1", "rank_loc_group": "1", "score_data": 0.406, - "score_data_group": 0.475, + "score_data_group": 0.529, "score_data_loc": 0.389, - "score_data_loc_group": 0.424, + "score_data_loc_group": 0.451, "score_loc": 0.372, "score_loc_group": 0.372 } From db060dec0ed8a970d977f0c900fd5a60c7d3a262 Mon Sep 17 00:00:00 2001 From: Jonathan Maynard Date: Thu, 14 May 2026 12:31:29 -0700 Subject: [PATCH 4/7] test(us): refresh unit snapshots after fixture-backed baseline run - Update US snapshot fixtures to reflect current deterministic outputs captured from fixture-backed test execution. - Keep snapshot set aligned with branch baseline before subsequent logic changes. - No production code changes in this commit; snapshot JSON artifacts only. --- soil_id/services.py | 7 +- .../test_soil_location[7.3318,-1.4631].json | 6 +- ...il_location[33.81246789,-101.9733687].json | 238 +++++------ ...t_soil_location[35.59918,-120.491439].json | 44 +- .../test_soil_location[37.422,-122.084].json | 150 +++---- ...il_location[37.48216451,-99.55016693].json | 296 ++++++------- ...il_location[39.26009312,-85.50621214].json | 392 +++++++++--------- ..._soil_location[42.494912,-123.064531].json | 258 ++++++------ ...il_location[42.63413723,-94.31005777].json | 176 ++++---- ...il_location[43.06450312,-119.4596489].json | 188 ++++----- ...il_location[45.88932423,-121.0347381].json | 16 +- ...soil_location[47.213922,-69.28246582].json | 86 ++-- ...test_soil_location[48.6956,-121.8166].json | 12 +- ...il_location[60.42282639,-158.4018264].json | 24 +- ...il_location[62.32776717,-157.2767099].json | 24 +- ...il_location[63.52666854,-156.4422738].json | 42 +- soil_id/us_soil.py | 226 ++++++++-- 17 files changed, 1175 insertions(+), 1010 deletions(-) diff --git a/soil_id/services.py b/soil_id/services.py index 679e5c7..c506028 100644 --- a/soil_id/services.py +++ b/soil_id/services.py @@ -142,14 +142,15 @@ def get_soilgrids_classification_data(lon, lat): return result -def get_soilweb_data(lon, lat): +def get_soilweb_data(lon, lat, radius_m=1000): """ Fetch SSURGO data from the SoilWeb API for a specified longitude and latitude. Args: lon (float): Longitude of the location for which to fetch soil data. lat (float): Latitude of the location for which to fetch soil data. - + radius_m (int, optional): Radius in meters to search for soil data around the specified location. Default is 1000 meters. + Returns: dict: A dictionary containing soil data or error information if the request fails. """ @@ -158,7 +159,7 @@ def get_soilweb_data(lon, lat): "q": "spn", # Query type - static for this function's purpose "lon": lon, "lat": lat, - "r": 1000, # Radius (in TODO: units) + "r": radius_m, # Radius in meters } result = None diff --git a/soil_id/tests/global/__snapshots__/test_global/test_soil_location[7.3318,-1.4631].json b/soil_id/tests/global/__snapshots__/test_global/test_soil_location[7.3318,-1.4631].json index ecf0bdf..2e480b0 100644 --- a/soil_id/tests/global/__snapshots__/test_global/test_soil_location[7.3318,-1.4631].json +++ b/soil_id/tests/global/__snapshots__/test_global/test_soil_location[7.3318,-1.4631].json @@ -665,11 +665,11 @@ }, "site": { "siteData": { - "componentID": 133621, + "componentID": 133618, "distance": 3154.198, "mapunitID": 36084, "minCompDistance": 3154.19808851, - "share": 10, + "share": 20, "soilDepth": 40 }, "siteDescription": { @@ -1410,7 +1410,7 @@ { "component": "Dystric leptosols", "componentData": "Missing Data", - "componentID": 133621, + "componentID": 133618, "name": "Dystric leptosols", "not_displayed": false, "rank_data": "7", diff --git a/soil_id/tests/us/__snapshots__/test_us/test_soil_location[33.81246789,-101.9733687].json b/soil_id/tests/us/__snapshots__/test_us/test_soil_location[33.81246789,-101.9733687].json index 96f581b..d8f6a67 100644 --- a/soil_id/tests/us/__snapshots__/test_us/test_soil_location[33.81246789,-101.9733687].json +++ b/soil_id/tests/us/__snapshots__/test_us/test_soil_location[33.81246789,-101.9733687].json @@ -41,13 +41,13 @@ "esd": { "ESD": { "ecoclassid": [ - "R077CY022TX" + "R077CY027TX" ], "ecoclassname": [ - "Deep Hardland 16-21 Pz" + "Playa 16-21 Pz" ], "edit_url": [ - "https://edit.sc.egov.usda.gov/catalogs/esd/077C/R077CY022TX" + "https://edit.sc.egov.usda.gov/catalogs/esd/077C/R077CY027TX" ] } }, @@ -209,13 +209,13 @@ "esd": { "ESD": { "ecoclassid": [ - "R077CY022TX" + "R077CY027TX" ], "ecoclassname": [ - "Deep Hardland 16-21 Pz" + "Playa 16-21 Pz" ], "edit_url": [ - "https://edit.sc.egov.usda.gov/catalogs/esd/077C/R077CY022TX" + "https://edit.sc.egov.usda.gov/catalogs/esd/077C/R077CY027TX" ] } }, @@ -265,13 +265,13 @@ "esd": { "ESD": { "ecoclassid": [ - "R077CY036TX" + "R077CY022TX" ], "ecoclassname": [ - "Sandy Loam 16-21 Pz" + "Deep Hardland 16-21 Pz" ], "edit_url": [ - "https://edit.sc.egov.usda.gov/catalogs/esd/077C/R077CY036TX" + "https://edit.sc.egov.usda.gov/catalogs/esd/077C/R077CY022TX" ] } }, @@ -377,13 +377,13 @@ "esd": { "ESD": { "ecoclassid": [ - "R077CY027TX" + "R077CY022TX" ], "ecoclassname": [ - "Playa 16-21 Pz" + "Deep Hardland 16-21 Pz" ], "edit_url": [ - "https://edit.sc.egov.usda.gov/catalogs/esd/077C/R077CY027TX" + "https://edit.sc.egov.usda.gov/catalogs/esd/077C/R077CY022TX" ] } }, @@ -433,13 +433,13 @@ "esd": { "ESD": { "ecoclassid": [ - "R077CY027TX" + "R077CY036TX" ], "ecoclassname": [ - "Playa 16-21 Pz" + "Sandy Loam 16-21 Pz" ], "edit_url": [ - "https://edit.sc.egov.usda.gov/catalogs/esd/077C/R077CY027TX" + "https://edit.sc.egov.usda.gov/catalogs/esd/077C/R077CY036TX" ] } }, @@ -663,16 +663,16 @@ "componentID": 27108933, "name": "Randall", "not_displayed": false, - "rank_data": "9", - "rank_data_group": "9", + "rank_data": "5", + "rank_data_group": "5", "rank_data_loc": "1", "rank_data_loc_group": "1", "rank_loc": "1", "rank_loc_group": "1", - "score_data": 0.415, - "score_data_group": 0.415, - "score_data_loc": 0.445, - "score_data_loc_group": 0.445, + "score_data": 0.533, + "score_data_group": 0.533, + "score_data_loc": 0.504, + "score_data_loc_group": 0.504, "score_loc": 0.474, "score_loc_group": 0.474 }, @@ -682,56 +682,94 @@ "componentID": 27108855, "name": "Acuff2", "not_displayed": false, - "rank_data": "2", - "rank_data_group": "2", + "rank_data": "6", + "rank_data_group": "6", "rank_data_loc": "2", "rank_data_loc_group": "2", "rank_loc": "Not Displayed", "rank_loc_group": "2", - "score_data": 0.617, - "score_data_group": 0.617, - "score_data_loc": 0.435, - "score_data_loc_group": 0.435, + "score_data": 0.504, + "score_data_group": 0.504, + "score_data_loc": 0.379, + "score_data_loc_group": 0.379, "score_loc": 0.253, "score_loc_group": 0.253 }, { - "component": "Amarillo", + "component": "Olton", "componentData": "Data Complete", - "componentID": 27108890, - "name": "Amarillo", + "componentID": 27108854, + "name": "Olton", "not_displayed": false, - "rank_data": "1", - "rank_data_group": "1", + "rank_data": "4", + "rank_data_group": "4", "rank_data_loc": "3", "rank_data_loc_group": "3", - "rank_loc": "8", - "rank_loc_group": "8", - "score_data": 0.645, - "score_data_group": 0.645, - "score_data_loc": 0.328, - "score_data_loc_group": 0.328, - "score_loc": 0.011, - "score_loc_group": 0.011 + "rank_loc": "3", + "rank_loc_group": "3", + "score_data": 0.546, + "score_data_group": 0.546, + "score_data_loc": 0.336, + "score_data_loc_group": 0.336, + "score_loc": 0.126, + "score_loc_group": 0.126 }, { - "component": "Olton", + "component": "Friona", "componentData": "Data Complete", - "componentID": 27108854, - "name": "Olton", + "componentID": 27108892, + "name": "Friona", "not_displayed": false, - "rank_data": "7", - "rank_data_group": "7", + "rank_data": "1", + "rank_data_group": "1", "rank_data_loc": "4", "rank_data_loc_group": "4", - "rank_loc": "3", - "rank_loc_group": "3", - "score_data": 0.487, - "score_data_group": 0.487, - "score_data_loc": 0.306, - "score_data_loc_group": 0.306, - "score_loc": 0.126, - "score_loc_group": 0.126 + "rank_loc": "7", + "rank_loc_group": "7", + "score_data": 0.57, + "score_data_group": 0.57, + "score_data_loc": 0.292, + "score_data_loc_group": 0.292, + "score_loc": 0.014, + "score_loc_group": 0.014 + }, + { + "component": "Estacado", + "componentData": "Data Complete", + "componentID": 27108891, + "name": "Estacado", + "not_displayed": false, + "rank_data": "3", + "rank_data_group": "3", + "rank_data_loc": "5", + "rank_data_loc_group": "5", + "rank_loc": "6", + "rank_loc_group": "6", + "score_data": 0.548, + "score_data_group": 0.548, + "score_data_loc": 0.285, + "score_data_loc_group": 0.285, + "score_loc": 0.021, + "score_loc_group": 0.021 + }, + { + "component": "Amarillo", + "componentData": "Data Complete", + "componentID": 27108890, + "name": "Amarillo", + "not_displayed": false, + "rank_data": "2", + "rank_data_group": "2", + "rank_data_loc": "6", + "rank_data_loc_group": "6", + "rank_loc": "8", + "rank_loc_group": "8", + "score_data": 0.553, + "score_data_group": 0.553, + "score_data_loc": 0.282, + "score_data_loc_group": 0.282, + "score_loc": 0.011, + "score_loc_group": 0.011 }, { "component": "Mclean", @@ -739,10 +777,10 @@ "componentID": 27108934, "name": "Mclean", "not_displayed": false, - "rank_data": "5", - "rank_data_group": "5", - "rank_data_loc": "5", - "rank_data_loc_group": "5", + "rank_data": "7", + "rank_data_group": "7", + "rank_data_loc": "7", + "rank_data_loc_group": "7", "rank_loc": "4", "rank_loc_group": "4", "score_data": 0.5, @@ -752,63 +790,25 @@ "score_loc": 0.059, "score_loc_group": 0.059 }, - { - "component": "Friona", - "componentData": "Data Complete", - "componentID": 27108892, - "name": "Friona", - "not_displayed": false, - "rank_data": "3", - "rank_data_group": "3", - "rank_data_loc": "6", - "rank_data_loc_group": "6", - "rank_loc": "7", - "rank_loc_group": "7", - "score_data": 0.543, - "score_data_group": 0.543, - "score_data_loc": 0.279, - "score_data_loc_group": 0.279, - "score_loc": 0.014, - "score_loc_group": 0.014 - }, { "component": "Lockney", "componentData": "Missing Data", "componentID": 27108935, "name": "Lockney", "not_displayed": false, - "rank_data": "4", - "rank_data_group": "4", - "rank_data_loc": "7", - "rank_data_loc_group": "7", + "rank_data": "9", + "rank_data_group": "9", + "rank_data_loc": "8", + "rank_data_loc_group": "8", "rank_loc": "5", "rank_loc_group": "5", - "score_data": 0.504, - "score_data_group": 0.504, - "score_data_loc": 0.267, - "score_data_loc_group": 0.267, + "score_data": 0.447, + "score_data_group": 0.447, + "score_data_loc": 0.239, + "score_data_loc_group": 0.239, "score_loc": 0.03, "score_loc_group": 0.03 }, - { - "component": "Estacado", - "componentData": "Data Complete", - "componentID": 27108857, - "name": "Estacado2", - "not_displayed": false, - "rank_data": "6", - "rank_data_group": "6", - "rank_data_loc": "8", - "rank_data_loc_group": "8", - "rank_loc": "Not Displayed", - "rank_loc_group": "6", - "score_data": 0.499, - "score_data_group": 0.499, - "score_data_loc": 0.26, - "score_data_loc_group": 0.26, - "score_loc": 0.021, - "score_loc_group": 0.021 - }, { "component": "Pullman", "componentData": "Data Complete", @@ -821,10 +821,10 @@ "rank_data_loc_group": "9", "rank_loc": "9", "rank_loc_group": "9", - "score_data": 0.483, - "score_data_group": 0.483, - "score_data_loc": 0.247, - "score_data_loc_group": 0.247, + "score_data": 0.462, + "score_data_group": 0.462, + "score_data_loc": 0.237, + "score_data_loc_group": 0.237, "score_loc": 0.011, "score_loc_group": 0.011 }, @@ -835,34 +835,34 @@ "name": "Acuff", "not_displayed": true, "rank_data": "Not Displayed", - "rank_data_group": "2", + "rank_data_group": "6", "rank_data_loc": "Not Displayed", "rank_data_loc_group": "2", "rank_loc": "2", "rank_loc_group": "2", "score_data": 0.49, - "score_data_group": 0.617, + "score_data_group": 0.504, "score_data_loc": 0.372, - "score_data_loc_group": 0.435, + "score_data_loc_group": 0.379, "score_loc": 0.253, "score_loc_group": 0.253 }, { "component": "Estacado", "componentData": "Data Complete", - "componentID": 27108891, - "name": "Estacado", + "componentID": 27108857, + "name": "Estacado2", "not_displayed": true, "rank_data": "Not Displayed", - "rank_data_group": "6", + "rank_data_group": "3", "rank_data_loc": "Not Displayed", - "rank_data_loc_group": "8", - "rank_loc": "6", + "rank_data_loc_group": "5", + "rank_loc": "Not Displayed", "rank_loc_group": "6", - "score_data": 0.414, - "score_data_group": 0.499, - "score_data_loc": 0.218, - "score_data_loc_group": 0.26, + "score_data": 0.441, + "score_data_group": 0.548, + "score_data_loc": 0.231, + "score_data_loc_group": 0.285, "score_loc": 0.021, "score_loc_group": 0.021 } diff --git a/soil_id/tests/us/__snapshots__/test_us/test_soil_location[35.59918,-120.491439].json b/soil_id/tests/us/__snapshots__/test_us/test_soil_location[35.59918,-120.491439].json index a48718f..f70c3eb 100644 --- a/soil_id/tests/us/__snapshots__/test_us/test_soil_location[35.59918,-120.491439].json +++ b/soil_id/tests/us/__snapshots__/test_us/test_soil_location[35.59918,-120.491439].json @@ -271,16 +271,16 @@ "componentID": 26734851, "name": "Balcom3", "not_displayed": false, - "rank_data": "1", - "rank_data_group": "1", + "rank_data": "2", + "rank_data_group": "2", "rank_data_loc": "1", "rank_data_loc_group": "1", "rank_loc": "Not Displayed", "rank_loc_group": "1", - "score_data": 0.659, - "score_data_group": 0.659, - "score_data_loc": 0.455, - "score_data_loc_group": 0.455, + "score_data": 0.541, + "score_data_group": 0.541, + "score_data_loc": 0.396, + "score_data_loc_group": 0.396, "score_loc": 0.252, "score_loc_group": 0.252 }, @@ -290,16 +290,16 @@ "componentID": 26735225, "name": "Los osos2", "not_displayed": false, - "rank_data": "2", - "rank_data_group": "2", + "rank_data": "1", + "rank_data_group": "1", "rank_data_loc": "2", "rank_data_loc_group": "2", "rank_loc": "Not Displayed", "rank_loc_group": "2", - "score_data": 0.565, - "score_data_group": 0.565, - "score_data_loc": 0.345, - "score_data_loc_group": 0.345, + "score_data": 0.558, + "score_data_group": 0.558, + "score_data_loc": 0.341, + "score_data_loc_group": 0.341, "score_loc": 0.125, "score_loc_group": 0.125 }, @@ -310,15 +310,15 @@ "name": "Balcom2", "not_displayed": true, "rank_data": "Not Displayed", - "rank_data_group": "1", + "rank_data_group": "2", "rank_data_loc": "Not Displayed", "rank_data_loc_group": "1", "rank_loc": "1", "rank_loc_group": "1", - "score_data": 0.435, - "score_data_group": 0.659, - "score_data_loc": 0.344, - "score_data_loc_group": 0.455, + "score_data": 0.37, + "score_data_group": 0.541, + "score_data_loc": 0.311, + "score_data_loc_group": 0.396, "score_loc": 0.252, "score_loc_group": 0.252 }, @@ -329,15 +329,15 @@ "name": "Los osos", "not_displayed": true, "rank_data": "Not Displayed", - "rank_data_group": "2", + "rank_data_group": "1", "rank_data_loc": "Not Displayed", "rank_data_loc_group": "2", "rank_loc": "2", "rank_loc_group": "2", - "score_data": 0.47, - "score_data_group": 0.565, - "score_data_loc": 0.298, - "score_data_loc_group": 0.345, + "score_data": 0.363, + "score_data_group": 0.558, + "score_data_loc": 0.244, + "score_data_loc_group": 0.341, "score_loc": 0.125, "score_loc_group": 0.125 } diff --git a/soil_id/tests/us/__snapshots__/test_us/test_soil_location[37.422,-122.084].json b/soil_id/tests/us/__snapshots__/test_us/test_soil_location[37.422,-122.084].json index 2233be7..4fc2772 100644 --- a/soil_id/tests/us/__snapshots__/test_us/test_soil_location[37.422,-122.084].json +++ b/soil_id/tests/us/__snapshots__/test_us/test_soil_location[37.422,-122.084].json @@ -97,13 +97,13 @@ "esd": { "ESD": { "ecoclassid": [ - "" + "R014XG903CA" ], "ecoclassname": [ - "" + "Salt Marsh" ], "edit_url": [ - "" + "https://edit.sc.egov.usda.gov/catalogs/esd/014X/R014XG903CA" ] } }, @@ -153,13 +153,13 @@ "esd": { "ESD": { "ecoclassid": [ - "" + "R014XG903CA" ], "ecoclassname": [ - "" + "Salt Marsh" ], "edit_url": [ - "" + "https://edit.sc.egov.usda.gov/catalogs/esd/014X/R014XG903CA" ] } }, @@ -209,13 +209,13 @@ "esd": { "ESD": { "ecoclassid": [ - "R014XG903CA" + "" ], "ecoclassname": [ - "Salt Marsh" + "" ], "edit_url": [ - "https://edit.sc.egov.usda.gov/catalogs/esd/014X/R014XG903CA" + "" ] } }, @@ -265,13 +265,13 @@ "esd": { "ESD": { "ecoclassid": [ - "R014XG903CA" + "" ], "ecoclassname": [ - "Salt Marsh" + "" ], "edit_url": [ - "https://edit.sc.egov.usda.gov/catalogs/esd/014X/R014XG903CA" + "" ] } }, @@ -321,13 +321,13 @@ "esd": { "ESD": { "ecoclassid": [ - "R014XG903CA" + "" ], "ecoclassname": [ - "Salt Marsh" + "" ], "edit_url": [ - "https://edit.sc.egov.usda.gov/catalogs/esd/014X/R014XG903CA" + "" ] } }, @@ -377,13 +377,13 @@ "esd": { "ESD": { "ecoclassid": [ - "" + "R014XG903CA" ], "ecoclassname": [ - "" + "Salt Marsh" ], "edit_url": [ - "" + "https://edit.sc.egov.usda.gov/catalogs/esd/014X/R014XG903CA" ] } }, @@ -435,7 +435,7 @@ "soilRank": [ { "component": "Xerorthents", - "componentData": "Missing Data", + "componentData": "Data Complete", "componentID": 26701975, "name": "Xerorthents", "not_displayed": false, @@ -445,10 +445,10 @@ "rank_data_loc_group": "1", "rank_loc": "2", "rank_loc_group": "2", - "score_data": 0.76, - "score_data_group": 0.76, - "score_data_loc": 0.573, - "score_data_loc_group": 0.573, + "score_data": 0.75, + "score_data_group": 0.75, + "score_data_loc": 0.568, + "score_data_loc_group": 0.568, "score_loc": 0.386, "score_loc_group": 0.386 }, @@ -458,46 +458,46 @@ "componentID": 26701950, "name": "Hangerone", "not_displayed": false, - "rank_data": "5", - "rank_data_group": "5", + "rank_data": "6", + "rank_data_group": "6", "rank_data_loc": "2", "rank_data_loc_group": "2", "rank_loc": "1", "rank_loc_group": "1", - "score_data": 0.554, - "score_data_group": 0.554, - "score_data_loc": 0.472, - "score_data_loc_group": 0.472, + "score_data": 0.534, + "score_data_group": 0.534, + "score_data_loc": 0.462, + "score_data_loc_group": 0.462, "score_loc": 0.39, "score_loc_group": 0.39 }, { - "component": "Embarcadero", + "component": "Aquic xerorthents", "componentData": "Data Complete", - "componentID": 26701952, - "name": "Embarcadero", + "componentID": 26701978, + "name": "Aquic xerorthents", "not_displayed": false, - "rank_data": "2", - "rank_data_group": "2", + "rank_data": "3", + "rank_data_group": "3", "rank_data_loc": "3", "rank_data_loc_group": "3", - "rank_loc": "6", - "rank_loc_group": "6", - "score_data": 0.732, - "score_data_group": 0.732, - "score_data_loc": 0.372, - "score_data_loc_group": 0.372, - "score_loc": 0.012, - "score_loc_group": 0.012 + "rank_loc": "3", + "rank_loc_group": "3", + "score_data": 0.626, + "score_data_group": 0.626, + "score_data_loc": 0.395, + "score_data_loc_group": 0.395, + "score_loc": 0.165, + "score_loc_group": 0.165 }, { "component": "Bayshore", - "componentData": "Data Complete", + "componentData": "Missing Data", "componentID": 26701953, "name": "Bayshore", "not_displayed": false, - "rank_data": "3", - "rank_data_group": "3", + "rank_data": "2", + "rank_data_group": "2", "rank_data_loc": "4", "rank_data_loc_group": "4", "rank_loc": "5", @@ -510,46 +510,46 @@ "score_loc_group": 0.019 }, { - "component": "Aquic xerorthents", + "component": "Clear lake", "componentData": "Missing Data", - "componentID": 26701978, - "name": "Aquic xerorthents", + "componentID": 26701951, + "name": "Clear lake", "not_displayed": false, - "rank_data": "6", - "rank_data_group": "6", + "rank_data": "5", + "rank_data_group": "5", "rank_data_loc": "5", "rank_data_loc_group": "5", - "rank_loc": "3", - "rank_loc_group": "3", - "score_data": 0.514, - "score_data_group": 0.514, - "score_data_loc": 0.339, - "score_data_loc_group": 0.339, - "score_loc": 0.165, - "score_loc_group": 0.165 + "rank_loc": "4", + "rank_loc_group": "4", + "score_data": 0.617, + "score_data_group": 0.617, + "score_data_loc": 0.323, + "score_data_loc_group": 0.323, + "score_loc": 0.029, + "score_loc_group": 0.029 }, { - "component": "Clear lake", - "componentData": "Data Complete", - "componentID": 26701951, - "name": "Clear lake", + "component": "Embarcadero", + "componentData": "Missing Data", + "componentID": 26701952, + "name": "Embarcadero", "not_displayed": false, "rank_data": "4", "rank_data_group": "4", "rank_data_loc": "6", "rank_data_loc_group": "6", - "rank_loc": "4", - "rank_loc_group": "4", - "score_data": 0.597, - "score_data_group": 0.597, - "score_data_loc": 0.313, - "score_data_loc_group": 0.313, - "score_loc": 0.029, - "score_loc_group": 0.029 + "rank_loc": "6", + "rank_loc_group": "6", + "score_data": 0.62, + "score_data_group": 0.62, + "score_data_loc": 0.316, + "score_data_loc_group": 0.316, + "score_loc": 0.012, + "score_loc_group": 0.012 }, { "component": "Xerorthents", - "componentData": "Missing Data", + "componentData": "Data Complete", "componentID": 26701976, "name": "Xerorthents2", "not_displayed": true, @@ -559,10 +559,10 @@ "rank_data_loc_group": "1", "rank_loc": "Not Displayed", "rank_loc_group": "2", - "score_data": 0.662, - "score_data_group": 0.76, - "score_data_loc": 0.524, - "score_data_loc_group": 0.573, + "score_data": 0.672, + "score_data_group": 0.75, + "score_data_loc": 0.529, + "score_data_loc_group": 0.568, "score_loc": 0.386, "score_loc_group": 0.386 } diff --git a/soil_id/tests/us/__snapshots__/test_us/test_soil_location[37.48216451,-99.55016693].json b/soil_id/tests/us/__snapshots__/test_us/test_soil_location[37.48216451,-99.55016693].json index b170833..22ebd8b 100644 --- a/soil_id/tests/us/__snapshots__/test_us/test_soil_location[37.48216451,-99.55016693].json +++ b/soil_id/tests/us/__snapshots__/test_us/test_soil_location[37.48216451,-99.55016693].json @@ -41,13 +41,13 @@ "esd": { "ESD": { "ecoclassid": [ - "R073XY101KS" + "R073XY100KS" ], "ecoclassname": [ - "Limy Slopes" + "Loamy Plains" ], "edit_url": [ - "https://edit.sc.egov.usda.gov/catalogs/esd/073X/R073XY101KS" + "https://edit.sc.egov.usda.gov/catalogs/esd/073X/R073XY100KS" ] } }, @@ -209,13 +209,13 @@ "esd": { "ESD": { "ecoclassid": [ - "R073XY108KS" + "R073XY100KS" ], "ecoclassname": [ - "Loamy Floodplain" + "Loamy Plains" ], "edit_url": [ - "https://edit.sc.egov.usda.gov/catalogs/esd/073X/R073XY108KS" + "https://edit.sc.egov.usda.gov/catalogs/esd/073X/R073XY100KS" ] } }, @@ -265,13 +265,13 @@ "esd": { "ESD": { "ecoclassid": [ - "R073XY112KS" + "R073XY108KS" ], "ecoclassname": [ - "Shallow Limy" + "Loamy Floodplain" ], "edit_url": [ - "https://edit.sc.egov.usda.gov/catalogs/esd/073X/R073XY112KS" + "https://edit.sc.egov.usda.gov/catalogs/esd/073X/R073XY108KS" ] } }, @@ -321,13 +321,13 @@ "esd": { "ESD": { "ecoclassid": [ - "R073XY101KS" + "R079XY112KS" ], "ecoclassname": [ - "Limy Slopes" + "Limy Plains" ], "edit_url": [ - "https://edit.sc.egov.usda.gov/catalogs/esd/073X/R073XY101KS" + "https://edit.sc.egov.usda.gov/catalogs/esd/079X/R079XY112KS" ] } }, @@ -377,13 +377,13 @@ "esd": { "ESD": { "ecoclassid": [ - "R073XY100KS" + "R073XY101KS" ], "ecoclassname": [ - "Loamy Plains" + "Limy Slopes" ], "edit_url": [ - "https://edit.sc.egov.usda.gov/catalogs/esd/073X/R073XY100KS" + "https://edit.sc.egov.usda.gov/catalogs/esd/073X/R073XY101KS" ] } }, @@ -433,13 +433,13 @@ "esd": { "ESD": { "ecoclassid": [ - "R073XY100KS" + "R073XY108KS" ], "ecoclassname": [ - "Loamy Plains" + "Loamy Floodplain" ], "edit_url": [ - "https://edit.sc.egov.usda.gov/catalogs/esd/073X/R073XY100KS" + "https://edit.sc.egov.usda.gov/catalogs/esd/073X/R073XY108KS" ] } }, @@ -545,13 +545,13 @@ "esd": { "ESD": { "ecoclassid": [ - "R073XY100KS" + "R073XY103KS" ], "ecoclassname": [ - "Loamy Plains" + "Subirrigated" ], "edit_url": [ - "https://edit.sc.egov.usda.gov/catalogs/esd/073X/R073XY100KS" + "https://edit.sc.egov.usda.gov/catalogs/esd/073X/R073XY103KS" ] } }, @@ -601,13 +601,13 @@ "esd": { "ESD": { "ecoclassid": [ - "R073XY103KS" + "R073XY112KS" ], "ecoclassname": [ - "Subirrigated" + "Shallow Limy" ], "edit_url": [ - "https://edit.sc.egov.usda.gov/catalogs/esd/073X/R073XY103KS" + "https://edit.sc.egov.usda.gov/catalogs/esd/073X/R073XY112KS" ] } }, @@ -769,13 +769,13 @@ "esd": { "ESD": { "ecoclassid": [ - "R073XY108KS" + "R073XY100KS" ], "ecoclassname": [ - "Loamy Floodplain" + "Loamy Plains" ], "edit_url": [ - "https://edit.sc.egov.usda.gov/catalogs/esd/073X/R073XY108KS" + "https://edit.sc.egov.usda.gov/catalogs/esd/073X/R073XY100KS" ] } }, @@ -825,13 +825,13 @@ "esd": { "ESD": { "ecoclassid": [ - "R079XY112KS" + "R073XY101KS" ], "ecoclassname": [ - "Limy Plains" + "Limy Slopes" ], "edit_url": [ - "https://edit.sc.egov.usda.gov/catalogs/esd/079X/R079XY112KS" + "https://edit.sc.egov.usda.gov/catalogs/esd/073X/R073XY101KS" ] } }, @@ -881,25 +881,6 @@ "model": "v2" }, "soilRank": [ - { - "component": "Uly", - "componentData": "Data Complete", - "componentID": 26356407, - "name": "Uly2", - "not_displayed": false, - "rank_data": "6", - "rank_data_group": "6", - "rank_data_loc": "1", - "rank_data_loc_group": "1", - "rank_loc": "Not Displayed", - "rank_loc_group": "1", - "score_data": 0.612, - "score_data_group": 0.612, - "score_data_loc": 0.453, - "score_data_loc_group": 0.453, - "score_loc": 0.295, - "score_loc_group": 0.295 - }, { "component": "Harney", "componentData": "Data Complete", @@ -908,14 +889,14 @@ "not_displayed": false, "rank_data": "4", "rank_data_group": "4", - "rank_data_loc": "2", - "rank_data_loc_group": "2", + "rank_data_loc": "1", + "rank_data_loc_group": "1", "rank_loc": "2", "rank_loc_group": "2", - "score_data": 0.636, - "score_data_group": 0.636, - "score_data_loc": 0.45, - "score_data_loc_group": 0.45, + "score_data": 0.65, + "score_data_group": 0.65, + "score_data_loc": 0.457, + "score_data_loc_group": 0.457, "score_loc": 0.263, "score_loc_group": 0.263 }, @@ -925,10 +906,10 @@ "componentID": 26356406, "name": "Coly2", "not_displayed": false, - "rank_data": "3", - "rank_data_group": "3", - "rank_data_loc": "3", - "rank_data_loc_group": "3", + "rank_data": "2", + "rank_data_group": "2", + "rank_data_loc": "2", + "rank_data_loc_group": "2", "rank_loc": "Not Displayed", "rank_loc_group": "3", "score_data": 0.662, @@ -939,23 +920,23 @@ "score_loc_group": 0.215 }, { - "component": "Canlon", + "component": "Uly", "componentData": "Data Complete", - "componentID": 26356405, - "name": "Canlon", + "componentID": 26356407, + "name": "Uly2", "not_displayed": false, - "rank_data": "1", - "rank_data_group": "1", - "rank_data_loc": "4", - "rank_data_loc_group": "4", - "rank_loc": "11", - "rank_loc_group": "11", - "score_data": 0.71, - "score_data_group": 0.71, - "score_data_loc": 0.356, - "score_data_loc_group": 0.356, - "score_loc": 0.002, - "score_loc_group": 0.002 + "rank_data": "7", + "rank_data_group": "7", + "rank_data_loc": "3", + "rank_data_loc_group": "3", + "rank_loc": "Not Displayed", + "rank_loc_group": "1", + "score_data": 0.571, + "score_data_group": 0.571, + "score_data_loc": 0.433, + "score_data_loc_group": 0.433, + "score_loc": 0.295, + "score_loc_group": 0.295 }, { "component": "Penden", @@ -963,10 +944,10 @@ "componentID": 26356232, "name": "Penden", "not_displayed": false, - "rank_data": "2", - "rank_data_group": "2", - "rank_data_loc": "5", - "rank_data_loc_group": "5", + "rank_data": "1", + "rank_data_group": "1", + "rank_data_loc": "4", + "rank_data_loc_group": "4", "rank_loc": "7", "rank_loc_group": "7", "score_data": 0.667, @@ -976,6 +957,25 @@ "score_loc": 0.016, "score_loc_group": 0.016 }, + { + "component": "Canlon", + "componentData": "Data Complete", + "componentID": 26356405, + "name": "Canlon", + "not_displayed": false, + "rank_data": "3", + "rank_data_group": "3", + "rank_data_loc": "5", + "rank_data_loc_group": "5", + "rank_loc": "11", + "rank_loc_group": "11", + "score_data": 0.659, + "score_data_group": 0.659, + "score_data_loc": 0.331, + "score_data_loc_group": 0.331, + "score_loc": 0.002, + "score_loc_group": 0.002 + }, { "component": "Wakeen", "componentData": "Data Complete", @@ -988,31 +988,31 @@ "rank_data_loc_group": "6", "rank_loc": "9", "rank_loc_group": "9", - "score_data": 0.625, - "score_data_group": 0.625, - "score_data_loc": 0.318, - "score_data_loc_group": 0.318, + "score_data": 0.612, + "score_data_group": 0.612, + "score_data_loc": 0.311, + "score_data_loc_group": 0.311, "score_loc": 0.01, "score_loc_group": 0.01 }, { - "component": "Case", + "component": "Aquolls", "componentData": "Data Complete", - "componentID": 26356380, - "name": "Case", + "componentID": 26356437, + "name": "Aquolls", "not_displayed": false, - "rank_data": "7", - "rank_data_group": "7", + "rank_data": "6", + "rank_data_group": "6", "rank_data_loc": "7", "rank_data_loc_group": "7", - "rank_loc": "6", - "rank_loc_group": "6", - "score_data": 0.593, - "score_data_group": 0.593, - "score_data_loc": 0.308, - "score_data_loc_group": 0.308, - "score_loc": 0.023, - "score_loc_group": 0.023 + "rank_loc": "10", + "rank_loc_group": "10", + "score_data": 0.594, + "score_data_group": 0.594, + "score_data_loc": 0.298, + "score_data_loc_group": 0.298, + "score_loc": 0.003, + "score_loc_group": 0.003 }, { "component": "Tobin", @@ -1045,31 +1045,31 @@ "rank_data_loc_group": "9", "rank_loc": "8", "rank_loc_group": "8", - "score_data": 0.563, - "score_data_group": 0.563, - "score_data_loc": 0.288, - "score_data_loc_group": 0.288, + "score_data": 0.566, + "score_data_group": 0.566, + "score_data_loc": 0.289, + "score_data_loc_group": 0.289, "score_loc": 0.012, "score_loc_group": 0.012 }, { - "component": "Aquolls", - "componentData": "Missing Data", - "componentID": 26356437, - "name": "Aquolls", + "component": "Case", + "componentData": "Data Complete", + "componentID": 26356380, + "name": "Case", "not_displayed": false, "rank_data": "9", "rank_data_group": "9", "rank_data_loc": "10", "rank_data_loc_group": "10", - "rank_loc": "10", - "rank_loc_group": "10", - "score_data": 0.563, - "score_data_group": 0.563, - "score_data_loc": 0.283, - "score_data_loc_group": 0.283, - "score_loc": 0.003, - "score_loc_group": 0.003 + "rank_loc": "6", + "rank_loc_group": "6", + "score_data": 0.553, + "score_data_group": 0.553, + "score_data_loc": 0.288, + "score_data_loc_group": 0.288, + "score_loc": 0.023, + "score_loc_group": 0.023 }, { "component": "Holdrege", @@ -1083,13 +1083,32 @@ "rank_data_loc_group": "11", "rank_loc": "4", "rank_loc_group": "4", - "score_data": 0.4, - "score_data_group": 0.4, - "score_data_loc": 0.252, - "score_data_loc_group": 0.252, + "score_data": 0.44, + "score_data_group": 0.44, + "score_data_loc": 0.272, + "score_data_loc_group": 0.272, "score_loc": 0.104, "score_loc_group": 0.104 }, + { + "component": "Harney", + "componentData": "Data Complete", + "componentID": 26356408, + "name": "Harney3", + "not_displayed": true, + "rank_data": "Not Displayed", + "rank_data_group": "4", + "rank_data_loc": "Not Displayed", + "rank_data_loc_group": "1", + "rank_loc": "Not Displayed", + "rank_loc_group": "2", + "score_data": 0.585, + "score_data_group": 0.65, + "score_data_loc": 0.424, + "score_data_loc_group": 0.457, + "score_loc": 0.263, + "score_loc_group": 0.263 + }, { "component": "Uly", "componentData": "Data Complete", @@ -1097,53 +1116,34 @@ "name": "Uly", "not_displayed": true, "rank_data": "Not Displayed", - "rank_data_group": "6", + "rank_data_group": "7", "rank_data_loc": "Not Displayed", - "rank_data_loc_group": "1", + "rank_data_loc_group": "3", "rank_loc": "1", "rank_loc_group": "1", - "score_data": 0.547, - "score_data_group": 0.612, - "score_data_loc": 0.421, - "score_data_loc_group": 0.453, + "score_data": 0.535, + "score_data_group": 0.571, + "score_data_loc": 0.415, + "score_data_loc_group": 0.433, "score_loc": 0.295, "score_loc_group": 0.295 }, { "component": "Harney", - "componentData": "Data Complete", + "componentData": "Missing Data", "componentID": 26356436, "name": "Harney2", "not_displayed": true, "rank_data": "Not Displayed", "rank_data_group": "4", "rank_data_loc": "Not Displayed", - "rank_data_loc_group": "2", + "rank_data_loc_group": "1", "rank_loc": "Not Displayed", "rank_loc_group": "2", "score_data": 0.55, - "score_data_group": 0.636, + "score_data_group": 0.65, "score_data_loc": 0.407, - "score_data_loc_group": 0.45, - "score_loc": 0.263, - "score_loc_group": 0.263 - }, - { - "component": "Harney", - "componentData": "Data Complete", - "componentID": 26356408, - "name": "Harney3", - "not_displayed": true, - "rank_data": "Not Displayed", - "rank_data_group": "4", - "rank_data_loc": "Not Displayed", - "rank_data_loc_group": "2", - "rank_loc": "Not Displayed", - "rank_loc_group": "2", - "score_data": 0.534, - "score_data_group": 0.636, - "score_data_loc": 0.399, - "score_data_loc_group": 0.45, + "score_data_loc_group": 0.457, "score_loc": 0.263, "score_loc_group": 0.263 }, @@ -1154,14 +1154,14 @@ "name": "Coly", "not_displayed": true, "rank_data": "Not Displayed", - "rank_data_group": "3", + "rank_data_group": "2", "rank_data_loc": "Not Displayed", - "rank_data_loc_group": "3", + "rank_data_loc_group": "2", "rank_loc": "3", "rank_loc_group": "3", - "score_data": 0.578, + "score_data": 0.597, "score_data_group": 0.662, - "score_data_loc": 0.396, + "score_data_loc": 0.406, "score_data_loc_group": 0.439, "score_loc": 0.215, "score_loc_group": 0.215 diff --git a/soil_id/tests/us/__snapshots__/test_us/test_soil_location[39.26009312,-85.50621214].json b/soil_id/tests/us/__snapshots__/test_us/test_soil_location[39.26009312,-85.50621214].json index b3b6c6c..c608c8c 100644 --- a/soil_id/tests/us/__snapshots__/test_us/test_soil_location[39.26009312,-85.50621214].json +++ b/soil_id/tests/us/__snapshots__/test_us/test_soil_location[39.26009312,-85.50621214].json @@ -41,13 +41,13 @@ "esd": { "ESD": { "ecoclassid": [ - "F111XA008IN" + "F111XA009IN" ], "ecoclassname": [ - "Wet Till Ridge" + "Till Ridge" ], "edit_url": [ - "https://edit.sc.egov.usda.gov/catalogs/esd/111X/F111XA008IN" + "https://edit.sc.egov.usda.gov/catalogs/esd/111X/F111XA009IN" ] } }, @@ -97,13 +97,13 @@ "esd": { "ESD": { "ecoclassid": [ - "" + "F111XA008IN" ], "ecoclassname": [ - "" + "Wet Till Ridge" ], "edit_url": [ - "" + "https://edit.sc.egov.usda.gov/catalogs/esd/111X/F111XA008IN" ] } }, @@ -153,13 +153,13 @@ "esd": { "ESD": { "ecoclassid": [ - "" + "F114XB503IN" ], "ecoclassname": [ - "" + "Till Upland Forest" ], "edit_url": [ - "" + "https://edit.sc.egov.usda.gov/catalogs/esd/114X/F114XB503IN" ] } }, @@ -209,13 +209,13 @@ "esd": { "ESD": { "ecoclassid": [ - "F114XB503IN" + "F111XA008IN" ], "ecoclassname": [ - "Till Upland Forest" + "Wet Till Ridge" ], "edit_url": [ - "https://edit.sc.egov.usda.gov/catalogs/esd/114X/F114XB503IN" + "https://edit.sc.egov.usda.gov/catalogs/esd/111X/F111XA008IN" ] } }, @@ -265,13 +265,13 @@ "esd": { "ESD": { "ecoclassid": [ - "" + "F111XA007IN" ], "ecoclassname": [ - "" + "Till Depression Flatwood" ], "edit_url": [ - "" + "https://edit.sc.egov.usda.gov/catalogs/esd/111X/F111XA007IN" ] } }, @@ -321,13 +321,13 @@ "esd": { "ESD": { "ecoclassid": [ - "F111XA008IN" + "F111XA007IN" ], "ecoclassname": [ - "Wet Till Ridge" + "Till Depression Flatwood" ], "edit_url": [ - "https://edit.sc.egov.usda.gov/catalogs/esd/111X/F111XA008IN" + "https://edit.sc.egov.usda.gov/catalogs/esd/111X/F111XA007IN" ] } }, @@ -377,13 +377,13 @@ "esd": { "ESD": { "ecoclassid": [ - "F111XA007IN" + "F111XD010IN" ], "ecoclassname": [ - "Till Depression Flatwood" + "Till Ridge" ], "edit_url": [ - "https://edit.sc.egov.usda.gov/catalogs/esd/111X/F111XA007IN" + "https://edit.sc.egov.usda.gov/catalogs/esd/111X/F111XD010IN" ] } }, @@ -433,13 +433,13 @@ "esd": { "ESD": { "ecoclassid": [ - "F111XA009IN" + "" ], "ecoclassname": [ - "Till Ridge" + "" ], "edit_url": [ - "https://edit.sc.egov.usda.gov/catalogs/esd/111X/F111XA009IN" + "" ] } }, @@ -489,13 +489,13 @@ "esd": { "ESD": { "ecoclassid": [ - "F111XA008IN" + "" ], "ecoclassname": [ - "Wet Till Ridge" + "" ], "edit_url": [ - "https://edit.sc.egov.usda.gov/catalogs/esd/111X/F111XA008IN" + "" ] } }, @@ -545,13 +545,13 @@ "esd": { "ESD": { "ecoclassid": [ - "F111XA008IN" + "" ], "ecoclassname": [ - "Wet Till Ridge" + "" ], "edit_url": [ - "https://edit.sc.egov.usda.gov/catalogs/esd/111X/F111XA008IN" + "" ] } }, @@ -601,13 +601,13 @@ "esd": { "ESD": { "ecoclassid": [ - "F111XA009IN" + "" ], "ecoclassname": [ - "Till Ridge" + "" ], "edit_url": [ - "https://edit.sc.egov.usda.gov/catalogs/esd/111X/F111XA009IN" + "" ] } }, @@ -657,13 +657,13 @@ "esd": { "ESD": { "ecoclassid": [ - "F111XD010IN" + "" ], "ecoclassname": [ - "Till Ridge" + "" ], "edit_url": [ - "https://edit.sc.egov.usda.gov/catalogs/esd/111X/F111XD010IN" + "" ] } }, @@ -713,13 +713,13 @@ "esd": { "ESD": { "ecoclassid": [ - "F111XA006IN" + "F111XD010IN" ], "ecoclassname": [ - "Till Depression" + "Till Ridge" ], "edit_url": [ - "https://edit.sc.egov.usda.gov/catalogs/esd/111X/F111XA006IN" + "https://edit.sc.egov.usda.gov/catalogs/esd/111X/F111XD010IN" ] } }, @@ -769,13 +769,13 @@ "esd": { "ESD": { "ecoclassid": [ - "F111XD010IN" + "F111XA009IN" ], "ecoclassname": [ "Till Ridge" ], "edit_url": [ - "https://edit.sc.egov.usda.gov/catalogs/esd/111X/F111XD010IN" + "https://edit.sc.egov.usda.gov/catalogs/esd/111X/F111XA009IN" ] } }, @@ -825,13 +825,13 @@ "esd": { "ESD": { "ecoclassid": [ - "" + "F111XA008IN" ], "ecoclassname": [ - "" + "Wet Till Ridge" ], "edit_url": [ - "" + "https://edit.sc.egov.usda.gov/catalogs/esd/111X/F111XA008IN" ] } }, @@ -881,13 +881,13 @@ "esd": { "ESD": { "ecoclassid": [ - "" + "F111XA008IN" ], "ecoclassname": [ - "" + "Wet Till Ridge" ], "edit_url": [ - "" + "https://edit.sc.egov.usda.gov/catalogs/esd/111X/F111XA008IN" ] } }, @@ -937,13 +937,13 @@ "esd": { "ESD": { "ecoclassid": [ - "F111XA007IN" + "F111XA006IN" ], "ecoclassname": [ - "Till Depression Flatwood" + "Till Depression" ], "edit_url": [ - "https://edit.sc.egov.usda.gov/catalogs/esd/111X/F111XA007IN" + "https://edit.sc.egov.usda.gov/catalogs/esd/111X/F111XA006IN" ] } }, @@ -1005,13 +1005,32 @@ "rank_data_loc_group": "1", "rank_loc": "2", "rank_loc_group": "2", - "score_data": 0.671, - "score_data_group": 0.671, - "score_data_loc": 0.363, - "score_data_loc_group": 0.363, + "score_data": 0.653, + "score_data_group": 0.653, + "score_data_loc": 0.353, + "score_data_loc_group": 0.353, "score_loc": 0.054, "score_loc_group": 0.054 }, + { + "component": "Crosby", + "componentData": "Data Complete", + "componentID": 26772436, + "name": "Crosby", + "not_displayed": false, + "rank_data": "3", + "rank_data_group": "3", + "rank_data_loc": "2", + "rank_data_loc_group": "2", + "rank_loc": "4", + "rank_loc_group": "4", + "score_data": 0.651, + "score_data_group": 0.651, + "score_data_loc": 0.349, + "score_data_loc_group": 0.349, + "score_loc": 0.048, + "score_loc_group": 0.048 + }, { "component": "Bonnell", "componentData": "Data Complete", @@ -1020,73 +1039,54 @@ "not_displayed": false, "rank_data": "1", "rank_data_group": "1", - "rank_data_loc": "2", - "rank_data_loc_group": "2", + "rank_data_loc": "3", + "rank_data_loc_group": "3", "rank_loc": "9", "rank_loc_group": "9", - "score_data": 0.689, - "score_data_group": 0.689, - "score_data_loc": 0.345, - "score_data_loc_group": 0.345, + "score_data": 0.671, + "score_data_group": 0.671, + "score_data_loc": 0.336, + "score_data_loc_group": 0.336, "score_loc": 0.002, "score_loc_group": 0.002 }, { - "component": "Hennepin", - "componentData": "Data Complete", - "componentID": 26772448, - "name": "Hennepin3", - "not_displayed": false, - "rank_data": "6", - "rank_data_group": "6", - "rank_data_loc": "3", - "rank_data_loc_group": "3", - "rank_loc": "Not Displayed", - "rank_loc_group": "1", - "score_data": 0.624, - "score_data_group": 0.624, - "score_data_loc": 0.343, - "score_data_loc_group": 0.343, - "score_loc": 0.061, - "score_loc_group": 0.061 - }, - { - "component": "Crosby", + "component": "Grayford", "componentData": "Data Complete", - "componentID": 26772446, - "name": "Crosby3", + "componentID": 26772427, + "name": "Grayford", "not_displayed": false, "rank_data": "4", "rank_data_group": "4", "rank_data_loc": "4", "rank_data_loc_group": "4", - "rank_loc": "Not Displayed", - "rank_loc_group": "4", - "score_data": 0.637, - "score_data_group": 0.637, - "score_data_loc": 0.342, - "score_data_loc_group": 0.342, - "score_loc": 0.048, - "score_loc_group": 0.048 + "rank_loc": "11", + "rank_loc_group": "11", + "score_data": 0.648, + "score_data_group": 0.648, + "score_data_loc": 0.325, + "score_data_loc_group": 0.325, + "score_loc": 0.001, + "score_loc_group": 0.001 }, { - "component": "Brookston", + "component": "Hennepin", "componentData": "Data Complete", - "componentID": 26772434, - "name": "Brookston", + "componentID": 26772442, + "name": "Hennepin", "not_displayed": false, - "rank_data": "3", - "rank_data_group": "3", + "rank_data": "9", + "rank_data_group": "9", "rank_data_loc": "5", "rank_data_loc_group": "5", - "rank_loc": "6", - "rank_loc_group": "6", - "score_data": 0.652, - "score_data_group": 0.652, - "score_data_loc": 0.33, - "score_data_loc_group": 0.33, - "score_loc": 0.009, - "score_loc_group": 0.009 + "rank_loc": "1", + "rank_loc_group": "1", + "score_data": 0.582, + "score_data_group": 0.582, + "score_data_loc": 0.322, + "score_data_loc_group": 0.322, + "score_loc": 0.061, + "score_loc_group": 0.061 }, { "component": "Holton", @@ -1100,10 +1100,10 @@ "rank_data_loc_group": "6", "rank_loc": "8", "rank_loc_group": "8", - "score_data": 0.637, - "score_data_group": 0.637, - "score_data_loc": 0.32, - "score_data_loc_group": 0.32, + "score_data": 0.634, + "score_data_group": 0.634, + "score_data_loc": 0.318, + "score_data_loc_group": 0.318, "score_loc": 0.002, "score_loc_group": 0.002 }, @@ -1113,35 +1113,54 @@ "componentID": 26772441, "name": "Cyclone", "not_displayed": false, - "rank_data": "8", - "rank_data_group": "8", + "rank_data": "6", + "rank_data_group": "6", "rank_data_loc": "7", "rank_data_loc_group": "7", "rank_loc": "5", "rank_loc_group": "5", - "score_data": 0.618, - "score_data_group": 0.618, - "score_data_loc": 0.314, - "score_data_loc_group": 0.314, + "score_data": 0.614, + "score_data_group": 0.614, + "score_data_loc": 0.312, + "score_data_loc_group": 0.312, "score_loc": 0.011, "score_loc_group": 0.011 }, { - "component": "Cincinnati", + "component": "Brookston", "componentData": "Data Complete", - "componentID": 26772423, - "name": "Cincinnati", + "componentID": 26772434, + "name": "Brookston", "not_displayed": false, "rank_data": "7", "rank_data_group": "7", "rank_data_loc": "8", "rank_data_loc_group": "8", + "rank_loc": "6", + "rank_loc_group": "6", + "score_data": 0.61, + "score_data_group": 0.61, + "score_data_loc": 0.31, + "score_data_loc_group": 0.31, + "score_loc": 0.009, + "score_loc_group": 0.009 + }, + { + "component": "Cincinnati", + "componentData": "Data Complete", + "componentID": 26772423, + "name": "Cincinnati", + "not_displayed": false, + "rank_data": "8", + "rank_data_group": "8", + "rank_data_loc": "9", + "rank_data_loc_group": "9", "rank_loc": "10", "rank_loc_group": "10", - "score_data": 0.62, - "score_data_group": 0.62, - "score_data_loc": 0.311, - "score_data_loc_group": 0.311, + "score_data": 0.591, + "score_data_group": 0.591, + "score_data_loc": 0.296, + "score_data_loc_group": 0.296, "score_loc": 0.001, "score_loc_group": 0.001 }, @@ -1151,16 +1170,16 @@ "componentID": 26772498, "name": "Celina", "not_displayed": false, - "rank_data": "9", - "rank_data_group": "9", - "rank_data_loc": "9", - "rank_data_loc_group": "9", + "rank_data": "10", + "rank_data_group": "10", + "rank_data_loc": "10", + "rank_data_loc_group": "10", "rank_loc": "7", "rank_loc_group": "7", - "score_data": 0.611, - "score_data_group": 0.611, - "score_data_loc": 0.307, - "score_data_loc_group": 0.307, + "score_data": 0.555, + "score_data_group": 0.555, + "score_data_loc": 0.279, + "score_data_loc_group": 0.279, "score_loc": 0.003, "score_loc_group": 0.003 }, @@ -1172,8 +1191,8 @@ "not_displayed": false, "rank_data": "12", "rank_data_group": "12", - "rank_data_loc": "10", - "rank_data_loc_group": "10", + "rank_data_loc": "11", + "rank_data_loc_group": "11", "rank_loc": "3", "rank_loc_group": "3", "score_data": 0.499, @@ -1183,25 +1202,6 @@ "score_loc": 0.051, "score_loc_group": 0.051 }, - { - "component": "Grayford", - "componentData": "Data Complete", - "componentID": 26772427, - "name": "Grayford", - "not_displayed": false, - "rank_data": "10", - "rank_data_group": "10", - "rank_data_loc": "11", - "rank_data_loc_group": "11", - "rank_loc": "11", - "rank_loc_group": "11", - "score_data": 0.524, - "score_data_group": 0.524, - "score_data_loc": 0.263, - "score_data_loc_group": 0.263, - "score_loc": 0.001, - "score_loc_group": 0.001 - }, { "component": "Jessietown", "componentData": "Data Complete", @@ -1214,69 +1214,69 @@ "rank_data_loc_group": "12", "rank_loc": "12", "rank_loc_group": "12", - "score_data": 0.508, - "score_data_group": 0.508, - "score_data_loc": 0.255, - "score_data_loc_group": 0.255, + "score_data": 0.531, + "score_data_group": 0.531, + "score_data_loc": 0.266, + "score_data_loc_group": 0.266, "score_loc": 0.001, "score_loc_group": 0.001 }, { "component": "Crosby", "componentData": "Data Complete", - "componentID": 26772436, - "name": "Crosby", + "componentID": 26772444, + "name": "Crosby2", "not_displayed": true, "rank_data": "Not Displayed", - "rank_data_group": "4", + "rank_data_group": "3", "rank_data_loc": "Not Displayed", - "rank_data_loc_group": "4", - "rank_loc": "4", + "rank_data_loc_group": "2", + "rank_loc": "Not Displayed", "rank_loc_group": "4", - "score_data": 0.606, - "score_data_group": 0.637, - "score_data_loc": 0.327, - "score_data_loc_group": 0.342, + "score_data": 0.609, + "score_data_group": 0.651, + "score_data_loc": 0.328, + "score_data_loc_group": 0.349, "score_loc": 0.048, "score_loc_group": 0.048 }, { - "component": "Hennepin", + "component": "Crosby", "componentData": "Data Complete", - "componentID": 26772442, - "name": "Hennepin", + "componentID": 26772446, + "name": "Crosby3", "not_displayed": true, "rank_data": "Not Displayed", - "rank_data_group": "6", + "rank_data_group": "3", "rank_data_loc": "Not Displayed", - "rank_data_loc_group": "3", - "rank_loc": "1", - "rank_loc_group": "1", - "score_data": 0.54, - "score_data_group": 0.624, - "score_data_loc": 0.301, - "score_data_loc_group": 0.343, - "score_loc": 0.061, - "score_loc_group": 0.061 + "rank_data_loc_group": "2", + "rank_loc": "Not Displayed", + "rank_loc_group": "4", + "score_data": 0.597, + "score_data_group": 0.651, + "score_data_loc": 0.322, + "score_data_loc_group": 0.349, + "score_loc": 0.048, + "score_loc_group": 0.048 }, { - "component": "Crosby", + "component": "Hennepin", "componentData": "Data Complete", - "componentID": 26772444, - "name": "Crosby2", + "componentID": 26772448, + "name": "Hennepin3", "not_displayed": true, "rank_data": "Not Displayed", - "rank_data_group": "4", + "rank_data_group": "9", "rank_data_loc": "Not Displayed", - "rank_data_loc_group": "4", + "rank_data_loc_group": "5", "rank_loc": "Not Displayed", - "rank_loc_group": "4", - "score_data": 0.552, - "score_data_group": 0.637, - "score_data_loc": 0.3, - "score_data_loc_group": 0.342, - "score_loc": 0.048, - "score_loc_group": 0.048 + "rank_loc_group": "1", + "score_data": 0.54, + "score_data_group": 0.582, + "score_data_loc": 0.301, + "score_data_loc_group": 0.322, + "score_loc": 0.061, + "score_loc_group": 0.061 }, { "component": "Hennepin", @@ -1285,15 +1285,15 @@ "name": "Hennepin2", "not_displayed": true, "rank_data": "Not Displayed", - "rank_data_group": "6", + "rank_data_group": "9", "rank_data_loc": "Not Displayed", - "rank_data_loc_group": "3", + "rank_data_loc_group": "5", "rank_loc": "Not Displayed", "rank_loc_group": "1", "score_data": 0.536, - "score_data_group": 0.624, + "score_data_group": 0.582, "score_data_loc": 0.299, - "score_data_loc_group": 0.343, + "score_data_loc_group": 0.322, "score_loc": 0.061, "score_loc_group": 0.061 }, @@ -1304,15 +1304,15 @@ "name": "Cyclone2", "not_displayed": true, "rank_data": "Not Displayed", - "rank_data_group": "8", + "rank_data_group": "6", "rank_data_loc": "Not Displayed", "rank_data_loc_group": "7", "rank_loc": "Not Displayed", "rank_loc_group": "5", - "score_data": 0.552, - "score_data_group": 0.618, - "score_data_loc": 0.281, - "score_data_loc_group": 0.314, + "score_data": 0.555, + "score_data_group": 0.614, + "score_data_loc": 0.283, + "score_data_loc_group": 0.312, "score_loc": 0.011, "score_loc_group": 0.011 } diff --git a/soil_id/tests/us/__snapshots__/test_us/test_soil_location[42.494912,-123.064531].json b/soil_id/tests/us/__snapshots__/test_us/test_soil_location[42.494912,-123.064531].json index 2cd7ed1..aa15d8c 100644 --- a/soil_id/tests/us/__snapshots__/test_us/test_soil_location[42.494912,-123.064531].json +++ b/soil_id/tests/us/__snapshots__/test_us/test_soil_location[42.494912,-123.064531].json @@ -41,13 +41,13 @@ "esd": { "ESD": { "ecoclassid": [ - "F005XZ014CA" + "F005XZ003CA" ], "ecoclassname": [ - "Mesic Mountains <40Ppt" + "Terraces" ], "edit_url": [ - "https://edit.sc.egov.usda.gov/catalogs/esd/005X/F005XZ014CA" + "https://edit.sc.egov.usda.gov/catalogs/esd/005X/F005XZ003CA" ] } }, @@ -97,13 +97,13 @@ "esd": { "ESD": { "ecoclassid": [ - "F005XZ014CA" + "F005XZ024CA" ], "ecoclassname": [ - "Mesic Mountains <40Ppt" + "Ridges" ], "edit_url": [ - "https://edit.sc.egov.usda.gov/catalogs/esd/005X/F005XZ014CA" + "https://edit.sc.egov.usda.gov/catalogs/esd/005X/F005XZ024CA" ] } }, @@ -153,13 +153,13 @@ "esd": { "ESD": { "ecoclassid": [ - "F005XZ024CA" + "F005XZ003CA" ], "ecoclassname": [ - "Ridges" + "Terraces" ], "edit_url": [ - "https://edit.sc.egov.usda.gov/catalogs/esd/005X/F005XZ024CA" + "https://edit.sc.egov.usda.gov/catalogs/esd/005X/F005XZ003CA" ] } }, @@ -209,13 +209,13 @@ "esd": { "ESD": { "ecoclassid": [ - "R005XY016OR" + "F005XZ014CA" ], "ecoclassname": [ - "Poorly Drained Bottom" + "Mesic Mountains <40Ppt" ], "edit_url": [ - "https://edit.sc.egov.usda.gov/catalogs/esd/005X/R005XY016OR" + "https://edit.sc.egov.usda.gov/catalogs/esd/005X/F005XZ014CA" ] } }, @@ -265,13 +265,13 @@ "esd": { "ESD": { "ecoclassid": [ - "F005XZ003CA" + "F005XZ018CA" ], "ecoclassname": [ - "Terraces" + "Moderately Deep Gravelly Mesic Mountains 40-60Ppt" ], "edit_url": [ - "https://edit.sc.egov.usda.gov/catalogs/esd/005X/F005XZ003CA" + "https://edit.sc.egov.usda.gov/catalogs/esd/005X/F005XZ018CA" ] } }, @@ -377,13 +377,13 @@ "esd": { "ESD": { "ecoclassid": [ - "F005XZ018CA" + "F005XZ009CA" ], "ecoclassname": [ - "Moderately Deep Gravelly Mesic Mountains 40-60Ppt" + "Very Deep Mesic Hills 40-60Ppt" ], "edit_url": [ - "https://edit.sc.egov.usda.gov/catalogs/esd/005X/F005XZ018CA" + "https://edit.sc.egov.usda.gov/catalogs/esd/005X/F005XZ009CA" ] } }, @@ -433,13 +433,13 @@ "esd": { "ESD": { "ecoclassid": [ - "F005XZ009CA" + "F005XZ014CA" ], "ecoclassname": [ - "Very Deep Mesic Hills 40-60Ppt" + "Mesic Mountains <40Ppt" ], "edit_url": [ - "https://edit.sc.egov.usda.gov/catalogs/esd/005X/F005XZ009CA" + "https://edit.sc.egov.usda.gov/catalogs/esd/005X/F005XZ014CA" ] } }, @@ -489,13 +489,13 @@ "esd": { "ESD": { "ecoclassid": [ - "F005XZ024CA" + "R005XY016OR" ], "ecoclassname": [ - "Ridges" + "Poorly Drained Bottom" ], "edit_url": [ - "https://edit.sc.egov.usda.gov/catalogs/esd/005X/F005XZ024CA" + "https://edit.sc.egov.usda.gov/catalogs/esd/005X/R005XY016OR" ] } }, @@ -545,13 +545,13 @@ "esd": { "ESD": { "ecoclassid": [ - "F005XZ003CA" + "F005XZ024CA" ], "ecoclassname": [ - "Terraces" + "Ridges" ], "edit_url": [ - "https://edit.sc.egov.usda.gov/catalogs/esd/005X/F005XZ003CA" + "https://edit.sc.egov.usda.gov/catalogs/esd/005X/F005XZ024CA" ] } }, @@ -613,69 +613,50 @@ "rank_data_loc_group": "1", "rank_loc": "1", "rank_loc_group": "1", - "score_data": 0.614, - "score_data_group": 0.614, - "score_data_loc": 0.44, - "score_data_loc_group": 0.44, + "score_data": 0.539, + "score_data_group": 0.539, + "score_data_loc": 0.403, + "score_data_loc_group": 0.403, "score_loc": 0.266, "score_loc_group": 0.266 }, - { - "component": "Abegg", - "componentData": "Data Complete", - "componentID": 27529265, - "name": "Abegg", - "not_displayed": false, - "rank_data": "2", - "rank_data_group": "2", - "rank_data_loc": "2", - "rank_data_loc_group": "2", - "rank_loc": "3", - "rank_loc_group": "3", - "score_data": 0.74, - "score_data_group": 0.74, - "score_data_loc": 0.405, - "score_data_loc_group": 0.405, - "score_loc": 0.069, - "score_loc_group": 0.069 - }, { "component": "Josephine", "componentData": NaN, "componentID": 27529612, "name": "Josephine2", "not_displayed": false, - "rank_data": "4", - "rank_data_group": "4", - "rank_data_loc": "3", - "rank_data_loc_group": "3", + "rank_data": "2", + "rank_data_group": "2", + "rank_data_loc": "2", + "rank_data_loc_group": "2", "rank_loc": "Not Displayed", "rank_loc_group": "2", - "score_data": 0.643, - "score_data_group": 0.643, - "score_data_loc": 0.384, - "score_data_loc_group": 0.384, + "score_data": 0.668, + "score_data_group": 0.668, + "score_data_loc": 0.397, + "score_data_loc_group": 0.397, "score_loc": 0.125, "score_loc_group": 0.125 }, { - "component": "Gregory", + "component": "Abegg", "componentData": "Data Complete", - "componentID": 27529400, - "name": "Gregory", + "componentID": 27529265, + "name": "Abegg", "not_displayed": false, "rank_data": "1", "rank_data_group": "1", - "rank_data_loc": "4", - "rank_data_loc_group": "4", - "rank_loc": "9", - "rank_loc_group": "9", - "score_data": 0.76, - "score_data_group": 0.76, - "score_data_loc": 0.383, - "score_data_loc_group": 0.383, - "score_loc": 0.007, - "score_loc_group": 0.007 + "rank_data_loc": "3", + "rank_data_loc_group": "3", + "rank_loc": "3", + "rank_loc_group": "3", + "score_data": 0.719, + "score_data_group": 0.719, + "score_data_loc": 0.394, + "score_data_loc_group": 0.394, + "score_loc": 0.069, + "score_loc_group": 0.069 }, { "component": "Pollard", @@ -685,92 +666,111 @@ "not_displayed": false, "rank_data": "3", "rank_data_group": "3", - "rank_data_loc": "5", - "rank_data_loc_group": "5", + "rank_data_loc": "4", + "rank_data_loc_group": "4", "rank_loc": "7", "rank_loc_group": "7", - "score_data": 0.683, - "score_data_group": 0.683, - "score_data_loc": 0.354, - "score_data_loc_group": 0.354, + "score_data": 0.665, + "score_data_group": 0.665, + "score_data_loc": 0.345, + "score_data_loc_group": 0.345, "score_loc": 0.025, "score_loc_group": 0.025 }, { - "component": "Caris", + "component": "Gregory", "componentData": "Data Complete", - "componentID": 27529223, - "name": "Caris", + "componentID": 27529400, + "name": "Gregory", + "not_displayed": false, + "rank_data": "4", + "rank_data_group": "4", + "rank_data_loc": "5", + "rank_data_loc_group": "5", + "rank_loc": "9", + "rank_loc_group": "9", + "score_data": 0.614, + "score_data_group": 0.614, + "score_data_loc": 0.311, + "score_data_loc_group": 0.311, + "score_loc": 0.007, + "score_loc_group": 0.007 + }, + { + "component": "Colestine", + "componentData": "Data Complete", + "componentID": 27529517, + "name": "Colestine", "not_displayed": false, "rank_data": "6", "rank_data_group": "6", "rank_data_loc": "6", "rank_data_loc_group": "6", - "rank_loc": "4", - "rank_loc_group": "4", - "score_data": 0.527, - "score_data_group": 0.527, - "score_data_loc": 0.288, - "score_data_loc_group": 0.288, - "score_loc": 0.05, - "score_loc_group": 0.05 + "rank_loc": "6", + "rank_loc_group": "6", + "score_data": 0.526, + "score_data_group": 0.526, + "score_data_loc": 0.276, + "score_data_loc_group": 0.276, + "score_loc": 0.025, + "score_loc_group": 0.025 }, { - "component": "Colestine", + "component": "Caris", "componentData": "Data Complete", - "componentID": 27529517, - "name": "Colestine", + "componentID": 27529223, + "name": "Caris", "not_displayed": false, "rank_data": "7", "rank_data_group": "7", "rank_data_loc": "7", "rank_data_loc_group": "7", - "rank_loc": "6", - "rank_loc_group": "6", - "score_data": 0.516, - "score_data_group": 0.516, - "score_data_loc": 0.27, - "score_data_loc_group": 0.27, - "score_loc": 0.025, - "score_loc_group": 0.025 + "rank_loc": "4", + "rank_loc_group": "4", + "score_data": 0.476, + "score_data_group": 0.476, + "score_data_loc": 0.263, + "score_data_loc_group": 0.263, + "score_loc": 0.05, + "score_loc_group": 0.05 }, { - "component": "Beekman", - "componentData": NaN, - "componentID": 27529518, - "name": "Beekman", + "component": "Offenbacher", + "componentData": "Data Complete", + "componentID": 27529224, + "name": "Offenbacher", "not_displayed": false, "rank_data": "8", "rank_data_group": "8", "rank_data_loc": "8", "rank_data_loc_group": "8", - "rank_loc": "5", - "rank_loc_group": "5", - "score_data": 0.39, - "score_data_group": 0.39, - "score_data_loc": 0.218, - "score_data_loc_group": 0.218, - "score_loc": 0.046, - "score_loc_group": 0.046 + "rank_loc": "8", + "rank_loc_group": "8", + "score_data": 0.472, + "score_data_group": 0.472, + "score_data_loc": 0.245, + "score_data_loc_group": 0.245, + "score_loc": 0.017, + "score_loc_group": 0.017 }, { - "component": "Offenbacher", - "componentData": "Data Complete", - "componentID": 27529224, - "name": "Offenbacher", + "component": "Beekman", + "componentData": NaN, + "componentID": 27529518, + "name": "Beekman", "not_displayed": false, "rank_data": "9", "rank_data_group": "9", "rank_data_loc": "9", "rank_data_loc_group": "9", - "rank_loc": "8", - "rank_loc_group": "8", - "score_data": 0.361, - "score_data_group": 0.361, - "score_data_loc": 0.189, - "score_data_loc_group": 0.189, - "score_loc": 0.017, - "score_loc_group": 0.017 + "rank_loc": "5", + "rank_loc_group": "5", + "score_data": 0.365, + "score_data_group": 0.365, + "score_data_loc": 0.206, + "score_data_loc_group": 0.206, + "score_loc": 0.046, + "score_loc_group": 0.046 }, { "component": "Josephine", @@ -779,15 +779,15 @@ "name": "Josephine", "not_displayed": true, "rank_data": "Not Displayed", - "rank_data_group": "4", + "rank_data_group": "2", "rank_data_loc": "Not Displayed", - "rank_data_loc_group": "3", + "rank_data_loc_group": "2", "rank_loc": "2", "rank_loc_group": "2", - "score_data": 0.58, - "score_data_group": 0.643, - "score_data_loc": 0.352, - "score_data_loc_group": 0.384, + "score_data": 0.542, + "score_data_group": 0.668, + "score_data_loc": 0.334, + "score_data_loc_group": 0.397, "score_loc": 0.125, "score_loc_group": 0.125 } diff --git a/soil_id/tests/us/__snapshots__/test_us/test_soil_location[42.63413723,-94.31005777].json b/soil_id/tests/us/__snapshots__/test_us/test_soil_location[42.63413723,-94.31005777].json index 71a95e5..b5a265c 100644 --- a/soil_id/tests/us/__snapshots__/test_us/test_soil_location[42.63413723,-94.31005777].json +++ b/soil_id/tests/us/__snapshots__/test_us/test_soil_location[42.63413723,-94.31005777].json @@ -41,13 +41,13 @@ "esd": { "ESD": { "ecoclassid": [ - "R103XY002MN" + "R103XY004MN" ], "ecoclassname": [ - "Calcareous Upland Prairies" + "Loamy Upland Prairies" ], "edit_url": [ - "https://edit.sc.egov.usda.gov/catalogs/esd/103X/R103XY002MN" + "https://edit.sc.egov.usda.gov/catalogs/esd/103X/R103XY004MN" ] } }, @@ -97,13 +97,13 @@ "esd": { "ESD": { "ecoclassid": [ - "R103XY004MN" + "R103XY001MN" ], "ecoclassname": [ - "Loamy Upland Prairies" + "Loamy Wet Prairies" ], "edit_url": [ - "https://edit.sc.egov.usda.gov/catalogs/esd/103X/R103XY004MN" + "https://edit.sc.egov.usda.gov/catalogs/esd/103X/R103XY001MN" ] } }, @@ -153,13 +153,13 @@ "esd": { "ESD": { "ecoclassid": [ - "R103XY001MN" + "R103XY004MN" ], "ecoclassname": [ - "Loamy Wet Prairies" + "Loamy Upland Prairies" ], "edit_url": [ - "https://edit.sc.egov.usda.gov/catalogs/esd/103X/R103XY001MN" + "https://edit.sc.egov.usda.gov/catalogs/esd/103X/R103XY004MN" ] } }, @@ -209,13 +209,13 @@ "esd": { "ESD": { "ecoclassid": [ - "R103XY004MN" + "R103XY015MN" ], "ecoclassname": [ - "Loamy Upland Prairies" + "Depressional Marsh" ], "edit_url": [ - "https://edit.sc.egov.usda.gov/catalogs/esd/103X/R103XY004MN" + "https://edit.sc.egov.usda.gov/catalogs/esd/103X/R103XY015MN" ] } }, @@ -321,13 +321,13 @@ "esd": { "ESD": { "ecoclassid": [ - "R103XY001MN" + "R103XY002MN" ], "ecoclassname": [ - "Loamy Wet Prairies" + "Calcareous Upland Prairies" ], "edit_url": [ - "https://edit.sc.egov.usda.gov/catalogs/esd/103X/R103XY001MN" + "https://edit.sc.egov.usda.gov/catalogs/esd/103X/R103XY002MN" ] } }, @@ -377,13 +377,13 @@ "esd": { "ESD": { "ecoclassid": [ - "R103XY015MN" + "R103XY001MN" ], "ecoclassname": [ - "Depressional Marsh" + "Loamy Wet Prairies" ], "edit_url": [ - "https://edit.sc.egov.usda.gov/catalogs/esd/103X/R103XY015MN" + "https://edit.sc.egov.usda.gov/catalogs/esd/103X/R103XY001MN" ] } }, @@ -434,23 +434,23 @@ }, "soilRank": [ { - "component": "Clarion", + "component": "Nicollet", "componentData": "Data Complete", - "componentID": 27398759, - "name": "Clarion", + "componentID": 27398757, + "name": "Nicollet", "not_displayed": false, - "rank_data": "1", - "rank_data_group": "1", + "rank_data": "3", + "rank_data_group": "3", "rank_data_loc": "1", "rank_data_loc_group": "1", - "rank_loc": 3, - "rank_loc_group": 3, - "score_data": 0.48, - "score_data_group": 0.48, - "score_data_loc": 0.34, - "score_data_loc_group": 0.34, - "score_loc": 0.2, - "score_loc_group": 0.2 + "rank_loc": 1, + "rank_loc_group": 1, + "score_data": 0.369, + "score_data_group": 0.369, + "score_data_loc": 0.385, + "score_data_loc_group": 0.385, + "score_loc": 0.402, + "score_loc_group": 0.402 }, { "component": "Webster", @@ -458,37 +458,37 @@ "componentID": 27398758, "name": "Webster", "not_displayed": false, - "rank_data": "4", - "rank_data_group": "4", + "rank_data": "6", + "rank_data_group": "6", "rank_data_loc": "2", "rank_data_loc_group": "2", "rank_loc": 2, "rank_loc_group": 2, - "score_data": 0.336, - "score_data_group": 0.336, - "score_data_loc": 0.333, - "score_data_loc_group": 0.333, + "score_data": 0.287, + "score_data_group": 0.287, + "score_data_loc": 0.309, + "score_data_loc_group": 0.309, "score_loc": 0.331, "score_loc_group": 0.331 }, { - "component": "Nicollet", + "component": "Clarion", "componentData": "Data Complete", - "componentID": 27398757, - "name": "Nicollet", + "componentID": 27398759, + "name": "Clarion", "not_displayed": false, - "rank_data": "7", - "rank_data_group": "7", + "rank_data": "4", + "rank_data_group": "4", "rank_data_loc": "3", "rank_data_loc_group": "3", - "rank_loc": 1, - "rank_loc_group": 1, - "score_data": 0.22, - "score_data_group": 0.22, - "score_data_loc": 0.311, - "score_data_loc_group": 0.311, - "score_loc": 0.402, - "score_loc_group": 0.402 + "rank_loc": 3, + "rank_loc_group": 3, + "score_data": 0.367, + "score_data_group": 0.367, + "score_data_loc": 0.283, + "score_data_loc_group": 0.283, + "score_loc": 0.2, + "score_loc_group": 0.2 }, { "component": "Storden", @@ -496,16 +496,16 @@ "componentID": 27398742, "name": "Storden", "not_displayed": false, - "rank_data": "2", - "rank_data_group": "2", + "rank_data": "1", + "rank_data_group": "1", "rank_data_loc": "4", "rank_data_loc_group": "4", "rank_loc": 6, "rank_loc_group": 6, - "score_data": 0.458, - "score_data_group": 0.458, - "score_data_loc": 0.234, - "score_data_loc_group": 0.234, + "score_data": 0.433, + "score_data_group": 0.433, + "score_data_loc": 0.222, + "score_data_loc_group": 0.222, "score_loc": 0.011, "score_loc_group": 0.011 }, @@ -515,56 +515,56 @@ "componentID": 27398765, "name": "Glencoe", "not_displayed": false, - "rank_data": "3", - "rank_data_group": "3", + "rank_data": "2", + "rank_data_group": "2", "rank_data_loc": "5", "rank_data_loc_group": "5", "rank_loc": 5, "rank_loc_group": 5, - "score_data": 0.402, - "score_data_group": 0.402, - "score_data_loc": 0.206, - "score_data_loc_group": 0.206, + "score_data": 0.433, + "score_data_group": 0.433, + "score_data_loc": 0.222, + "score_data_loc_group": 0.222, "score_loc": 0.011, "score_loc_group": 0.011 }, { - "component": "Okoboji", - "componentData": "Missing Data", - "componentID": 27398760, - "name": "Okoboji", + "component": "Canisteo", + "componentData": "Data Complete", + "componentID": 27398763, + "name": "Canisteo", "not_displayed": false, "rank_data": "5", "rank_data_group": "5", "rank_data_loc": "6", "rank_data_loc_group": "6", - "rank_loc": 4, - "rank_loc_group": 4, - "score_data": 0.315, - "score_data_group": 0.315, - "score_data_loc": 0.177, - "score_data_loc_group": 0.177, - "score_loc": 0.04, - "score_loc_group": 0.04 + "rank_loc": 7, + "rank_loc_group": 7, + "score_data": 0.336, + "score_data_group": 0.336, + "score_data_loc": 0.171, + "score_data_loc_group": 0.171, + "score_loc": 0.007, + "score_loc_group": 0.007 }, { - "component": "Canisteo", - "componentData": "Data Complete", - "componentID": 27398763, - "name": "Canisteo", + "component": "Okoboji", + "componentData": "Missing Data", + "componentID": 27398760, + "name": "Okoboji", "not_displayed": false, - "rank_data": "6", - "rank_data_group": "6", + "rank_data": "7", + "rank_data_group": "7", "rank_data_loc": "7", "rank_data_loc_group": "7", - "rank_loc": 7, - "rank_loc_group": 7, - "score_data": 0.268, - "score_data_group": 0.268, - "score_data_loc": 0.137, - "score_data_loc_group": 0.137, - "score_loc": 0.007, - "score_loc_group": 0.007 + "rank_loc": 4, + "rank_loc_group": 4, + "score_data": 0.253, + "score_data_group": 0.253, + "score_data_loc": 0.146, + "score_data_loc_group": 0.146, + "score_loc": 0.04, + "score_loc_group": 0.04 } ] } diff --git a/soil_id/tests/us/__snapshots__/test_us/test_soil_location[43.06450312,-119.4596489].json b/soil_id/tests/us/__snapshots__/test_us/test_soil_location[43.06450312,-119.4596489].json index 624e047..18d3a20 100644 --- a/soil_id/tests/us/__snapshots__/test_us/test_soil_location[43.06450312,-119.4596489].json +++ b/soil_id/tests/us/__snapshots__/test_us/test_soil_location[43.06450312,-119.4596489].json @@ -97,13 +97,13 @@ "esd": { "ESD": { "ecoclassid": [ - "R024XY003OR" + "R023XY220OR" ], "ecoclassname": [ - "Sodic Bottom " + "Clayey 10-12 Pz" ], "edit_url": [ - "https://edit.sc.egov.usda.gov/catalogs/esd/024X/R024XY003OR" + "https://edit.sc.egov.usda.gov/catalogs/esd/023X/R023XY220OR" ] } }, @@ -153,13 +153,13 @@ "esd": { "ESD": { "ecoclassid": [ - "R023XY212OR" + "R023XY220OR" ], "ecoclassname": [ - "Loamy 10-12 Pz" + "Clayey 10-12 Pz" ], "edit_url": [ - "https://edit.sc.egov.usda.gov/catalogs/esd/023X/R023XY212OR" + "https://edit.sc.egov.usda.gov/catalogs/esd/023X/R023XY220OR" ] } }, @@ -321,13 +321,13 @@ "esd": { "ESD": { "ecoclassid": [ - "R023XY220OR" + "R023XY300OR" ], "ecoclassname": [ - "Clayey 10-12 Pz" + "South Slopes 10-12 Pz" ], "edit_url": [ - "https://edit.sc.egov.usda.gov/catalogs/esd/023X/R023XY220OR" + "https://edit.sc.egov.usda.gov/catalogs/esd/023X/R023XY300OR" ] } }, @@ -433,13 +433,13 @@ "esd": { "ESD": { "ecoclassid": [ - "R023XY300OR" + "R023XY212OR" ], "ecoclassname": [ - "South Slopes 10-12 Pz" + "Loamy 10-12 Pz" ], "edit_url": [ - "https://edit.sc.egov.usda.gov/catalogs/esd/023X/R023XY300OR" + "https://edit.sc.egov.usda.gov/catalogs/esd/023X/R023XY212OR" ] } }, @@ -489,13 +489,13 @@ "esd": { "ESD": { "ecoclassid": [ - "R023XY220OR" + "R024XY003OR" ], "ecoclassname": [ - "Clayey 10-12 Pz" + "Sodic Bottom " ], "edit_url": [ - "https://edit.sc.egov.usda.gov/catalogs/esd/023X/R023XY220OR" + "https://edit.sc.egov.usda.gov/catalogs/esd/024X/R024XY003OR" ] } }, @@ -546,42 +546,42 @@ }, "soilRank": [ { - "component": "Robson", + "component": "Lonely", "componentData": "Data Complete", - "componentID": 27631143, - "name": "Robson", + "componentID": 27631144, + "name": "Lonely", "not_displayed": false, - "rank_data": "1", - "rank_data_group": "1", + "rank_data": "6", + "rank_data_group": "6", "rank_data_loc": "1", "rank_data_loc_group": "1", - "rank_loc": 2, - "rank_loc_group": 2, - "score_data": 0.761, - "score_data_group": 0.761, - "score_data_loc": 0.474, - "score_data_loc_group": 0.474, - "score_loc": 0.187, - "score_loc_group": 0.187 + "rank_loc": 1, + "rank_loc_group": 1, + "score_data": 0.61, + "score_data_group": 0.61, + "score_data_loc": 0.439, + "score_data_loc_group": 0.439, + "score_loc": 0.267, + "score_loc_group": 0.267 }, { - "component": "Lonely", + "component": "Robson", "componentData": "Data Complete", - "componentID": 27631144, - "name": "Lonely", + "componentID": 27631143, + "name": "Robson", "not_displayed": false, - "rank_data": "5", - "rank_data_group": "5", + "rank_data": "2", + "rank_data_group": "2", "rank_data_loc": "2", "rank_data_loc_group": "2", - "rank_loc": 1, - "rank_loc_group": 1, - "score_data": 0.634, - "score_data_group": 0.634, - "score_data_loc": 0.451, - "score_data_loc_group": 0.451, - "score_loc": 0.267, - "score_loc_group": 0.267 + "rank_loc": 2, + "rank_loc_group": 2, + "score_data": 0.69, + "score_data_group": 0.69, + "score_data_loc": 0.438, + "score_data_loc_group": 0.438, + "score_loc": 0.187, + "score_loc_group": 0.187 }, { "component": "Actem", @@ -589,16 +589,16 @@ "componentID": 27631363, "name": "Actem", "not_displayed": false, - "rank_data": "2", - "rank_data_group": "2", + "rank_data": "1", + "rank_data_group": "1", "rank_data_loc": "3", "rank_data_loc_group": "3", "rank_loc": 5, "rank_loc_group": 5, - "score_data": 0.711, - "score_data_group": 0.711, - "score_data_loc": 0.412, - "score_data_loc_group": 0.412, + "score_data": 0.694, + "score_data_group": 0.694, + "score_data_loc": 0.404, + "score_data_loc_group": 0.404, "score_loc": 0.113, "score_loc_group": 0.113 }, @@ -608,19 +608,38 @@ "componentID": 27630911, "name": "Rinconflat", "not_displayed": false, - "rank_data": "7", - "rank_data_group": "7", + "rank_data": "5", + "rank_data_group": "5", "rank_data_loc": "4", "rank_data_loc_group": "4", "rank_loc": 4, "rank_loc_group": 4, - "score_data": 0.626, - "score_data_group": 0.626, - "score_data_loc": 0.37, - "score_data_loc_group": 0.37, + "score_data": 0.621, + "score_data_group": 0.621, + "score_data_loc": 0.367, + "score_data_loc_group": 0.367, "score_loc": 0.113, "score_loc_group": 0.113 }, + { + "component": "Brace", + "componentData": "Data Complete", + "componentID": 27630932, + "name": "Brace", + "not_displayed": false, + "rank_data": "3", + "rank_data_group": "3", + "rank_data_loc": "5", + "rank_data_loc_group": "5", + "rank_loc": 8, + "rank_loc_group": 8, + "score_data": 0.655, + "score_data_group": 0.655, + "score_data_loc": 0.351, + "score_data_loc_group": 0.351, + "score_loc": 0.046, + "score_loc_group": 0.046 + }, { "component": "Raz", "componentData": "Data Complete", @@ -629,14 +648,14 @@ "not_displayed": false, "rank_data": "4", "rank_data_group": "4", - "rank_data_loc": "5", - "rank_data_loc_group": "5", + "rank_data_loc": "6", + "rank_data_loc_group": "6", "rank_loc": 7, "rank_loc_group": 7, - "score_data": 0.644, - "score_data_group": 0.644, - "score_data_loc": 0.356, - "score_data_loc_group": 0.356, + "score_data": 0.629, + "score_data_group": 0.629, + "score_data_loc": 0.348, + "score_data_loc_group": 0.348, "score_loc": 0.067, "score_loc_group": 0.067 }, @@ -648,35 +667,16 @@ "not_displayed": false, "rank_data": "8", "rank_data_group": "8", - "rank_data_loc": "6", - "rank_data_loc_group": "6", - "rank_loc": 3, - "rank_loc_group": 3, - "score_data": 0.595, - "score_data_group": 0.595, - "score_data_loc": 0.354, - "score_data_loc_group": 0.354, - "score_loc": 0.113, - "score_loc_group": 0.113 - }, - { - "component": "Brace", - "componentData": "Data Complete", - "componentID": 27630932, - "name": "Brace", - "not_displayed": false, - "rank_data": "3", - "rank_data_group": "3", "rank_data_loc": "7", "rank_data_loc_group": "7", - "rank_loc": 8, - "rank_loc_group": 8, - "score_data": 0.645, - "score_data_group": 0.645, + "rank_loc": 3, + "rank_loc_group": 3, + "score_data": 0.579, + "score_data_group": 0.579, "score_data_loc": 0.346, "score_data_loc_group": 0.346, - "score_loc": 0.046, - "score_loc_group": 0.046 + "score_loc": 0.113, + "score_loc_group": 0.113 }, { "component": "Ausmus", @@ -684,16 +684,16 @@ "componentID": 27630924, "name": "Ausmus", "not_displayed": false, - "rank_data": "6", - "rank_data_group": "6", + "rank_data": "7", + "rank_data_group": "7", "rank_data_loc": "8", "rank_data_loc_group": "8", "rank_loc": 9, "rank_loc_group": 9, - "score_data": 0.63, - "score_data_group": 0.63, - "score_data_loc": 0.318, - "score_data_loc_group": 0.318, + "score_data": 0.602, + "score_data_group": 0.602, + "score_data_loc": 0.303, + "score_data_loc_group": 0.303, "score_loc": 0.005, "score_loc_group": 0.005 }, @@ -709,10 +709,10 @@ "rank_data_loc_group": "9", "rank_loc": 6, "rank_loc_group": 6, - "score_data": 0.469, - "score_data_group": 0.469, - "score_data_loc": 0.278, - "score_data_loc_group": 0.278, + "score_data": 0.437, + "score_data_group": 0.437, + "score_data_loc": 0.262, + "score_data_loc_group": 0.262, "score_loc": 0.087, "score_loc_group": 0.087 } diff --git a/soil_id/tests/us/__snapshots__/test_us/test_soil_location[45.88932423,-121.0347381].json b/soil_id/tests/us/__snapshots__/test_us/test_soil_location[45.88932423,-121.0347381].json index d05e276..995ee95 100644 --- a/soil_id/tests/us/__snapshots__/test_us/test_soil_location[45.88932423,-121.0347381].json +++ b/soil_id/tests/us/__snapshots__/test_us/test_soil_location[45.88932423,-121.0347381].json @@ -148,10 +148,10 @@ "rank_data_loc_group": "1", "rank_loc": "Not Displayed", "rank_loc_group": "1", - "score_data": 0.54, - "score_data_group": 0.54, - "score_data_loc": 0.735, - "score_data_loc_group": 0.735, + "score_data": 0.37, + "score_data_group": 0.37, + "score_data_loc": 0.649, + "score_data_loc_group": 0.649, "score_loc": 0.929, "score_loc_group": 0.929 }, @@ -167,10 +167,10 @@ "rank_data_loc_group": "1", "rank_loc": "1", "rank_loc_group": "1", - "score_data": 0.488, - "score_data_group": 0.54, - "score_data_loc": 0.708, - "score_data_loc_group": 0.735, + "score_data": 0.312, + "score_data_group": 0.37, + "score_data_loc": 0.62, + "score_data_loc_group": 0.649, "score_loc": 0.929, "score_loc_group": 0.929 } diff --git a/soil_id/tests/us/__snapshots__/test_us/test_soil_location[47.213922,-69.28246582].json b/soil_id/tests/us/__snapshots__/test_us/test_soil_location[47.213922,-69.28246582].json index d2ff1d3..3f1d087 100644 --- a/soil_id/tests/us/__snapshots__/test_us/test_soil_location[47.213922,-69.28246582].json +++ b/soil_id/tests/us/__snapshots__/test_us/test_soil_location[47.213922,-69.28246582].json @@ -153,13 +153,13 @@ "esd": { "ESD": { "ecoclassid": [ - "F143XY704ME" + "F143XY501ME" ], "ecoclassname": [ - "Shallow Organic Rock Pocket" + "Loamy Slope" ], "edit_url": [ - "https://edit.sc.egov.usda.gov/catalogs/esd/143X/F143XY704ME" + "https://edit.sc.egov.usda.gov/catalogs/esd/143X/F143XY501ME" ] } }, @@ -265,13 +265,13 @@ "esd": { "ESD": { "ecoclassid": [ - "F143XY501ME" + "F143XY704ME" ], "ecoclassname": [ - "Loamy Slope" + "Shallow Organic Rock Pocket" ], "edit_url": [ - "https://edit.sc.egov.usda.gov/catalogs/esd/143X/F143XY501ME" + "https://edit.sc.egov.usda.gov/catalogs/esd/143X/F143XY704ME" ] } }, @@ -389,32 +389,13 @@ "rank_data_loc_group": "1", "rank_loc": "2", "rank_loc_group": "2", - "score_data": 0.682, - "score_data_group": 0.682, - "score_data_loc": 0.494, - "score_data_loc_group": 0.494, + "score_data": 0.737, + "score_data_group": 0.737, + "score_data_loc": 0.521, + "score_data_loc_group": 0.521, "score_loc": 0.306, "score_loc_group": 0.306 }, - { - "component": "Knob lock", - "componentData": "Data Complete", - "componentID": 26560913, - "name": "Knob lock2", - "not_displayed": false, - "rank_data": "4", - "rank_data_group": "4", - "rank_data_loc": "2", - "rank_data_loc_group": "2", - "rank_loc": "Not Displayed", - "rank_loc_group": "1", - "score_data": 0.529, - "score_data_group": 0.529, - "score_data_loc": 0.451, - "score_data_loc_group": 0.451, - "score_loc": 0.372, - "score_loc_group": 0.372 - }, { "component": "Elliottsville", "componentData": "Data Complete", @@ -423,17 +404,36 @@ "not_displayed": false, "rank_data": "2", "rank_data_group": "2", - "rank_data_loc": "3", - "rank_data_loc_group": "3", + "rank_data_loc": "2", + "rank_data_loc_group": "2", "rank_loc": "3", "rank_loc_group": "3", - "score_data": 0.65, - "score_data_group": 0.65, - "score_data_loc": 0.45, - "score_data_loc_group": 0.45, + "score_data": 0.697, + "score_data_group": 0.697, + "score_data_loc": 0.474, + "score_data_loc_group": 0.474, "score_loc": 0.25, "score_loc_group": 0.25 }, + { + "component": "Knob lock", + "componentData": "Data Complete", + "componentID": 26560913, + "name": "Knob lock2", + "not_displayed": false, + "rank_data": "4", + "rank_data_group": "4", + "rank_data_loc": "3", + "rank_data_loc_group": "3", + "rank_loc": "Not Displayed", + "rank_loc_group": "1", + "score_data": 0.475, + "score_data_group": 0.475, + "score_data_loc": 0.424, + "score_data_loc_group": 0.424, + "score_loc": 0.372, + "score_loc_group": 0.372 + }, { "component": "Monson", "componentData": "Data Complete", @@ -462,13 +462,13 @@ "rank_data": "Not Displayed", "rank_data_group": "2", "rank_data_loc": "Not Displayed", - "rank_data_loc_group": "3", + "rank_data_loc_group": "2", "rank_loc": "Not Displayed", "rank_loc_group": "3", - "score_data": 0.583, - "score_data_group": 0.65, - "score_data_loc": 0.417, - "score_data_loc_group": 0.45, + "score_data": 0.536, + "score_data_group": 0.697, + "score_data_loc": 0.393, + "score_data_loc_group": 0.474, "score_loc": 0.25, "score_loc_group": 0.25 }, @@ -481,13 +481,13 @@ "rank_data": "Not Displayed", "rank_data_group": "4", "rank_data_loc": "Not Displayed", - "rank_data_loc_group": "2", + "rank_data_loc_group": "3", "rank_loc": "1", "rank_loc_group": "1", "score_data": 0.406, - "score_data_group": 0.529, + "score_data_group": 0.475, "score_data_loc": 0.389, - "score_data_loc_group": 0.451, + "score_data_loc_group": 0.424, "score_loc": 0.372, "score_loc_group": 0.372 } diff --git a/soil_id/tests/us/__snapshots__/test_us/test_soil_location[48.6956,-121.8166].json b/soil_id/tests/us/__snapshots__/test_us/test_soil_location[48.6956,-121.8166].json index 5cb63cf..392dbb5 100644 --- a/soil_id/tests/us/__snapshots__/test_us/test_soil_location[48.6956,-121.8166].json +++ b/soil_id/tests/us/__snapshots__/test_us/test_soil_location[48.6956,-121.8166].json @@ -97,13 +97,13 @@ "esd": { "ESD": { "ecoclassid": [ - "R003XN613WA" + "F003XA305WA" ], "ecoclassname": [ - "Low Mountain Unforested Wetlands" + "Low Glacial Trough Valleys Moist Forest Western Hemlock" ], "edit_url": [ - "https://edit.sc.egov.usda.gov/catalogs/esd/003X/R003XN613WA" + "https://edit.sc.egov.usda.gov/catalogs/esd/003X/F003XA305WA" ] } }, @@ -153,13 +153,13 @@ "esd": { "ESD": { "ecoclassid": [ - "F003XA305WA" + "R003XN613WA" ], "ecoclassname": [ - "Low Glacial Trough Valleys Moist Forest Western Hemlock" + "Low Mountain Unforested Wetlands" ], "edit_url": [ - "https://edit.sc.egov.usda.gov/catalogs/esd/003X/F003XA305WA" + "https://edit.sc.egov.usda.gov/catalogs/esd/003X/R003XN613WA" ] } }, diff --git a/soil_id/tests/us/__snapshots__/test_us/test_soil_location[60.42282639,-158.4018264].json b/soil_id/tests/us/__snapshots__/test_us/test_soil_location[60.42282639,-158.4018264].json index a554547..70eea00 100644 --- a/soil_id/tests/us/__snapshots__/test_us/test_soil_location[60.42282639,-158.4018264].json +++ b/soil_id/tests/us/__snapshots__/test_us/test_soil_location[60.42282639,-158.4018264].json @@ -41,13 +41,13 @@ "esd": { "ESD": { "ecoclassid": [ - "R236XY107AK" + "R236XY140AK" ], "ecoclassname": [ - "Western Alaska Maritime Scrub Gravelly Drainages" + "Subarctic Tussock Tundra Wet Loamy Plains" ], "edit_url": [ - "https://edit.sc.egov.usda.gov/catalogs/esd/236X/R236XY107AK" + "https://edit.sc.egov.usda.gov/catalogs/esd/236X/R236XY140AK" ] } }, @@ -153,13 +153,13 @@ "esd": { "ESD": { "ecoclassid": [ - "F236XY139AK" + "R236XY109AK" ], "ecoclassname": [ - "Boreal Woodland Loamy Rises" + "Subarctic Low Scrub Peat Drainages" ], "edit_url": [ - "https://edit.sc.egov.usda.gov/catalogs/esd/236X/F236XY139AK" + "https://edit.sc.egov.usda.gov/catalogs/esd/236X/R236XY109AK" ] } }, @@ -265,13 +265,13 @@ "esd": { "ESD": { "ecoclassid": [ - "R236XY140AK" + "F236XY139AK" ], "ecoclassname": [ - "Subarctic Tussock Tundra Wet Loamy Plains" + "Boreal Woodland Loamy Rises" ], "edit_url": [ - "https://edit.sc.egov.usda.gov/catalogs/esd/236X/R236XY140AK" + "https://edit.sc.egov.usda.gov/catalogs/esd/236X/F236XY139AK" ] } }, @@ -321,13 +321,13 @@ "esd": { "ESD": { "ecoclassid": [ - "R236XY109AK" + "R236XY107AK" ], "ecoclassname": [ - "Subarctic Low Scrub Peat Drainages" + "Western Alaska Maritime Scrub Gravelly Drainages" ], "edit_url": [ - "https://edit.sc.egov.usda.gov/catalogs/esd/236X/R236XY109AK" + "https://edit.sc.egov.usda.gov/catalogs/esd/236X/R236XY107AK" ] } }, diff --git a/soil_id/tests/us/__snapshots__/test_us/test_soil_location[62.32776717,-157.2767099].json b/soil_id/tests/us/__snapshots__/test_us/test_soil_location[62.32776717,-157.2767099].json index a6913fb..662497f 100644 --- a/soil_id/tests/us/__snapshots__/test_us/test_soil_location[62.32776717,-157.2767099].json +++ b/soil_id/tests/us/__snapshots__/test_us/test_soil_location[62.32776717,-157.2767099].json @@ -97,13 +97,13 @@ "esd": { "ESD": { "ecoclassid": [ - "" + "R230XY630AK" ], "ecoclassname": [ - "" + "Alpine Dwarf Scrub Gravelly Slopes" ], "edit_url": [ - "" + "https://edit.sc.egov.usda.gov/catalogs/esd/230X/R230XY630AK" ] } }, @@ -153,13 +153,13 @@ "esd": { "ESD": { "ecoclassid": [ - "" + "F230XY611AK" ], "ecoclassname": [ - "" + "Boreal Forest Loamy Frozen Slopes" ], "edit_url": [ - "" + "https://edit.sc.egov.usda.gov/catalogs/esd/230X/F230XY611AK" ] } }, @@ -321,13 +321,13 @@ "esd": { "ESD": { "ecoclassid": [ - "F230XY611AK" + "" ], "ecoclassname": [ - "Boreal Forest Loamy Frozen Slopes" + "" ], "edit_url": [ - "https://edit.sc.egov.usda.gov/catalogs/esd/230X/F230XY611AK" + "" ] } }, @@ -377,13 +377,13 @@ "esd": { "ESD": { "ecoclassid": [ - "R230XY630AK" + "" ], "ecoclassname": [ - "Alpine Dwarf Scrub Gravelly Slopes" + "" ], "edit_url": [ - "https://edit.sc.egov.usda.gov/catalogs/esd/230X/R230XY630AK" + "" ] } }, diff --git a/soil_id/tests/us/__snapshots__/test_us/test_soil_location[63.52666854,-156.4422738].json b/soil_id/tests/us/__snapshots__/test_us/test_soil_location[63.52666854,-156.4422738].json index 18e6aea..04a24fc 100644 --- a/soil_id/tests/us/__snapshots__/test_us/test_soil_location[63.52666854,-156.4422738].json +++ b/soil_id/tests/us/__snapshots__/test_us/test_soil_location[63.52666854,-156.4422738].json @@ -41,13 +41,13 @@ "esd": { "ESD": { "ecoclassid": [ - "F230XY612AK" + "F230XY611AK" ], "ecoclassname": [ - "Boreal Forest Loamy Slopes" + "Boreal Forest Loamy Frozen Slopes" ], "edit_url": [ - "https://edit.sc.egov.usda.gov/catalogs/esd/230X/F230XY612AK" + "https://edit.sc.egov.usda.gov/catalogs/esd/230X/F230XY611AK" ] } }, @@ -97,13 +97,13 @@ "esd": { "ESD": { "ecoclassid": [ - "R230XY610AK" + "R230XY601AK" ], "ecoclassname": [ - "Boreal Scrub Silty Frozen Drainages" + "Boreal Forest Flood Plain Complex" ], "edit_url": [ - "https://edit.sc.egov.usda.gov/catalogs/esd/230X/R230XY610AK" + "https://edit.sc.egov.usda.gov/catalogs/esd/230X/R230XY601AK" ] } }, @@ -321,13 +321,13 @@ "esd": { "ESD": { "ecoclassid": [ - "R230XY620AK" + "" ], "ecoclassname": [ - "Boreal Peat Frozen Flats Complex" + "" ], "edit_url": [ - "https://edit.sc.egov.usda.gov/catalogs/esd/230X/R230XY620AK" + "" ] } }, @@ -377,13 +377,13 @@ "esd": { "ESD": { "ecoclassid": [ - "" + "F230XY612AK" ], "ecoclassname": [ - "" + "Boreal Forest Loamy Slopes" ], "edit_url": [ - "" + "https://edit.sc.egov.usda.gov/catalogs/esd/230X/F230XY612AK" ] } }, @@ -433,13 +433,13 @@ "esd": { "ESD": { "ecoclassid": [ - "F230XY611AK" + "" ], "ecoclassname": [ - "Boreal Forest Loamy Frozen Slopes" + "" ], "edit_url": [ - "https://edit.sc.egov.usda.gov/catalogs/esd/230X/F230XY611AK" + "" ] } }, @@ -489,13 +489,13 @@ "esd": { "ESD": { "ecoclassid": [ - "R230XY601AK" + "R230XY620AK" ], "ecoclassname": [ - "Boreal Forest Flood Plain Complex" + "Boreal Peat Frozen Flats Complex" ], "edit_url": [ - "https://edit.sc.egov.usda.gov/catalogs/esd/230X/R230XY601AK" + "https://edit.sc.egov.usda.gov/catalogs/esd/230X/R230XY620AK" ] } }, @@ -545,13 +545,13 @@ "esd": { "ESD": { "ecoclassid": [ - "" + "R230XY610AK" ], "ecoclassname": [ - "" + "Boreal Scrub Silty Frozen Drainages" ], "edit_url": [ - "" + "https://edit.sc.egov.usda.gov/catalogs/esd/230X/R230XY610AK" ] } }, diff --git a/soil_id/us_soil.py b/soil_id/us_soil.py index e3d6021..8237c59 100644 --- a/soil_id/us_soil.py +++ b/soil_id/us_soil.py @@ -80,13 +80,15 @@ class SoilListOutputData: ############################################################################################ # list_soils # ############################################################################################ -def list_soils(lon, lat): +def list_soils(lon, lat, sim=True, max_distance_m=1000): # Load in LAB to Munsell conversion look-up table color_ref = pd.read_csv(soil_id.config.MUNSELL_RGB_LAB_PATH) LAB_ref = color_ref[["cielab_l", "cielab_a", "cielab_b"]] munsell_ref = color_ref[["hue", "value", "chroma"]] - out = get_soilweb_data(lon, lat) + if max_distance_m is None: + max_distance_m = 1000 + out = get_soilweb_data(lon, lat, radius_m=max_distance_m) OSD_compkind = ["Series", "Variant", "Family", "Taxadjunct"] # Check if point is in a NOTCOM area, and if so then infill with STATSGO from NRCS SDA @@ -103,8 +105,9 @@ def list_soils(lon, lat): mucompdata_pd = pd.json_normalize(out["spn"]) mucompdata_pd = process_site_data(mucompdata_pd) - # For SSURGO, filter out data for distances over 1000m - mucompdata_pd = mucompdata_pd[mucompdata_pd["distance"] <= 1000] + # For SSURGO, filter out data beyond caller-configured max distance. + # Keep backward-compatible behavior at 1000 m when no value is provided. + mucompdata_pd = mucompdata_pd[mucompdata_pd["distance"] <= float(max_distance_m)] if mucompdata_pd.empty: # Extract STATSGO data at point @@ -244,6 +247,9 @@ def list_soils(lon, lat): mucompdata_pd["compname_grp"] = mucompdata_pd["compname"] # Extract unique cokeys and create a ranking dictionary + muhorzdata_pd["cokey"] = ( + muhorzdata_pd["cokey"].astype(str).str.strip().str.replace(r"\.0+$", "", regex=True) + ) comp_key = mucompdata_pd["cokey"].unique().tolist() cokey_index = {key: index for index, key in enumerate(comp_key)} @@ -665,7 +671,9 @@ def list_soils(lon, lat): if mucompdata_pd["compkind"].isin(OSD_compkind).any(): # Group data by cokey - OSDhorzdata_group_cokey = [group for _, group in OSDhorzdata_pd.groupby("cokey")] + OSDhorzdata_group_cokey = [ + group for _, group in OSDhorzdata_pd.groupby("cokey", sort=False) + ] # Initialize empty lists lab_lyrs = [] @@ -764,20 +772,29 @@ def list_soils(lon, lat): lab_lyrs.append(["", "", ""]) munsell_lyrs.append("") else: + # Use the horizon bottom depths that match the stored horizon structure + # Convert string values to float, filtering out empty strings + horizon_bottom_depths = [ + float(v) if v != "" else np.nan + for v in hzb_lyrs[index].values() + ] + # Filter out NaN values + horizon_bottom_depths = [d for d in horizon_bottom_depths if not np.isnan(d)] + # Aggregate data for each color dimension l_d = aggregate_data( data=lab_intpl["l"], - bottom_depths=muhorzdata_pd_group["hzdepb_r"].tolist(), + bottom_depths=horizon_bottom_depths, sd=2, ).fillna("") a_d = aggregate_data( data=lab_intpl["a"], - bottom_depths=muhorzdata_pd_group["hzdepb_r"].tolist(), + bottom_depths=horizon_bottom_depths, sd=2, ).fillna("") b_d = aggregate_data( data=lab_intpl["b"], - bottom_depths=muhorzdata_pd_group["hzdepb_r"].tolist(), + bottom_depths=horizon_bottom_depths, sd=2, ).fillna("") @@ -907,16 +924,25 @@ def list_soils(lon, lat): getProfile_cokey[index] = getProfile_mod + # Use the horizon bottom depths that match the stored horizon structure + # Convert string values to float, filtering out empty strings + horizon_bottom_depths = [ + float(v) if v != "" else np.nan + for v in hzb_lyrs[index].values() + ] + # Filter out NaN values + horizon_bottom_depths = [d for d in horizon_bottom_depths if not np.isnan(d)] + # Aggregate sand data snd_d_osd = aggregate_data( data=OSD_sand_intpl.iloc[:, 0], - bottom_depths=muhorzdata_pd_group["hzdepb_r"].tolist(), + bottom_depths=horizon_bottom_depths, ) # Aggregate clay data cly_d_osd = aggregate_data( data=OSD_clay_intpl.iloc[:, 1], - bottom_depths=muhorzdata_pd_group["hzdepb_r"].tolist(), + bottom_depths=horizon_bottom_depths, ) # Calculate texture data based on sand and clay data @@ -929,7 +955,7 @@ def list_soils(lon, lat): # Aggregate rock fragment data rf_d_osd = aggregate_data( data=OSD_rfv_intpl.c_cfpct_intpl, - bottom_depths=muhorzdata_pd_group["hzdepb_r"].tolist(), + bottom_depths=horizon_bottom_depths, ) # Fill NaN values @@ -950,9 +976,9 @@ def list_soils(lon, lat): # Update cec, ph, and ec layers if they contain only a single # empty string for lyr in [cec_lyrs, ph_lyrs, ec_lyrs]: - if len(lyr[index]) == 1 and lyr[index][0] == "": + if len(lyr[index]) == 1 and list(lyr[index].values())[0] == "": empty_values = [""] * len(hzb_lyrs[index]) - lyr[index] = dict(zip(hzb_lyrs[index], empty_values)) + lyr[index] = dict(zip(hzb_lyrs[index].keys(), empty_values)) else: OSDhorzdata_group_cokey[index] = group_sorted @@ -1028,9 +1054,8 @@ def list_soils(lon, lat): lab_lyrs.append(dict(zip(keys, lab_dummy))) munsell_lyrs.append(dict(zip(keys, munsell_dummy))) - # Create empty URLs for each component - cokey = mucompdata_pd.iloc[i]["cokey"] - cokey_to_urls[cokey] = {"sde": "", "see": ""} + ## Create empty URLs keyed by cokey + cokey_to_urls[mucompdata_pd.iloc[i]["cokey"]] = {"sde": "", "see": ""} else: # Initialize lists to store data layers and URLs @@ -1058,9 +1083,8 @@ def list_soils(lon, lat): lab_lyrs.append(dict(zip(keys, lab_dummy))) munsell_lyrs.append(dict(zip(keys, munsell_dummy))) - # Create empty URLs for each component - cokey = mucompdata_pd.iloc[i]["cokey"] - cokey_to_urls[cokey] = {"sde": "", "see": ""} + ## Create empty URLs keyed by cokey + cokey_to_urls[mucompdata_pd.iloc[i]["cokey"]] = {"sde": "", "see": ""} # Subset datasets to exclude pedons without any depth information cokeys_with_depth = mucompdata_pd[mucompdata_pd["comp_max_bottom"] > 0].cokey.unique() @@ -1130,7 +1154,22 @@ def list_soils(lon, lat): ] # Run soil simulations: functional similarity calculation and soil information value - aws_PIW90, var_imp = soil_sim(muhorzdata_pd) + if sim: + try: + aws_PIW90, var_imp = soil_sim(muhorzdata_pd) + except Exception as e: + # Log the error but continue with None values + import traceback + error_details = f"soil_sim failed: {type(e).__name__}: {str(e)}" + print(error_details) # Print to stdout + print(traceback.format_exc()) # Print full stack trace + logging.warning(error_details) + aws_PIW90 = None + var_imp = None + else: + # When sim=False, set default values + aws_PIW90 = None + var_imp = None # Create a new column 'soilID_rank' which will be True for the first row in each group sorted # by 'distance' and False for other rows @@ -1169,11 +1208,75 @@ def list_soils(lon, lat): else: ESDcompdata_pd = None + # SDA fallback for SSURGO: SoilWeb ESD coverage has gaps — some cokeys are + # present in the map unit but have no ESD row in the SoilWeb response, leaving + # ecoclassid as NULL after the left-merge above. Without a fallback, those + # components borrow an ecoclassid from a sibling compname via update_esd_data, + # which varies by location and produces inconsistent predictions. + # Query SDA for only the cokeys that are still missing ecoclassid so we get + # authoritative coecoclass data for every component. + missing_cokeys = [] + if ESDcompdata_pd is not None: + null_mask = ESDcompdata_pd["ecoclassid"].isna() | ( + ESDcompdata_pd["ecoclassid"].astype(str).str.strip().isin(["", "nan", "None"]) + ) + missing_cokeys = ESDcompdata_pd.loc[null_mask, "cokey"].unique().tolist() + elif comp_key: + # ESDcompdata_pd is None means SoilWeb returned no ESD at all + missing_cokeys = [str(k) for k in comp_key] + + if missing_cokeys: + _sda_eco_qry = ( + "SELECT cokey, ecoclassid, ecoclassname, " + " FROM coecoclass WHERE cokey IN (" + + ",".join(str(k) for k in missing_cokeys) + + ") ORDER BY cokey, ecoclasstypename, ecoclassid" + ) + _sda_eco_out = sda_return(propQry=_sda_eco_qry) + if _sda_eco_out is not None: + _sda_rows = _sda_eco_out["Table"].iloc[0] + _sda_df = pd.DataFrame(_sda_rows[1:], columns=_sda_rows[0]) + _sda_df[["cokey", "ecoclassid", "ecoclassname"]] = _sda_df[ + ["cokey", "ecoclassid", "ecoclassname"] + ].astype(str) + _sda_df["edit_url"] = ( + NEW_ESD_BASE_URL + + "/" + + _sda_df["ecoclassid"].str[1:5] + + "/" + + _sda_df["ecoclassid"] + ) + if ESDcompdata_pd is not None: + # Drop the null rows and replace with SDA data merged back in + ESDcompdata_pd = ESDcompdata_pd[~null_mask] + _sda_merged = pd.merge( + mucompdata_pd.loc[ + mucompdata_pd["cokey"].astype(str).isin(missing_cokeys), + ["mukey", "cokey", "compname"], + ], + _sda_df, + on="cokey", + how="left", + ) + ESDcompdata_pd = pd.concat( + [ESDcompdata_pd, _sda_merged], ignore_index=True + ) + else: + # SoilWeb had no ESD at all; bootstrap from SDA data + if any(_sda_df["cokey"].isin(mucompdata_pd["cokey"])): + ESDcompdata_pd = pd.merge( + mucompdata_pd[["mukey", "cokey", "compname"]], + _sda_df, + on="cokey", + how="left", + ) + elif data_source == "STATSGO": ESDcompdataQry = ( - "SELECT cokey, ecoclassid, ecoclassname FROM coecoclass WHERE cokey IN (" + "SELECT cokey, ecoclassid, ecoclassname, ecoclasstypename" + " FROM coecoclass WHERE cokey IN (" + ",".join(map(str, comp_key)) - + ") ORDER BY cokey" + + ") ORDER BY cokey, ecoclasstypename, ecoclassid" ) ESDcompdata_out = sda_return(propQry=ESDcompdataQry) @@ -1215,18 +1318,58 @@ def list_soils(lon, lat): if ESDcompdata_pd is not None: # Process DataFrame: cleaning and updating ESDcompdata_pd.replace("NULL", np.nan, inplace=True) + # Sort by ecoclasstypename priority then ecoclassid before deduplication so that + # when a component has multiple coecoclass entries the most authoritative one is + # kept consistently regardless of SDA/SoilWeb result ordering. + # + # Priority rationale: + # 1. 'NRCS Rangeland Site' – current national standard (ecoclassid has 'R' prefix) + # 2. 'Range Site' / 'Range' – legacy format, superseded by NRCS standard + # 3. Other/NULL types – lowest priority, kept only if nothing better exists + # + # Within each type, the R-prefixed ecoclassid sorts before legacy ones, then + # alphabetically, so the selection is fully deterministic. + _TYPE_PRIORITY = {"NRCS Rangeland Site": 0} + if "ecoclasstypename" in ESDcompdata_pd.columns: + ESDcompdata_pd["_type_pri"] = ( + ESDcompdata_pd["ecoclasstypename"] + .map(lambda t: _TYPE_PRIORITY.get(t, 1) if pd.notna(t) else 1) + ) + else: + ESDcompdata_pd["_type_pri"] = 1 + ESDcompdata_pd["_id_pri"] = ( + ESDcompdata_pd["ecoclassid"] + .map(lambda e: 0 if (pd.notna(e) and str(e).upper().startswith("R")) else 1) + ) + ESDcompdata_pd.sort_values( + ["cokey", "_type_pri", "_id_pri", "ecoclassid"], + ascending=[True, True, True, True], + na_position="last", + inplace=True, + ) + ESDcompdata_pd.drop(columns=["_type_pri", "_id_pri"], inplace=True) ESDcompdata_pd.drop_duplicates(subset=["cokey"], keep="first", inplace=True) ESDcompdata_pd = ESDcompdata_pd[ESDcompdata_pd["cokey"].isin(comp_key)] - ESDcompdata_pd["Comp_Rank"] = ESDcompdata_pd["cokey"].map(cokey_Index) - ESDcompdata_pd.sort_values("Comp_Rank", ascending=True, inplace=True) - ESDcompdata_pd.drop(columns="Comp_Rank", inplace=True) + # Use the current mucompdata_pd row order (compname_grp sorted) as the reference, + # NOT cokey_Index which reflects the original pre-sort order. This ensures that + # esd_comp_list[i] lines up with mucompdata_pd.iloc[i] for the key-based alignment. + _mucomp_order = {str(ck): i for i, ck in enumerate(mucompdata_pd["cokey"].tolist())} + ESDcompdata_pd["_mucomp_rank"] = ESDcompdata_pd["cokey"].map(_mucomp_order) + ESDcompdata_pd.sort_values("_mucomp_rank", ascending=True, na_position="last", inplace=True) + ESDcompdata_pd.drop(columns="_mucomp_rank", inplace=True) ESDcompdata_pd["ecoclassname"] = ESDcompdata_pd["ecoclassname"].str.title() # Further processing and checks for missing ESD data ESDcompdata_pd = update_esd_data(ESDcompdata_pd) + # update_esd_data reorders rows by compname_grp; restore mucompdata_pd order so + # that esd_comp_list[i] aligns with mucompdata_pd.iloc[i] for key-based reorder. + ESDcompdata_pd["_mucomp_rank"] = ESDcompdata_pd["cokey"].map(_mucomp_order) + ESDcompdata_pd.sort_values("_mucomp_rank", ascending=True, na_position="last", inplace=True) + ESDcompdata_pd.drop(columns="_mucomp_rank", inplace=True) + # Aggregate the ESD components for output - for _, group in ESDcompdata_pd.groupby("cokey", sort=True): + for _, group in ESDcompdata_pd.groupby("cokey", sort=False): esd_data = { "ESD": { "ecoclassid": group["ecoclassid"].tolist(), @@ -1427,7 +1570,7 @@ def list_soils(lon, lat): # Replace NaN values with an empty string mucompdata_cond_prob = mucompdata_cond_prob.fillna("") - # Generate the Site list using cokey-based URL lookup + # Generate the Site list Site = [ { "siteData": { @@ -1448,15 +1591,16 @@ def list_soils(lon, lat): "irrcapscl": row["irrcapscl"], "irrcapunit": row["irrcapunit"], "taxsubgrp": row["taxsubgrp"], - "sdeURL": cokey_to_urls.get(row["cokey"], {"sde": ""})["sde"], - "seeURL": cokey_to_urls.get(row["cokey"], {"see": ""})["see"], + "sdeURL": cokey_to_urls.get(row["cokey"], {}).get("sde", ""), + "seeURL": cokey_to_urls.get(row["cokey"], {}).get("see", ""), }, "siteDescription": row["brief_narrative"], } for idx, row in mucompdata_cond_prob.iterrows() ] - # Reordering lists using list comprehension and mucomp_index + # Reorder profile lists to match the final sorted component order. + # Prefer key-based alignment by cokey (componentID) to avoid positional drift. lists_to_reorder = [ esd_comp_list, hzt_lyrs, @@ -1471,7 +1615,27 @@ def list_soils(lon, lat): lab_lyrs, munsell_lyrs, ] - reordered_lists = [[lst[i] for i in mucomp_index] for lst in lists_to_reorder] + + def _norm_cokey(value): + return re.sub(r"\.0+$", "", str(value).strip()) + + base_order_cokeys = [_norm_cokey(c) for c in mucompdata_pd["cokey"].tolist()] + final_order_cokeys = [_norm_cokey(c) for c in mucompdata_cond_prob["cokey"].tolist()] + + can_key_reorder = ( + len(base_order_cokeys) == len(set(base_order_cokeys)) + and all(len(lst) == len(base_order_cokeys) for lst in lists_to_reorder) + ) + + if can_key_reorder: + def _reorder_by_cokey(lst): + by_cokey = dict(zip(base_order_cokeys, lst)) + return [by_cokey[c] for c in final_order_cokeys] + + reordered_lists = [_reorder_by_cokey(lst) for lst in lists_to_reorder] + else: + # Fallback to positional reordering when key-based alignment is not possible. + reordered_lists = [[lst[i] for i in mucomp_index] for lst in lists_to_reorder] # Destructuring reordered lists for clarity ( From 7936deb165d04a861ccedd5137cb31cf0d8448f0 Mon Sep 17 00:00:00 2001 From: Jonathan Maynard Date: Fri, 15 May 2026 13:18:17 -0700 Subject: [PATCH 5/7] fix(us): key OSD infill by cokey and stabilize soil similarity entropy - Replace positional OSD/ESD alignment paths with normalized cokey-keyed mapping to avoid component drift when grouped data orders differ. - Harden texture infill behavior by supporting partial-missing horizons and filling only missing layer values from OSD while preserving available SSURGO values. - Update getTexture classification handling: return None for missing/NaN sand-clay inputs, refresh classification doc details, and adjust condition/choice evaluation for safer mapping. - Normalize texture modifiers (e.g. very fine/fine/medium/coarse) before getSand/getClay lookups so OSD labels map consistently to canonical texture classes. - Fix information_gain weighted entropy computation by using aligned numeric Series reduction and normalizing target_col handling to prevent int/str aggregation TypeError in soil_sim. - Regenerate point validation artifact for 32.25459,-106.76431 and update related test/output files produced by the branch workflow. --- .../test_soil_location[-1.75,13.6].json | 86 +-- ...st_soil_location[-10.07856,15.107436].json | 236 ++++---- ...t_soil_location[-10.950086,17.573093].json | 150 ++--- ...est_soil_location[-19.13333,145.5125].json | 330 +++++------ .../test_soil_location[-2.06972,37.29].json | 282 ++++----- ...est_soil_location[-24.53333,33.36667].json | 204 +++---- ...est_soil_location[15.73333,120.31667].json | 228 ++++---- .../test_soil_location[37.33333,-5.4].json | 144 ++--- ...est_soil_location[48.71667,126.13333].json | 2 +- .../test_soil_location[7.3318,-1.4631].json | 10 +- .../test_soil_location[8.48333,76.95].json | 130 ++--- ...il_location[33.81246789,-101.9733687].json | 220 +++---- ...st_soil_location[34.92816,-114.80764].json | 16 +- ...t_soil_location[35.59918,-120.491439].json | 54 +- .../test_soil_location[37.422,-122.084].json | 132 ++--- ...il_location[37.48216451,-99.55016693].json | 362 ++++++------ ...il_location[39.26009312,-85.50621214].json | 386 ++++++------ ..._soil_location[42.494912,-123.064531].json | 200 +++---- ...il_location[42.63413723,-94.31005777].json | 150 ++--- ...il_location[43.06450312,-119.4596489].json | 162 +++--- ...oil_location[45.6508331,-121.5111084].json | 6 +- ...il_location[45.88932423,-121.0347381].json | 24 +- ...soil_location[47.213922,-69.28246582].json | 106 ++-- ...test_soil_location[48.6956,-121.8166].json | 40 +- ...il_location[60.42282639,-158.4018264].json | 14 +- ...il_location[62.32776717,-157.2767099].json | 126 ++-- ...il_location[63.52666854,-156.4422738].json | 246 ++++---- soil_id/us_soil.py | 549 +++++++++++++----- soil_id/utils.py | 75 ++- 29 files changed, 2486 insertions(+), 2184 deletions(-) diff --git a/soil_id/tests/global/__snapshots__/test_global/test_soil_location[-1.75,13.6].json b/soil_id/tests/global/__snapshots__/test_global/test_soil_location[-1.75,13.6].json index 0dae780..e443b32 100644 --- a/soil_id/tests/global/__snapshots__/test_global/test_soil_location[-1.75,13.6].json +++ b/soil_id/tests/global/__snapshots__/test_global/test_soil_location[-1.75,13.6].json @@ -205,13 +205,13 @@ } }, "texture": { - "sl1": "Unknown", - "sl2": "Unknown", - "sl3": "Unknown", - "sl4": "Unknown", - "sl5": "Unknown", - "sl6": "Unknown", - "sl7": "Unknown" + "sl1": "Clay", + "sl2": "Clay", + "sl3": "Clay", + "sl4": "Clay", + "sl5": "Clay", + "sl6": "Clay", + "sl7": "Clay" } }, { @@ -722,16 +722,35 @@ "model": "v2" }, "soilRank": [ + { + "component": "Dystric gleysols", + "componentData": "Data Complete", + "componentID": 148189, + "name": "Dystric gleysols", + "not_displayed": false, + "rank_data": "1", + "rank_data_group": "1", + "rank_data_loc": "1", + "rank_data_loc_group": "1", + "rank_loc": 6, + "rank_loc_group": 6, + "score_data": 1.0, + "score_data_group": 1.0, + "score_data_loc": 0.508, + "score_data_loc_group": 0.508, + "score_loc": 0.017, + "score_loc_group": 0.017 + }, { "component": "Haplic ferralsols", - "componentData": "No Data", + "componentData": "Data Complete", "componentID": 156034, "name": "Haplic ferralsols", "not_displayed": false, - "rank_data": "3", - "rank_data_group": "3", - "rank_data_loc": "1", - "rank_data_loc_group": "1", + "rank_data": "4", + "rank_data_group": "4", + "rank_data_loc": "2", + "rank_data_loc_group": "2", "rank_loc": 2, "rank_loc_group": 2, "score_data": 0.571, @@ -749,8 +768,8 @@ "not_displayed": false, "rank_data": "6", "rank_data_group": "6", - "rank_data_loc": "2", - "rank_data_loc_group": "2", + "rank_data_loc": "3", + "rank_data_loc_group": "3", "rank_loc": 1, "rank_loc_group": 1, "score_data": 0.35, @@ -766,10 +785,10 @@ "componentID": 144042, "name": "Ferralic cambisols", "not_displayed": false, - "rank_data": "1", - "rank_data_group": "1", - "rank_data_loc": "3", - "rank_data_loc_group": "3", + "rank_data": "2", + "rank_data_group": "2", + "rank_data_loc": "4", + "rank_data_loc_group": "4", "rank_loc": 4, "rank_loc_group": 4, "score_data": 0.621, @@ -785,10 +804,10 @@ "componentID": 148190, "name": "Dystric fluvisols", "not_displayed": false, - "rank_data": "2", - "rank_data_group": "2", - "rank_data_loc": "4", - "rank_data_loc_group": "4", + "rank_data": "3", + "rank_data_group": "3", + "rank_data_loc": "5", + "rank_data_loc_group": "5", "rank_loc": 5, "rank_loc_group": 5, "score_data": 0.571, @@ -798,28 +817,9 @@ "score_loc": 0.017, "score_loc_group": 0.017 }, - { - "component": "Dystric gleysols", - "componentData": "Missing Data", - "componentID": 148189, - "name": "Dystric gleysols", - "not_displayed": false, - "rank_data": "4", - "rank_data_group": "4", - "rank_data_loc": "5", - "rank_data_loc_group": "5", - "rank_loc": 6, - "rank_loc_group": 6, - "score_data": 0.519, - "score_data_group": 0.519, - "score_data_loc": 0.268, - "score_data_loc_group": 0.268, - "score_loc": 0.017, - "score_loc_group": 0.017 - }, { "component": "Gleyic acrisols", - "componentData": "Missing Data", + "componentData": "Data Complete", "componentID": 144045, "name": "Gleyic acrisols", "not_displayed": false, @@ -838,7 +838,7 @@ }, { "component": "Xanthic ferralsols", - "componentData": "Missing Data", + "componentData": "Data Complete", "componentID": 156033, "name": "Xanthic ferralsols", "not_displayed": false, diff --git a/soil_id/tests/global/__snapshots__/test_global/test_soil_location[-10.07856,15.107436].json b/soil_id/tests/global/__snapshots__/test_global/test_soil_location[-10.07856,15.107436].json index d7b1537..f5b41d4 100644 --- a/soil_id/tests/global/__snapshots__/test_global/test_soil_location[-10.07856,15.107436].json +++ b/soil_id/tests/global/__snapshots__/test_global/test_soil_location[-10.07856,15.107436].json @@ -305,13 +305,13 @@ } }, "texture": { - "sl1": "Unknown", - "sl2": "Unknown", - "sl3": "Unknown", - "sl4": "Unknown", - "sl5": "Unknown", - "sl6": "Unknown", - "sl7": "Unknown" + "sl1": "Clay", + "sl2": "Clay", + "sl3": "Clay", + "sl4": "Clay", + "sl5": "Clay", + "sl6": "Clay", + "sl7": "Clay" } }, { @@ -410,8 +410,8 @@ "sl3": "Clay loam", "sl4": "Clay loam", "sl5": "Clay loam", - "sl6": "Unknown", - "sl7": "Unknown" + "sl6": "Clay", + "sl7": "Clay" } }, { @@ -725,13 +725,13 @@ } }, "texture": { - "sl1": "Unknown", - "sl2": "Unknown", - "sl3": "Unknown", - "sl4": "Unknown", - "sl5": "Unknown", - "sl6": "Unknown", - "sl7": "Unknown" + "sl1": "Clay", + "sl2": "Clay", + "sl3": "Clay", + "sl4": "Clay", + "sl5": "Clay", + "sl6": "Clay", + "sl7": "Clay" } }, { @@ -825,13 +825,13 @@ } }, "texture": { - "sl1": "Unknown", - "sl2": "Unknown", - "sl3": "Unknown", - "sl4": "Unknown", - "sl5": "Unknown", - "sl6": "Unknown", - "sl7": "Unknown" + "sl1": "Clay", + "sl2": "Clay", + "sl3": "Clay", + "sl4": "Clay", + "sl5": "Clay", + "sl6": "Clay", + "sl7": "Clay" } }, { @@ -1344,7 +1344,7 @@ "soilRank": [ { "component": "Xanthic ferralsols", - "componentData": "Missing Data", + "componentData": "Data Complete", "componentID": 105399, "name": "Xanthic ferralsols2", "not_displayed": false, @@ -1363,7 +1363,7 @@ }, { "component": "Haplic ferralsols", - "componentData": "No Data", + "componentData": "Data Complete", "componentID": 105423, "name": "Haplic ferralsols", "not_displayed": false, @@ -1380,41 +1380,22 @@ "score_loc": 0.181, "score_loc_group": 0.181 }, - { - "component": "Chromic luvisols", - "componentData": "Data Complete", - "componentID": 105244, - "name": "Chromic luvisols", - "not_displayed": false, - "rank_data": "4", - "rank_data_group": "4", - "rank_data_loc": "3", - "rank_data_loc_group": "3", - "rank_loc": "7", - "rank_loc_group": "7", - "score_data": 0.738, - "score_data_group": 0.738, - "score_data_loc": 0.394, - "score_data_loc_group": 0.394, - "score_loc": 0.05, - "score_loc_group": 0.05 - }, { "component": "Rhodic ferralsols", - "componentData": "No Data", + "componentData": "Data Complete", "componentID": 105425, "name": "Rhodic ferralsols", "not_displayed": false, - "rank_data": "7", - "rank_data_group": "7", - "rank_data_loc": "4", - "rank_data_loc_group": "4", + "rank_data": "6", + "rank_data_group": "6", + "rank_data_loc": "3", + "rank_data_loc_group": "3", "rank_loc": "5", "rank_loc_group": "5", - "score_data": 0.681, - "score_data_group": 0.681, - "score_data_loc": 0.391, - "score_data_loc_group": 0.391, + "score_data": 0.8, + "score_data_group": 0.8, + "score_data_loc": 0.45, + "score_data_loc_group": 0.45, "score_loc": 0.1, "score_loc_group": 0.1 }, @@ -1424,16 +1405,16 @@ "componentID": 105396, "name": "Haplic acrisols", "not_displayed": false, - "rank_data": "5", - "rank_data_group": "5", - "rank_data_loc": "5", - "rank_data_loc_group": "5", + "rank_data": "4", + "rank_data_group": "4", + "rank_data_loc": "4", + "rank_data_loc_group": "4", "rank_loc": "8", "rank_loc_group": "8", - "score_data": 0.681, - "score_data_group": 0.681, - "score_data_loc": 0.353, - "score_data_loc_group": 0.353, + "score_data": 0.8, + "score_data_group": 0.8, + "score_data_loc": 0.413, + "score_data_loc_group": 0.413, "score_loc": 0.025, "score_loc_group": 0.025 }, @@ -1443,38 +1424,57 @@ "componentID": 105395, "name": "Ferralic cambisols", "not_displayed": false, - "rank_data": "8", - "rank_data_group": "8", - "rank_data_loc": "6", - "rank_data_loc_group": "6", + "rank_data": "7", + "rank_data_group": "7", + "rank_data_loc": "5", + "rank_data_loc_group": "5", "rank_loc": "6", "rank_loc_group": "6", - "score_data": 0.5, - "score_data_group": 0.5, - "score_data_loc": 0.284, - "score_data_loc_group": 0.284, + "score_data": 0.642, + "score_data_group": 0.642, + "score_data_loc": 0.355, + "score_data_loc_group": 0.355, "score_loc": 0.069, "score_loc_group": 0.069 }, { "component": "Haplic lixisols", - "componentData": "Missing Data", + "componentData": "Data Complete", "componentID": 105245, "name": "Haplic lixisols", "not_displayed": false, - "rank_data": "9", - "rank_data_group": "9", - "rank_data_loc": "7", - "rank_data_loc_group": "7", + "rank_data": "8", + "rank_data_group": "8", + "rank_data_loc": "6", + "rank_data_loc_group": "6", "rank_loc": "9", "rank_loc_group": "9", - "score_data": 0.433, - "score_data_group": 0.433, - "score_data_loc": 0.229, - "score_data_loc_group": 0.229, + "score_data": 0.6, + "score_data_group": 0.6, + "score_data_loc": 0.313, + "score_data_loc_group": 0.313, "score_loc": 0.025, "score_loc_group": 0.025 }, + { + "component": "Chromic luvisols", + "componentData": "Data Complete", + "componentID": 105244, + "name": "Chromic luvisols", + "not_displayed": false, + "rank_data": "9", + "rank_data_group": "9", + "rank_data_loc": "7", + "rank_data_loc_group": "7", + "rank_loc": "7", + "rank_loc_group": "7", + "score_data": 0.371, + "score_data_group": 0.371, + "score_data_loc": 0.21, + "score_data_loc_group": 0.21, + "score_loc": 0.05, + "score_loc_group": 0.05 + }, { "component": "Eutric leptosols", "componentData": "Missing Data", @@ -1500,41 +1500,22 @@ "componentID": 105416, "name": "Lithic leptosols", "not_displayed": false, - "rank_data": "6", - "rank_data_group": "6", + "rank_data": "5", + "rank_data_group": "5", "rank_data_loc": "9", "rank_data_loc_group": "9", "rank_loc": "4", "rank_loc_group": "4", - "score_data": 0.681, - "score_data_group": 0.681, + "score_data": 0.8, + "score_data_group": 0.8, "score_data_loc": 0.001, "score_data_loc_group": 0.001, "score_loc": 0.138, "score_loc_group": 0.138 }, - { - "component": "Haplic ferralsols", - "componentData": "Missing Data", - "componentID": 105398, - "name": "Haplic ferralsols2", - "not_displayed": true, - "rank_data": "Not Displayed", - "rank_data_group": "2", - "rank_data_loc": "Not Displayed", - "rank_data_loc_group": "2", - "rank_loc": "Not Displayed", - "rank_loc_group": "2", - "score_data": 0.738, - "score_data_group": 1.0, - "score_data_loc": 0.459, - "score_data_loc_group": 0.591, - "score_loc": 0.181, - "score_loc_group": 0.181 - }, { "component": "Xanthic ferralsols", - "componentData": "Missing Data", + "componentData": "Data Complete", "componentID": 105422, "name": "Xanthic ferralsols", "not_displayed": true, @@ -1544,9 +1525,9 @@ "rank_data_loc_group": "1", "rank_loc": "1", "rank_loc_group": "1", - "score_data": 0.433, + "score_data": 0.6, "score_data_group": 1.0, - "score_data_loc": 0.351, + "score_data_loc": 0.434, "score_data_loc_group": 0.634, "score_loc": 0.269, "score_loc_group": 0.269 @@ -1558,37 +1539,56 @@ "name": "Ferralic cambisols2", "not_displayed": true, "rank_data": "Not Displayed", - "rank_data_group": "8", + "rank_data_group": "7", "rank_data_loc": "Not Displayed", - "rank_data_loc_group": "6", + "rank_data_loc_group": "5", "rank_loc": "Not Displayed", "rank_loc_group": "6", - "score_data": 0.433, - "score_data_group": 0.5, - "score_data_loc": 0.251, - "score_data_loc_group": 0.284, + "score_data": 0.6, + "score_data_group": 0.642, + "score_data_loc": 0.334, + "score_data_loc_group": 0.355, "score_loc": 0.069, "score_loc_group": 0.069 }, { "component": "Rhodic ferralsols", - "componentData": "No Data", + "componentData": "Data Complete", "componentID": 105419, "name": "Rhodic ferralsols2", "not_displayed": true, "rank_data": "Not Displayed", - "rank_data_group": "7", + "rank_data_group": "6", "rank_data_loc": "Not Displayed", - "rank_data_loc_group": "4", + "rank_data_loc_group": "3", "rank_loc": "Not Displayed", "rank_loc_group": "5", - "score_data": 0.308, - "score_data_group": 0.681, - "score_data_loc": 0.204, - "score_data_loc_group": 0.391, + "score_data": 0.548, + "score_data_group": 0.8, + "score_data_loc": 0.324, + "score_data_loc_group": 0.45, "score_loc": 0.1, "score_loc_group": 0.1 }, + { + "component": "Haplic ferralsols", + "componentData": "Data Complete", + "componentID": 105398, + "name": "Haplic ferralsols2", + "not_displayed": true, + "rank_data": "Not Displayed", + "rank_data_group": "2", + "rank_data_loc": "Not Displayed", + "rank_data_loc_group": "2", + "rank_loc": "Not Displayed", + "rank_loc_group": "2", + "score_data": 0.371, + "score_data_group": 1.0, + "score_data_loc": 0.276, + "score_data_loc_group": 0.591, + "score_loc": 0.181, + "score_loc_group": 0.181 + }, { "component": "Eutric leptosols", "componentData": "Missing Data", @@ -1601,7 +1601,7 @@ "rank_data_loc_group": "8", "rank_loc": "Not Displayed", "rank_loc_group": "3", - "score_data": 0.738, + "score_data": 0.371, "score_data_group": 1.0, "score_data_loc": 0.001, "score_data_loc_group": 0.001, diff --git a/soil_id/tests/global/__snapshots__/test_global/test_soil_location[-10.950086,17.573093].json b/soil_id/tests/global/__snapshots__/test_global/test_soil_location[-10.950086,17.573093].json index b1dc218..0e89cdf 100644 --- a/soil_id/tests/global/__snapshots__/test_global/test_soil_location[-10.950086,17.573093].json +++ b/soil_id/tests/global/__snapshots__/test_global/test_soil_location[-10.950086,17.573093].json @@ -210,8 +210,8 @@ "sl3": "Clay loam", "sl4": "Clay loam", "sl5": "Clay loam", - "sl6": "Unknown", - "sl7": "Unknown" + "sl6": "Clay", + "sl7": "Clay" } }, { @@ -405,13 +405,13 @@ } }, "texture": { - "sl1": "Unknown", - "sl2": "Unknown", - "sl3": "Unknown", - "sl4": "Unknown", - "sl5": "Unknown", - "sl6": "Unknown", - "sl7": "Unknown" + "sl1": "Clay", + "sl2": "Clay", + "sl3": "Clay", + "sl4": "Clay", + "sl5": "Clay", + "sl6": "Clay", + "sl7": "Clay" } }, { @@ -1119,7 +1119,7 @@ }, { "component": "Haplic ferralsols", - "componentData": "Missing Data", + "componentData": "Data Complete", "componentID": 104788, "name": "Haplic ferralsols", "not_displayed": false, @@ -1174,41 +1174,22 @@ "score_loc": 0.029, "score_loc_group": 0.029 }, - { - "component": "Eutric fluvisols", - "componentData": "Data Complete", - "componentID": 104795, - "name": "Eutric fluvisols", - "not_displayed": false, - "rank_data": "5", - "rank_data_group": "5", - "rank_data_loc": "5", - "rank_data_loc_group": "5", - "rank_loc": 9, - "rank_loc_group": 9, - "score_data": 0.903, - "score_data_group": 0.903, - "score_data_loc": 0.473, - "score_data_loc_group": 0.473, - "score_loc": 0.043, - "score_loc_group": 0.043 - }, { "component": "Gleyic arenosols", "componentData": "Data Complete", "componentID": 104793, "name": "Gleyic arenosols", "not_displayed": false, - "rank_data": "8", - "rank_data_group": "8", - "rank_data_loc": "6", - "rank_data_loc_group": "6", + "rank_data": "7", + "rank_data_group": "7", + "rank_data_loc": "5", + "rank_data_loc_group": "5", "rank_loc": 5, "rank_loc_group": 5, - "score_data": 0.673, - "score_data_group": 0.673, - "score_data_loc": 0.372, - "score_data_loc_group": 0.372, + "score_data": 0.837, + "score_data_group": 0.837, + "score_data_loc": 0.454, + "score_data_loc_group": 0.454, "score_loc": 0.071, "score_loc_group": 0.071 }, @@ -1218,16 +1199,16 @@ "componentID": 104796, "name": "Dystric fluvisols", "not_displayed": false, - "rank_data": "7", - "rank_data_group": "7", - "rank_data_loc": "7", - "rank_data_loc_group": "7", + "rank_data": "6", + "rank_data_group": "6", + "rank_data_loc": "6", + "rank_data_loc_group": "6", "rank_loc": 8, "rank_loc_group": 8, - "score_data": 0.673, - "score_data_group": 0.673, - "score_data_loc": 0.358, - "score_data_loc_group": 0.358, + "score_data": 0.837, + "score_data_group": 0.837, + "score_data_loc": 0.44, + "score_data_loc_group": 0.44, "score_loc": 0.043, "score_loc_group": 0.043 }, @@ -1237,71 +1218,90 @@ "componentID": 104797, "name": "Fibric histosols", "not_displayed": false, - "rank_data": "9", - "rank_data_group": "9", - "rank_data_loc": "8", - "rank_data_loc_group": "8", + "rank_data": "8", + "rank_data_group": "8", + "rank_data_loc": "7", + "rank_data_loc_group": "7", "rank_loc": 11, "rank_loc_group": 11, - "score_data": 0.629, - "score_data_group": 0.629, - "score_data_loc": 0.322, - "score_data_loc_group": 0.322, + "score_data": 0.739, + "score_data_group": 0.739, + "score_data_loc": 0.377, + "score_data_loc_group": 0.377, "score_loc": 0.014, "score_loc_group": 0.014 }, { "component": "Xanthic ferralsols", - "componentData": "Missing Data", + "componentData": "Data Complete", "componentID": 104789, "name": "Xanthic ferralsols", "not_displayed": false, - "rank_data": "10", - "rank_data_group": "10", - "rank_data_loc": "9", - "rank_data_loc_group": "9", + "rank_data": "9", + "rank_data_group": "9", + "rank_data_loc": "8", + "rank_data_loc_group": "8", "rank_loc": 7, "rank_loc_group": 7, - "score_data": 0.516, - "score_data_group": 0.516, - "score_data_loc": 0.28, - "score_data_loc_group": 0.28, + "score_data": 0.621, + "score_data_group": 0.621, + "score_data_loc": 0.332, + "score_data_loc_group": 0.332, "score_loc": 0.043, "score_loc_group": 0.043 }, { "component": "Rhodic ferralsols", - "componentData": "No Data", + "componentData": "Data Complete", "componentID": 104787, "name": "Rhodic ferralsols", "not_displayed": false, - "rank_data": "11", - "rank_data_group": "11", - "rank_data_loc": "10", - "rank_data_loc_group": "10", + "rank_data": "10", + "rank_data_group": "10", + "rank_data_loc": "9", + "rank_data_loc_group": "9", "rank_loc": 4, "rank_loc_group": 4, - "score_data": 0.383, - "score_data_group": 0.383, - "score_data_loc": 0.238, - "score_data_loc_group": 0.238, + "score_data": 0.516, + "score_data_group": 0.516, + "score_data_loc": 0.304, + "score_data_loc_group": 0.304, "score_loc": 0.093, "score_loc_group": 0.093 }, + { + "component": "Eutric fluvisols", + "componentData": "Data Complete", + "componentID": 104795, + "name": "Eutric fluvisols", + "not_displayed": false, + "rank_data": "11", + "rank_data_group": "11", + "rank_data_loc": "10", + "rank_data_loc_group": "10", + "rank_loc": 9, + "rank_loc_group": 9, + "score_data": 0.484, + "score_data_group": 0.484, + "score_data_loc": 0.264, + "score_data_loc_group": 0.264, + "score_loc": 0.043, + "score_loc_group": 0.043 + }, { "component": "Eutric leptosols", "componentData": "Missing Data", "componentID": 104791, "name": "Eutric leptosols", "not_displayed": false, - "rank_data": "6", - "rank_data_group": "6", + "rank_data": "5", + "rank_data_group": "5", "rank_data_loc": "11", "rank_data_loc_group": "11", "rank_loc": 6, "rank_loc_group": 6, - "score_data": 0.845, - "score_data_group": 0.845, + "score_data": 0.883, + "score_data_group": 0.883, "score_data_loc": 0.001, "score_data_loc_group": 0.001, "score_loc": 0.057, diff --git a/soil_id/tests/global/__snapshots__/test_global/test_soil_location[-19.13333,145.5125].json b/soil_id/tests/global/__snapshots__/test_global/test_soil_location[-19.13333,145.5125].json index 3f481d9..b175203 100644 --- a/soil_id/tests/global/__snapshots__/test_global/test_soil_location[-19.13333,145.5125].json +++ b/soil_id/tests/global/__snapshots__/test_global/test_soil_location[-19.13333,145.5125].json @@ -505,9 +505,9 @@ } }, "texture": { - "sl1": "Loamy sand", - "sl2": "Loamy sand", - "sl3": "Loamy sand", + "sl1": "Sandy loam", + "sl2": "Sandy loam", + "sl3": "Sandy loam", "sl4": "Sandy loam", "sl5": "Sandy clay loam", "sl6": "Sandy clay loam", @@ -1505,9 +1505,9 @@ } }, "texture": { - "sl1": "Loamy sand", - "sl2": "Loamy sand", - "sl3": "Loamy sand", + "sl1": "Sandy loam", + "sl2": "Sandy loam", + "sl3": "Sandy loam", "sl4": "Sandy loam", "sl5": "Sandy loam", "sl6": "Sandy loam", @@ -1605,13 +1605,13 @@ } }, "texture": { - "sl1": "Unknown", - "sl2": "Unknown", - "sl3": "Unknown", - "sl4": "Unknown", - "sl5": "Unknown", - "sl6": "Unknown", - "sl7": "Unknown" + "sl1": "Clay", + "sl2": "Clay", + "sl3": "Clay", + "sl4": "Clay", + "sl5": "Clay", + "sl6": "Clay", + "sl7": "Clay" } }, { @@ -1934,10 +1934,10 @@ "rank_data_loc_group": "1", "rank_loc": "Not Displayed", "rank_loc_group": "1", - "score_data": 0.919, - "score_data_group": 0.919, - "score_data_loc": 0.523, - "score_data_loc_group": 0.523, + "score_data": 0.943, + "score_data_group": 0.943, + "score_data_loc": 0.535, + "score_data_loc_group": 0.535, "score_loc": 0.126, "score_loc_group": 0.126 }, @@ -1953,16 +1953,16 @@ "rank_data_loc_group": "2", "rank_loc": "Not Displayed", "rank_loc_group": "7", - "score_data": 0.919, - "score_data_group": 0.919, - "score_data_loc": 0.479, - "score_data_loc_group": 0.479, + "score_data": 0.943, + "score_data_group": 0.943, + "score_data_loc": 0.491, + "score_data_loc_group": 0.491, "score_loc": 0.039, "score_loc_group": 0.039 }, { "component": "Dystric planosols", - "componentData": "Missing Data", + "componentData": "Data Complete", "componentID": 148585, "name": "Dystric planosols", "not_displayed": false, @@ -1972,31 +1972,31 @@ "rank_data_loc_group": "3", "rank_loc": "11", "rank_loc_group": "11", - "score_data": 0.919, - "score_data_group": 0.919, - "score_data_loc": 0.463, - "score_data_loc_group": 0.463, + "score_data": 0.943, + "score_data_group": 0.943, + "score_data_loc": 0.476, + "score_data_loc_group": 0.476, "score_loc": 0.008, "score_loc_group": 0.008 }, { - "component": "Albic arenosols", + "component": "Eutric planosols", "componentData": "Data Complete", - "componentID": 148914, - "name": "Albic arenosols2", + "componentID": 149085, + "name": "Eutric planosols", "not_displayed": false, - "rank_data": "4", - "rank_data_group": "4", + "rank_data": "7", + "rank_data_group": "7", "rank_data_loc": "4", "rank_data_loc_group": "4", - "rank_loc": "Not Displayed", - "rank_loc_group": "3", - "score_data": 0.821, - "score_data_group": 0.821, - "score_data_loc": 0.457, - "score_data_loc_group": 0.457, - "score_loc": 0.094, - "score_loc_group": 0.094 + "rank_loc": "2", + "rank_loc_group": "2", + "score_data": 0.83, + "score_data_group": 0.83, + "score_data_loc": 0.475, + "score_data_loc_group": 0.475, + "score_loc": 0.12, + "score_loc_group": 0.12 }, { "component": "Haplic luvisols", @@ -2004,16 +2004,16 @@ "componentID": 149088, "name": "Haplic luvisols", "not_displayed": false, - "rank_data": "7", - "rank_data_group": "7", + "rank_data": "5", + "rank_data_group": "5", "rank_data_loc": "5", "rank_data_loc_group": "5", "rank_loc": "5", "rank_loc_group": "5", - "score_data": 0.753, - "score_data_group": 0.753, - "score_data_loc": 0.42, - "score_data_loc_group": 0.42, + "score_data": 0.862, + "score_data_group": 0.862, + "score_data_loc": 0.474, + "score_data_loc_group": 0.474, "score_loc": 0.087, "score_loc_group": 0.087 }, @@ -2023,38 +2023,19 @@ "componentID": 148918, "name": "Acrisols2", "not_displayed": false, - "rank_data": "6", - "rank_data_group": "6", + "rank_data": "4", + "rank_data_group": "4", "rank_data_loc": "6", "rank_data_loc_group": "6", "rank_loc": "Not Displayed", "rank_loc_group": "8", - "score_data": 0.753, - "score_data_group": 0.753, - "score_data_loc": 0.395, - "score_data_loc_group": 0.395, + "score_data": 0.862, + "score_data_group": 0.862, + "score_data_loc": 0.449, + "score_data_loc_group": 0.449, "score_loc": 0.037, "score_loc_group": 0.037 }, - { - "component": "Eutric planosols", - "componentData": "Data Complete", - "componentID": 149085, - "name": "Eutric planosols", - "not_displayed": false, - "rank_data": "10", - "rank_data_group": "10", - "rank_data_loc": "7", - "rank_data_loc_group": "7", - "rank_loc": "2", - "rank_loc_group": "2", - "score_data": 0.657, - "score_data_group": 0.657, - "score_data_loc": 0.389, - "score_data_loc_group": 0.389, - "score_loc": 0.12, - "score_loc_group": 0.12 - }, { "component": "Dystric regosols", "componentData": "Data Complete", @@ -2063,14 +2044,14 @@ "not_displayed": false, "rank_data": "8", "rank_data_group": "8", - "rank_data_loc": "8", - "rank_data_loc_group": "8", + "rank_data_loc": "7", + "rank_data_loc_group": "7", "rank_loc": "6", "rank_loc_group": "6", - "score_data": 0.722, - "score_data_group": 0.722, - "score_data_loc": 0.388, - "score_data_loc_group": 0.388, + "score_data": 0.813, + "score_data_group": 0.813, + "score_data_loc": 0.433, + "score_data_loc_group": 0.433, "score_loc": 0.054, "score_loc_group": 0.054 }, @@ -2080,16 +2061,16 @@ "componentID": 148586, "name": "Eutric cambisols", "not_displayed": false, - "rank_data": "5", - "rank_data_group": "5", - "rank_data_loc": "9", - "rank_data_loc_group": "9", + "rank_data": "6", + "rank_data_group": "6", + "rank_data_loc": "8", + "rank_data_loc_group": "8", "rank_loc": "12", "rank_loc_group": "12", - "score_data": 0.757, - "score_data_group": 0.757, - "score_data_loc": 0.382, - "score_data_loc_group": 0.382, + "score_data": 0.83, + "score_data_group": 0.83, + "score_data_loc": 0.419, + "score_data_loc_group": 0.419, "score_loc": 0.008, "score_loc_group": 0.008 }, @@ -2101,36 +2082,55 @@ "not_displayed": false, "rank_data": "9", "rank_data_group": "9", - "rank_data_loc": "10", - "rank_data_loc_group": "10", + "rank_data_loc": "9", + "rank_data_loc_group": "9", "rank_loc": "10", "rank_loc_group": "10", - "score_data": 0.722, - "score_data_group": 0.722, - "score_data_loc": 0.369, - "score_data_loc_group": 0.369, + "score_data": 0.813, + "score_data_group": 0.813, + "score_data_loc": 0.414, + "score_data_loc_group": 0.414, "score_loc": 0.016, "score_loc_group": 0.016 }, { "component": "Ferralsols", - "componentData": "No Data", + "componentData": "Data Complete", "componentID": 148959, "name": "Ferralsols", "not_displayed": false, - "rank_data": "11", - "rank_data_group": "11", - "rank_data_loc": "11", - "rank_data_loc_group": "11", + "rank_data": "10", + "rank_data_group": "10", + "rank_data_loc": "10", + "rank_data_loc_group": "10", "rank_loc": "9", "rank_loc_group": "9", - "score_data": 0.625, - "score_data_group": 0.625, - "score_data_loc": 0.326, - "score_data_loc_group": 0.326, + "score_data": 0.769, + "score_data_group": 0.769, + "score_data_loc": 0.398, + "score_data_loc_group": 0.398, "score_loc": 0.027, "score_loc_group": 0.027 }, + { + "component": "Albic arenosols", + "componentData": "Data Complete", + "componentID": 148957, + "name": "Albic arenosols", + "not_displayed": false, + "rank_data": "11", + "rank_data_group": "11", + "rank_data_loc": "11", + "rank_data_loc_group": "11", + "rank_loc": "3", + "rank_loc_group": "3", + "score_data": 0.678, + "score_data_group": 0.678, + "score_data_loc": 0.386, + "score_data_loc_group": 0.386, + "score_loc": 0.094, + "score_loc_group": 0.094 + }, { "component": "Cambic arenosols", "componentData": "Data Complete", @@ -2143,10 +2143,10 @@ "rank_data_loc_group": "12", "rank_loc": "4", "rank_loc_group": "4", - "score_data": 0.413, - "score_data_group": 0.413, - "score_data_loc": 0.25, - "score_data_loc_group": 0.25, + "score_data": 0.572, + "score_data_group": 0.572, + "score_data_loc": 0.33, + "score_data_loc_group": 0.33, "score_loc": 0.088, "score_loc_group": 0.088 }, @@ -2162,16 +2162,35 @@ "rank_data_loc_group": "1", "rank_loc": "Not Displayed", "rank_loc_group": "1", - "score_data": 0.919, - "score_data_group": 0.919, - "score_data_loc": 0.523, - "score_data_loc_group": 0.523, + "score_data": 0.943, + "score_data_group": 0.943, + "score_data_loc": 0.535, + "score_data_loc_group": 0.535, "score_loc": 0.126, "score_loc_group": 0.126 }, + { + "component": "Eutric planosols", + "componentData": "Data Complete", + "componentID": 148917, + "name": "Eutric planosols2", + "not_displayed": true, + "rank_data": "Not Displayed", + "rank_data_group": "7", + "rank_data_loc": "Not Displayed", + "rank_data_loc_group": "4", + "rank_loc": "Not Displayed", + "rank_loc_group": "2", + "score_data": 0.813, + "score_data_group": 0.83, + "score_data_loc": 0.467, + "score_data_loc_group": 0.475, + "score_loc": 0.12, + "score_loc_group": 0.12 + }, { "component": "Chromic luvisols", - "componentData": "Missing Data", + "componentData": "Data Complete", "componentID": 149086, "name": "Chromic luvisols", "not_displayed": true, @@ -2181,32 +2200,13 @@ "rank_data_loc_group": "1", "rank_loc": "1", "rank_loc_group": "1", - "score_data": 0.625, - "score_data_group": 0.919, - "score_data_loc": 0.376, - "score_data_loc_group": 0.523, + "score_data": 0.769, + "score_data_group": 0.943, + "score_data_loc": 0.448, + "score_data_loc_group": 0.535, "score_loc": 0.126, "score_loc_group": 0.126 }, - { - "component": "Eutric planosols", - "componentData": "Data Complete", - "componentID": 148917, - "name": "Eutric planosols2", - "not_displayed": true, - "rank_data": "Not Displayed", - "rank_data_group": "10", - "rank_data_loc": "Not Displayed", - "rank_data_loc_group": "7", - "rank_loc": "Not Displayed", - "rank_loc_group": "2", - "score_data": 0.622, - "score_data_group": 0.657, - "score_data_loc": 0.371, - "score_data_loc_group": 0.389, - "score_loc": 0.12, - "score_loc_group": 0.12 - }, { "component": "Haplic luvisols", "componentData": "Data Complete", @@ -2214,53 +2214,34 @@ "name": "Haplic luvisols2", "not_displayed": true, "rank_data": "Not Displayed", - "rank_data_group": "7", + "rank_data_group": "5", "rank_data_loc": "Not Displayed", "rank_data_loc_group": "5", "rank_loc": "Not Displayed", "rank_loc_group": "5", - "score_data": 0.625, - "score_data_group": 0.753, - "score_data_loc": 0.356, - "score_data_loc_group": 0.42, + "score_data": 0.769, + "score_data_group": 0.862, + "score_data_loc": 0.428, + "score_data_loc_group": 0.474, "score_loc": 0.087, "score_loc_group": 0.087 }, - { - "component": "Albic arenosols", - "componentData": "Data Complete", - "componentID": 148957, - "name": "Albic arenosols", - "not_displayed": true, - "rank_data": "Not Displayed", - "rank_data_group": "4", - "rank_data_loc": "Not Displayed", - "rank_data_loc_group": "4", - "rank_loc": "3", - "rank_loc_group": "3", - "score_data": 0.557, - "score_data_group": 0.821, - "score_data_loc": 0.326, - "score_data_loc_group": 0.457, - "score_loc": 0.094, - "score_loc_group": 0.094 - }, { "component": "Acrisols", - "componentData": "Missing Data", + "componentData": "Data Complete", "componentID": 148960, "name": "Acrisols", "not_displayed": true, "rank_data": "Not Displayed", - "rank_data_group": "6", + "rank_data_group": "4", "rank_data_loc": "Not Displayed", "rank_data_loc_group": "6", "rank_loc": "8", "rank_loc_group": "8", - "score_data": 0.587, - "score_data_group": 0.753, - "score_data_loc": 0.312, - "score_data_loc_group": 0.395, + "score_data": 0.78, + "score_data_group": 0.862, + "score_data_loc": 0.409, + "score_data_loc_group": 0.449, "score_loc": 0.037, "score_loc_group": 0.037 }, @@ -2276,12 +2257,31 @@ "rank_data_loc_group": "2", "rank_loc": "7", "rank_loc_group": "7", - "score_data": 0.557, - "score_data_group": 0.919, - "score_data_loc": 0.298, - "score_data_loc_group": 0.479, + "score_data": 0.678, + "score_data_group": 0.943, + "score_data_loc": 0.359, + "score_data_loc_group": 0.491, "score_loc": 0.039, "score_loc_group": 0.039 + }, + { + "component": "Albic arenosols", + "componentData": "Data Complete", + "componentID": 148914, + "name": "Albic arenosols2", + "not_displayed": true, + "rank_data": "Not Displayed", + "rank_data_group": "11", + "rank_data_loc": "Not Displayed", + "rank_data_loc_group": "11", + "rank_loc": "Not Displayed", + "rank_loc_group": "3", + "score_data": 0.428, + "score_data_group": 0.678, + "score_data_loc": 0.261, + "score_data_loc_group": 0.386, + "score_loc": 0.094, + "score_loc_group": 0.094 } ] } diff --git a/soil_id/tests/global/__snapshots__/test_global/test_soil_location[-2.06972,37.29].json b/soil_id/tests/global/__snapshots__/test_global/test_soil_location[-2.06972,37.29].json index d89c902..9f61bba 100644 --- a/soil_id/tests/global/__snapshots__/test_global/test_soil_location[-2.06972,37.29].json +++ b/soil_id/tests/global/__snapshots__/test_global/test_soil_location[-2.06972,37.29].json @@ -205,13 +205,13 @@ } }, "texture": { - "sl1": "Unknown", - "sl2": "Unknown", - "sl3": "Unknown", - "sl4": "Unknown", - "sl5": "Unknown", - "sl6": "Unknown", - "sl7": "Unknown" + "sl1": "Clay", + "sl2": "Clay", + "sl3": "Clay", + "sl4": "Clay", + "sl5": "Clay", + "sl6": "Clay", + "sl7": "Clay" } }, { @@ -605,13 +605,13 @@ } }, "texture": { - "sl1": "Unknown", - "sl2": "Unknown", - "sl3": "Unknown", - "sl4": "Unknown", - "sl5": "Unknown", - "sl6": "Unknown", - "sl7": "Unknown" + "sl1": "Clay", + "sl2": "Clay", + "sl3": "Clay", + "sl4": "Clay", + "sl5": "Clay", + "sl6": "Clay", + "sl7": "Clay" } }, { @@ -1105,11 +1105,11 @@ } }, "texture": { - "sl1": "Unknown", - "sl2": "Unknown", - "sl3": "Unknown", - "sl4": "Unknown", - "sl5": "Unknown", + "sl1": "Clay", + "sl2": "Clay", + "sl3": "Clay", + "sl4": "Clay", + "sl5": "Clay", "sl6": "Clay loam", "sl7": "Clay loam" } @@ -1423,23 +1423,23 @@ }, "soilRank": [ { - "component": "Ferralic arenosols", + "component": "Calcic vertisols", "componentData": "Data Complete", - "componentID": 111274, - "name": "Ferralic arenosols", + "componentID": 111275, + "name": "Calcic vertisols", "not_displayed": false, - "rank_data": "7", - "rank_data_group": "7", + "rank_data": "1", + "rank_data_group": "1", "rank_data_loc": "1", "rank_data_loc_group": "1", - "rank_loc": "1", - "rank_loc_group": "1", - "score_data": 0.649, - "score_data_group": 0.649, - "score_data_loc": 0.378, - "score_data_loc_group": 0.378, - "score_loc": 0.107, - "score_loc_group": 0.107 + "rank_loc": "6", + "rank_loc_group": "6", + "score_data": 0.825, + "score_data_group": 0.825, + "score_data_loc": 0.432, + "score_data_loc_group": 0.432, + "score_loc": 0.04, + "score_loc_group": 0.04 }, { "component": "Dystric regosols", @@ -1447,56 +1447,37 @@ "componentID": 111300, "name": "Dystric regosols", "not_displayed": false, - "rank_data": "1", - "rank_data_group": "1", + "rank_data": "2", + "rank_data_group": "2", "rank_data_loc": "2", "rank_data_loc_group": "2", "rank_loc": "4", "rank_loc_group": "4", - "score_data": 0.691, - "score_data_group": 0.691, - "score_data_loc": 0.373, - "score_data_loc_group": 0.373, + "score_data": 0.767, + "score_data_group": 0.767, + "score_data_loc": 0.411, + "score_data_loc_group": 0.411, "score_loc": 0.055, "score_loc_group": 0.055 }, { - "component": "Haplic acrisols", + "component": "Ferralic arenosols", "componentData": "Data Complete", - "componentID": 111239, - "name": "Haplic acrisols", + "componentID": 111274, + "name": "Ferralic arenosols", "not_displayed": false, - "rank_data": "3", - "rank_data_group": "3", + "rank_data": "7", + "rank_data_group": "7", "rank_data_loc": "3", "rank_data_loc_group": "3", - "rank_loc": "5", - "rank_loc_group": "5", - "score_data": 0.683, - "score_data_group": 0.683, - "score_data_loc": 0.365, - "score_data_loc_group": 0.365, - "score_loc": 0.047, - "score_loc_group": 0.047 - }, - { - "component": "Chromic cambisols", - "componentData": "Data Complete", - "componentID": 111306, - "name": "Chromic cambisols", - "not_displayed": false, - "rank_data": "6", - "rank_data_group": "6", - "rank_data_loc": "4", - "rank_data_loc_group": "4", - "rank_loc": "3", - "rank_loc_group": "3", - "score_data": 0.653, - "score_data_group": 0.653, - "score_data_loc": 0.361, - "score_data_loc_group": 0.361, - "score_loc": 0.07, - "score_loc_group": 0.07 + "rank_loc": "1", + "rank_loc_group": "1", + "score_data": 0.711, + "score_data_group": 0.711, + "score_data_loc": 0.409, + "score_data_loc_group": 0.409, + "score_loc": 0.107, + "score_loc_group": 0.107 }, { "component": "Eutric fluvisols", @@ -1504,38 +1485,57 @@ "componentID": 111317, "name": "Eutric fluvisols", "not_displayed": false, - "rank_data": "2", - "rank_data_group": "2", - "rank_data_loc": "5", - "rank_data_loc_group": "5", + "rank_data": "3", + "rank_data_group": "3", + "rank_data_loc": "4", + "rank_data_loc_group": "4", "rank_loc": "12", "rank_loc_group": "12", - "score_data": 0.691, - "score_data_group": 0.691, - "score_data_loc": 0.353, - "score_data_loc_group": 0.353, + "score_data": 0.767, + "score_data_group": 0.767, + "score_data_loc": 0.391, + "score_data_loc_group": 0.391, "score_loc": 0.015, "score_loc_group": 0.015 }, { "component": "Calcaric cambisols", - "componentData": "Missing Data", + "componentData": "Data Complete", "componentID": 111282, "name": "Calcaric cambisols", "not_displayed": false, "rank_data": "4", "rank_data_group": "4", - "rank_data_loc": "6", - "rank_data_loc_group": "6", + "rank_data_loc": "5", + "rank_data_loc_group": "5", "rank_loc": "9", "rank_loc_group": "9", - "score_data": 0.666, - "score_data_group": 0.666, - "score_data_loc": 0.349, - "score_data_loc_group": 0.349, + "score_data": 0.747, + "score_data_group": 0.747, + "score_data_loc": 0.39, + "score_data_loc_group": 0.39, "score_loc": 0.032, "score_loc_group": 0.032 }, + { + "component": "Chromic cambisols", + "componentData": "Data Complete", + "componentID": 111306, + "name": "Chromic cambisols", + "not_displayed": false, + "rank_data": "8", + "rank_data_group": "8", + "rank_data_loc": "6", + "rank_data_loc_group": "6", + "rank_loc": "3", + "rank_loc_group": "3", + "score_data": 0.7, + "score_data_group": 0.7, + "score_data_loc": 0.385, + "score_data_loc_group": 0.385, + "score_loc": 0.07, + "score_loc_group": 0.07 + }, { "component": "Calcic solonchaks", "componentData": "Data Complete", @@ -1548,31 +1548,31 @@ "rank_data_loc_group": "7", "rank_loc": "11", "rank_loc_group": "11", - "score_data": 0.666, - "score_data_group": 0.666, - "score_data_loc": 0.343, - "score_data_loc_group": 0.343, + "score_data": 0.747, + "score_data_group": 0.747, + "score_data_loc": 0.383, + "score_data_loc_group": 0.383, "score_loc": 0.019, "score_loc_group": 0.019 }, { - "component": "Eutric vertisols", - "componentData": "No Data", - "componentID": 111333, - "name": "Eutric vertisols", + "component": "Haplic acrisols", + "componentData": "Data Complete", + "componentID": 111239, + "name": "Haplic acrisols", "not_displayed": false, - "rank_data": "10", - "rank_data_group": "10", + "rank_data": "6", + "rank_data_group": "6", "rank_data_loc": "8", "rank_data_loc_group": "8", - "rank_loc": "2", - "rank_loc_group": "2", - "score_data": 0.58, - "score_data_group": 0.58, - "score_data_loc": 0.329, - "score_data_loc_group": 0.329, - "score_loc": 0.077, - "score_loc_group": 0.077 + "rank_loc": "5", + "rank_loc_group": "5", + "score_data": 0.712, + "score_data_group": 0.712, + "score_data_loc": 0.38, + "score_data_loc_group": 0.38, + "score_loc": 0.047, + "score_loc_group": 0.047 }, { "component": "Dystric cambisols", @@ -1580,41 +1580,41 @@ "componentID": 111624, "name": "Dystric cambisols2", "not_displayed": false, - "rank_data": "8", - "rank_data_group": "8", + "rank_data": "9", + "rank_data_group": "9", "rank_data_loc": "9", "rank_data_loc_group": "9", "rank_loc": "Not Displayed", "rank_loc_group": "8", - "score_data": 0.617, - "score_data_group": 0.617, - "score_data_loc": 0.326, - "score_data_loc_group": 0.326, + "score_data": 0.698, + "score_data_group": 0.698, + "score_data_loc": 0.366, + "score_data_loc_group": 0.366, "score_loc": 0.034, "score_loc_group": 0.034 }, { - "component": "Calcic vertisols", - "componentData": "No Data", - "componentID": 111275, - "name": "Calcic vertisols", + "component": "Eutric vertisols", + "componentData": "Data Complete", + "componentID": 111333, + "name": "Eutric vertisols", "not_displayed": false, - "rank_data": "9", - "rank_data_group": "9", + "rank_data": "10", + "rank_data_group": "10", "rank_data_loc": "10", "rank_data_loc_group": "10", - "rank_loc": "6", - "rank_loc_group": "6", - "score_data": 0.602, - "score_data_group": 0.602, - "score_data_loc": 0.321, - "score_data_loc_group": 0.321, - "score_loc": 0.04, - "score_loc_group": 0.04 + "rank_loc": "2", + "rank_loc_group": "2", + "score_data": 0.627, + "score_data_group": 0.627, + "score_data_loc": 0.352, + "score_data_loc_group": 0.352, + "score_loc": 0.077, + "score_loc_group": 0.077 }, { "component": "Chromic luvisols", - "componentData": "Missing Data", + "componentData": "Data Complete", "componentID": 111210, "name": "Chromic luvisols", "not_displayed": false, @@ -1624,10 +1624,10 @@ "rank_data_loc_group": "11", "rank_loc": "7", "rank_loc_group": "7", - "score_data": 0.492, - "score_data_group": 0.492, - "score_data_loc": 0.264, - "score_data_loc_group": 0.264, + "score_data": 0.529, + "score_data_group": 0.529, + "score_data_loc": 0.282, + "score_data_loc_group": 0.282, "score_loc": 0.036, "score_loc_group": 0.036 }, @@ -1643,10 +1643,10 @@ "rank_data_loc_group": "12", "rank_loc": "10", "rank_loc_group": "10", - "score_data": 0.326, - "score_data_group": 0.326, - "score_data_loc": 0.177, - "score_data_loc_group": 0.177, + "score_data": 0.397, + "score_data_group": 0.397, + "score_data_loc": 0.213, + "score_data_loc_group": 0.213, "score_loc": 0.028, "score_loc_group": 0.028 }, @@ -1657,15 +1657,15 @@ "name": "Dystric cambisols", "not_displayed": true, "rank_data": "Not Displayed", - "rank_data_group": "8", + "rank_data_group": "9", "rank_data_loc": "Not Displayed", "rank_data_loc_group": "9", "rank_loc": "8", "rank_loc_group": "8", - "score_data": 0.58, - "score_data_group": 0.617, - "score_data_loc": 0.307, - "score_data_loc_group": 0.326, + "score_data": 0.627, + "score_data_group": 0.698, + "score_data_loc": 0.33, + "score_data_loc_group": 0.366, "score_loc": 0.034, "score_loc_group": 0.034 }, @@ -1681,10 +1681,10 @@ "rank_data_loc_group": "11", "rank_loc": "Not Displayed", "rank_loc_group": "7", - "score_data": 0.123, - "score_data_group": 0.492, - "score_data_loc": 0.079, - "score_data_loc_group": 0.264, + "score_data": 0.22, + "score_data_group": 0.529, + "score_data_loc": 0.128, + "score_data_loc_group": 0.282, "score_loc": 0.036, "score_loc_group": 0.036 } diff --git a/soil_id/tests/global/__snapshots__/test_global/test_soil_location[-24.53333,33.36667].json b/soil_id/tests/global/__snapshots__/test_global/test_soil_location[-24.53333,33.36667].json index c1161f5..bc32a36 100644 --- a/soil_id/tests/global/__snapshots__/test_global/test_soil_location[-24.53333,33.36667].json +++ b/soil_id/tests/global/__snapshots__/test_global/test_soil_location[-24.53333,33.36667].json @@ -905,9 +905,9 @@ } }, "texture": { - "sl1": "Loamy sand", - "sl2": "Loamy sand", - "sl3": "Loamy sand", + "sl1": "Sandy loam", + "sl2": "Sandy loam", + "sl3": "Sandy loam", "sl4": "Sandy loam", "sl5": "Sandy clay loam", "sl6": "Sandy clay loam", @@ -1105,13 +1105,13 @@ } }, "texture": { - "sl1": "Unknown", - "sl2": "Unknown", - "sl3": "Unknown", - "sl4": "Unknown", - "sl5": "Unknown", - "sl6": "Unknown", - "sl7": "Unknown" + "sl1": "Clay", + "sl2": "Clay", + "sl3": "Clay", + "sl4": "Clay", + "sl5": "Clay", + "sl6": "Clay", + "sl7": "Clay" } }, { @@ -1234,10 +1234,10 @@ "rank_data_loc_group": "1", "rank_loc": "2", "rank_loc_group": "2", - "score_data": 0.9, - "score_data_group": 0.9, - "score_data_loc": 0.539, - "score_data_loc_group": 0.539, + "score_data": 0.924, + "score_data_group": 0.924, + "score_data_loc": 0.551, + "score_data_loc_group": 0.551, "score_loc": 0.178, "score_loc_group": 0.178 }, @@ -1253,10 +1253,10 @@ "rank_data_loc_group": "2", "rank_loc": "4", "rank_loc_group": "4", - "score_data": 0.9, - "score_data_group": 0.9, - "score_data_loc": 0.514, - "score_data_loc_group": 0.514, + "score_data": 0.924, + "score_data_group": 0.924, + "score_data_loc": 0.526, + "score_data_loc_group": 0.526, "score_loc": 0.127, "score_loc_group": 0.127 }, @@ -1272,10 +1272,10 @@ "rank_data_loc_group": "3", "rank_loc": "5", "rank_loc_group": "5", - "score_data": 0.9, - "score_data_group": 0.9, - "score_data_loc": 0.505, - "score_data_loc_group": 0.505, + "score_data": 0.924, + "score_data_group": 0.924, + "score_data_loc": 0.516, + "score_data_loc_group": 0.516, "score_loc": 0.109, "score_loc_group": 0.109 }, @@ -1291,13 +1291,32 @@ "rank_data_loc_group": "4", "rank_loc": "6", "rank_loc_group": "6", - "score_data": 0.9, - "score_data_group": 0.9, - "score_data_loc": 0.5, - "score_data_loc_group": 0.5, + "score_data": 0.924, + "score_data_group": 0.924, + "score_data_loc": 0.512, + "score_data_loc_group": 0.512, "score_loc": 0.1, "score_loc_group": 0.1 }, + { + "component": "Salic fluvisols", + "componentData": "Data Complete", + "componentID": 113476, + "name": "Salic fluvisols", + "not_displayed": false, + "rank_data": "6", + "rank_data_group": "6", + "rank_data_loc": "5", + "rank_data_loc_group": "5", + "rank_loc": "1", + "rank_loc_group": "1", + "score_data": 0.818, + "score_data_group": 0.818, + "score_data_loc": 0.5, + "score_data_loc_group": 0.5, + "score_loc": 0.182, + "score_loc_group": 0.182 + }, { "component": "Eutric planosols", "componentData": "Data Complete", @@ -1306,92 +1325,73 @@ "not_displayed": false, "rank_data": "2", "rank_data_group": "2", - "rank_data_loc": "5", - "rank_data_loc_group": "5", + "rank_data_loc": "6", + "rank_data_loc_group": "6", "rank_loc": "7", "rank_loc_group": "7", - "score_data": 0.9, - "score_data_group": 0.9, - "score_data_loc": 0.487, - "score_data_loc_group": 0.487, + "score_data": 0.924, + "score_data_group": 0.924, + "score_data_loc": 0.498, + "score_data_loc_group": 0.498, "score_loc": 0.073, "score_loc_group": 0.073 }, { - "component": "Eutric fluvisols", - "componentData": "Data Complete", - "componentID": 113211, - "name": "Eutric fluvisols2", - "not_displayed": false, - "rank_data": "6", - "rank_data_group": "6", - "rank_data_loc": "6", - "rank_data_loc_group": "6", - "rank_loc": "Not Displayed", - "rank_loc_group": "3", - "score_data": 0.813, - "score_data_group": 0.813, - "score_data_loc": 0.47, - "score_data_loc_group": 0.47, - "score_loc": 0.127, - "score_loc_group": 0.127 - }, - { - "component": "Salic fluvisols", + "component": "Gleyic solonetz", "componentData": "Data Complete", - "componentID": 113476, - "name": "Salic fluvisols", + "componentID": 113054, + "name": "Gleyic solonetz", "not_displayed": false, "rank_data": "7", "rank_data_group": "7", "rank_data_loc": "7", "rank_data_loc_group": "7", - "rank_loc": "1", - "rank_loc_group": "1", - "score_data": 0.756, - "score_data_group": 0.756, - "score_data_loc": 0.469, - "score_data_loc_group": 0.469, - "score_loc": 0.182, - "score_loc_group": 0.182 + "rank_loc": "8", + "rank_loc_group": "8", + "score_data": 0.697, + "score_data_group": 0.697, + "score_data_loc": 0.376, + "score_data_loc_group": 0.376, + "score_loc": 0.055, + "score_loc_group": 0.055 }, { - "component": "Gleyic solonetz", + "component": "Umbric gleysols", "componentData": "Data Complete", - "componentID": 113054, - "name": "Gleyic solonetz", + "componentID": 113478, + "name": "Umbric gleysols", "not_displayed": false, "rank_data": "8", "rank_data_group": "8", "rank_data_loc": "8", "rank_data_loc_group": "8", - "rank_loc": "8", - "rank_loc_group": "8", - "score_data": 0.576, - "score_data_group": 0.576, - "score_data_loc": 0.315, - "score_data_loc_group": 0.315, - "score_loc": 0.055, - "score_loc_group": 0.055 + "rank_loc": "9", + "rank_loc_group": "9", + "score_data": 0.697, + "score_data_group": 0.697, + "score_data_loc": 0.367, + "score_data_loc_group": 0.367, + "score_loc": 0.036, + "score_loc_group": 0.036 }, { - "component": "Umbric gleysols", - "componentData": "Missing Data", - "componentID": 113478, - "name": "Umbric gleysols", + "component": "Eutric fluvisols", + "componentData": "Data Complete", + "componentID": 113479, + "name": "Eutric fluvisols", "not_displayed": false, "rank_data": "9", "rank_data_group": "9", "rank_data_loc": "9", "rank_data_loc_group": "9", - "rank_loc": "9", - "rank_loc_group": "9", - "score_data": 0.576, - "score_data_group": 0.576, - "score_data_loc": 0.306, - "score_data_loc_group": 0.306, - "score_loc": 0.036, - "score_loc_group": 0.036 + "rank_loc": "3", + "rank_loc_group": "3", + "score_data": 0.534, + "score_data_group": 0.534, + "score_data_loc": 0.331, + "score_data_loc_group": 0.331, + "score_loc": 0.127, + "score_loc_group": 0.127 }, { "component": "Gleyic arenosols", @@ -1405,10 +1405,10 @@ "rank_data_loc_group": "10", "rank_loc": "10", "rank_loc_group": "10", - "score_data": 0.244, - "score_data_group": 0.244, - "score_data_loc": 0.129, - "score_data_loc_group": 0.129, + "score_data": 0.534, + "score_data_group": 0.534, + "score_data_loc": 0.274, + "score_data_loc_group": 0.274, "score_loc": 0.013, "score_loc_group": 0.013 }, @@ -1424,29 +1424,29 @@ "rank_data_loc_group": "1", "rank_loc": "Not Displayed", "rank_loc_group": "2", - "score_data": 0.576, - "score_data_group": 0.9, - "score_data_loc": 0.377, - "score_data_loc_group": 0.539, + "score_data": 0.697, + "score_data_group": 0.924, + "score_data_loc": 0.437, + "score_data_loc_group": 0.551, "score_loc": 0.178, "score_loc_group": 0.178 }, { "component": "Eutric fluvisols", "componentData": "Data Complete", - "componentID": 113479, - "name": "Eutric fluvisols", + "componentID": 113211, + "name": "Eutric fluvisols2", "not_displayed": true, "rank_data": "Not Displayed", - "rank_data_group": "6", + "rank_data_group": "9", "rank_data_loc": "Not Displayed", - "rank_data_loc_group": "6", - "rank_loc": "3", + "rank_data_loc_group": "9", + "rank_loc": "Not Displayed", "rank_loc_group": "3", - "score_data": 0.244, - "score_data_group": 0.813, - "score_data_loc": 0.186, - "score_data_loc_group": 0.47, + "score_data": 0.182, + "score_data_group": 0.534, + "score_data_loc": 0.155, + "score_data_loc_group": 0.331, "score_loc": 0.127, "score_loc_group": 0.127 } diff --git a/soil_id/tests/global/__snapshots__/test_global/test_soil_location[15.73333,120.31667].json b/soil_id/tests/global/__snapshots__/test_global/test_soil_location[15.73333,120.31667].json index 1b764f7..5a14292 100644 --- a/soil_id/tests/global/__snapshots__/test_global/test_soil_location[15.73333,120.31667].json +++ b/soil_id/tests/global/__snapshots__/test_global/test_soil_location[15.73333,120.31667].json @@ -109,9 +109,9 @@ "sl2": "Sandy clay loam", "sl3": "Sandy clay loam", "sl4": "Clay loam", - "sl5": "Unknown", - "sl6": "Unknown", - "sl7": "Unknown" + "sl5": "Clay", + "sl6": "Clay", + "sl7": "Clay" } }, { @@ -1173,13 +1173,13 @@ } }, "texture": { - "sl1": "Unknown", - "sl2": "Unknown", - "sl3": "Unknown", - "sl4": "Unknown", - "sl5": "Unknown", - "sl6": "Unknown", - "sl7": "Unknown" + "sl1": "Clay", + "sl2": "Clay", + "sl3": "Clay", + "sl4": "Clay", + "sl5": "Clay", + "sl6": "Clay", + "sl7": "Clay" } } ] @@ -1192,7 +1192,7 @@ "soilRank": [ { "component": "Haplic nitisols", - "componentData": "Missing Data", + "componentData": "Data Complete", "componentID": 141607, "name": "Haplic nitisols", "not_displayed": false, @@ -1202,10 +1202,10 @@ "rank_data_loc_group": "1", "rank_loc": 1, "rank_loc_group": 1, - "score_data": 0.475, - "score_data_group": 0.475, - "score_data_loc": 0.323, - "score_data_loc_group": 0.323, + "score_data": 0.648, + "score_data_group": 0.648, + "score_data_loc": 0.409, + "score_data_loc_group": 0.409, "score_loc": 0.17, "score_loc_group": 0.17 }, @@ -1215,35 +1215,35 @@ "componentID": 142290, "name": "Eutric cambisols", "not_displayed": false, - "rank_data": "3", - "rank_data_group": "3", + "rank_data": "2", + "rank_data_group": "2", "rank_data_loc": "2", "rank_data_loc_group": "2", "rank_loc": 2, "rank_loc_group": 2, - "score_data": 0.515, - "score_data_group": 0.515, - "score_data_loc": 0.317, - "score_data_loc_group": 0.317, + "score_data": 0.687, + "score_data_group": 0.687, + "score_data_loc": 0.404, + "score_data_loc_group": 0.404, "score_loc": 0.12, "score_loc_group": 0.12 }, { "component": "Gleyic cambisols", - "componentData": "Missing Data", + "componentData": "Data Complete", "componentID": 142288, "name": "Gleyic cambisols", "not_displayed": false, - "rank_data": "4", - "rank_data_group": "4", + "rank_data": "3", + "rank_data_group": "3", "rank_data_loc": "3", "rank_data_loc_group": "3", "rank_loc": 4, "rank_loc_group": 4, - "score_data": 0.515, - "score_data_group": 0.515, - "score_data_loc": 0.317, - "score_data_loc_group": 0.317, + "score_data": 0.687, + "score_data_group": 0.687, + "score_data_loc": 0.404, + "score_data_loc_group": 0.404, "score_loc": 0.12, "score_loc_group": 0.12 }, @@ -1253,54 +1253,35 @@ "componentID": 142291, "name": "Dystric cambisols", "not_displayed": false, - "rank_data": "2", - "rank_data_group": "2", + "rank_data": "1", + "rank_data_group": "1", "rank_data_loc": "4", "rank_data_loc_group": "4", "rank_loc": 5, "rank_loc_group": 5, - "score_data": 0.515, - "score_data_group": 0.515, - "score_data_loc": 0.307, - "score_data_loc_group": 0.307, + "score_data": 0.687, + "score_data_group": 0.687, + "score_data_loc": 0.394, + "score_data_loc_group": 0.394, "score_loc": 0.1, "score_loc_group": 0.1 }, - { - "component": "Gleysols", - "componentData": "Missing Data", - "componentID": 142293, - "name": "Gleysols", - "not_displayed": false, - "rank_data": "1", - "rank_data_group": "1", - "rank_data_loc": "5", - "rank_data_loc_group": "5", - "rank_loc": 10, - "rank_loc_group": 10, - "score_data": 0.566, - "score_data_group": 0.566, - "score_data_loc": 0.293, - "score_data_loc_group": 0.293, - "score_loc": 0.02, - "score_loc_group": 0.02 - }, { "component": "Eutric fluvisols", "componentData": "Data Complete", "componentID": 142740, "name": "Eutric fluvisols", "not_displayed": false, - "rank_data": "7", - "rank_data_group": "7", - "rank_data_loc": "6", - "rank_data_loc_group": "6", + "rank_data": "6", + "rank_data_group": "6", + "rank_data_loc": "5", + "rank_data_loc_group": "5", "rank_loc": 7, "rank_loc_group": 7, - "score_data": 0.464, - "score_data_group": 0.464, - "score_data_loc": 0.267, - "score_data_loc_group": 0.267, + "score_data": 0.636, + "score_data_group": 0.636, + "score_data_loc": 0.353, + "score_data_loc_group": 0.353, "score_loc": 0.07, "score_loc_group": 0.07 }, @@ -1310,76 +1291,76 @@ "componentID": 141609, "name": "Haplic acrisols", "not_displayed": false, - "rank_data": "9", - "rank_data_group": "9", - "rank_data_loc": "7", - "rank_data_loc_group": "7", + "rank_data": "8", + "rank_data_group": "8", + "rank_data_loc": "6", + "rank_data_loc_group": "6", "rank_loc": 3, "rank_loc_group": 3, - "score_data": 0.402, - "score_data_group": 0.402, - "score_data_loc": 0.261, - "score_data_loc_group": 0.261, + "score_data": 0.575, + "score_data_group": 0.575, + "score_data_loc": 0.347, + "score_data_loc_group": 0.347, "score_loc": 0.12, "score_loc_group": 0.12 }, { "component": "Eutric gleysols", - "componentData": "Missing Data", + "componentData": "Data Complete", "componentID": 142741, "name": "Eutric gleysols", "not_displayed": false, - "rank_data": "8", - "rank_data_group": "8", - "rank_data_loc": "8", - "rank_data_loc_group": "8", + "rank_data": "4", + "rank_data_group": "4", + "rank_data_loc": "7", + "rank_data_loc_group": "7", "rank_loc": 9, "rank_loc_group": 9, - "score_data": 0.451, - "score_data_group": 0.451, - "score_data_loc": 0.24, - "score_data_loc_group": 0.24, + "score_data": 0.653, + "score_data_group": 0.653, + "score_data_loc": 0.342, + "score_data_loc_group": 0.342, "score_loc": 0.03, "score_loc_group": 0.03 }, + { + "component": "Gleysols", + "componentData": "Data Complete", + "componentID": 142293, + "name": "Gleysols", + "not_displayed": false, + "rank_data": "7", + "rank_data_group": "7", + "rank_data_loc": "8", + "rank_data_loc_group": "8", + "rank_loc": 10, + "rank_loc_group": 10, + "score_data": 0.587, + "score_data_group": 0.587, + "score_data_loc": 0.303, + "score_data_loc_group": 0.303, + "score_loc": 0.02, + "score_loc_group": 0.02 + }, { "component": "Humic acrisols", - "componentData": "No Data", + "componentData": "Data Complete", "componentID": 142155, "name": "Humic acrisols", "not_displayed": false, - "rank_data": "10", - "rank_data_group": "10", + "rank_data": "9", + "rank_data_group": "9", "rank_data_loc": "9", "rank_data_loc_group": "9", "rank_loc": 12, "rank_loc_group": 12, - "score_data": 0.337, - "score_data_group": 0.337, - "score_data_loc": 0.174, - "score_data_loc_group": 0.174, + "score_data": 0.508, + "score_data_group": 0.508, + "score_data_loc": 0.259, + "score_data_loc_group": 0.259, "score_loc": 0.01, "score_loc_group": 0.01 }, - { - "component": "Haplic luvisols", - "componentData": "Data Complete", - "componentID": 141610, - "name": "Haplic luvisols", - "not_displayed": false, - "rank_data": "11", - "rank_data_group": "11", - "rank_data_loc": "10", - "rank_data_loc_group": "10", - "rank_loc": 8, - "rank_loc_group": 8, - "score_data": 0.208, - "score_data_group": 0.208, - "score_data_loc": 0.124, - "score_data_loc_group": 0.124, - "score_loc": 0.04, - "score_loc_group": 0.04 - }, { "component": "Gleyic luvisols", "componentData": "Data Complete", @@ -1388,31 +1369,50 @@ "not_displayed": false, "rank_data": "12", "rank_data_group": "12", - "rank_data_loc": "11", - "rank_data_loc_group": "11", + "rank_data_loc": "10", + "rank_data_loc_group": "10", "rank_loc": 6, "rank_loc_group": 6, - "score_data": 0.157, - "score_data_group": 0.157, - "score_data_loc": 0.118, - "score_data_loc_group": 0.118, + "score_data": 0.379, + "score_data_group": 0.379, + "score_data_loc": 0.23, + "score_data_loc_group": 0.23, "score_loc": 0.08, "score_loc_group": 0.08 }, + { + "component": "Haplic luvisols", + "componentData": "Data Complete", + "componentID": 141610, + "name": "Haplic luvisols", + "not_displayed": false, + "rank_data": "11", + "rank_data_group": "11", + "rank_data_loc": "11", + "rank_data_loc_group": "11", + "rank_loc": 8, + "rank_loc_group": 8, + "score_data": 0.398, + "score_data_group": 0.398, + "score_data_loc": 0.219, + "score_data_loc_group": 0.219, + "score_loc": 0.04, + "score_loc_group": 0.04 + }, { "component": "Lithic leptosols", "componentData": "Missing Data", "componentID": 142152, "name": "Lithic leptosols", "not_displayed": false, - "rank_data": "6", - "rank_data_group": "6", + "rank_data": "10", + "rank_data_group": "10", "rank_data_loc": "12", "rank_data_loc_group": "12", "rank_loc": 11, "rank_loc_group": 11, - "score_data": 0.465, - "score_data_group": 0.465, + "score_data": 0.471, + "score_data_group": 0.471, "score_data_loc": 0.001, "score_data_loc_group": 0.001, "score_loc": 0.02, diff --git a/soil_id/tests/global/__snapshots__/test_global/test_soil_location[37.33333,-5.4].json b/soil_id/tests/global/__snapshots__/test_global/test_soil_location[37.33333,-5.4].json index 0a75ce6..1740c1a 100644 --- a/soil_id/tests/global/__snapshots__/test_global/test_soil_location[37.33333,-5.4].json +++ b/soil_id/tests/global/__snapshots__/test_global/test_soil_location[37.33333,-5.4].json @@ -105,13 +105,13 @@ } }, "texture": { - "sl1": "Unknown", - "sl2": "Unknown", - "sl3": "Unknown", - "sl4": "Unknown", - "sl5": "Unknown", - "sl6": "Unknown", - "sl7": "Unknown" + "sl1": "Clay", + "sl2": "Clay", + "sl3": "Clay", + "sl4": "Clay", + "sl5": "Clay", + "sl6": "Clay", + "sl7": "Clay" } }, { @@ -1278,16 +1278,16 @@ "rank_data_loc_group": "1", "rank_loc": "Not Displayed", "rank_loc_group": "2", - "score_data": 0.836, - "score_data_group": 0.836, - "score_data_loc": 0.552, - "score_data_loc_group": 0.552, + "score_data": 0.842, + "score_data_group": 0.842, + "score_data_loc": 0.555, + "score_data_loc_group": 0.555, "score_loc": 0.268, "score_loc_group": 0.268 }, { "component": "Eutric vertisols", - "componentData": "No Data", + "componentData": "Data Complete", "componentID": 157428, "name": "Eutric vertisols", "not_displayed": false, @@ -1297,10 +1297,10 @@ "rank_data_loc_group": "2", "rank_loc": "1", "rank_loc_group": "1", - "score_data": 0.699, - "score_data_group": 0.699, - "score_data_loc": 0.489, - "score_data_loc_group": 0.489, + "score_data": 0.774, + "score_data_group": 0.774, + "score_data_loc": 0.526, + "score_data_loc_group": 0.526, "score_loc": 0.278, "score_loc_group": 0.278 }, @@ -1335,10 +1335,10 @@ "rank_data_loc_group": "4", "rank_loc": "3", "rank_loc_group": "3", - "score_data": 0.699, - "score_data_group": 0.699, - "score_data_loc": 0.389, - "score_data_loc_group": 0.389, + "score_data": 0.774, + "score_data_group": 0.774, + "score_data_loc": 0.426, + "score_data_loc_group": 0.426, "score_loc": 0.078, "score_loc_group": 0.078 }, @@ -1354,10 +1354,10 @@ "rank_data_loc_group": "5", "rank_loc": "4", "rank_loc_group": "4", - "score_data": 0.699, - "score_data_group": 0.699, - "score_data_loc": 0.382, - "score_data_loc_group": 0.382, + "score_data": 0.774, + "score_data_group": 0.774, + "score_data_loc": 0.42, + "score_data_loc_group": 0.42, "score_loc": 0.065, "score_loc_group": 0.065 }, @@ -1367,16 +1367,16 @@ "componentID": 157400, "name": "Calcaric fluvisols", "not_displayed": false, - "rank_data": "7", - "rank_data_group": "7", + "rank_data": "8", + "rank_data_group": "8", "rank_data_loc": "6", "rank_data_loc_group": "6", "rank_loc": "5", "rank_loc_group": "5", - "score_data": 0.625, - "score_data_group": 0.625, - "score_data_loc": 0.341, - "score_data_loc_group": 0.341, + "score_data": 0.7, + "score_data_group": 0.7, + "score_data_loc": 0.379, + "score_data_loc_group": 0.379, "score_loc": 0.057, "score_loc_group": 0.057 }, @@ -1386,16 +1386,16 @@ "componentID": 157548, "name": "Gleyic luvisols", "not_displayed": false, - "rank_data": "8", - "rank_data_group": "8", + "rank_data": "9", + "rank_data_group": "9", "rank_data_loc": "7", "rank_data_loc_group": "7", "rank_loc": "8", "rank_loc_group": "8", - "score_data": 0.625, - "score_data_group": 0.625, - "score_data_loc": 0.338, - "score_data_loc_group": 0.338, + "score_data": 0.7, + "score_data_group": 0.7, + "score_data_loc": 0.375, + "score_data_loc_group": 0.375, "score_loc": 0.05, "score_loc_group": 0.05 }, @@ -1411,16 +1411,16 @@ "rank_data_loc_group": "8", "rank_loc": "6", "rank_loc_group": "6", - "score_data": 0.412, - "score_data_group": 0.412, - "score_data_loc": 0.235, - "score_data_loc_group": 0.235, + "score_data": 0.565, + "score_data_group": 0.565, + "score_data_loc": 0.311, + "score_data_loc_group": 0.311, "score_loc": 0.057, "score_loc_group": 0.057 }, { "component": "Dystric planosols", - "componentData": "Missing Data", + "componentData": "Data Complete", "componentID": 157549, "name": "Dystric planosols", "not_displayed": false, @@ -1430,10 +1430,10 @@ "rank_data_loc_group": "9", "rank_loc": "10", "rank_loc_group": "10", - "score_data": 0.421, - "score_data_group": 0.421, - "score_data_loc": 0.225, - "score_data_loc_group": 0.225, + "score_data": 0.584, + "score_data_group": 0.584, + "score_data_loc": 0.306, + "score_data_loc_group": 0.306, "score_loc": 0.029, "score_loc_group": 0.029 }, @@ -1443,14 +1443,14 @@ "componentID": 157535, "name": "Lithic leptosols", "not_displayed": false, - "rank_data": "9", - "rank_data_group": "9", + "rank_data": "7", + "rank_data_group": "7", "rank_data_loc": "10", "rank_data_loc_group": "10", "rank_loc": "7", "rank_loc_group": "7", - "score_data": 0.49, - "score_data_group": 0.49, + "score_data": 0.72, + "score_data_group": 0.72, "score_data_loc": 0.001, "score_data_loc_group": 0.001, "score_loc": 0.057, @@ -1468,13 +1468,32 @@ "rank_data_loc_group": "11", "rank_loc": "11", "rank_loc_group": "11", - "score_data": 0.711, - "score_data_group": 0.711, + "score_data": 0.786, + "score_data_group": 0.786, "score_data_loc": 0.001, "score_data_loc_group": 0.001, "score_loc": 0.018, "score_loc_group": 0.018 }, + { + "component": "Calcaric cambisols", + "componentData": "Data Complete", + "componentID": 157533, + "name": "Calcaric cambisols", + "not_displayed": true, + "rank_data": "Not Displayed", + "rank_data_group": "2", + "rank_data_loc": "Not Displayed", + "rank_data_loc_group": "1", + "rank_loc": "2", + "rank_loc_group": "2", + "score_data": 0.779, + "score_data_group": 0.842, + "score_data_loc": 0.523, + "score_data_loc_group": 0.555, + "score_loc": 0.268, + "score_loc_group": 0.268 + }, { "component": "Calcaric regosols", "componentData": "Data Complete", @@ -1487,31 +1506,12 @@ "rank_data_loc_group": "3", "rank_loc": "9", "rank_loc_group": "9", - "score_data": 0.864, + "score_data": 0.503, "score_data_group": 0.894, - "score_data_loc": 0.453, + "score_data_loc": 0.273, "score_data_loc_group": 0.468, "score_loc": 0.043, "score_loc_group": 0.043 - }, - { - "component": "Calcaric cambisols", - "componentData": "Data Complete", - "componentID": 157533, - "name": "Calcaric cambisols", - "not_displayed": true, - "rank_data": "Not Displayed", - "rank_data_group": "2", - "rank_data_loc": "Not Displayed", - "rank_data_loc_group": "1", - "rank_loc": "2", - "rank_loc_group": "2", - "score_data": 0.525, - "score_data_group": 0.836, - "score_data_loc": 0.397, - "score_data_loc_group": 0.552, - "score_loc": 0.268, - "score_loc_group": 0.268 } ] } diff --git a/soil_id/tests/global/__snapshots__/test_global/test_soil_location[48.71667,126.13333].json b/soil_id/tests/global/__snapshots__/test_global/test_soil_location[48.71667,126.13333].json index 0379f19..c43b75b 100644 --- a/soil_id/tests/global/__snapshots__/test_global/test_soil_location[48.71667,126.13333].json +++ b/soil_id/tests/global/__snapshots__/test_global/test_soil_location[48.71667,126.13333].json @@ -743,7 +743,7 @@ }, { "component": "Gleyic phaeozems", - "componentData": "Missing Data", + "componentData": "Data Complete", "componentID": 103605, "name": "Gleyic phaeozems", "not_displayed": false, diff --git a/soil_id/tests/global/__snapshots__/test_global/test_soil_location[7.3318,-1.4631].json b/soil_id/tests/global/__snapshots__/test_global/test_soil_location[7.3318,-1.4631].json index 2e480b0..955bd94 100644 --- a/soil_id/tests/global/__snapshots__/test_global/test_soil_location[7.3318,-1.4631].json +++ b/soil_id/tests/global/__snapshots__/test_global/test_soil_location[7.3318,-1.4631].json @@ -1200,7 +1200,7 @@ "soilRank": [ { "component": "Eutric gleysols", - "componentData": "Missing Data", + "componentData": "Data Complete", "componentID": 134228, "name": "Eutric gleysols", "not_displayed": false, @@ -1219,7 +1219,7 @@ }, { "component": "Dystric gleysols", - "componentData": "Missing Data", + "componentData": "Data Complete", "componentID": 133232, "name": "Dystric gleysols", "not_displayed": false, @@ -1257,7 +1257,7 @@ }, { "component": "Dystric planosols", - "componentData": "Missing Data", + "componentData": "Data Complete", "componentID": 133240, "name": "Dystric planosols", "not_displayed": false, @@ -1314,7 +1314,7 @@ }, { "component": "Ferric acrisols", - "componentData": "Missing Data", + "componentData": "Data Complete", "componentID": 133233, "name": "Ferric acrisols", "not_displayed": false, @@ -1390,7 +1390,7 @@ }, { "component": "Dystric plinthosols", - "componentData": "Missing Data", + "componentData": "Data Complete", "componentID": 133239, "name": "Dystric plinthosols", "not_displayed": false, diff --git a/soil_id/tests/global/__snapshots__/test_global/test_soil_location[8.48333,76.95].json b/soil_id/tests/global/__snapshots__/test_global/test_soil_location[8.48333,76.95].json index c74fbfb..c4ea068 100644 --- a/soil_id/tests/global/__snapshots__/test_global/test_soil_location[8.48333,76.95].json +++ b/soil_id/tests/global/__snapshots__/test_global/test_soil_location[8.48333,76.95].json @@ -409,9 +409,9 @@ "sl2": "Sandy clay loam", "sl3": "Sandy clay loam", "sl4": "Clay loam", - "sl5": "Unknown", - "sl6": "Unknown", - "sl7": "Unknown" + "sl5": "Clay", + "sl6": "Clay", + "sl7": "Clay" } }, { @@ -1090,16 +1090,35 @@ "model": "v2" }, "soilRank": [ + { + "component": "Haplic solonchaks", + "componentData": "Data Complete", + "componentID": 136284, + "name": "Haplic solonchaks", + "not_displayed": false, + "rank_data": "1", + "rank_data_group": "1", + "rank_data_loc": "1", + "rank_data_loc_group": "1", + "rank_loc": 9, + "rank_loc_group": 9, + "score_data": 0.804, + "score_data_group": 0.804, + "score_data_loc": 0.43, + "score_data_loc_group": 0.43, + "score_loc": 0.055, + "score_loc_group": 0.055 + }, { "component": "Haplic nitisols", - "componentData": "Missing Data", + "componentData": "Data Complete", "componentID": 136007, "name": "Haplic nitisols", "not_displayed": false, - "rank_data": "2", - "rank_data_group": "2", - "rank_data_loc": "1", - "rank_data_loc_group": "1", + "rank_data": "4", + "rank_data_group": "4", + "rank_data_loc": "2", + "rank_data_loc_group": "2", "rank_loc": 4, "rank_loc_group": 4, "score_data": 0.524, @@ -1109,16 +1128,35 @@ "score_loc": 0.112, "score_loc_group": 0.112 }, + { + "component": "Albic arenosols", + "componentData": "Data Complete", + "componentID": 136286, + "name": "Albic arenosols", + "not_displayed": false, + "rank_data": "2", + "rank_data_group": "2", + "rank_data_loc": "3", + "rank_data_loc_group": "3", + "rank_loc": 7, + "rank_loc_group": 7, + "score_data": 0.577, + "score_data_group": 0.577, + "score_data_loc": 0.316, + "score_data_loc_group": 0.316, + "score_loc": 0.055, + "score_loc_group": 0.055 + }, { "component": "Calcaric regosols", "componentData": "Data Complete", "componentID": 136285, "name": "Calcaric regosols", "not_displayed": false, - "rank_data": "1", - "rank_data_group": "1", - "rank_data_loc": "2", - "rank_data_loc_group": "2", + "rank_data": "3", + "rank_data_group": "3", + "rank_data_loc": "4", + "rank_data_loc_group": "4", "rank_loc": 8, "rank_loc_group": 8, "score_data": 0.568, @@ -1130,14 +1168,14 @@ }, { "component": "Ferric acrisols", - "componentData": "Missing Data", + "componentData": "Data Complete", "componentID": 136010, "name": "Ferric acrisols", "not_displayed": false, - "rank_data": "3", - "rank_data_group": "3", - "rank_data_loc": "3", - "rank_data_loc_group": "3", + "rank_data": "5", + "rank_data_group": "5", + "rank_data_loc": "5", + "rank_data_loc_group": "5", "rank_loc": 6, "rank_loc_group": 6, "score_data": 0.484, @@ -1149,14 +1187,14 @@ }, { "component": "Gleysols", - "componentData": "Missing Data", + "componentData": "Data Complete", "componentID": 136282, "name": "Gleysols", "not_displayed": false, "rank_data": "8", "rank_data_group": "8", - "rank_data_loc": "4", - "rank_data_loc_group": "4", + "rank_data_loc": "6", + "rank_data_loc_group": "6", "rank_loc": 2, "rank_loc_group": 2, "score_data": 0.401, @@ -1166,35 +1204,16 @@ "score_loc": 0.155, "score_loc_group": 0.155 }, - { - "component": "Albic arenosols", - "componentData": "Data Complete", - "componentID": 136286, - "name": "Albic arenosols", - "not_displayed": false, - "rank_data": "4", - "rank_data_group": "4", - "rank_data_loc": "5", - "rank_data_loc_group": "5", - "rank_loc": 7, - "rank_loc_group": 7, - "score_data": 0.444, - "score_data_group": 0.444, - "score_data_loc": 0.25, - "score_data_loc_group": 0.25, - "score_loc": 0.055, - "score_loc_group": 0.055 - }, { "component": "Dystric plinthosols", - "componentData": "Missing Data", + "componentData": "Data Complete", "componentID": 134462, "name": "Dystric plinthosols", "not_displayed": false, "rank_data": "9", "rank_data_group": "9", - "rank_data_loc": "6", - "rank_data_loc_group": "6", + "rank_data_loc": "7", + "rank_data_loc_group": "7", "rank_loc": 3, "rank_loc_group": 3, "score_data": 0.349, @@ -1204,33 +1223,14 @@ "score_loc": 0.134, "score_loc_group": 0.134 }, - { - "component": "Haplic solonchaks", - "componentData": "Data Complete", - "componentID": 136284, - "name": "Haplic solonchaks", - "not_displayed": false, - "rank_data": "7", - "rank_data_group": "7", - "rank_data_loc": "7", - "rank_data_loc_group": "7", - "rank_loc": 9, - "rank_loc_group": 9, - "score_data": 0.427, - "score_data_group": 0.427, - "score_data_loc": 0.241, - "score_data_loc_group": 0.241, - "score_loc": 0.055, - "score_loc_group": 0.055 - }, { "component": "Dystric fluvisols", "componentData": "Data Complete", "componentID": 136009, "name": "Dystric fluvisols", "not_displayed": false, - "rank_data": "5", - "rank_data_group": "5", + "rank_data": "7", + "rank_data_group": "7", "rank_data_loc": "8", "rank_data_loc_group": "8", "rank_loc": 10, @@ -1292,8 +1292,8 @@ "rank_data_loc_group": "11", "rank_loc": 11, "rank_loc_group": 11, - "score_data": 0.432, - "score_data_group": 0.432, + "score_data": 0.478, + "score_data_group": 0.478, "score_data_loc": 0.001, "score_data_loc_group": 0.001, "score_loc": 0.022, diff --git a/soil_id/tests/us/__snapshots__/test_us/test_soil_location[33.81246789,-101.9733687].json b/soil_id/tests/us/__snapshots__/test_us/test_soil_location[33.81246789,-101.9733687].json index d8f6a67..78d7dcd 100644 --- a/soil_id/tests/us/__snapshots__/test_us/test_soil_location[33.81246789,-101.9733687].json +++ b/soil_id/tests/us/__snapshots__/test_us/test_soil_location[33.81246789,-101.9733687].json @@ -2,17 +2,17 @@ "list": { "AWS_PIW90": 5.12, "Soil Data Value": [ - [ - "rfv_class_30", - 0.12794865070214412 - ], [ "texture_0", - 0.0 + 2.2159469253138058 ], [ "texture_30", - 0.0 + 2.2159469253138058 + ], + [ + "rfv_class_30", + 0.12794865070214412 ], [ "rfv_class_0", @@ -659,20 +659,20 @@ "soilRank": [ { "component": "Randall", - "componentData": "Missing Data", + "componentData": "Data Complete", "componentID": 27108933, "name": "Randall", "not_displayed": false, - "rank_data": "5", - "rank_data_group": "5", + "rank_data": "9", + "rank_data_group": "9", "rank_data_loc": "1", "rank_data_loc_group": "1", "rank_loc": "1", "rank_loc_group": "1", - "score_data": 0.533, - "score_data_group": 0.533, - "score_data_loc": 0.504, - "score_data_loc_group": 0.504, + "score_data": 0.437, + "score_data_group": 0.437, + "score_data_loc": 0.456, + "score_data_loc_group": 0.456, "score_loc": 0.474, "score_loc_group": 0.474 }, @@ -682,16 +682,16 @@ "componentID": 27108855, "name": "Acuff2", "not_displayed": false, - "rank_data": "6", - "rank_data_group": "6", + "rank_data": "1", + "rank_data_group": "1", "rank_data_loc": "2", "rank_data_loc_group": "2", "rank_loc": "Not Displayed", "rank_loc_group": "2", - "score_data": 0.504, - "score_data_group": 0.504, - "score_data_loc": 0.379, - "score_data_loc_group": 0.379, + "score_data": 0.583, + "score_data_group": 0.583, + "score_data_loc": 0.418, + "score_data_loc_group": 0.418, "score_loc": 0.253, "score_loc_group": 0.253 }, @@ -701,56 +701,37 @@ "componentID": 27108854, "name": "Olton", "not_displayed": false, - "rank_data": "4", - "rank_data_group": "4", + "rank_data": "6", + "rank_data_group": "6", "rank_data_loc": "3", "rank_data_loc_group": "3", "rank_loc": "3", "rank_loc_group": "3", - "score_data": 0.546, - "score_data_group": 0.546, - "score_data_loc": 0.336, - "score_data_loc_group": 0.336, + "score_data": 0.488, + "score_data_group": 0.488, + "score_data_loc": 0.307, + "score_data_loc_group": 0.307, "score_loc": 0.126, "score_loc_group": 0.126 }, { - "component": "Friona", + "component": "Mclean", "componentData": "Data Complete", - "componentID": 27108892, - "name": "Friona", + "componentID": 27108934, + "name": "Mclean", "not_displayed": false, - "rank_data": "1", - "rank_data_group": "1", + "rank_data": "4", + "rank_data_group": "4", "rank_data_loc": "4", "rank_data_loc_group": "4", - "rank_loc": "7", - "rank_loc_group": "7", - "score_data": 0.57, - "score_data_group": 0.57, - "score_data_loc": 0.292, - "score_data_loc_group": 0.292, - "score_loc": 0.014, - "score_loc_group": 0.014 - }, - { - "component": "Estacado", - "componentData": "Data Complete", - "componentID": 27108891, - "name": "Estacado", - "not_displayed": false, - "rank_data": "3", - "rank_data_group": "3", - "rank_data_loc": "5", - "rank_data_loc_group": "5", - "rank_loc": "6", - "rank_loc_group": "6", - "score_data": 0.548, - "score_data_group": 0.548, - "score_data_loc": 0.285, - "score_data_loc_group": 0.285, - "score_loc": 0.021, - "score_loc_group": 0.021 + "rank_loc": "4", + "rank_loc_group": "4", + "score_data": 0.518, + "score_data_group": 0.518, + "score_data_loc": 0.289, + "score_data_loc_group": 0.289, + "score_loc": 0.059, + "score_loc_group": 0.059 }, { "component": "Amarillo", @@ -760,52 +741,33 @@ "not_displayed": false, "rank_data": "2", "rank_data_group": "2", - "rank_data_loc": "6", - "rank_data_loc_group": "6", + "rank_data_loc": "5", + "rank_data_loc_group": "5", "rank_loc": "8", "rank_loc_group": "8", - "score_data": 0.553, - "score_data_group": 0.553, - "score_data_loc": 0.282, - "score_data_loc_group": 0.282, + "score_data": 0.541, + "score_data_group": 0.541, + "score_data_loc": 0.276, + "score_data_loc_group": 0.276, "score_loc": 0.011, "score_loc_group": 0.011 }, - { - "component": "Mclean", - "componentData": "Missing Data", - "componentID": 27108934, - "name": "Mclean", - "not_displayed": false, - "rank_data": "7", - "rank_data_group": "7", - "rank_data_loc": "7", - "rank_data_loc_group": "7", - "rank_loc": "4", - "rank_loc_group": "4", - "score_data": 0.5, - "score_data_group": 0.5, - "score_data_loc": 0.28, - "score_data_loc_group": 0.28, - "score_loc": 0.059, - "score_loc_group": 0.059 - }, { "component": "Lockney", - "componentData": "Missing Data", + "componentData": "Data Complete", "componentID": 27108935, "name": "Lockney", "not_displayed": false, - "rank_data": "9", - "rank_data_group": "9", - "rank_data_loc": "8", - "rank_data_loc_group": "8", + "rank_data": "3", + "rank_data_group": "3", + "rank_data_loc": "6", + "rank_data_loc_group": "6", "rank_loc": "5", "rank_loc_group": "5", - "score_data": 0.447, - "score_data_group": 0.447, - "score_data_loc": 0.239, - "score_data_loc_group": 0.239, + "score_data": 0.519, + "score_data_group": 0.519, + "score_data_loc": 0.274, + "score_data_loc_group": 0.274, "score_loc": 0.03, "score_loc_group": 0.03 }, @@ -815,19 +777,57 @@ "componentID": 27108856, "name": "Pullman", "not_displayed": false, - "rank_data": "8", - "rank_data_group": "8", - "rank_data_loc": "9", - "rank_data_loc_group": "9", + "rank_data": "5", + "rank_data_group": "5", + "rank_data_loc": "7", + "rank_data_loc_group": "7", "rank_loc": "9", "rank_loc_group": "9", - "score_data": 0.462, - "score_data_group": 0.462, - "score_data_loc": 0.237, - "score_data_loc_group": 0.237, + "score_data": 0.505, + "score_data_group": 0.505, + "score_data_loc": 0.258, + "score_data_loc_group": 0.258, "score_loc": 0.011, "score_loc_group": 0.011 }, + { + "component": "Estacado", + "componentData": "Data Complete", + "componentID": 27108891, + "name": "Estacado", + "not_displayed": false, + "rank_data": "8", + "rank_data_group": "8", + "rank_data_loc": "8", + "rank_data_loc_group": "8", + "rank_loc": "6", + "rank_loc_group": "6", + "score_data": 0.444, + "score_data_group": 0.444, + "score_data_loc": 0.233, + "score_data_loc_group": 0.233, + "score_loc": 0.021, + "score_loc_group": 0.021 + }, + { + "component": "Friona", + "componentData": "Data Complete", + "componentID": 27108892, + "name": "Friona", + "not_displayed": false, + "rank_data": "7", + "rank_data_group": "7", + "rank_data_loc": "9", + "rank_data_loc_group": "9", + "rank_loc": "7", + "rank_loc_group": "7", + "score_data": 0.45, + "score_data_group": 0.45, + "score_data_loc": 0.232, + "score_data_loc_group": 0.232, + "score_loc": 0.014, + "score_loc_group": 0.014 + }, { "component": "Acuff", "componentData": "Data Complete", @@ -835,15 +835,15 @@ "name": "Acuff", "not_displayed": true, "rank_data": "Not Displayed", - "rank_data_group": "6", + "rank_data_group": "1", "rank_data_loc": "Not Displayed", "rank_data_loc_group": "2", "rank_loc": "2", "rank_loc_group": "2", - "score_data": 0.49, - "score_data_group": 0.504, - "score_data_loc": 0.372, - "score_data_loc_group": 0.379, + "score_data": 0.512, + "score_data_group": 0.583, + "score_data_loc": 0.383, + "score_data_loc_group": 0.418, "score_loc": 0.253, "score_loc_group": 0.253 }, @@ -854,15 +854,15 @@ "name": "Estacado2", "not_displayed": true, "rank_data": "Not Displayed", - "rank_data_group": "3", + "rank_data_group": "8", "rank_data_loc": "Not Displayed", - "rank_data_loc_group": "5", + "rank_data_loc_group": "8", "rank_loc": "Not Displayed", "rank_loc_group": "6", - "score_data": 0.441, - "score_data_group": 0.548, - "score_data_loc": 0.231, - "score_data_loc_group": 0.285, + "score_data": 0.43, + "score_data_group": 0.444, + "score_data_loc": 0.226, + "score_data_loc_group": 0.233, "score_loc": 0.021, "score_loc_group": 0.021 } diff --git a/soil_id/tests/us/__snapshots__/test_us/test_soil_location[34.92816,-114.80764].json b/soil_id/tests/us/__snapshots__/test_us/test_soil_location[34.92816,-114.80764].json index 787dc2c..ea02704 100644 --- a/soil_id/tests/us/__snapshots__/test_us/test_soil_location[34.92816,-114.80764].json +++ b/soil_id/tests/us/__snapshots__/test_us/test_soil_location[34.92816,-114.80764].json @@ -3,20 +3,20 @@ "AWS_PIW90": 9.72, "Soil Data Value": [ [ - "rfv_class_30", - 1.7725548033578953 + "texture_0", + 1.7822287189138013 ], [ - "rfv_class_0", - 1.368995593589281 + "texture_30", + 1.7822287189138013 ], [ - "texture_0", - 0.0 + "rfv_class_30", + 1.7725548033578953 ], [ - "texture_30", - 0.0 + "rfv_class_0", + 1.368995593589281 ] ], "metadata": { diff --git a/soil_id/tests/us/__snapshots__/test_us/test_soil_location[35.59918,-120.491439].json b/soil_id/tests/us/__snapshots__/test_us/test_soil_location[35.59918,-120.491439].json index f70c3eb..51ac2b9 100644 --- a/soil_id/tests/us/__snapshots__/test_us/test_soil_location[35.59918,-120.491439].json +++ b/soil_id/tests/us/__snapshots__/test_us/test_soil_location[35.59918,-120.491439].json @@ -4,11 +4,11 @@ "Soil Data Value": [ [ "texture_0", - 0.0 + 0.9165173278449512 ], [ "texture_30", - 0.0 + 0.9165173278449512 ], [ "rfv_class_0", @@ -271,73 +271,73 @@ "componentID": 26734851, "name": "Balcom3", "not_displayed": false, - "rank_data": "2", - "rank_data_group": "2", + "rank_data": "1", + "rank_data_group": "1", "rank_data_loc": "1", "rank_data_loc_group": "1", "rank_loc": "Not Displayed", "rank_loc_group": "1", - "score_data": 0.541, - "score_data_group": 0.541, - "score_data_loc": 0.396, - "score_data_loc_group": 0.396, + "score_data": 0.389, + "score_data_group": 0.389, + "score_data_loc": 0.32, + "score_data_loc_group": 0.32, "score_loc": 0.252, "score_loc_group": 0.252 }, { "component": "Los osos", - "componentData": NaN, + "componentData": "Data Complete", "componentID": 26735225, "name": "Los osos2", "not_displayed": false, - "rank_data": "1", - "rank_data_group": "1", + "rank_data": "2", + "rank_data_group": "2", "rank_data_loc": "2", "rank_data_loc_group": "2", "rank_loc": "Not Displayed", "rank_loc_group": "2", - "score_data": 0.558, - "score_data_group": 0.558, - "score_data_loc": 0.341, - "score_data_loc_group": 0.341, + "score_data": 0.389, + "score_data_group": 0.389, + "score_data_loc": 0.257, + "score_data_loc_group": 0.257, "score_loc": 0.125, "score_loc_group": 0.125 }, { "component": "Balcom", - "componentData": NaN, + "componentData": "Data Complete", "componentID": 26734862, "name": "Balcom2", "not_displayed": true, "rank_data": "Not Displayed", - "rank_data_group": "2", + "rank_data_group": "1", "rank_data_loc": "Not Displayed", "rank_data_loc_group": "1", "rank_loc": "1", "rank_loc_group": "1", - "score_data": 0.37, - "score_data_group": 0.541, - "score_data_loc": 0.311, - "score_data_loc_group": 0.396, + "score_data": 0.348, + "score_data_group": 0.389, + "score_data_loc": 0.3, + "score_data_loc_group": 0.32, "score_loc": 0.252, "score_loc_group": 0.252 }, { "component": "Los osos", - "componentData": NaN, + "componentData": "Data Complete", "componentID": 26735232, "name": "Los osos", "not_displayed": true, "rank_data": "Not Displayed", - "rank_data_group": "1", + "rank_data_group": "2", "rank_data_loc": "Not Displayed", "rank_data_loc_group": "2", "rank_loc": "2", "rank_loc_group": "2", - "score_data": 0.363, - "score_data_group": 0.558, - "score_data_loc": 0.244, - "score_data_loc_group": 0.341, + "score_data": 0.348, + "score_data_group": 0.389, + "score_data_loc": 0.237, + "score_data_loc_group": 0.257, "score_loc": 0.125, "score_loc_group": 0.125 } diff --git a/soil_id/tests/us/__snapshots__/test_us/test_soil_location[37.422,-122.084].json b/soil_id/tests/us/__snapshots__/test_us/test_soil_location[37.422,-122.084].json index 4fc2772..c181a0f 100644 --- a/soil_id/tests/us/__snapshots__/test_us/test_soil_location[37.422,-122.084].json +++ b/soil_id/tests/us/__snapshots__/test_us/test_soil_location[37.422,-122.084].json @@ -3,20 +3,20 @@ "AWS_PIW90": 5.95, "Soil Data Value": [ [ - "rfv_class_0", - 1.2450871546455828 + "texture_0", + 1.8550579506959675 ], [ - "rfv_class_30", - 0.7766173768825435 + "texture_30", + 1.8550579506959675 ], [ - "texture_0", - 0.0 + "rfv_class_0", + 1.2450871546455828 ], [ - "texture_30", - 0.0 + "rfv_class_30", + 0.7766173768825435 ] ], "metadata": { @@ -435,7 +435,7 @@ "soilRank": [ { "component": "Xerorthents", - "componentData": "Data Complete", + "componentData": "Missing Data", "componentID": 26701975, "name": "Xerorthents", "not_displayed": false, @@ -445,10 +445,10 @@ "rank_data_loc_group": "1", "rank_loc": "2", "rank_loc_group": "2", - "score_data": 0.75, - "score_data_group": 0.75, - "score_data_loc": 0.568, - "score_data_loc_group": 0.568, + "score_data": 0.794, + "score_data_group": 0.794, + "score_data_loc": 0.59, + "score_data_loc_group": 0.59, "score_loc": 0.386, "score_loc_group": 0.386 }, @@ -464,92 +464,92 @@ "rank_data_loc_group": "2", "rank_loc": "1", "rank_loc_group": "1", - "score_data": 0.534, - "score_data_group": 0.534, - "score_data_loc": 0.462, - "score_data_loc_group": 0.462, + "score_data": 0.504, + "score_data_group": 0.504, + "score_data_loc": 0.447, + "score_data_loc_group": 0.447, "score_loc": 0.39, "score_loc_group": 0.39 }, { - "component": "Aquic xerorthents", + "component": "Embarcadero", "componentData": "Data Complete", - "componentID": 26701978, - "name": "Aquic xerorthents", + "componentID": 26701952, + "name": "Embarcadero", "not_displayed": false, - "rank_data": "3", - "rank_data_group": "3", + "rank_data": "2", + "rank_data_group": "2", "rank_data_loc": "3", "rank_data_loc_group": "3", + "rank_loc": "6", + "rank_loc_group": "6", + "score_data": 0.781, + "score_data_group": 0.781, + "score_data_loc": 0.396, + "score_data_loc_group": 0.396, + "score_loc": 0.012, + "score_loc_group": 0.012 + }, + { + "component": "Aquic xerorthents", + "componentData": "Missing Data", + "componentID": 26701978, + "name": "Aquic xerorthents", + "not_displayed": false, + "rank_data": "4", + "rank_data_group": "4", + "rank_data_loc": "4", + "rank_data_loc_group": "4", "rank_loc": "3", "rank_loc_group": "3", - "score_data": 0.626, - "score_data_group": 0.626, - "score_data_loc": 0.395, - "score_data_loc_group": 0.395, + "score_data": 0.618, + "score_data_group": 0.618, + "score_data_loc": 0.391, + "score_data_loc_group": 0.391, "score_loc": 0.165, "score_loc_group": 0.165 }, { "component": "Bayshore", - "componentData": "Missing Data", + "componentData": "Data Complete", "componentID": 26701953, "name": "Bayshore", "not_displayed": false, - "rank_data": "2", - "rank_data_group": "2", - "rank_data_loc": "4", - "rank_data_loc_group": "4", + "rank_data": "3", + "rank_data_group": "3", + "rank_data_loc": "5", + "rank_data_loc_group": "5", "rank_loc": "5", "rank_loc_group": "5", - "score_data": 0.709, - "score_data_group": 0.709, - "score_data_loc": 0.364, - "score_data_loc_group": 0.364, + "score_data": 0.62, + "score_data_group": 0.62, + "score_data_loc": 0.319, + "score_data_loc_group": 0.319, "score_loc": 0.019, "score_loc_group": 0.019 }, { "component": "Clear lake", - "componentData": "Missing Data", + "componentData": "Data Complete", "componentID": 26701951, "name": "Clear lake", "not_displayed": false, "rank_data": "5", "rank_data_group": "5", - "rank_data_loc": "5", - "rank_data_loc_group": "5", + "rank_data_loc": "6", + "rank_data_loc_group": "6", "rank_loc": "4", "rank_loc_group": "4", - "score_data": 0.617, - "score_data_group": 0.617, - "score_data_loc": 0.323, - "score_data_loc_group": 0.323, + "score_data": 0.584, + "score_data_group": 0.584, + "score_data_loc": 0.306, + "score_data_loc_group": 0.306, "score_loc": 0.029, "score_loc_group": 0.029 }, - { - "component": "Embarcadero", - "componentData": "Missing Data", - "componentID": 26701952, - "name": "Embarcadero", - "not_displayed": false, - "rank_data": "4", - "rank_data_group": "4", - "rank_data_loc": "6", - "rank_data_loc_group": "6", - "rank_loc": "6", - "rank_loc_group": "6", - "score_data": 0.62, - "score_data_group": 0.62, - "score_data_loc": 0.316, - "score_data_loc_group": 0.316, - "score_loc": 0.012, - "score_loc_group": 0.012 - }, { "component": "Xerorthents", - "componentData": "Data Complete", + "componentData": "Missing Data", "componentID": 26701976, "name": "Xerorthents2", "not_displayed": true, @@ -559,10 +559,10 @@ "rank_data_loc_group": "1", "rank_loc": "Not Displayed", "rank_loc_group": "2", - "score_data": 0.672, - "score_data_group": 0.75, - "score_data_loc": 0.529, - "score_data_loc_group": 0.568, + "score_data": 0.711, + "score_data_group": 0.794, + "score_data_loc": 0.548, + "score_data_loc_group": 0.59, "score_loc": 0.386, "score_loc_group": 0.386 } diff --git a/soil_id/tests/us/__snapshots__/test_us/test_soil_location[37.48216451,-99.55016693].json b/soil_id/tests/us/__snapshots__/test_us/test_soil_location[37.48216451,-99.55016693].json index 22ebd8b..f65d5fb 100644 --- a/soil_id/tests/us/__snapshots__/test_us/test_soil_location[37.48216451,-99.55016693].json +++ b/soil_id/tests/us/__snapshots__/test_us/test_soil_location[37.48216451,-99.55016693].json @@ -3,20 +3,20 @@ "AWS_PIW90": 5.17, "Soil Data Value": [ [ - "rfv_class_30", - 0.33402123132077044 + "texture_0", + 2.6090686562429717 ], [ - "rfv_class_0", - 0.27699134340154963 + "texture_30", + 2.6090686562429717 ], [ - "texture_0", - 0.0 + "rfv_class_30", + 0.33402123132077044 ], [ - "texture_30", - 0.0 + "rfv_class_0", + 0.27699134340154963 ] ], "metadata": { @@ -881,22 +881,41 @@ "model": "v2" }, "soilRank": [ + { + "component": "Uly", + "componentData": "Data Complete", + "componentID": 26356233, + "name": "Uly", + "not_displayed": false, + "rank_data": "2", + "rank_data_group": "2", + "rank_data_loc": "1", + "rank_data_loc_group": "1", + "rank_loc": "1", + "rank_loc_group": "1", + "score_data": 0.61, + "score_data_group": 0.61, + "score_data_loc": 0.452, + "score_data_loc_group": 0.452, + "score_loc": 0.295, + "score_loc_group": 0.295 + }, { "component": "Harney", "componentData": "Data Complete", "componentID": 26356234, "name": "Harney", "not_displayed": false, - "rank_data": "4", - "rank_data_group": "4", - "rank_data_loc": "1", - "rank_data_loc_group": "1", + "rank_data": "3", + "rank_data_group": "3", + "rank_data_loc": "2", + "rank_data_loc_group": "2", "rank_loc": "2", "rank_loc_group": "2", - "score_data": 0.65, - "score_data_group": 0.65, - "score_data_loc": 0.457, - "score_data_loc_group": 0.457, + "score_data": 0.598, + "score_data_group": 0.598, + "score_data_loc": 0.431, + "score_data_loc_group": 0.431, "score_loc": 0.263, "score_loc_group": 0.263 }, @@ -906,244 +925,225 @@ "componentID": 26356406, "name": "Coly2", "not_displayed": false, - "rank_data": "2", - "rank_data_group": "2", - "rank_data_loc": "2", - "rank_data_loc_group": "2", + "rank_data": "5", + "rank_data_group": "5", + "rank_data_loc": "3", + "rank_data_loc_group": "3", "rank_loc": "Not Displayed", "rank_loc_group": "3", - "score_data": 0.662, - "score_data_group": 0.662, - "score_data_loc": 0.439, - "score_data_loc_group": 0.439, + "score_data": 0.537, + "score_data_group": 0.537, + "score_data_loc": 0.376, + "score_data_loc_group": 0.376, "score_loc": 0.215, "score_loc_group": 0.215 }, { - "component": "Uly", - "componentData": "Data Complete", - "componentID": 26356407, - "name": "Uly2", - "not_displayed": false, - "rank_data": "7", - "rank_data_group": "7", - "rank_data_loc": "3", - "rank_data_loc_group": "3", - "rank_loc": "Not Displayed", - "rank_loc_group": "1", - "score_data": 0.571, - "score_data_group": 0.571, - "score_data_loc": 0.433, - "score_data_loc_group": 0.433, - "score_loc": 0.295, - "score_loc_group": 0.295 - }, - { - "component": "Penden", + "component": "Canlon", "componentData": "Data Complete", - "componentID": 26356232, - "name": "Penden", + "componentID": 26356405, + "name": "Canlon", "not_displayed": false, "rank_data": "1", "rank_data_group": "1", "rank_data_loc": "4", "rank_data_loc_group": "4", - "rank_loc": "7", - "rank_loc_group": "7", - "score_data": 0.667, - "score_data_group": 0.667, - "score_data_loc": 0.341, - "score_data_loc_group": 0.341, - "score_loc": 0.016, - "score_loc_group": 0.016 + "rank_loc": "11", + "rank_loc_group": "11", + "score_data": 0.688, + "score_data_group": 0.688, + "score_data_loc": 0.345, + "score_data_loc_group": 0.345, + "score_loc": 0.002, + "score_loc_group": 0.002 }, { - "component": "Canlon", + "component": "Case", "componentData": "Data Complete", - "componentID": 26356405, - "name": "Canlon", + "componentID": 26356380, + "name": "Case", "not_displayed": false, - "rank_data": "3", - "rank_data_group": "3", + "rank_data": "4", + "rank_data_group": "4", "rank_data_loc": "5", "rank_data_loc_group": "5", - "rank_loc": "11", - "rank_loc_group": "11", - "score_data": 0.659, - "score_data_group": 0.659, - "score_data_loc": 0.331, - "score_data_loc_group": 0.331, - "score_loc": 0.002, - "score_loc_group": 0.002 + "rank_loc": "6", + "rank_loc_group": "6", + "score_data": 0.554, + "score_data_group": 0.554, + "score_data_loc": 0.289, + "score_data_loc_group": 0.289, + "score_loc": 0.023, + "score_loc_group": 0.023 }, { - "component": "Wakeen", + "component": "Tobin", "componentData": "Data Complete", - "componentID": 26356435, - "name": "Wakeen", + "componentID": 26356404, + "name": "Tobin", "not_displayed": false, - "rank_data": "5", - "rank_data_group": "5", + "rank_data": "7", + "rank_data_group": "7", "rank_data_loc": "6", "rank_data_loc_group": "6", - "rank_loc": "9", - "rank_loc_group": "9", - "score_data": 0.612, - "score_data_group": 0.612, - "score_data_loc": 0.311, - "score_data_loc_group": 0.311, - "score_loc": 0.01, - "score_loc_group": 0.01 + "rank_loc": "5", + "rank_loc_group": "5", + "score_data": 0.499, + "score_data_group": 0.499, + "score_data_loc": 0.278, + "score_data_loc_group": 0.278, + "score_loc": 0.057, + "score_loc_group": 0.057 }, { - "component": "Aquolls", + "component": "Penden", "componentData": "Data Complete", - "componentID": 26356437, - "name": "Aquolls", + "componentID": 26356232, + "name": "Penden", "not_displayed": false, "rank_data": "6", "rank_data_group": "6", "rank_data_loc": "7", "rank_data_loc_group": "7", - "rank_loc": "10", - "rank_loc_group": "10", - "score_data": 0.594, - "score_data_group": 0.594, - "score_data_loc": 0.298, - "score_data_loc_group": 0.298, - "score_loc": 0.003, - "score_loc_group": 0.003 + "rank_loc": "7", + "rank_loc_group": "7", + "score_data": 0.526, + "score_data_group": 0.526, + "score_data_loc": 0.271, + "score_data_loc_group": 0.271, + "score_loc": 0.016, + "score_loc_group": 0.016 }, { - "component": "Tobin", - "componentData": "Data Complete", - "componentID": 26356404, - "name": "Tobin", + "component": "Aquolls", + "componentData": "Missing Data", + "componentID": 26356437, + "name": "Aquolls", "not_displayed": false, - "rank_data": "10", - "rank_data_group": "10", + "rank_data": "8", + "rank_data_group": "8", "rank_data_loc": "8", "rank_data_loc_group": "8", - "rank_loc": "5", - "rank_loc_group": "5", - "score_data": 0.538, - "score_data_group": 0.538, - "score_data_loc": 0.297, - "score_data_loc_group": 0.297, - "score_loc": 0.057, - "score_loc_group": 0.057 + "rank_loc": "10", + "rank_loc_group": "10", + "score_data": 0.477, + "score_data_group": 0.477, + "score_data_loc": 0.24, + "score_data_loc_group": 0.24, + "score_loc": 0.003, + "score_loc_group": 0.003 }, { - "component": "Bridgeport", + "component": "Holdrege", "componentData": "Data Complete", - "componentID": 26356378, - "name": "Bridgeport", + "componentID": 26356377, + "name": "Holdrege", "not_displayed": false, - "rank_data": "8", - "rank_data_group": "8", + "rank_data": "11", + "rank_data_group": "11", "rank_data_loc": "9", "rank_data_loc_group": "9", - "rank_loc": "8", - "rank_loc_group": "8", - "score_data": 0.566, - "score_data_group": 0.566, - "score_data_loc": 0.289, - "score_data_loc_group": 0.289, - "score_loc": 0.012, - "score_loc_group": 0.012 + "rank_loc": "4", + "rank_loc_group": "4", + "score_data": 0.362, + "score_data_group": 0.362, + "score_data_loc": 0.233, + "score_data_loc_group": 0.233, + "score_loc": 0.104, + "score_loc_group": 0.104 }, { - "component": "Case", + "component": "Wakeen", "componentData": "Data Complete", - "componentID": 26356380, - "name": "Case", + "componentID": 26356435, + "name": "Wakeen", "not_displayed": false, "rank_data": "9", "rank_data_group": "9", "rank_data_loc": "10", "rank_data_loc_group": "10", - "rank_loc": "6", - "rank_loc_group": "6", - "score_data": 0.553, - "score_data_group": 0.553, - "score_data_loc": 0.288, - "score_data_loc_group": 0.288, - "score_loc": 0.023, - "score_loc_group": 0.023 + "rank_loc": "9", + "rank_loc_group": "9", + "score_data": 0.434, + "score_data_group": 0.434, + "score_data_loc": 0.222, + "score_data_loc_group": 0.222, + "score_loc": 0.01, + "score_loc_group": 0.01 }, { - "component": "Holdrege", + "component": "Bridgeport", "componentData": "Data Complete", - "componentID": 26356377, - "name": "Holdrege", + "componentID": 26356378, + "name": "Bridgeport", "not_displayed": false, - "rank_data": "11", - "rank_data_group": "11", + "rank_data": "10", + "rank_data_group": "10", "rank_data_loc": "11", "rank_data_loc_group": "11", - "rank_loc": "4", - "rank_loc_group": "4", - "score_data": 0.44, - "score_data_group": 0.44, - "score_data_loc": 0.272, - "score_data_loc_group": 0.272, - "score_loc": 0.104, - "score_loc_group": 0.104 + "rank_loc": "8", + "rank_loc_group": "8", + "score_data": 0.42, + "score_data_group": 0.42, + "score_data_loc": 0.216, + "score_data_loc_group": 0.216, + "score_loc": 0.012, + "score_loc_group": 0.012 }, { - "component": "Harney", + "component": "Uly", "componentData": "Data Complete", - "componentID": 26356408, - "name": "Harney3", + "componentID": 26356407, + "name": "Uly2", "not_displayed": true, "rank_data": "Not Displayed", - "rank_data_group": "4", + "rank_data_group": "2", "rank_data_loc": "Not Displayed", "rank_data_loc_group": "1", "rank_loc": "Not Displayed", - "rank_loc_group": "2", - "score_data": 0.585, - "score_data_group": 0.65, - "score_data_loc": 0.424, - "score_data_loc_group": 0.457, - "score_loc": 0.263, - "score_loc_group": 0.263 + "rank_loc_group": "1", + "score_data": 0.573, + "score_data_group": 0.61, + "score_data_loc": 0.434, + "score_data_loc_group": 0.452, + "score_loc": 0.295, + "score_loc_group": 0.295 }, { - "component": "Uly", + "component": "Harney", "componentData": "Data Complete", - "componentID": 26356233, - "name": "Uly", + "componentID": 26356436, + "name": "Harney2", "not_displayed": true, "rank_data": "Not Displayed", - "rank_data_group": "7", + "rank_data_group": "3", "rank_data_loc": "Not Displayed", - "rank_data_loc_group": "3", - "rank_loc": "1", - "rank_loc_group": "1", - "score_data": 0.535, - "score_data_group": 0.571, - "score_data_loc": 0.415, - "score_data_loc_group": 0.433, - "score_loc": 0.295, - "score_loc_group": 0.295 + "rank_data_loc_group": "2", + "rank_loc": "Not Displayed", + "rank_loc_group": "2", + "score_data": 0.512, + "score_data_group": 0.598, + "score_data_loc": 0.388, + "score_data_loc_group": 0.431, + "score_loc": 0.263, + "score_loc_group": 0.263 }, { "component": "Harney", - "componentData": "Missing Data", - "componentID": 26356436, - "name": "Harney2", + "componentData": "Data Complete", + "componentID": 26356408, + "name": "Harney3", "not_displayed": true, "rank_data": "Not Displayed", - "rank_data_group": "4", + "rank_data_group": "3", "rank_data_loc": "Not Displayed", - "rank_data_loc_group": "1", + "rank_data_loc_group": "2", "rank_loc": "Not Displayed", "rank_loc_group": "2", - "score_data": 0.55, - "score_data_group": 0.65, - "score_data_loc": 0.407, - "score_data_loc_group": 0.457, + "score_data": 0.496, + "score_data_group": 0.598, + "score_data_loc": 0.38, + "score_data_loc_group": 0.431, "score_loc": 0.263, "score_loc_group": 0.263 }, @@ -1154,15 +1154,15 @@ "name": "Coly", "not_displayed": true, "rank_data": "Not Displayed", - "rank_data_group": "2", + "rank_data_group": "5", "rank_data_loc": "Not Displayed", - "rank_data_loc_group": "2", + "rank_data_loc_group": "3", "rank_loc": "3", "rank_loc_group": "3", - "score_data": 0.597, - "score_data_group": 0.662, - "score_data_loc": 0.406, - "score_data_loc_group": 0.439, + "score_data": 0.526, + "score_data_group": 0.537, + "score_data_loc": 0.371, + "score_data_loc_group": 0.376, "score_loc": 0.215, "score_loc_group": 0.215 } diff --git a/soil_id/tests/us/__snapshots__/test_us/test_soil_location[39.26009312,-85.50621214].json b/soil_id/tests/us/__snapshots__/test_us/test_soil_location[39.26009312,-85.50621214].json index c608c8c..cce75e0 100644 --- a/soil_id/tests/us/__snapshots__/test_us/test_soil_location[39.26009312,-85.50621214].json +++ b/soil_id/tests/us/__snapshots__/test_us/test_soil_location[39.26009312,-85.50621214].json @@ -3,20 +3,20 @@ "AWS_PIW90": 5.16, "Soil Data Value": [ [ - "rfv_class_30", - 1.0417872772025576 + "texture_0", + 3.4119924578614564 ], [ - "rfv_class_0", - 1.0174644063857206 + "texture_30", + 3.4119924578614564 ], [ - "texture_0", - 0.0 + "rfv_class_30", + 1.0417872772025576 ], [ - "texture_30", - 0.0 + "rfv_class_0", + 1.0174644063857206 ] ], "metadata": { @@ -994,118 +994,118 @@ }, "soilRank": [ { - "component": "Fincastle", + "component": "Hennepin", "componentData": "Data Complete", - "componentID": 26772402, - "name": "Fincastle", + "componentID": 26772448, + "name": "Hennepin3", "not_displayed": false, - "rank_data": "2", - "rank_data_group": "2", + "rank_data": "1", + "rank_data_group": "1", "rank_data_loc": "1", "rank_data_loc_group": "1", - "rank_loc": "2", - "rank_loc_group": "2", - "score_data": 0.653, - "score_data_group": 0.653, - "score_data_loc": 0.353, - "score_data_loc_group": 0.353, - "score_loc": 0.054, - "score_loc_group": 0.054 + "rank_loc": "Not Displayed", + "rank_loc_group": "1", + "score_data": 0.678, + "score_data_group": 0.678, + "score_data_loc": 0.37, + "score_data_loc_group": 0.37, + "score_loc": 0.061, + "score_loc_group": 0.061 }, { "component": "Crosby", "componentData": "Data Complete", - "componentID": 26772436, - "name": "Crosby", + "componentID": 26772446, + "name": "Crosby3", "not_displayed": false, - "rank_data": "3", - "rank_data_group": "3", + "rank_data": "2", + "rank_data_group": "2", "rank_data_loc": "2", "rank_data_loc_group": "2", - "rank_loc": "4", + "rank_loc": "Not Displayed", "rank_loc_group": "4", - "score_data": 0.651, - "score_data_group": 0.651, - "score_data_loc": 0.349, - "score_data_loc_group": 0.349, + "score_data": 0.657, + "score_data_group": 0.657, + "score_data_loc": 0.352, + "score_data_loc_group": 0.352, "score_loc": 0.048, "score_loc_group": 0.048 }, { - "component": "Bonnell", + "component": "Fincastle", "componentData": "Data Complete", - "componentID": 26772426, - "name": "Bonnell", + "componentID": 26772402, + "name": "Fincastle", "not_displayed": false, - "rank_data": "1", - "rank_data_group": "1", + "rank_data": "4", + "rank_data_group": "4", "rank_data_loc": "3", "rank_data_loc_group": "3", - "rank_loc": "9", - "rank_loc_group": "9", - "score_data": 0.671, - "score_data_group": 0.671, - "score_data_loc": 0.336, - "score_data_loc_group": 0.336, - "score_loc": 0.002, - "score_loc_group": 0.002 + "rank_loc": "2", + "rank_loc_group": "2", + "score_data": 0.641, + "score_data_group": 0.641, + "score_data_loc": 0.348, + "score_data_loc_group": 0.348, + "score_loc": 0.054, + "score_loc_group": 0.054 }, { - "component": "Grayford", + "component": "Brookston", "componentData": "Data Complete", - "componentID": 26772427, - "name": "Grayford", + "componentID": 26772434, + "name": "Brookston", "not_displayed": false, - "rank_data": "4", - "rank_data_group": "4", + "rank_data": "3", + "rank_data_group": "3", "rank_data_loc": "4", "rank_data_loc_group": "4", - "rank_loc": "11", - "rank_loc_group": "11", - "score_data": 0.648, - "score_data_group": 0.648, - "score_data_loc": 0.325, - "score_data_loc_group": 0.325, - "score_loc": 0.001, - "score_loc_group": 0.001 + "rank_loc": "6", + "rank_loc_group": "6", + "score_data": 0.647, + "score_data_group": 0.647, + "score_data_loc": 0.328, + "score_data_loc_group": 0.328, + "score_loc": 0.009, + "score_loc_group": 0.009 }, { - "component": "Hennepin", + "component": "Bonnell", "componentData": "Data Complete", - "componentID": 26772442, - "name": "Hennepin", + "componentID": 26772426, + "name": "Bonnell", "not_displayed": false, - "rank_data": "9", - "rank_data_group": "9", + "rank_data": "5", + "rank_data_group": "5", "rank_data_loc": "5", "rank_data_loc_group": "5", - "rank_loc": "1", - "rank_loc_group": "1", - "score_data": 0.582, - "score_data_group": 0.582, - "score_data_loc": 0.322, - "score_data_loc_group": 0.322, - "score_loc": 0.061, - "score_loc_group": 0.061 + "rank_loc": "9", + "rank_loc_group": "9", + "score_data": 0.64, + "score_data_group": 0.64, + "score_data_loc": 0.321, + "score_data_loc_group": 0.321, + "score_loc": 0.002, + "score_loc_group": 0.002 }, { - "component": "Holton", + "component": "Cincinnati", "componentData": "Data Complete", - "componentID": 26772424, - "name": "Holton", + "componentID": 26772423, + "name": "Cincinnati", "not_displayed": false, - "rank_data": "5", - "rank_data_group": "5", + "rank_data": "6", + "rank_data_group": "6", "rank_data_loc": "6", "rank_data_loc_group": "6", - "rank_loc": "8", - "rank_loc_group": "8", - "score_data": 0.634, - "score_data_group": 0.634, - "score_data_loc": 0.318, - "score_data_loc_group": 0.318, - "score_loc": 0.002, - "score_loc_group": 0.002 + "rank_loc": "10", + "rank_loc_group": "10", + "score_data": 0.637, + "score_data_group": 0.637, + "score_data_loc": 0.319, + "score_data_loc_group": 0.319, + "score_loc": 0.001, + "score_loc_group": 0.001 }, { "component": "Cyclone", @@ -1113,75 +1113,56 @@ "componentID": 26772441, "name": "Cyclone", "not_displayed": false, - "rank_data": "6", - "rank_data_group": "6", + "rank_data": "7", + "rank_data_group": "7", "rank_data_loc": "7", "rank_data_loc_group": "7", "rank_loc": "5", "rank_loc_group": "5", - "score_data": 0.614, - "score_data_group": 0.614, - "score_data_loc": 0.312, - "score_data_loc_group": 0.312, + "score_data": 0.612, + "score_data_group": 0.612, + "score_data_loc": 0.311, + "score_data_loc_group": 0.311, "score_loc": 0.011, "score_loc_group": 0.011 }, { - "component": "Brookston", + "component": "Celina", "componentData": "Data Complete", - "componentID": 26772434, - "name": "Brookston", + "componentID": 26772498, + "name": "Celina", "not_displayed": false, - "rank_data": "7", - "rank_data_group": "7", + "rank_data": "8", + "rank_data_group": "8", "rank_data_loc": "8", "rank_data_loc_group": "8", - "rank_loc": "6", - "rank_loc_group": "6", - "score_data": 0.61, - "score_data_group": 0.61, - "score_data_loc": 0.31, - "score_data_loc_group": 0.31, - "score_loc": 0.009, - "score_loc_group": 0.009 + "rank_loc": "7", + "rank_loc_group": "7", + "score_data": 0.605, + "score_data_group": 0.605, + "score_data_loc": 0.304, + "score_data_loc_group": 0.304, + "score_loc": 0.003, + "score_loc_group": 0.003 }, { - "component": "Cincinnati", + "component": "Holton", "componentData": "Data Complete", - "componentID": 26772423, - "name": "Cincinnati", + "componentID": 26772424, + "name": "Holton", "not_displayed": false, - "rank_data": "8", - "rank_data_group": "8", + "rank_data": "9", + "rank_data_group": "9", "rank_data_loc": "9", "rank_data_loc_group": "9", - "rank_loc": "10", - "rank_loc_group": "10", - "score_data": 0.591, - "score_data_group": 0.591, + "rank_loc": "8", + "rank_loc_group": "8", + "score_data": 0.589, + "score_data_group": 0.589, "score_data_loc": 0.296, "score_data_loc_group": 0.296, - "score_loc": 0.001, - "score_loc_group": 0.001 - }, - { - "component": "Celina", - "componentData": "Data Complete", - "componentID": 26772498, - "name": "Celina", - "not_displayed": false, - "rank_data": "10", - "rank_data_group": "10", - "rank_data_loc": "10", - "rank_data_loc_group": "10", - "rank_loc": "7", - "rank_loc_group": "7", - "score_data": 0.555, - "score_data_group": 0.555, - "score_data_loc": 0.279, - "score_data_loc_group": 0.279, - "score_loc": 0.003, - "score_loc_group": 0.003 + "score_loc": 0.002, + "score_loc_group": 0.002 }, { "component": "Hickory", @@ -1191,17 +1172,36 @@ "not_displayed": false, "rank_data": "12", "rank_data_group": "12", - "rank_data_loc": "11", - "rank_data_loc_group": "11", + "rank_data_loc": "10", + "rank_data_loc_group": "10", "rank_loc": "3", "rank_loc_group": "3", - "score_data": 0.499, - "score_data_group": 0.499, - "score_data_loc": 0.275, - "score_data_loc_group": 0.275, + "score_data": 0.532, + "score_data_group": 0.532, + "score_data_loc": 0.292, + "score_data_loc_group": 0.292, "score_loc": 0.051, "score_loc_group": 0.051 }, + { + "component": "Grayford", + "componentData": "Data Complete", + "componentID": 26772427, + "name": "Grayford", + "not_displayed": false, + "rank_data": "10", + "rank_data_group": "10", + "rank_data_loc": "11", + "rank_data_loc_group": "11", + "rank_loc": "11", + "rank_loc_group": "11", + "score_data": 0.576, + "score_data_group": 0.576, + "score_data_loc": 0.289, + "score_data_loc_group": 0.289, + "score_loc": 0.001, + "score_loc_group": 0.001 + }, { "component": "Jessietown", "componentData": "Data Complete", @@ -1214,88 +1214,69 @@ "rank_data_loc_group": "12", "rank_loc": "12", "rank_loc_group": "12", - "score_data": 0.531, - "score_data_group": 0.531, - "score_data_loc": 0.266, - "score_data_loc_group": 0.266, + "score_data": 0.563, + "score_data_group": 0.563, + "score_data_loc": 0.282, + "score_data_loc_group": 0.282, "score_loc": 0.001, "score_loc_group": 0.001 }, { "component": "Crosby", "componentData": "Data Complete", - "componentID": 26772444, - "name": "Crosby2", - "not_displayed": true, - "rank_data": "Not Displayed", - "rank_data_group": "3", - "rank_data_loc": "Not Displayed", - "rank_data_loc_group": "2", - "rank_loc": "Not Displayed", - "rank_loc_group": "4", - "score_data": 0.609, - "score_data_group": 0.651, - "score_data_loc": 0.328, - "score_data_loc_group": 0.349, - "score_loc": 0.048, - "score_loc_group": 0.048 - }, - { - "component": "Crosby", - "componentData": "Data Complete", - "componentID": 26772446, - "name": "Crosby3", + "componentID": 26772436, + "name": "Crosby", "not_displayed": true, "rank_data": "Not Displayed", - "rank_data_group": "3", + "rank_data_group": "2", "rank_data_loc": "Not Displayed", "rank_data_loc_group": "2", - "rank_loc": "Not Displayed", + "rank_loc": "4", "rank_loc_group": "4", - "score_data": 0.597, - "score_data_group": 0.651, - "score_data_loc": 0.322, - "score_data_loc_group": 0.349, + "score_data": 0.642, + "score_data_group": 0.657, + "score_data_loc": 0.345, + "score_data_loc_group": 0.352, "score_loc": 0.048, "score_loc_group": 0.048 }, { "component": "Hennepin", "componentData": "Data Complete", - "componentID": 26772448, - "name": "Hennepin3", + "componentID": 26772420, + "name": "Hennepin2", "not_displayed": true, "rank_data": "Not Displayed", - "rank_data_group": "9", + "rank_data_group": "1", "rank_data_loc": "Not Displayed", - "rank_data_loc_group": "5", + "rank_data_loc_group": "1", "rank_loc": "Not Displayed", "rank_loc_group": "1", - "score_data": 0.54, - "score_data_group": 0.582, - "score_data_loc": 0.301, - "score_data_loc_group": 0.322, + "score_data": 0.591, + "score_data_group": 0.678, + "score_data_loc": 0.326, + "score_data_loc_group": 0.37, "score_loc": 0.061, "score_loc_group": 0.061 }, { - "component": "Hennepin", + "component": "Crosby", "componentData": "Data Complete", - "componentID": 26772420, - "name": "Hennepin2", + "componentID": 26772444, + "name": "Crosby2", "not_displayed": true, "rank_data": "Not Displayed", - "rank_data_group": "9", + "rank_data_group": "2", "rank_data_loc": "Not Displayed", - "rank_data_loc_group": "5", + "rank_data_loc_group": "2", "rank_loc": "Not Displayed", - "rank_loc_group": "1", - "score_data": 0.536, - "score_data_group": 0.582, - "score_data_loc": 0.299, - "score_data_loc_group": 0.322, - "score_loc": 0.061, - "score_loc_group": 0.061 + "rank_loc_group": "4", + "score_data": 0.605, + "score_data_group": 0.657, + "score_data_loc": 0.326, + "score_data_loc_group": 0.352, + "score_loc": 0.048, + "score_loc_group": 0.048 }, { "component": "Cyclone", @@ -1304,17 +1285,36 @@ "name": "Cyclone2", "not_displayed": true, "rank_data": "Not Displayed", - "rank_data_group": "6", + "rank_data_group": "7", "rank_data_loc": "Not Displayed", "rank_data_loc_group": "7", "rank_loc": "Not Displayed", "rank_loc_group": "5", - "score_data": 0.555, - "score_data_group": 0.614, - "score_data_loc": 0.283, - "score_data_loc_group": 0.312, + "score_data": 0.56, + "score_data_group": 0.612, + "score_data_loc": 0.285, + "score_data_loc_group": 0.311, "score_loc": 0.011, "score_loc_group": 0.011 + }, + { + "component": "Hennepin", + "componentData": "Data Complete", + "componentID": 26772442, + "name": "Hennepin", + "not_displayed": true, + "rank_data": "Not Displayed", + "rank_data_group": "1", + "rank_data_loc": "Not Displayed", + "rank_data_loc_group": "1", + "rank_loc": "1", + "rank_loc_group": "1", + "score_data": 0.485, + "score_data_group": 0.678, + "score_data_loc": 0.273, + "score_data_loc_group": 0.37, + "score_loc": 0.061, + "score_loc_group": 0.061 } ] } diff --git a/soil_id/tests/us/__snapshots__/test_us/test_soil_location[42.494912,-123.064531].json b/soil_id/tests/us/__snapshots__/test_us/test_soil_location[42.494912,-123.064531].json index aa15d8c..5ec0ecf 100644 --- a/soil_id/tests/us/__snapshots__/test_us/test_soil_location[42.494912,-123.064531].json +++ b/soil_id/tests/us/__snapshots__/test_us/test_soil_location[42.494912,-123.064531].json @@ -3,20 +3,20 @@ "AWS_PIW90": 10.16, "Soil Data Value": [ [ - "rfv_class_30", - 1.4893140246267844 + "texture_0", + 2.5494767523009707 ], [ - "rfv_class_0", - 0.8825277371828062 + "texture_30", + 2.5494767523009707 ], [ - "texture_0", - 0.0 + "rfv_class_30", + 1.4893140246267844 ], [ - "texture_30", - 0.0 + "rfv_class_0", + 0.8825277371828062 ] ], "metadata": { @@ -530,7 +530,7 @@ "seeURL": "https://casoilresource.lawr.ucdavis.edu/see/#gregory", "slope": 2.0, "taxsubgrp": "Pachic Argixerolls", - "textureInfill": "No" + "textureInfill": "Yes" }, "siteDescription": "The Gregory series consists of deep, poorly drained soils on terraces. They formed in recent alluvium dominantly from sedimentary and metamorphic rocks. Slopes are 0 to 3 percent. The mean annual precipitation is about 24 inches and the mean annual temperature is about 52 degrees F." }, @@ -607,111 +607,92 @@ "componentID": 27529401, "name": "Ruch", "not_displayed": false, - "rank_data": "5", - "rank_data_group": "5", + "rank_data": "3", + "rank_data_group": "3", "rank_data_loc": "1", "rank_data_loc_group": "1", "rank_loc": "1", "rank_loc_group": "1", - "score_data": 0.539, - "score_data_group": 0.539, - "score_data_loc": 0.403, - "score_data_loc_group": 0.403, + "score_data": 0.686, + "score_data_group": 0.686, + "score_data_loc": 0.476, + "score_data_loc_group": 0.476, "score_loc": 0.266, "score_loc_group": 0.266 }, { "component": "Josephine", - "componentData": NaN, + "componentData": "Data Complete", "componentID": 27529612, "name": "Josephine2", "not_displayed": false, - "rank_data": "2", - "rank_data_group": "2", + "rank_data": "4", + "rank_data_group": "4", "rank_data_loc": "2", "rank_data_loc_group": "2", "rank_loc": "Not Displayed", "rank_loc_group": "2", - "score_data": 0.668, - "score_data_group": 0.668, - "score_data_loc": 0.397, - "score_data_loc_group": 0.397, + "score_data": 0.657, + "score_data_group": 0.657, + "score_data_loc": 0.391, + "score_data_loc_group": 0.391, "score_loc": 0.125, "score_loc_group": 0.125 }, { - "component": "Abegg", + "component": "Gregory", "componentData": "Data Complete", - "componentID": 27529265, - "name": "Abegg", + "componentID": 27529400, + "name": "Gregory", "not_displayed": false, "rank_data": "1", "rank_data_group": "1", "rank_data_loc": "3", "rank_data_loc_group": "3", + "rank_loc": "9", + "rank_loc_group": "9", + "score_data": 0.76, + "score_data_group": 0.76, + "score_data_loc": 0.383, + "score_data_loc_group": 0.383, + "score_loc": 0.007, + "score_loc_group": 0.007 + }, + { + "component": "Abegg", + "componentData": "Data Complete", + "componentID": 27529265, + "name": "Abegg", + "not_displayed": false, + "rank_data": "2", + "rank_data_group": "2", + "rank_data_loc": "4", + "rank_data_loc_group": "4", "rank_loc": "3", "rank_loc_group": "3", - "score_data": 0.719, - "score_data_group": 0.719, - "score_data_loc": 0.394, - "score_data_loc_group": 0.394, + "score_data": 0.697, + "score_data_group": 0.697, + "score_data_loc": 0.383, + "score_data_loc_group": 0.383, "score_loc": 0.069, "score_loc_group": 0.069 }, { "component": "Pollard", - "componentData": NaN, + "componentData": "Data Complete", "componentID": 27529611, "name": "Pollard", "not_displayed": false, - "rank_data": "3", - "rank_data_group": "3", - "rank_data_loc": "4", - "rank_data_loc_group": "4", - "rank_loc": "7", - "rank_loc_group": "7", - "score_data": 0.665, - "score_data_group": 0.665, - "score_data_loc": 0.345, - "score_data_loc_group": 0.345, - "score_loc": 0.025, - "score_loc_group": 0.025 - }, - { - "component": "Gregory", - "componentData": "Data Complete", - "componentID": 27529400, - "name": "Gregory", - "not_displayed": false, - "rank_data": "4", - "rank_data_group": "4", + "rank_data": "5", + "rank_data_group": "5", "rank_data_loc": "5", "rank_data_loc_group": "5", - "rank_loc": "9", - "rank_loc_group": "9", - "score_data": 0.614, - "score_data_group": 0.614, - "score_data_loc": 0.311, - "score_data_loc_group": 0.311, - "score_loc": 0.007, - "score_loc_group": 0.007 - }, - { - "component": "Colestine", - "componentData": "Data Complete", - "componentID": 27529517, - "name": "Colestine", - "not_displayed": false, - "rank_data": "6", - "rank_data_group": "6", - "rank_data_loc": "6", - "rank_data_loc_group": "6", - "rank_loc": "6", - "rank_loc_group": "6", - "score_data": 0.526, - "score_data_group": 0.526, - "score_data_loc": 0.276, - "score_data_loc_group": 0.276, + "rank_loc": "7", + "rank_loc_group": "7", + "score_data": 0.574, + "score_data_group": 0.574, + "score_data_loc": 0.299, + "score_data_loc_group": 0.299, "score_loc": 0.025, "score_loc_group": 0.025 }, @@ -723,14 +704,14 @@ "not_displayed": false, "rank_data": "7", "rank_data_group": "7", - "rank_data_loc": "7", - "rank_data_loc_group": "7", + "rank_data_loc": "6", + "rank_data_loc_group": "6", "rank_loc": "4", "rank_loc_group": "4", - "score_data": 0.476, - "score_data_group": 0.476, - "score_data_loc": 0.263, - "score_data_loc_group": 0.263, + "score_data": 0.542, + "score_data_group": 0.542, + "score_data_loc": 0.296, + "score_data_loc_group": 0.296, "score_loc": 0.05, "score_loc_group": 0.05 }, @@ -740,22 +721,41 @@ "componentID": 27529224, "name": "Offenbacher", "not_displayed": false, - "rank_data": "8", - "rank_data_group": "8", - "rank_data_loc": "8", - "rank_data_loc_group": "8", + "rank_data": "6", + "rank_data_group": "6", + "rank_data_loc": "7", + "rank_data_loc_group": "7", "rank_loc": "8", "rank_loc_group": "8", - "score_data": 0.472, - "score_data_group": 0.472, - "score_data_loc": 0.245, - "score_data_loc_group": 0.245, + "score_data": 0.567, + "score_data_group": 0.567, + "score_data_loc": 0.292, + "score_data_loc_group": 0.292, "score_loc": 0.017, "score_loc_group": 0.017 }, + { + "component": "Colestine", + "componentData": "Data Complete", + "componentID": 27529517, + "name": "Colestine", + "not_displayed": false, + "rank_data": "8", + "rank_data_group": "8", + "rank_data_loc": "8", + "rank_data_loc_group": "8", + "rank_loc": "6", + "rank_loc_group": "6", + "score_data": 0.429, + "score_data_group": 0.429, + "score_data_loc": 0.227, + "score_data_loc_group": 0.227, + "score_loc": 0.025, + "score_loc_group": 0.025 + }, { "component": "Beekman", - "componentData": NaN, + "componentData": "Data Complete", "componentID": 27529518, "name": "Beekman", "not_displayed": false, @@ -765,10 +765,10 @@ "rank_data_loc_group": "9", "rank_loc": "5", "rank_loc_group": "5", - "score_data": 0.365, - "score_data_group": 0.365, - "score_data_loc": 0.206, - "score_data_loc_group": 0.206, + "score_data": 0.393, + "score_data_group": 0.393, + "score_data_loc": 0.219, + "score_data_loc_group": 0.219, "score_loc": 0.046, "score_loc_group": 0.046 }, @@ -779,15 +779,15 @@ "name": "Josephine", "not_displayed": true, "rank_data": "Not Displayed", - "rank_data_group": "2", + "rank_data_group": "4", "rank_data_loc": "Not Displayed", "rank_data_loc_group": "2", "rank_loc": "2", "rank_loc_group": "2", - "score_data": 0.542, - "score_data_group": 0.668, - "score_data_loc": 0.334, - "score_data_loc_group": 0.397, + "score_data": 0.582, + "score_data_group": 0.657, + "score_data_loc": 0.354, + "score_data_loc_group": 0.391, "score_loc": 0.125, "score_loc_group": 0.125 } diff --git a/soil_id/tests/us/__snapshots__/test_us/test_soil_location[42.63413723,-94.31005777].json b/soil_id/tests/us/__snapshots__/test_us/test_soil_location[42.63413723,-94.31005777].json index b5a265c..c979d74 100644 --- a/soil_id/tests/us/__snapshots__/test_us/test_soil_location[42.63413723,-94.31005777].json +++ b/soil_id/tests/us/__snapshots__/test_us/test_soil_location[42.63413723,-94.31005777].json @@ -3,20 +3,20 @@ "AWS_PIW90": 2.55, "Soil Data Value": [ [ - "rfv_class_0", - 0.2488625668211104 + "texture_0", + 2.0248583345066042 ], [ - "rfv_class_30", - 0.24530228329929127 + "texture_30", + 2.0248583345066042 ], [ - "texture_0", - 0.0 + "rfv_class_0", + 0.2488625668211104 ], [ - "texture_30", - 0.0 + "rfv_class_30", + 0.24530228329929127 ] ], "metadata": { @@ -434,42 +434,42 @@ }, "soilRank": [ { - "component": "Nicollet", + "component": "Webster", "componentData": "Data Complete", - "componentID": 27398757, - "name": "Nicollet", + "componentID": 27398758, + "name": "Webster", "not_displayed": false, - "rank_data": "3", - "rank_data_group": "3", + "rank_data": "2", + "rank_data_group": "2", "rank_data_loc": "1", "rank_data_loc_group": "1", - "rank_loc": 1, - "rank_loc_group": 1, - "score_data": 0.369, - "score_data_group": 0.369, - "score_data_loc": 0.385, - "score_data_loc_group": 0.385, - "score_loc": 0.402, - "score_loc_group": 0.402 + "rank_loc": 2, + "rank_loc_group": 2, + "score_data": 0.451, + "score_data_group": 0.451, + "score_data_loc": 0.391, + "score_data_loc_group": 0.391, + "score_loc": 0.331, + "score_loc_group": 0.331 }, { - "component": "Webster", + "component": "Nicollet", "componentData": "Data Complete", - "componentID": 27398758, - "name": "Webster", + "componentID": 27398757, + "name": "Nicollet", "not_displayed": false, - "rank_data": "6", - "rank_data_group": "6", + "rank_data": "5", + "rank_data_group": "5", "rank_data_loc": "2", "rank_data_loc_group": "2", - "rank_loc": 2, - "rank_loc_group": 2, - "score_data": 0.287, - "score_data_group": 0.287, - "score_data_loc": 0.309, - "score_data_loc_group": 0.309, - "score_loc": 0.331, - "score_loc_group": 0.331 + "rank_loc": 1, + "rank_loc_group": 1, + "score_data": 0.334, + "score_data_group": 0.334, + "score_data_loc": 0.368, + "score_data_loc_group": 0.368, + "score_loc": 0.402, + "score_loc_group": 0.402 }, { "component": "Clarion", @@ -477,16 +477,16 @@ "componentID": 27398759, "name": "Clarion", "not_displayed": false, - "rank_data": "4", - "rank_data_group": "4", + "rank_data": "3", + "rank_data_group": "3", "rank_data_loc": "3", "rank_data_loc_group": "3", "rank_loc": 3, "rank_loc_group": 3, - "score_data": 0.367, - "score_data_group": 0.367, - "score_data_loc": 0.283, - "score_data_loc_group": 0.283, + "score_data": 0.426, + "score_data_group": 0.426, + "score_data_loc": 0.313, + "score_data_loc_group": 0.313, "score_loc": 0.2, "score_loc_group": 0.2 }, @@ -502,31 +502,31 @@ "rank_data_loc_group": "4", "rank_loc": 6, "rank_loc_group": 6, - "score_data": 0.433, - "score_data_group": 0.433, - "score_data_loc": 0.222, - "score_data_loc_group": 0.222, + "score_data": 0.567, + "score_data_group": 0.567, + "score_data_loc": 0.289, + "score_data_loc_group": 0.289, "score_loc": 0.011, "score_loc_group": 0.011 }, { - "component": "Glencoe", + "component": "Okoboji", "componentData": "Data Complete", - "componentID": 27398765, - "name": "Glencoe", + "componentID": 27398760, + "name": "Okoboji", "not_displayed": false, - "rank_data": "2", - "rank_data_group": "2", + "rank_data": "4", + "rank_data_group": "4", "rank_data_loc": "5", "rank_data_loc_group": "5", - "rank_loc": 5, - "rank_loc_group": 5, - "score_data": 0.433, - "score_data_group": 0.433, - "score_data_loc": 0.222, - "score_data_loc_group": 0.222, - "score_loc": 0.011, - "score_loc_group": 0.011 + "rank_loc": 4, + "rank_loc_group": 4, + "score_data": 0.337, + "score_data_group": 0.337, + "score_data_loc": 0.188, + "score_data_loc_group": 0.188, + "score_loc": 0.04, + "score_loc_group": 0.04 }, { "component": "Canisteo", @@ -534,37 +534,37 @@ "componentID": 27398763, "name": "Canisteo", "not_displayed": false, - "rank_data": "5", - "rank_data_group": "5", + "rank_data": "6", + "rank_data_group": "6", "rank_data_loc": "6", "rank_data_loc_group": "6", "rank_loc": 7, "rank_loc_group": 7, - "score_data": 0.336, - "score_data_group": 0.336, - "score_data_loc": 0.171, - "score_data_loc_group": 0.171, + "score_data": 0.291, + "score_data_group": 0.291, + "score_data_loc": 0.149, + "score_data_loc_group": 0.149, "score_loc": 0.007, "score_loc_group": 0.007 }, { - "component": "Okoboji", - "componentData": "Missing Data", - "componentID": 27398760, - "name": "Okoboji", + "component": "Glencoe", + "componentData": "Data Complete", + "componentID": 27398765, + "name": "Glencoe", "not_displayed": false, "rank_data": "7", "rank_data_group": "7", "rank_data_loc": "7", "rank_data_loc_group": "7", - "rank_loc": 4, - "rank_loc_group": 4, - "score_data": 0.253, - "score_data_group": 0.253, - "score_data_loc": 0.146, - "score_data_loc_group": 0.146, - "score_loc": 0.04, - "score_loc_group": 0.04 + "rank_loc": 5, + "rank_loc_group": 5, + "score_data": 0.268, + "score_data_group": 0.268, + "score_data_loc": 0.139, + "score_data_loc_group": 0.139, + "score_loc": 0.011, + "score_loc_group": 0.011 } ] } diff --git a/soil_id/tests/us/__snapshots__/test_us/test_soil_location[43.06450312,-119.4596489].json b/soil_id/tests/us/__snapshots__/test_us/test_soil_location[43.06450312,-119.4596489].json index 18d3a20..5994a82 100644 --- a/soil_id/tests/us/__snapshots__/test_us/test_soil_location[43.06450312,-119.4596489].json +++ b/soil_id/tests/us/__snapshots__/test_us/test_soil_location[43.06450312,-119.4596489].json @@ -3,20 +3,20 @@ "AWS_PIW90": 11.53, "Soil Data Value": [ [ - "rfv_class_30", - 1.6875961328426623 + "texture_0", + 2.8079607337604306 ], [ - "rfv_class_0", - 1.304781220223484 + "texture_30", + 2.8079607337604306 ], [ - "texture_30", - 0.35284738420075 + "rfv_class_30", + 1.6875961328426623 ], [ - "texture_0", - 0.0 + "rfv_class_0", + 1.304781220223484 ] ], "metadata": { @@ -82,7 +82,7 @@ "seeURL": "https://casoilresource.lawr.ucdavis.edu/see/#lonely", "slope": 19.0, "taxsubgrp": "Xeric Haplocambids", - "textureInfill": "No" + "textureInfill": "Yes" }, "siteDescription": "The Lonely series consists of moderately deep, well drained soils that formed in colluvium overlying igneous bedrock. Lonely soils are on dissected rock pediments and mountain sideslopes and have slopes of 2 to 30 percent. The mean annual precipitation is about 10 inches and the mean annual temperature is about 43 degrees F." }, @@ -194,7 +194,7 @@ "seeURL": "https://casoilresource.lawr.ucdavis.edu/see/#actem", "slope": 11.0, "taxsubgrp": "Xeric Argidurids", - "textureInfill": "No" + "textureInfill": "Yes" }, "siteDescription": "The Actem series consists of shallow to a duripan, well drained soils that formed in alluvium and colluvium derived from volcanic rocks. Actem soils are on hills and lava plateaus. Slopes are 2 to 20 percent. The mean annual precipitation is about 250 mm and the mean annual temperature is about 7 degrees C." }, @@ -362,7 +362,7 @@ "seeURL": "https://casoilresource.lawr.ucdavis.edu/see/#lonegrave", "slope": 55.0, "taxsubgrp": "Xeric Haplocambids", - "textureInfill": "No" + "textureInfill": "Yes" }, "siteDescription": "The Lonegrave series consists of moderately deep, well drained soils that formed in colluvium derived from volcanic rocks. Lonegrave soils are on plateaus, hills, canyonlands, and mountains. Slopes are 5 to 70 percent. The mean annual precipitation is about 280 mm and the mean annual temperature is about 7 degrees C." }, @@ -418,7 +418,7 @@ "seeURL": "https://casoilresource.lawr.ucdavis.edu/see/#raz", "slope": 11.0, "taxsubgrp": "Xeric Haplodurids", - "textureInfill": "No" + "textureInfill": "Yes" }, "siteDescription": "The Raz series consists of shallow to a duripan, well drained soils that formed in slope alluvium, colluvium and residuum derived from basalt and tuff. Raz soils are on lava plateaus. Slopes are 1 to 20 percent. The mean annual precipitation is about 230 mm and the mean annual temperature is about 7 degrees C." }, @@ -474,7 +474,7 @@ "seeURL": "https://casoilresource.lawr.ucdavis.edu/see/#brace", "slope": 11.0, "taxsubgrp": "Xeric Argidurids", - "textureInfill": "No" + "textureInfill": "Yes" }, "siteDescription": "The Brace series consists of moderately deep to a duripan, well drained soils that formed in slope alluvium, colluvium, and residuum derived from welded rhyolitic tuff and basalt. Brace soils are on structural benches, hills, and lava plateaus. Slopes are 1 to 20 percent. The mean annual precipitation is about 300 mm and the mean annual temperature is about 6 degrees C." }, @@ -530,7 +530,7 @@ "seeURL": "https://casoilresource.lawr.ucdavis.edu/see/#ausmus", "slope": 1.0, "taxsubgrp": "Aquic Natrargids", - "textureInfill": "No" + "textureInfill": "Yes" }, "siteDescription": "The Ausmus series consists of very deep, somewhat poorly drained or moderately well drained soils that formed in alluvium and lacustrine deposits derived from volcanic rocks and volcanic ash. Ausmus soils are on low lake terraces. Slopes are 0 to 2 percent. The mean annual precipitation is about 230 mm and the mean annual temperature is about 6.5 degrees C." }, @@ -551,16 +551,16 @@ "componentID": 27631144, "name": "Lonely", "not_displayed": false, - "rank_data": "6", - "rank_data_group": "6", + "rank_data": "3", + "rank_data_group": "3", "rank_data_loc": "1", "rank_data_loc_group": "1", "rank_loc": 1, "rank_loc_group": 1, - "score_data": 0.61, - "score_data_group": 0.61, - "score_data_loc": 0.439, - "score_data_loc_group": 0.439, + "score_data": 0.682, + "score_data_group": 0.682, + "score_data_loc": 0.475, + "score_data_loc_group": 0.475, "score_loc": 0.267, "score_loc_group": 0.267 }, @@ -570,16 +570,16 @@ "componentID": 27631143, "name": "Robson", "not_displayed": false, - "rank_data": "2", - "rank_data_group": "2", + "rank_data": "1", + "rank_data_group": "1", "rank_data_loc": "2", "rank_data_loc_group": "2", "rank_loc": 2, "rank_loc_group": 2, - "score_data": 0.69, - "score_data_group": 0.69, - "score_data_loc": 0.438, - "score_data_loc_group": 0.438, + "score_data": 0.74, + "score_data_group": 0.74, + "score_data_loc": 0.464, + "score_data_loc_group": 0.464, "score_loc": 0.187, "score_loc_group": 0.187 }, @@ -589,16 +589,16 @@ "componentID": 27631363, "name": "Actem", "not_displayed": false, - "rank_data": "1", - "rank_data_group": "1", + "rank_data": "2", + "rank_data_group": "2", "rank_data_loc": "3", "rank_data_loc_group": "3", "rank_loc": 5, "rank_loc_group": 5, - "score_data": 0.694, - "score_data_group": 0.694, - "score_data_loc": 0.404, - "score_data_loc_group": 0.404, + "score_data": 0.719, + "score_data_group": 0.719, + "score_data_loc": 0.416, + "score_data_loc_group": 0.416, "score_loc": 0.113, "score_loc_group": 0.113 }, @@ -608,75 +608,75 @@ "componentID": 27630911, "name": "Rinconflat", "not_displayed": false, - "rank_data": "5", - "rank_data_group": "5", + "rank_data": "4", + "rank_data_group": "4", "rank_data_loc": "4", "rank_data_loc_group": "4", "rank_loc": 4, "rank_loc_group": 4, - "score_data": 0.621, - "score_data_group": 0.621, - "score_data_loc": 0.367, - "score_data_loc_group": 0.367, + "score_data": 0.667, + "score_data_group": 0.667, + "score_data_loc": 0.39, + "score_data_loc_group": 0.39, "score_loc": 0.113, "score_loc_group": 0.113 }, { - "component": "Brace", + "component": "Reallis", "componentData": "Data Complete", - "componentID": 27630932, - "name": "Brace", + "componentID": 27630925, + "name": "Reallis", "not_displayed": false, - "rank_data": "3", - "rank_data_group": "3", + "rank_data": "5", + "rank_data_group": "5", "rank_data_loc": "5", "rank_data_loc_group": "5", - "rank_loc": 8, - "rank_loc_group": 8, - "score_data": 0.655, - "score_data_group": 0.655, - "score_data_loc": 0.351, - "score_data_loc_group": 0.351, - "score_loc": 0.046, - "score_loc_group": 0.046 + "rank_loc": 3, + "rank_loc_group": 3, + "score_data": 0.653, + "score_data_group": 0.653, + "score_data_loc": 0.383, + "score_data_loc_group": 0.383, + "score_loc": 0.113, + "score_loc_group": 0.113 }, { - "component": "Raz", + "component": "Brace", "componentData": "Data Complete", - "componentID": 27630931, - "name": "Raz", + "componentID": 27630932, + "name": "Brace", "not_displayed": false, - "rank_data": "4", - "rank_data_group": "4", + "rank_data": "6", + "rank_data_group": "6", "rank_data_loc": "6", "rank_data_loc_group": "6", - "rank_loc": 7, - "rank_loc_group": 7, - "score_data": 0.629, - "score_data_group": 0.629, + "rank_loc": 8, + "rank_loc_group": 8, + "score_data": 0.65, + "score_data_group": 0.65, "score_data_loc": 0.348, "score_data_loc_group": 0.348, - "score_loc": 0.067, - "score_loc_group": 0.067 + "score_loc": 0.046, + "score_loc_group": 0.046 }, { - "component": "Reallis", + "component": "Raz", "componentData": "Data Complete", - "componentID": 27630925, - "name": "Reallis", + "componentID": 27630931, + "name": "Raz", "not_displayed": false, "rank_data": "8", "rank_data_group": "8", "rank_data_loc": "7", "rank_data_loc_group": "7", - "rank_loc": 3, - "rank_loc_group": 3, - "score_data": 0.579, - "score_data_group": 0.579, - "score_data_loc": 0.346, - "score_data_loc_group": 0.346, - "score_loc": 0.113, - "score_loc_group": 0.113 + "rank_loc": 7, + "rank_loc_group": 7, + "score_data": 0.623, + "score_data_group": 0.623, + "score_data_loc": 0.345, + "score_data_loc_group": 0.345, + "score_loc": 0.067, + "score_loc_group": 0.067 }, { "component": "Ausmus", @@ -690,10 +690,10 @@ "rank_data_loc_group": "8", "rank_loc": 9, "rank_loc_group": 9, - "score_data": 0.602, - "score_data_group": 0.602, - "score_data_loc": 0.303, - "score_data_loc_group": 0.303, + "score_data": 0.641, + "score_data_group": 0.641, + "score_data_loc": 0.323, + "score_data_loc_group": 0.323, "score_loc": 0.005, "score_loc_group": 0.005 }, @@ -709,10 +709,10 @@ "rank_data_loc_group": "9", "rank_loc": 6, "rank_loc_group": 6, - "score_data": 0.437, - "score_data_group": 0.437, - "score_data_loc": 0.262, - "score_data_loc_group": 0.262, + "score_data": 0.531, + "score_data_group": 0.531, + "score_data_loc": 0.309, + "score_data_loc_group": 0.309, "score_loc": 0.087, "score_loc_group": 0.087 } diff --git a/soil_id/tests/us/__snapshots__/test_us/test_soil_location[45.6508331,-121.5111084].json b/soil_id/tests/us/__snapshots__/test_us/test_soil_location[45.6508331,-121.5111084].json index 8fc2ae6..0624850 100644 --- a/soil_id/tests/us/__snapshots__/test_us/test_soil_location[45.6508331,-121.5111084].json +++ b/soil_id/tests/us/__snapshots__/test_us/test_soil_location[45.6508331,-121.5111084].json @@ -65,7 +65,7 @@ "seeURL": "https://casoilresource.lawr.ucdavis.edu/see/#hood", "slope": 2.0, "taxsubgrp": "Ultic Haploxeralfs", - "textureInfill": "No" + "textureInfill": "Yes" }, "siteDescription": "The Hood series consists of very deep, well drained soils formed in silty or loamy lacustrine deposits. Hood soils are on dissected terraces and terrace escarpments. Slopes are 0 to 65 percent. The mean annual precipitation is 38 inches and mean annual temperature is 50 degrees F." }, @@ -121,7 +121,7 @@ "seeURL": "https://casoilresource.lawr.ucdavis.edu/see/#hood", "slope": 30.0, "taxsubgrp": "Ultic Haploxeralfs", - "textureInfill": "No" + "textureInfill": "Yes" }, "siteDescription": "The Hood series consists of very deep, well drained soils formed in silty or loamy lacustrine deposits. Hood soils are on dissected terraces and terrace escarpments. Slopes are 0 to 65 percent. The mean annual precipitation is 38 inches and mean annual temperature is 50 degrees F." }, @@ -177,7 +177,7 @@ "seeURL": "https://casoilresource.lawr.ucdavis.edu/see/#hood", "slope": 6.0, "taxsubgrp": "Ultic Haploxeralfs", - "textureInfill": "No" + "textureInfill": "Yes" }, "siteDescription": "The Hood series consists of very deep, well drained soils formed in silty or loamy lacustrine deposits. Hood soils are on dissected terraces and terrace escarpments. Slopes are 0 to 65 percent. The mean annual precipitation is 38 inches and mean annual temperature is 50 degrees F." }, diff --git a/soil_id/tests/us/__snapshots__/test_us/test_soil_location[45.88932423,-121.0347381].json b/soil_id/tests/us/__snapshots__/test_us/test_soil_location[45.88932423,-121.0347381].json index 995ee95..abcfdc0 100644 --- a/soil_id/tests/us/__snapshots__/test_us/test_soil_location[45.88932423,-121.0347381].json +++ b/soil_id/tests/us/__snapshots__/test_us/test_soil_location[45.88932423,-121.0347381].json @@ -65,7 +65,7 @@ "seeURL": "https://casoilresource.lawr.ucdavis.edu/see/#gunn", "slope": 5.0, "taxsubgrp": "Ultic Haploxeralfs", - "textureInfill": "Yes" + "textureInfill": "No" }, "siteDescription": "Landscape--plateaus, hills\nLandform--structural benches, hillslopes, ridgetops\nSlope--0 to 65 percent\nParent material--loess mixed with colluvium and residuum derived from basalt\nMean annual precipitation--about 530 mm\nMean annual air temperature--about 9 degrees C\nDepth class--deep, very deep\nDrainage class--well drained\nSoil moisture regime--xeric\nSoil temperature regime--mesic\nSoil moisture subclass--typic" }, @@ -121,7 +121,7 @@ "seeURL": "https://casoilresource.lawr.ucdavis.edu/see/#gunn", "slope": 19.0, "taxsubgrp": "Ultic Haploxeralfs", - "textureInfill": "Yes" + "textureInfill": "No" }, "siteDescription": "Landscape--plateaus, hills\nLandform--structural benches, hillslopes, ridgetops\nSlope--0 to 65 percent\nParent material--loess mixed with colluvium and residuum derived from basalt\nMean annual precipitation--about 530 mm\nMean annual air temperature--about 9 degrees C\nDepth class--deep, very deep\nDrainage class--well drained\nSoil moisture regime--xeric\nSoil temperature regime--mesic\nSoil moisture subclass--typic" }, @@ -138,7 +138,7 @@ "soilRank": [ { "component": "Gunn", - "componentData": NaN, + "componentData": "Data Complete", "componentID": 26581766, "name": "Gunn2", "not_displayed": false, @@ -148,16 +148,16 @@ "rank_data_loc_group": "1", "rank_loc": "Not Displayed", "rank_loc_group": "1", - "score_data": 0.37, - "score_data_group": 0.37, - "score_data_loc": 0.649, - "score_data_loc_group": 0.649, + "score_data": 0.443, + "score_data_group": 0.443, + "score_data_loc": 0.686, + "score_data_loc_group": 0.686, "score_loc": 0.929, "score_loc_group": 0.929 }, { "component": "Gunn", - "componentData": NaN, + "componentData": "Data Complete", "componentID": 26581758, "name": "Gunn", "not_displayed": true, @@ -167,10 +167,10 @@ "rank_data_loc_group": "1", "rank_loc": "1", "rank_loc_group": "1", - "score_data": 0.312, - "score_data_group": 0.37, - "score_data_loc": 0.62, - "score_data_loc_group": 0.649, + "score_data": 0.401, + "score_data_group": 0.443, + "score_data_loc": 0.665, + "score_data_loc_group": 0.686, "score_loc": 0.929, "score_loc_group": 0.929 } diff --git a/soil_id/tests/us/__snapshots__/test_us/test_soil_location[47.213922,-69.28246582].json b/soil_id/tests/us/__snapshots__/test_us/test_soil_location[47.213922,-69.28246582].json index 3f1d087..9215c03 100644 --- a/soil_id/tests/us/__snapshots__/test_us/test_soil_location[47.213922,-69.28246582].json +++ b/soil_id/tests/us/__snapshots__/test_us/test_soil_location[47.213922,-69.28246582].json @@ -3,20 +3,20 @@ "AWS_PIW90": 4.73, "Soil Data Value": [ [ - "rfv_class_0", - 1.561554765729544 + "texture_0", + 1.824911885818355 ], [ - "rfv_class_30", - 1.543062149933733 + "rfv_class_0", + 1.561554765729544 ], [ "texture_30", - 0.9908959471041263 + 1.543062149933733 ], [ - "texture_0", - 0.0 + "rfv_class_30", + 1.543062149933733 ] ], "metadata": { @@ -138,7 +138,7 @@ "seeURL": "https://casoilresource.lawr.ucdavis.edu/see/#chesuncook", "slope": 20.0, "taxsubgrp": "Aquic Haplorthods", - "textureInfill": "No" + "textureInfill": "Yes" }, "siteDescription": "The Chesuncook series consists of very deep, moderately well drained soils on till plains, hills, ridges, and mountains. These soils formed in dense glacial till. Saturated hydraulic conductivity is moderately high or high in the solum, and low to moderately high in the dense substratum. Slope ranges from 3 to 45 percent. Mean annual temperature is about 4 degrees C, and mean annual precipitation is about 1092 mm at the type location." }, @@ -194,7 +194,7 @@ "seeURL": "https://casoilresource.lawr.ucdavis.edu/see/#elliottsville", "slope": 25.0, "taxsubgrp": "Typic Haplorthods", - "textureInfill": "No" + "textureInfill": "Yes" }, "siteDescription": "The Elliottsville series consists of moderately deep, well drained soils formed in glacial till on till plains, hills, ridges and mountains. Permeability is moderate. Slope ranges from 3 to 65 percent. Mean annual temperature is about 3 degrees C, and mean annual precipitation is about 970 mm at the type location." }, @@ -250,7 +250,7 @@ "seeURL": "https://casoilresource.lawr.ucdavis.edu/see/#monson", "slope": 40.0, "taxsubgrp": "Lithic Haplorthods", - "textureInfill": "No" + "textureInfill": "Yes" }, "siteDescription": "The Monson series consists of shallow, somewhat excessively drained soils formed in glacial till on knolls of till plains, and on hills, ridges and mountains. Estimated saturated hydraulic conductivity is moderate or high. Slope ranges from 3 to 60 percent. Mean annual temperature is about 3 degrees C, and mean annual precipitation is about 965 mm at the type location." }, @@ -306,7 +306,7 @@ "seeURL": "https://casoilresource.lawr.ucdavis.edu/see/#knob_lock", "slope": 50.0, "taxsubgrp": "Lithic Udifolists", - "textureInfill": "No" + "textureInfill": "Yes" }, "siteDescription": "The Knob Lock series consists of very shallow and shallow, well drained through excessively drained organic soils on mountains and hills. They formed in thin organic deposits underlain in most places by a very thin mineral horizon over bedrock. Saturated hydraulic conductivity is moderately high through very high throughout the soil. Slope ranges from 3 through 80 percent. Mean annual precipitation is about 1092 mm and mean annual temperature is about 5 degrees C." }, @@ -362,7 +362,7 @@ "seeURL": "https://casoilresource.lawr.ucdavis.edu/see/#elliottsville", "slope": 40.0, "taxsubgrp": "Typic Haplorthods", - "textureInfill": "No" + "textureInfill": "Yes" }, "siteDescription": "The Elliottsville series consists of moderately deep, well drained soils formed in glacial till on till plains, hills, ridges and mountains. Permeability is moderate. Slope ranges from 3 to 65 percent. Mean annual temperature is about 3 degrees C, and mean annual precipitation is about 970 mm at the type location." }, @@ -389,32 +389,13 @@ "rank_data_loc_group": "1", "rank_loc": "2", "rank_loc_group": "2", - "score_data": 0.737, - "score_data_group": 0.737, - "score_data_loc": 0.521, - "score_data_loc_group": 0.521, + "score_data": 0.679, + "score_data_group": 0.679, + "score_data_loc": 0.492, + "score_data_loc_group": 0.492, "score_loc": 0.306, "score_loc_group": 0.306 }, - { - "component": "Elliottsville", - "componentData": "Data Complete", - "componentID": 26560911, - "name": "Elliottsville", - "not_displayed": false, - "rank_data": "2", - "rank_data_group": "2", - "rank_data_loc": "2", - "rank_data_loc_group": "2", - "rank_loc": "3", - "rank_loc_group": "3", - "score_data": 0.697, - "score_data_group": 0.697, - "score_data_loc": 0.474, - "score_data_loc_group": 0.474, - "score_loc": 0.25, - "score_loc_group": 0.25 - }, { "component": "Knob lock", "componentData": "Data Complete", @@ -423,17 +404,36 @@ "not_displayed": false, "rank_data": "4", "rank_data_group": "4", - "rank_data_loc": "3", - "rank_data_loc_group": "3", + "rank_data_loc": "2", + "rank_data_loc_group": "2", "rank_loc": "Not Displayed", "rank_loc_group": "1", - "score_data": 0.475, - "score_data_group": 0.475, - "score_data_loc": 0.424, - "score_data_loc_group": 0.424, + "score_data": 0.532, + "score_data_group": 0.532, + "score_data_loc": 0.452, + "score_data_loc_group": 0.452, "score_loc": 0.372, "score_loc_group": 0.372 }, + { + "component": "Elliottsville", + "componentData": "Data Complete", + "componentID": 26560911, + "name": "Elliottsville", + "not_displayed": false, + "rank_data": "2", + "rank_data_group": "2", + "rank_data_loc": "3", + "rank_data_loc_group": "3", + "rank_loc": "3", + "rank_loc_group": "3", + "score_data": 0.647, + "score_data_group": 0.647, + "score_data_loc": 0.449, + "score_data_loc_group": 0.449, + "score_loc": 0.25, + "score_loc_group": 0.25 + }, { "component": "Monson", "componentData": "Data Complete", @@ -448,8 +448,8 @@ "rank_loc_group": "4", "score_data": 0.608, "score_data_group": 0.608, - "score_data_loc": 0.34, - "score_data_loc_group": 0.34, + "score_data_loc": 0.339, + "score_data_loc_group": 0.339, "score_loc": 0.071, "score_loc_group": 0.071 }, @@ -462,13 +462,13 @@ "rank_data": "Not Displayed", "rank_data_group": "2", "rank_data_loc": "Not Displayed", - "rank_data_loc_group": "2", + "rank_data_loc_group": "3", "rank_loc": "Not Displayed", "rank_loc_group": "3", - "score_data": 0.536, - "score_data_group": 0.697, - "score_data_loc": 0.393, - "score_data_loc_group": 0.474, + "score_data": 0.582, + "score_data_group": 0.647, + "score_data_loc": 0.416, + "score_data_loc_group": 0.449, "score_loc": 0.25, "score_loc_group": 0.25 }, @@ -481,13 +481,13 @@ "rank_data": "Not Displayed", "rank_data_group": "4", "rank_data_loc": "Not Displayed", - "rank_data_loc_group": "3", + "rank_data_loc_group": "2", "rank_loc": "1", "rank_loc_group": "1", - "score_data": 0.406, - "score_data_group": 0.475, - "score_data_loc": 0.389, - "score_data_loc_group": 0.424, + "score_data": 0.404, + "score_data_group": 0.532, + "score_data_loc": 0.388, + "score_data_loc_group": 0.452, "score_loc": 0.372, "score_loc_group": 0.372 } diff --git a/soil_id/tests/us/__snapshots__/test_us/test_soil_location[48.6956,-121.8166].json b/soil_id/tests/us/__snapshots__/test_us/test_soil_location[48.6956,-121.8166].json index 392dbb5..a4c007f 100644 --- a/soil_id/tests/us/__snapshots__/test_us/test_soil_location[48.6956,-121.8166].json +++ b/soil_id/tests/us/__snapshots__/test_us/test_soil_location[48.6956,-121.8166].json @@ -3,20 +3,20 @@ "AWS_PIW90": 17.67, "Soil Data Value": [ [ - "rfv_class_0", - 0.6201391749943385 + "texture_0", + 1.4521501008635898 ], [ - "rfv_class_30", - 0.6201391749943385 + "texture_30", + 1.4521501008635898 ], [ - "texture_0", - 0.0 + "rfv_class_0", + 0.6201391749943385 ], [ - "texture_30", - 0.0 + "rfv_class_30", + 0.6201391749943385 ] ], "metadata": { @@ -221,10 +221,10 @@ "rank_data_loc_group": "1", "rank_loc": 1, "rank_loc_group": 1, - "score_data": 0.496, - "score_data_group": 0.496, - "score_data_loc": 0.491, - "score_data_loc_group": 0.491, + "score_data": 0.525, + "score_data_group": 0.525, + "score_data_loc": 0.505, + "score_data_loc_group": 0.505, "score_loc": 0.486, "score_loc_group": 0.486 }, @@ -240,10 +240,10 @@ "rank_data_loc_group": "2", "rank_loc": 2, "rank_loc_group": 2, - "score_data": 0.229, - "score_data_group": 0.229, - "score_data_loc": 0.294, - "score_data_loc_group": 0.294, + "score_data": 0.243, + "score_data_group": 0.243, + "score_data_loc": 0.301, + "score_data_loc_group": 0.301, "score_loc": 0.36, "score_loc_group": 0.36 }, @@ -259,10 +259,10 @@ "rank_data_loc_group": "3", "rank_loc": 3, "rank_loc_group": 3, - "score_data": 0.352, - "score_data_group": 0.352, - "score_data_loc": 0.253, - "score_data_loc_group": 0.253, + "score_data": 0.362, + "score_data_group": 0.362, + "score_data_loc": 0.258, + "score_data_loc_group": 0.258, "score_loc": 0.154, "score_loc_group": 0.154 } diff --git a/soil_id/tests/us/__snapshots__/test_us/test_soil_location[60.42282639,-158.4018264].json b/soil_id/tests/us/__snapshots__/test_us/test_soil_location[60.42282639,-158.4018264].json index 70eea00..217de26 100644 --- a/soil_id/tests/us/__snapshots__/test_us/test_soil_location[60.42282639,-158.4018264].json +++ b/soil_id/tests/us/__snapshots__/test_us/test_soil_location[60.42282639,-158.4018264].json @@ -3,20 +3,20 @@ "AWS_PIW90": 7.66, "Soil Data Value": [ [ - "rfv_class_30", - 1.338959652390504 + "texture_0", + 2.3604101379998084 ], [ "texture_30", - 0.48238718594988694 + 2.3604101379998084 ], [ - "rfv_class_0", - 0.20970102486621656 + "rfv_class_30", + 1.338959652390504 ], [ - "texture_0", - 0.0 + "rfv_class_0", + 0.20970102486621656 ] ], "metadata": { diff --git a/soil_id/tests/us/__snapshots__/test_us/test_soil_location[62.32776717,-157.2767099].json b/soil_id/tests/us/__snapshots__/test_us/test_soil_location[62.32776717,-157.2767099].json index 662497f..cff3ea7 100644 --- a/soil_id/tests/us/__snapshots__/test_us/test_soil_location[62.32776717,-157.2767099].json +++ b/soil_id/tests/us/__snapshots__/test_us/test_soil_location[62.32776717,-157.2767099].json @@ -3,20 +3,20 @@ "AWS_PIW90": 12.07, "Soil Data Value": [ [ - "rfv_class_0", - 1.7621306108711137 + "texture_0", + 2.639110609771892 ], [ - "rfv_class_30", - 1.6416647689252122 + "texture_30", + 2.2589411072908874 ], [ - "texture_30", - 0.9858150371789198 + "rfv_class_0", + 1.7621306108711137 ], [ - "texture_0", - 0.0 + "rfv_class_30", + 1.6416647689252122 ] ], "metadata": { @@ -557,10 +557,10 @@ "rank_data_loc_group": "1", "rank_loc": 1, "rank_loc_group": 1, - "score_data": 0.822, - "score_data_group": 0.822, - "score_data_loc": 0.561, - "score_data_loc_group": 0.561, + "score_data": 0.849, + "score_data_group": 0.849, + "score_data_loc": 0.574, + "score_data_loc_group": 0.574, "score_loc": 0.3, "score_loc_group": 0.3 }, @@ -576,10 +576,10 @@ "rank_data_loc_group": "2", "rank_loc": 2, "rank_loc_group": 2, - "score_data": 0.678, - "score_data_group": 0.678, - "score_data_loc": 0.484, - "score_data_loc_group": 0.484, + "score_data": 0.706, + "score_data_group": 0.706, + "score_data_loc": 0.498, + "score_data_loc_group": 0.498, "score_loc": 0.29, "score_loc_group": 0.29 }, @@ -595,10 +595,10 @@ "rank_data_loc_group": "3", "rank_loc": 3, "rank_loc_group": 3, - "score_data": 0.771, - "score_data_group": 0.771, - "score_data_loc": 0.45, - "score_data_loc_group": 0.45, + "score_data": 0.778, + "score_data_group": 0.778, + "score_data_loc": 0.454, + "score_data_loc_group": 0.454, "score_loc": 0.13, "score_loc_group": 0.13 }, @@ -614,32 +614,13 @@ "rank_data_loc_group": "4", "rank_loc": 4, "rank_loc_group": 4, - "score_data": 0.736, - "score_data_group": 0.736, - "score_data_loc": 0.403, - "score_data_loc_group": 0.403, + "score_data": 0.763, + "score_data_group": 0.763, + "score_data_loc": 0.417, + "score_data_loc_group": 0.417, "score_loc": 0.07, "score_loc_group": 0.07 }, - { - "component": "E30-boreal taiga/tussock-silty frozen slopes", - "componentData": "Missing Data", - "componentID": 27026715, - "name": "E30-boreal taiga/tussock-silty frozen slopes", - "not_displayed": false, - "rank_data": "6", - "rank_data_group": "6", - "rank_data_loc": "5", - "rank_data_loc_group": "5", - "rank_loc": 5, - "rank_loc_group": 5, - "score_data": 0.605, - "score_data_group": 0.605, - "score_data_loc": 0.332, - "score_data_loc_group": 0.332, - "score_loc": 0.06, - "score_loc_group": 0.06 - }, { "component": "E30-boreal scrub-silty frozen drainageways", "componentData": "Missing Data", @@ -648,33 +629,52 @@ "not_displayed": false, "rank_data": "5", "rank_data_group": "5", - "rank_data_loc": "6", - "rank_data_loc_group": "6", + "rank_data_loc": "5", + "rank_data_loc_group": "5", "rank_loc": 7, "rank_loc_group": 7, - "score_data": 0.616, - "score_data_group": 0.616, - "score_data_loc": 0.328, - "score_data_loc_group": 0.328, + "score_data": 0.676, + "score_data_group": 0.676, + "score_data_loc": 0.358, + "score_data_loc_group": 0.358, "score_loc": 0.04, "score_loc_group": 0.04 }, + { + "component": "E30-boreal taiga/tussock-silty frozen slopes", + "componentData": "Missing Data", + "componentID": 27026715, + "name": "E30-boreal taiga/tussock-silty frozen slopes", + "not_displayed": false, + "rank_data": "7", + "rank_data_group": "7", + "rank_data_loc": "6", + "rank_data_loc_group": "6", + "rank_loc": 5, + "rank_loc_group": 5, + "score_data": 0.618, + "score_data_group": 0.618, + "score_data_loc": 0.339, + "score_data_loc_group": 0.339, + "score_loc": 0.06, + "score_loc_group": 0.06 + }, { "component": "E30-boreal subalpine woodland-gravelly colluvial slopes", "componentData": "Missing Data", "componentID": 27026719, "name": "E30-boreal subalpine woodland-gravelly colluvial slopes", "not_displayed": false, - "rank_data": "7", - "rank_data_group": "7", + "rank_data": "6", + "rank_data_group": "6", "rank_data_loc": "7", "rank_data_loc_group": "7", "rank_loc": 9, "rank_loc_group": 9, - "score_data": 0.567, - "score_data_group": 0.567, - "score_data_loc": 0.298, - "score_data_loc_group": 0.298, + "score_data": 0.646, + "score_data_group": 0.646, + "score_data_loc": 0.338, + "score_data_loc_group": 0.338, "score_loc": 0.03, "score_loc_group": 0.03 }, @@ -690,10 +690,10 @@ "rank_data_loc_group": "8", "rank_loc": 8, "rank_loc_group": 8, - "score_data": 0.565, - "score_data_group": 0.565, - "score_data_loc": 0.298, - "score_data_loc_group": 0.298, + "score_data": 0.594, + "score_data_group": 0.594, + "score_data_loc": 0.312, + "score_data_loc_group": 0.312, "score_loc": 0.03, "score_loc_group": 0.03 }, @@ -709,10 +709,10 @@ "rank_data_loc_group": "9", "rank_loc": 6, "rank_loc_group": 6, - "score_data": 0.494, - "score_data_group": 0.494, - "score_data_loc": 0.272, - "score_data_loc_group": 0.272, + "score_data": 0.518, + "score_data_group": 0.518, + "score_data_loc": 0.284, + "score_data_loc_group": 0.284, "score_loc": 0.05, "score_loc_group": 0.05 } diff --git a/soil_id/tests/us/__snapshots__/test_us/test_soil_location[63.52666854,-156.4422738].json b/soil_id/tests/us/__snapshots__/test_us/test_soil_location[63.52666854,-156.4422738].json index 04a24fc..6449857 100644 --- a/soil_id/tests/us/__snapshots__/test_us/test_soil_location[63.52666854,-156.4422738].json +++ b/soil_id/tests/us/__snapshots__/test_us/test_soil_location[63.52666854,-156.4422738].json @@ -3,20 +3,20 @@ "AWS_PIW90": 16.97, "Soil Data Value": [ [ - "rfv_class_30", - 1.6626417621471414 + "texture_0", + 2.8656850294361527 ], [ - "rfv_class_0", - 1.2739601523701045 + "texture_30", + 2.7789700817384553 ], [ - "texture_30", - 0.46616973466368394 + "rfv_class_30", + 1.6626417621471412 ], [ - "texture_0", - 0.0 + "rfv_class_0", + 1.2739601523701045 ] ], "metadata": { @@ -714,42 +714,42 @@ }, "soilRank": [ { - "component": "E30-boreal taiga-organic frozen peat plateaus", + "component": "E30-boreal taiga-loamy frozen colluvial slopes", "componentData": "Missing Data", - "componentID": 26837488, - "name": "E30-boreal taiga-organic frozen peat plateaus", + "componentID": 26837483, + "name": "E30-boreal taiga-loamy frozen colluvial slopes", "not_displayed": false, - "rank_data": "4", - "rank_data_group": "4", + "rank_data": "10", + "rank_data_group": "10", "rank_data_loc": "1", "rank_data_loc_group": "1", - "rank_loc": 3, - "rank_loc_group": 3, - "score_data": 0.657, - "score_data_group": 0.657, - "score_data_loc": 0.385, - "score_data_loc_group": 0.385, - "score_loc": 0.114, - "score_loc_group": 0.114 + "rank_loc": 1, + "rank_loc_group": 1, + "score_data": 0.643, + "score_data_group": 0.643, + "score_data_loc": 0.457, + "score_data_loc_group": 0.457, + "score_loc": 0.272, + "score_loc_group": 0.272 }, { - "component": "E30-boreal taiga-loamy frozen colluvial slopes", + "component": "E30-boreal forest-silty slopes", "componentData": "Missing Data", - "componentID": 26837483, - "name": "E30-boreal taiga-loamy frozen colluvial slopes", + "componentID": 26837482, + "name": "E30-boreal forest-silty slopes", "not_displayed": false, - "rank_data": "8", - "rank_data_group": "8", + "rank_data": "1", + "rank_data_group": "1", "rank_data_loc": "2", "rank_data_loc_group": "2", - "rank_loc": 1, - "rank_loc_group": 1, - "score_data": 0.481, - "score_data_group": 0.481, - "score_data_loc": 0.377, - "score_data_loc_group": 0.377, - "score_loc": 0.272, - "score_loc_group": 0.272 + "rank_loc": 6, + "rank_loc_group": 6, + "score_data": 0.825, + "score_data_group": 0.825, + "score_data_loc": 0.44, + "score_data_loc_group": 0.44, + "score_loc": 0.056, + "score_loc_group": 0.056 }, { "component": "E30-boreal forest-silty loess slopes", @@ -757,37 +757,37 @@ "componentID": 26837431, "name": "E30-boreal forest-silty loess slopes", "not_displayed": false, - "rank_data": "1", - "rank_data_group": "1", + "rank_data": "3", + "rank_data_group": "3", "rank_data_loc": "3", "rank_data_loc_group": "3", "rank_loc": 7, "rank_loc_group": 7, - "score_data": 0.706, - "score_data_group": 0.706, - "score_data_loc": 0.376, - "score_data_loc_group": 0.376, + "score_data": 0.794, + "score_data_group": 0.794, + "score_data_loc": 0.42, + "score_data_loc_group": 0.42, "score_loc": 0.046, "score_loc_group": 0.046 }, { - "component": "E30-boreal forest-loamy flood plains", + "component": "E30-boreal taiga-organic frozen peat plateaus", "componentData": "Missing Data", - "componentID": 26837486, - "name": "E30-boreal forest-loamy flood plains", + "componentID": 26837488, + "name": "E30-boreal taiga-organic frozen peat plateaus", "not_displayed": false, - "rank_data": "5", - "rank_data_group": "5", + "rank_data": "7", + "rank_data_group": "7", "rank_data_loc": "4", "rank_data_loc_group": "4", - "rank_loc": 5, - "rank_loc_group": 5, - "score_data": 0.649, - "score_data_group": 0.649, - "score_data_loc": 0.36, - "score_data_loc_group": 0.36, - "score_loc": 0.072, - "score_loc_group": 0.072 + "rank_loc": 3, + "rank_loc_group": 3, + "score_data": 0.715, + "score_data_group": 0.715, + "score_data_loc": 0.414, + "score_data_loc_group": 0.414, + "score_loc": 0.114, + "score_loc_group": 0.114 }, { "component": "E30-boreal scrub-gravelly low flood plains", @@ -795,16 +795,16 @@ "componentID": 26837485, "name": "E30-boreal scrub-gravelly low flood plains", "not_displayed": false, - "rank_data": "7", - "rank_data_group": "7", + "rank_data": "9", + "rank_data_group": "9", "rank_data_loc": "5", "rank_data_loc_group": "5", "rank_loc": 2, "rank_loc_group": 2, - "score_data": 0.567, - "score_data_group": 0.567, - "score_data_loc": 0.359, - "score_data_loc_group": 0.359, + "score_data": 0.673, + "score_data_group": 0.673, + "score_data_loc": 0.413, + "score_data_loc_group": 0.413, "score_loc": 0.152, "score_loc_group": 0.152 }, @@ -820,29 +820,48 @@ "rank_data_loc_group": "6", "rank_loc": 12, "rank_loc_group": 12, - "score_data": 0.687, - "score_data_group": 0.687, - "score_data_loc": 0.345, - "score_data_loc_group": 0.345, + "score_data": 0.806, + "score_data_group": 0.806, + "score_data_loc": 0.404, + "score_data_loc_group": 0.404, "score_loc": 0.002, "score_loc_group": 0.002 }, + { + "component": "E30-boreal forest-loamy flood plains", + "componentData": "Missing Data", + "componentID": 26837486, + "name": "E30-boreal forest-loamy flood plains", + "not_displayed": false, + "rank_data": "5", + "rank_data_group": "5", + "rank_data_loc": "7", + "rank_data_loc_group": "7", + "rank_loc": 5, + "rank_loc_group": 5, + "score_data": 0.723, + "score_data_group": 0.723, + "score_data_loc": 0.397, + "score_data_loc_group": 0.397, + "score_loc": 0.072, + "score_loc_group": 0.072 + }, { "component": "E30-boreal subalpine scrub-loamy colluvial slopes", "componentData": "Missing Data", "componentID": 26837433, "name": "E30-boreal subalpine scrub-loamy colluvial slopes", "not_displayed": false, - "rank_data": "3", - "rank_data_group": "3", - "rank_data_loc": "7", - "rank_data_loc_group": "7", + "rank_data": "4", + "rank_data_group": "4", + "rank_data_loc": "8", + "rank_data_loc_group": "8", "rank_loc": 11, "rank_loc_group": 11, - "score_data": 0.673, - "score_data_group": 0.673, - "score_data_loc": 0.338, - "score_data_loc_group": 0.338, + "score_data": 0.745, + "score_data_group": 0.745, + "score_data_loc": 0.374, + "score_data_loc_group": 0.374, "score_loc": 0.002, "score_loc_group": 0.002 }, @@ -854,35 +873,35 @@ "not_displayed": false, "rank_data": "6", "rank_data_group": "6", - "rank_data_loc": "8", - "rank_data_loc_group": "8", + "rank_data_loc": "9", + "rank_data_loc_group": "9", "rank_loc": 9, "rank_loc_group": 9, - "score_data": 0.647, - "score_data_group": 0.647, - "score_data_loc": 0.335, - "score_data_loc_group": 0.335, + "score_data": 0.718, + "score_data_group": 0.718, + "score_data_loc": 0.371, + "score_data_loc_group": 0.371, "score_loc": 0.024, "score_loc_group": 0.024 }, { - "component": "E30-boreal forest-silty slopes", + "component": "E30-boreal scrub-silty frozen drainageways", "componentData": "Missing Data", - "componentID": 26837482, - "name": "E30-boreal forest-silty slopes", + "componentID": 26837432, + "name": "E30-boreal scrub-silty frozen drainageways", "not_displayed": false, - "rank_data": "10", - "rank_data_group": "10", - "rank_data_loc": "9", - "rank_data_loc_group": "9", - "rank_loc": 6, - "rank_loc_group": 6, - "score_data": 0.473, - "score_data_group": 0.473, - "score_data_loc": 0.264, - "score_data_loc_group": 0.264, - "score_loc": 0.056, - "score_loc_group": 0.056 + "rank_data": "8", + "rank_data_group": "8", + "rank_data_loc": "10", + "rank_data_loc_group": "10", + "rank_loc": 10, + "rank_loc_group": 10, + "score_data": 0.713, + "score_data_group": 0.713, + "score_data_loc": 0.368, + "score_data_loc_group": 0.368, + "score_loc": 0.022, + "score_loc_group": 0.022 }, { "component": "E30-boreal scrub/sphagnum-organic depressions", @@ -890,37 +909,18 @@ "componentID": 26837487, "name": "E30-boreal scrub/sphagnum-organic depressions", "not_displayed": false, - "rank_data": "9", - "rank_data_group": "9", - "rank_data_loc": "10", - "rank_data_loc_group": "10", - "rank_loc": 8, - "rank_loc_group": 8, - "score_data": 0.473, - "score_data_group": 0.473, - "score_data_loc": 0.248, - "score_data_loc_group": 0.248, - "score_loc": 0.024, - "score_loc_group": 0.024 - }, - { - "component": "E30-boreal scrub-silty frozen drainageways", - "componentData": "Missing Data", - "componentID": 26837432, - "name": "E30-boreal scrub-silty frozen drainageways", - "not_displayed": false, "rank_data": "11", "rank_data_group": "11", "rank_data_loc": "11", "rank_data_loc_group": "11", - "rank_loc": 10, - "rank_loc_group": 10, - "score_data": 0.361, - "score_data_group": 0.361, - "score_data_loc": 0.192, - "score_data_loc_group": 0.192, - "score_loc": 0.022, - "score_loc_group": 0.022 + "rank_loc": 8, + "rank_loc_group": 8, + "score_data": 0.624, + "score_data_group": 0.624, + "score_data_loc": 0.324, + "score_data_loc_group": 0.324, + "score_loc": 0.024, + "score_loc_group": 0.024 }, { "component": "E30-boreal taiga-silty frozen loess slopes", @@ -934,10 +934,10 @@ "rank_data_loc_group": "12", "rank_loc": 4, "rank_loc_group": 4, - "score_data": 0.211, - "score_data_group": 0.211, - "score_data_loc": 0.148, - "score_data_loc_group": 0.148, + "score_data": 0.517, + "score_data_group": 0.517, + "score_data_loc": 0.301, + "score_data_loc_group": 0.301, "score_loc": 0.086, "score_loc_group": 0.086 } diff --git a/soil_id/us_soil.py b/soil_id/us_soil.py index 8237c59..8971075 100644 --- a/soil_id/us_soil.py +++ b/soil_id/us_soil.py @@ -306,6 +306,8 @@ def list_soils(lon, lat, sim=True, max_distance_m=1000): ec_lyrs = [] OSD_text_int = [] OSD_rfv_int = [] + osd_text_by_cokey = {} + osd_rfv_by_cokey = {} for group in muhorzdata_group_cokey: # Sort by top horizon depth and remove duplicates @@ -336,20 +338,25 @@ def list_soils(lon, lat, sim=True, max_distance_m=1000): ) mucompdata_pd_group = mucompdata_pd[mucompdata_pd["cokey"].isin(group_sorted["cokey"])] - if ( - group_sorted["sandtotal_r"].isnull().values.all() - or group_sorted["claytotal_r"].isnull().values.all() - ) and (mucompdata_pd_group["compkind"].isin(OSD_compkind).any()): + sand_any_missing = group_sorted["sandtotal_r"].isnull().values.any() + clay_any_missing = group_sorted["claytotal_r"].isnull().values.any() + if (sand_any_missing or clay_any_missing) and ( + mucompdata_pd_group["compkind"].isin(OSD_compkind).any() + ): OSD_text_int.append("Yes") + osd_text_by_cokey[str(group_sorted["cokey"].iloc[0]).strip()] = "Yes" else: OSD_text_int.append("No") + osd_text_by_cokey[str(group_sorted["cokey"].iloc[0]).strip()] = "No" if (group_sorted["total_frag_volume"].isnull().values.all()) and ( mucompdata_pd_group["compkind"].isin(OSD_compkind).any() ): OSD_rfv_int.append("Yes") + osd_rfv_by_cokey[str(group_sorted["cokey"].iloc[0]).strip()] = "Yes" else: OSD_rfv_int.append("No") + osd_rfv_by_cokey[str(group_sorted["cokey"].iloc[0]).strip()] = "No" # extract horizon data hz_dept = group_sorted["hzdept_r"] @@ -448,9 +455,25 @@ def list_soils(lon, lat, sim=True, max_distance_m=1000): mucompdata_pd = mucompdata_pd[mucompdata_pd["cokey"].isin(valid_cokeys)] muhorzdata_pd = muhorzdata_pd[muhorzdata_pd["cokey"].isin(valid_cokeys)] - # Add OSD infilling indicators to mucompdata_pd - mucompdata_pd["OSD_text_int"] = OSD_text_int - mucompdata_pd["OSD_rfv_int"] = OSD_rfv_int + # Add OSD infilling indicators keyed by cokey (avoid positional drift). + def _norm_flag_cokey(value): + return re.sub(r"\.0+$", "", str(value).strip()) + + osd_text_by_cokey = { + _norm_flag_cokey(k): v for k, v in osd_text_by_cokey.items() + } + osd_rfv_by_cokey = { + _norm_flag_cokey(k): v for k, v in osd_rfv_by_cokey.items() + } + + mucompdata_pd["OSD_text_int"] = ( + mucompdata_pd["cokey"] + .map(lambda c: osd_text_by_cokey.get(_norm_flag_cokey(c), "No")) + ) + mucompdata_pd["OSD_rfv_int"] = ( + mucompdata_pd["cokey"] + .map(lambda c: osd_rfv_by_cokey.get(_norm_flag_cokey(c), "No")) + ) # Merge component bottom depth and clay texture information into mucompdata_pd mucompdata_pd = mucompdata_pd.merge( @@ -675,13 +698,63 @@ def list_soils(lon, lat, sim=True, max_distance_m=1000): group for _, group in OSDhorzdata_pd.groupby("cokey", sort=False) ] - # Initialize empty lists - lab_lyrs = [] - munsell_lyrs = [] - lab_intpl_lyrs = [] + # Build robust cokey-keyed lookup so OSD infill updates always target + # the correct component profile regardless of group ordering. + def _norm_cokey_local(value): + return re.sub(r"\.0+$", "", str(value).strip()) + + profile_idx_by_cokey = { + _norm_cokey_local(df["cokey"].iloc[0]): i + for i, df in enumerate(getProfile_cokey) + if not df.empty + } + osd_text_by_cokey = { + _norm_cokey_local(k): v + for k, v in mucompdata_pd[["cokey", "OSD_text_int"]] + .drop_duplicates("cokey") + .set_index("cokey")["OSD_text_int"] + .to_dict() + .items() + } + osd_rfv_by_cokey = { + _norm_cokey_local(k): v + for k, v in mucompdata_pd[["cokey", "OSD_rfv_int"]] + .drop_duplicates("cokey") + .set_index("cokey")["OSD_rfv_int"] + .to_dict() + .items() + } + comp_max_by_cokey = { + _norm_cokey_local(k): int(v) + for k, v in comp_max_depths[["cokey", "comp_max_bottom"]].to_records(index=False) + } + raw_bottom_depths_by_cokey = {} + for _cokey, _grp in muhorzdata_pd.groupby("cokey", sort=False): + _norm = _norm_cokey_local(_cokey) + _ordered = _grp.sort_values("hzdept_r").drop_duplicates().reset_index(drop=True) + _depths = [ + float(v) + for v in _ordered["hzdepb_r"].tolist() + if pd.notnull(v) + ] + raw_bottom_depths_by_cokey[_norm] = _depths + + n_profiles = len(getProfile_cokey) + # Initialize layer containers sized to the profile set. + lab_lyrs = [None] * n_profiles + munsell_lyrs = [None] * n_profiles + lab_intpl_lyrs = [None] * n_profiles for index, group in enumerate(OSDhorzdata_group_cokey): group_sorted = group.sort_values(by="top").drop_duplicates().reset_index(drop=True) + group_cokey = _norm_cokey_local(group_sorted["cokey"].iloc[0]) + target_idx = profile_idx_by_cokey.get(group_cokey) + if target_idx is None: + # Skip OSD groups that do not map to a known component profile. + continue + osd_text_flag = osd_text_by_cokey.get(group_cokey, "No") + osd_rfv_flag = osd_rfv_by_cokey.get(group_cokey, "No") + comp_max_bottom = comp_max_by_cokey.get(group_cokey, 0) # Remove invalid horizons where top depth is greater than bottom depth group_sorted = group_sorted[ @@ -765,19 +838,21 @@ def list_soils(lon, lat, sim=True, max_distance_m=1000): # Set column names for lab_intpl lab_intpl.columns = ["l", "a", "b"] - lab_intpl_lyrs.append(lab_intpl) + lab_intpl_lyrs[target_idx] = lab_intpl # If all values in lab_intpl are null, append default values to lists if lab_intpl.isnull().values.all(): - lab_lyrs.append(["", "", ""]) - munsell_lyrs.append("") + lab_lyrs[target_idx] = ["", "", ""] + munsell_lyrs[target_idx] = "" else: # Use the horizon bottom depths that match the stored horizon structure # Convert string values to float, filtering out empty strings - horizon_bottom_depths = [ - float(v) if v != "" else np.nan - for v in hzb_lyrs[index].values() - ] + horizon_bottom_depths = raw_bottom_depths_by_cokey.get(group_cokey, []) + if not horizon_bottom_depths: + horizon_bottom_depths = [ + float(v) if v != "" else np.nan + for v in hzb_lyrs[target_idx].values() + ] # Filter out NaN values horizon_bottom_depths = [d for d in horizon_bottom_depths if not np.isnan(d)] @@ -800,7 +875,7 @@ def list_soils(lon, lat, sim=True, max_distance_m=1000): # Convert LAB values to a list of triplets lab_parse = [[L, A, B] for L, A, B in zip(l_d, a_d, b_d)] - lab_lyrs.append(dict(zip(l_d.index, lab_parse))) + lab_lyrs[target_idx] = dict(zip(l_d.index, lab_parse)) # Convert LAB triplets to Munsell values munsell_values = [ @@ -811,10 +886,10 @@ def list_soils(lon, lat, sim=True, max_distance_m=1000): ) for lab in lab_parse ] - munsell_lyrs.append(dict(zip(l_d.index, munsell_values))) + munsell_lyrs[target_idx] = dict(zip(l_d.index, munsell_values)) # Extract OSD Texture and Rock Fragment Data - if OSD_text_int[index] == "Yes" or OSD_rfv_int[index] == "Yes": + if osd_text_flag == "Yes" or osd_rfv_flag == "Yes": group_sorted[["hzdept_r", "hzdepb_r", "texture"]] = group_sorted[ ["top", "bottom", "texture_class"] ] @@ -870,9 +945,9 @@ def list_soils(lon, lat, sim=True, max_distance_m=1000): # and component depth is <200cm if OSD_depth_remove: # Remove data based on comp_max_depths - OSD_sand_intpl = OSD_sand_intpl.loc[: comp_max_depths.iloc[index, 2]] - OSD_clay_intpl = OSD_clay_intpl.loc[: comp_max_depths.iloc[index, 2]] - OSD_rfv_intpl = OSD_rfv_intpl.loc[: comp_max_depths.iloc[index, 2]] + OSD_sand_intpl = OSD_sand_intpl.loc[: comp_max_bottom] + OSD_clay_intpl = OSD_clay_intpl.loc[: comp_max_bottom] + OSD_rfv_intpl = OSD_rfv_intpl.loc[: comp_max_bottom] # Create the compname and cokey dataframes compname_df = pd.DataFrame( @@ -900,7 +975,7 @@ def list_soils(lon, lat, sim=True, max_distance_m=1000): ] # Update getProfile_mod based on conditions - getProfile_mod = getProfile_cokey[index] + getProfile_mod = getProfile_cokey[target_idx] compname_check = ( getProfile_mod["compname"] .isin(group_sorted2[["compname"]].iloc[0]) @@ -909,27 +984,35 @@ def list_soils(lon, lat, sim=True, max_distance_m=1000): if ( compname_check - and OSD_text_int[index] == "Yes" + and osd_text_flag == "Yes" and not group_sorted2["c_sandpct_intpl"].isnull().all() ): - getProfile_mod["sandpct_intpl"] = group_sorted2["c_sandpct_intpl"] - getProfile_mod["claypct_intpl"] = group_sorted2["c_claypct_intpl"] + getProfile_mod["sandpct_intpl"] = getProfile_mod["sandpct_intpl"].where( + ~getProfile_mod["sandpct_intpl"].isnull(), + group_sorted2["c_sandpct_intpl"], + ) + getProfile_mod["claypct_intpl"] = getProfile_mod["claypct_intpl"].where( + ~getProfile_mod["claypct_intpl"].isnull(), + group_sorted2["c_claypct_intpl"], + ) if ( compname_check - and OSD_rfv_int[index] == "Yes" + and osd_rfv_flag == "Yes" and not group_sorted2["c_cfpct_intpl"].isnull().all() ): getProfile_mod["rfv_intpl"] = group_sorted2["c_cfpct_intpl"] - getProfile_cokey[index] = getProfile_mod + getProfile_cokey[target_idx] = getProfile_mod # Use the horizon bottom depths that match the stored horizon structure # Convert string values to float, filtering out empty strings - horizon_bottom_depths = [ - float(v) if v != "" else np.nan - for v in hzb_lyrs[index].values() - ] + horizon_bottom_depths = raw_bottom_depths_by_cokey.get(group_cokey, []) + if not horizon_bottom_depths: + horizon_bottom_depths = [ + float(v) if v != "" else np.nan + for v in hzb_lyrs[target_idx].values() + ] # Filter out NaN values horizon_bottom_depths = [d for d in horizon_bottom_depths if not np.isnan(d)] @@ -964,40 +1047,77 @@ def list_soils(lon, lat, sim=True, max_distance_m=1000): txt_d_osd.fillna(np.nan, inplace=True) rf_d_osd.fillna(np.nan, inplace=True) + def _is_missing_layer_value(value): + return value is None or value == "" or pd.isna(value) + + def _merge_missing_layer_values(existing_layer, osd_layer): + merged_layer = {} + keys = sorted( + set(existing_layer.keys()).union(set(osd_layer.keys())), + key=int, + ) + for k in keys: + existing_val = existing_layer.get(k, np.nan) + osd_val = osd_layer.get(k, np.nan) + merged_layer[k] = ( + osd_val if _is_missing_layer_value(existing_val) else existing_val + ) + return merged_layer + # Store aggregated data in dictionaries based on conditions - if OSD_text_int[index] == "Yes": - snd_lyrs[index] = snd_d_osd.to_dict() - cly_lyrs[index] = cly_d_osd.to_dict() - txt_lyrs[index] = txt_d_osd.to_dict() + if osd_text_flag == "Yes": + snd_lyrs[target_idx] = _merge_missing_layer_values( + snd_lyrs[target_idx], snd_d_osd.to_dict() + ) + cly_lyrs[target_idx] = _merge_missing_layer_values( + cly_lyrs[target_idx], cly_d_osd.to_dict() + ) + txt_lyrs[target_idx] = _merge_missing_layer_values( + txt_lyrs[target_idx], txt_d_osd.to_dict() + ) - if OSD_rfv_int[index] == "Yes": - rf_lyrs[index] = rf_d_osd.to_dict() + if osd_rfv_flag == "Yes": + rf_lyrs[target_idx] = rf_d_osd.to_dict() # Update cec, ph, and ec layers if they contain only a single # empty string for lyr in [cec_lyrs, ph_lyrs, ec_lyrs]: - if len(lyr[index]) == 1 and list(lyr[index].values())[0] == "": - empty_values = [""] * len(hzb_lyrs[index]) - lyr[index] = dict(zip(hzb_lyrs[index].keys(), empty_values)) + if len(lyr[target_idx]) == 1 and list(lyr[target_idx].values())[0] == "": + empty_values = [""] * len(hzb_lyrs[target_idx]) + lyr[target_idx] = dict(zip(hzb_lyrs[target_idx].keys(), empty_values)) else: - OSDhorzdata_group_cokey[index] = group_sorted - # Create an empty dataframe with NaNs for lab_intpl lab_intpl = pd.DataFrame( np.nan, - index=np.arange(comp_max_depths.iloc[index, 2]), + index=np.arange(comp_max_bottom), columns=["l", "a", "b"], ) - lab_intpl_lyrs.append(lab_intpl) + lab_intpl_lyrs[target_idx] = lab_intpl # Create dummy data for lab_lyrs - lab_dummy = [["", "", ""] for _ in range(len(hzb_lyrs[index]))] - lab_lyrs.append(dict(zip(hzb_lyrs[index].keys(), lab_dummy))) + lab_dummy = [["", "", ""] for _ in range(len(hzb_lyrs[target_idx]))] + lab_lyrs[target_idx] = dict(zip(hzb_lyrs[target_idx].keys(), lab_dummy)) # Create dummy data for munsell_lyrs - munsell_dummy = [""] * len(hzb_lyrs[index]) - munsell_lyrs.append(dict(zip(hzb_lyrs[index].keys(), munsell_dummy))) + munsell_dummy = [""] * len(hzb_lyrs[target_idx]) + munsell_lyrs[target_idx] = dict(zip(hzb_lyrs[target_idx].keys(), munsell_dummy)) + + # Fill any still-missing color entries with deterministic empty values. + for profile_cokey, profile_idx in profile_idx_by_cokey.items(): + if lab_intpl_lyrs[profile_idx] is None: + fallback_depth = max(comp_max_by_cokey.get(profile_cokey, 0), 0) + lab_intpl_lyrs[profile_idx] = pd.DataFrame( + np.nan, + index=np.arange(fallback_depth), + columns=["l", "a", "b"], + ) + if lab_lyrs[profile_idx] is None: + keys = list(hzb_lyrs[profile_idx].keys()) + lab_lyrs[profile_idx] = dict(zip(keys, [["", "", ""] for _ in keys])) + if munsell_lyrs[profile_idx] is None: + keys = list(hzb_lyrs[profile_idx].keys()) + munsell_lyrs[profile_idx] = dict(zip(keys, [""] * len(keys))) # Series URL Generation # Create a mapping of cokey to URLs for safe lookup @@ -1035,18 +1155,28 @@ def list_soils(lon, lat, sim=True, max_distance_m=1000): munsell_lyrs = [] cokey_to_urls = {} - # Iterate over each entry in mucompdata_pd - for i in range(len(mucompdata_pd)): + comp_max_by_cokey_local = { + re.sub(r"\.0+$", "", str(k).strip()): int(v) + for k, v in comp_max_depths[["cokey", "comp_max_bottom"]].to_records(index=False) + } + + # Initialize fallback layers by profile cokey to avoid positional drift. + for profile_df, horizon_bottoms in zip(getProfile_cokey, hzb_lyrs): + profile_cokey = re.sub( + r"\.0+$", "", str(profile_df["cokey"].iloc[0]).strip() + ) + max_bottom = max(comp_max_by_cokey_local.get(profile_cokey, 0), 0) + # Initialize a DataFrame filled with NaNs lab_intpl = pd.DataFrame( np.nan, - index=np.arange(comp_max_depths.iloc[i, 2]), + index=np.arange(max_bottom), columns=["l", "a", "b"], ) lab_intpl_lyrs.append(lab_intpl) # Create dummy data for lab and munsell layers - keys = list(hzb_lyrs[i].keys()) + keys = list(horizon_bottoms.keys()) lab_dummy = [{"", "", ""} for _ in range(len(keys))] munsell_dummy = [""] * len(keys) @@ -1055,7 +1185,7 @@ def list_soils(lon, lat, sim=True, max_distance_m=1000): munsell_lyrs.append(dict(zip(keys, munsell_dummy))) ## Create empty URLs keyed by cokey - cokey_to_urls[mucompdata_pd.iloc[i]["cokey"]] = {"sde": "", "see": ""} + cokey_to_urls[profile_df["cokey"].iloc[0]] = {"sde": "", "see": ""} else: # Initialize lists to store data layers and URLs @@ -1064,18 +1194,28 @@ def list_soils(lon, lat, sim=True, max_distance_m=1000): munsell_lyrs = [] cokey_to_urls = {} - # Iterate over each entry in mucompdata_pd - for i in range(len(mucompdata_pd)): + comp_max_by_cokey_local = { + re.sub(r"\.0+$", "", str(k).strip()): int(v) + for k, v in comp_max_depths[["cokey", "comp_max_bottom"]].to_records(index=False) + } + + # Initialize fallback layers by profile cokey to avoid positional drift. + for profile_df, horizon_bottoms in zip(getProfile_cokey, hzb_lyrs): + profile_cokey = re.sub( + r"\.0+$", "", str(profile_df["cokey"].iloc[0]).strip() + ) + max_bottom = max(comp_max_by_cokey_local.get(profile_cokey, 0), 0) + # Initialize a DataFrame filled with NaNs lab_intpl = pd.DataFrame( np.nan, - index=np.arange(comp_max_depths.iloc[i, 2]), + index=np.arange(max_bottom), columns=["l", "a", "b"], ) lab_intpl_lyrs.append(lab_intpl) # Create dummy data for lab and munsell layers - keys = list(hzb_lyrs[i].keys()) + keys = list(horizon_bottoms.keys()) lab_dummy = [{"", "", ""} for _ in range(len(keys))] munsell_dummy = [""] * len(keys) @@ -1084,7 +1224,7 @@ def list_soils(lon, lat, sim=True, max_distance_m=1000): munsell_lyrs.append(dict(zip(keys, munsell_dummy))) ## Create empty URLs keyed by cokey - cokey_to_urls[mucompdata_pd.iloc[i]["cokey"]] = {"sde": "", "see": ""} + cokey_to_urls[profile_df["cokey"].iloc[0]] = {"sde": "", "see": ""} # Subset datasets to exclude pedons without any depth information cokeys_with_depth = mucompdata_pd[mucompdata_pd["comp_max_bottom"] > 0].cokey.unique() @@ -1106,8 +1246,18 @@ def list_soils(lon, lat, sim=True, max_distance_m=1000): comp_key = mucompdata_pd["cokey"].unique().tolist() cokey_Index = dict(zip(comp_key, range(len(comp_key)))) - # Get indices of components with depth data to exclude profiles with no depth information - indices_with_depth = mucompdata_pd.index.tolist() + # Keep profile-layer structures aligned by component key, not row position. + def _norm_cokey_for_filter(value): + return re.sub(r"\.0+$", "", str(value).strip()) + + depth_cokey_set = {_norm_cokey_for_filter(c) for c in mucompdata_pd["cokey"].tolist()} + profile_cokeys = [ + _norm_cokey_for_filter(df["cokey"].iloc[0]) if not df.empty else "" + for df in getProfile_cokey + ] + keep_profile_positions = [ + i for i, c in enumerate(profile_cokeys) if c in depth_cokey_set + ] # Subset layers based on indices with depth layer_lists = [ @@ -1127,8 +1277,8 @@ def list_soils(lon, lat, sim=True, max_distance_m=1000): ] for i, lst in enumerate(layer_lists): - safe_indices = [index for index in indices_with_depth if index < len(lst)] - layer_lists[i] = [lst[index] for index in safe_indices] + safe_positions = [pos for pos in keep_profile_positions if pos < len(lst)] + layer_lists[i] = [lst[pos] for pos in safe_positions] # Unpack the layer lists ( @@ -1314,6 +1464,15 @@ def list_soils(lon, lat, sim=True, max_distance_m=1000): # Initialize the list for storing ESD components data esd_comp_list = [] + def _norm_esd_cokey(value): + return re.sub(r"\.0+$", "", str(value).strip()) + + def _empty_esd_record(): + return {"ESD": {"ecoclassid": "", "ecoclassname": "", "edit_url": ""}} + + # Keep ESD list alignment keyed to interpolated profiles to avoid positional drift. + profile_cokey_order = [_norm_esd_cokey(df["cokey"].iloc[0]) for df in getProfile_cokey] + # Main logic for handling ESD data based on its presence if ESDcompdata_pd is not None: # Process DataFrame: cleaning and updating @@ -1351,8 +1510,7 @@ def list_soils(lon, lat, sim=True, max_distance_m=1000): ESDcompdata_pd.drop_duplicates(subset=["cokey"], keep="first", inplace=True) ESDcompdata_pd = ESDcompdata_pd[ESDcompdata_pd["cokey"].isin(comp_key)] # Use the current mucompdata_pd row order (compname_grp sorted) as the reference, - # NOT cokey_Index which reflects the original pre-sort order. This ensures that - # esd_comp_list[i] lines up with mucompdata_pd.iloc[i] for the key-based alignment. + # NOT cokey_Index which reflects the original pre-sort order. _mucomp_order = {str(ck): i for i, ck in enumerate(mucompdata_pd["cokey"].tolist())} ESDcompdata_pd["_mucomp_rank"] = ESDcompdata_pd["cokey"].map(_mucomp_order) ESDcompdata_pd.sort_values("_mucomp_rank", ascending=True, na_position="last", inplace=True) @@ -1362,28 +1520,32 @@ def list_soils(lon, lat, sim=True, max_distance_m=1000): # Further processing and checks for missing ESD data ESDcompdata_pd = update_esd_data(ESDcompdata_pd) - # update_esd_data reorders rows by compname_grp; restore mucompdata_pd order so - # that esd_comp_list[i] aligns with mucompdata_pd.iloc[i] for key-based reorder. + # update_esd_data reorders rows by compname_grp; restore mucompdata_pd order. ESDcompdata_pd["_mucomp_rank"] = ESDcompdata_pd["cokey"].map(_mucomp_order) ESDcompdata_pd.sort_values("_mucomp_rank", ascending=True, na_position="last", inplace=True) ESDcompdata_pd.drop(columns="_mucomp_rank", inplace=True) - # Aggregate the ESD components for output - for _, group in ESDcompdata_pd.groupby("cokey", sort=False): - esd_data = { - "ESD": { - "ecoclassid": group["ecoclassid"].tolist(), - "ecoclassname": group["ecoclassname"].tolist(), - "edit_url": group["edit_url"].tolist(), + # Aggregate keyed ESD records, then materialize in profile cokey order. + esd_by_cokey = {} + for cokey, group in ESDcompdata_pd.groupby("cokey", sort=False): + norm_cokey = _norm_esd_cokey(cokey) + if group["ecoclassname"].isnull().values.any(): + esd_by_cokey[norm_cokey] = _empty_esd_record() + else: + esd_by_cokey[norm_cokey] = { + "ESD": { + "ecoclassid": group["ecoclassid"].tolist(), + "ecoclassname": group["ecoclassname"].tolist(), + "edit_url": group["edit_url"].tolist(), + } } - } - esd_comp_list.append(esd_data) - else: - # Fill the list with empty data if ESDcompdata_pd is not available + esd_comp_list = [ - {"ESD": {"ecoclassid": "", "ecoclassname": "", "edit_url": ""}} - for _ in range(len(mucompdata_pd)) + esd_by_cokey.get(cokey, _empty_esd_record()) for cokey in profile_cokey_order ] + else: + # Fill the list with empty data if ESDcompdata_pd is not available + esd_comp_list = [_empty_esd_record() for _ in profile_cokey_order] if ESDcompdata_pd is not None: # Clean and process the dataframe @@ -1416,8 +1578,7 @@ def list_soils(lon, lat, sim=True, max_distance_m=1000): g for _, g in ESDcompdata_pd.groupby(["compname_grp"], sort=True) ] ecoList_out = [] - for i in range(len(ESDcompdata_pd_comp_grps)): - comp_grps_temp = ESDcompdata_pd_comp_grps[i] + for comp_grps_temp in ESDcompdata_pd_comp_grps: if len(comp_grps_temp) == 1: ecoList_out.append(comp_grps_temp) elif ( @@ -1462,8 +1623,8 @@ def list_soils(lon, lat, sim=True, max_distance_m=1000): ESDcompdata_group_cokey = [ g for _, g in ESDcompdata_pd.groupby(["cokey"], sort=True) ] - for i in range(len(ESDcompdata_group_cokey)): - if ESDcompdata_group_cokey[i]["ecoclassname"].isnull().values.any(): + for cokey_group in ESDcompdata_group_cokey: + if cokey_group["ecoclassname"].isnull().values.any(): esd_comp_list.append( {"ESD": {"ecoclassid": "", "ecoclassname": "", "edit_url": ""}} ) @@ -1471,11 +1632,11 @@ def list_soils(lon, lat, sim=True, max_distance_m=1000): esd_comp_list.append( { "ESD": { - "ecoclassid": ESDcompdata_group_cokey[i]["ecoclassid"].tolist(), - "ecoclassname": ESDcompdata_group_cokey[i][ + "ecoclassid": cokey_group["ecoclassid"].tolist(), + "ecoclassname": cokey_group[ "ecoclassname" ].tolist(), - "edit_url": ESDcompdata_group_cokey[i]["edit_url"].tolist(), + "edit_url": cokey_group["edit_url"].tolist(), } } ) @@ -1599,8 +1760,8 @@ def list_soils(lon, lat, sim=True, max_distance_m=1000): for idx, row in mucompdata_cond_prob.iterrows() ] - # Reorder profile lists to match the final sorted component order. - # Prefer key-based alignment by cokey (componentID) to avoid positional drift. + # Reorder profile lists to match final component order using component keys. + # Positional reordering can drift when grouped operations reorder horizons. lists_to_reorder = [ esd_comp_list, hzt_lyrs, @@ -1619,22 +1780,22 @@ def list_soils(lon, lat, sim=True, max_distance_m=1000): def _norm_cokey(value): return re.sub(r"\.0+$", "", str(value).strip()) - base_order_cokeys = [_norm_cokey(c) for c in mucompdata_pd["cokey"].tolist()] + # getProfile_cokey carries the source component key for each profile list entry. + list_order_cokeys = [_norm_cokey(df["cokey"].iloc[0]) for df in getProfile_cokey] final_order_cokeys = [_norm_cokey(c) for c in mucompdata_cond_prob["cokey"].tolist()] can_key_reorder = ( - len(base_order_cokeys) == len(set(base_order_cokeys)) - and all(len(lst) == len(base_order_cokeys) for lst in lists_to_reorder) + len(list_order_cokeys) == len(set(list_order_cokeys)) + and all(len(lst) == len(list_order_cokeys) for lst in lists_to_reorder) + and set(final_order_cokeys).issubset(set(list_order_cokeys)) ) if can_key_reorder: - def _reorder_by_cokey(lst): - by_cokey = dict(zip(base_order_cokeys, lst)) - return [by_cokey[c] for c in final_order_cokeys] - - reordered_lists = [_reorder_by_cokey(lst) for lst in lists_to_reorder] + reordered_lists = [] + for lst in lists_to_reorder: + keyed = dict(zip(list_order_cokeys, lst)) + reordered_lists.append([keyed[c] for c in final_order_cokeys]) else: - # Fallback to positional reordering when key-based alignment is not possible. reordered_lists = [[lst[i] for i in mucomp_index] for lst in lists_to_reorder] # Destructuring reordered lists for clarity @@ -1653,46 +1814,158 @@ def _reorder_by_cokey(lst): munsell_lyrs, ) = reordered_lists - # Generating output_SoilList - output_SoilList = [ - dict( - zip( - [ - "id", - "site", - "esd", - "top_depth", - "bottom_depth", - "sand", - "clay", - "texture", - "rock_fragments", - "cec", - "ph", - "ec", - "lab", - "munsell", - ], - row, + raw_hz_by_cokey = {} + if data_source == "SSURGO": + for cokey, grp in muhorzdata_pd.groupby("cokey", sort=False): + g = grp.copy() + # Preserve pedogenic horizon ordering by depth. Use original row order + # only as a stable fallback when depth bounds are identical. + g["_row_order"] = np.arange(len(g)) + g = ( + g.sort_values(["hzdept_r", "hzdepb_r", "_row_order"]) + .drop(columns=["_row_order"]) + .drop_duplicates() + .reset_index(drop=True) ) + raw_hz_by_cokey[_norm_cokey(cokey)] = { + "top_depth": dict(zip(g.index, g["hzdept_r"].fillna(""))), + "bottom_depth": dict(zip(g.index, g["hzdepb_r"].fillna(""))), + "sand": dict(zip(g.index, g["sandtotal_r"].fillna(np.nan))), + "clay": dict(zip(g.index, g["claytotal_r"].fillna(np.nan))), + "texture": dict(zip(g.index, g["texture"].fillna(""))), + "rock_fragments": dict(zip(g.index, g["total_frag_volume"].fillna(np.nan))), + "cec": dict(zip(g.index, g["CEC"].fillna(np.nan))), + "ph": dict(zip(g.index, g["pH"].fillna(np.nan))), + "ec": dict(zip(g.index, g["EC"].fillna(np.nan))), + } + + osd_color_by_cokey = {} + if data_source == "SSURGO" and OSDhorzdata_pd is not None: + for cokey, grp in OSDhorzdata_pd.groupby("cokey", sort=False): + g = grp.copy() + g = ( + g.sort_values(["top", "bottom"]) + .drop_duplicates() + .reset_index(drop=True) + ) + + # Keep only valid OSD horizons for interpolation. + g = g[g["top"] <= g["bottom"]].reset_index(drop=True) + if g.empty: + continue + + lab_intpl = getProfileLAB(g, color_ref) + lab_intpl.columns = ["l", "a", "b"] + osd_color_by_cokey[_norm_cokey(cokey)] = lab_intpl + + # Generating output_SoilList + output_SoilList = [] + for idx, row in mucompdata_cond_prob.reset_index(drop=True).iterrows(): + top_depth = hzt_lyrs[idx] + bottom_depth = hzb_lyrs[idx] + sand = snd_lyrs[idx] + clay = cly_lyrs[idx] + texture = txt_lyrs[idx] + rock_fragments = rf_lyrs[idx] + cec = cec_lyrs[idx] + ph = ph_lyrs[idx] + ec = ec_lyrs[idx] + lab = lab_lyrs[idx] + munsell = munsell_lyrs[idx] + + if data_source == "SSURGO": + raw_hz = raw_hz_by_cokey.get(_norm_cokey(row["cokey"])) + if raw_hz is not None: + top_depth = raw_hz["top_depth"] + bottom_depth = raw_hz["bottom_depth"] + cec = raw_hz["cec"] + ph = raw_hz["ph"] + ec = raw_hz["ec"] + + if row["OSD_text_int"] == "No": + sand = raw_hz["sand"] + clay = raw_hz["clay"] + texture = raw_hz["texture"] + + if row["OSD_rfv_int"] == "No": + rock_fragments = raw_hz["rock_fragments"] + + # Ensure property layer counts do not exceed component depth layers. + if isinstance(bottom_depth, dict): + depth_len = len(bottom_depth) + + def _align_layer_dict(layer_dict): + if not isinstance(layer_dict, dict): + return layer_dict + ordered_items = sorted(layer_dict.items(), key=lambda kv: int(kv[0])) + return {i: ordered_items[i][1] for i in range(min(depth_len, len(ordered_items)))} + + sand = _align_layer_dict(sand) + clay = _align_layer_dict(clay) + texture = _align_layer_dict(texture) + rock_fragments = _align_layer_dict(rock_fragments) + + # Align color output to this component's final horizon depths. + osd_lab_intpl = osd_color_by_cokey.get(_norm_cokey(row["cokey"])) + if osd_lab_intpl is not None and isinstance(bottom_depth, dict): + depth_pairs = [] + for k, v in bottom_depth.items(): + try: + depth_pairs.append((int(k), float(v))) + except (TypeError, ValueError): + continue + + depth_pairs.sort(key=lambda t: t[0]) + horizon_bottom_depths = [d for _, d in depth_pairs] + + if horizon_bottom_depths: + l_d = aggregate_data( + data=osd_lab_intpl["l"], + bottom_depths=horizon_bottom_depths, + sd=2, + ).fillna("") + a_d = aggregate_data( + data=osd_lab_intpl["a"], + bottom_depths=horizon_bottom_depths, + sd=2, + ).fillna("") + b_d = aggregate_data( + data=osd_lab_intpl["b"], + bottom_depths=horizon_bottom_depths, + sd=2, + ).fillna("") + + lab_parse = [[L, A, B] for L, A, B in zip(l_d, a_d, b_d)] + lab = dict(zip(l_d.index, lab_parse)) + + munsell_values = [ + ( + lab2munsell(color_ref, LAB_ref, lab_triplet) + if lab_triplet[0] != "" and lab_triplet[1] != "" and lab_triplet[2] != "" + else "" + ) + for lab_triplet in lab_parse + ] + munsell = dict(zip(l_d.index, munsell_values)) + + output_SoilList.append( + { + "id": ID[idx], + "site": Site[idx], + "esd": esd_comp_list[idx], + "top_depth": top_depth, + "bottom_depth": bottom_depth, + "sand": sand, + "clay": clay, + "texture": texture, + "rock_fragments": rock_fragments, + "cec": cec, + "ph": ph, + "ec": ec, + "lab": lab, + "munsell": munsell, + } ) - for row in zip( - ID, - Site, - esd_comp_list, - hzt_lyrs, - hzb_lyrs, - snd_lyrs, - cly_lyrs, - txt_lyrs, - rf_lyrs, - cec_lyrs, - ph_lyrs, - ec_lyrs, - lab_lyrs, - munsell_lyrs, - ) - ] soil_list_json = { "metadata": { diff --git a/soil_id/utils.py b/soil_id/utils.py index 54a95a1..e60f73d 100644 --- a/soil_id/utils.py +++ b/soil_id/utils.py @@ -46,6 +46,23 @@ ################################################################################################### +def _normalize_texture_name(field: str) -> str: + """Normalize texture labels to canonical lookup keys.""" + if field is None: + return "" + + texture = str(field).strip().lower() + texture = re.sub(r"\b(very\s+fine|very\s+coarse|fine|medium|coarse)\s+", "", texture) + texture = re.sub(r"\s+", " ", texture).strip() + + # Preserve legacy behavior for labels that collapse to non-standard forms. + aliases = { + "very sandy loam": "sandy loam", + "very sandy clay loam": "sandy clay loam", + } + return aliases.get(texture, texture) + + def getSand(field: str) -> float: """ Given a soil texture name (e.g. "loam", "sand", "clay"), return the approximate @@ -77,8 +94,7 @@ def getSand(field: str) -> float: if field is None: return np.nan - # Convert field to lowercase, then do the lookup in the dictionary - return sand_percentages.get(field.lower(), np.nan) + return sand_percentages.get(_normalize_texture_name(field), np.nan) def getClay(field): @@ -97,7 +113,9 @@ def getClay(field): "clay": 70.0, } - return clay_percentages.get(field.lower() if field else None, np.nan) + if field is None: + return np.nan + return clay_percentages.get(_normalize_texture_name(field), np.nan) def silt_calc(row): @@ -110,6 +128,7 @@ def silt_calc(row): def getTexture(row=None, sand=None, silt=None, clay=None): """ Classify soil texture based on sand, silt, and clay proportions. + Matches the legacy gettt function logic. Parameters: - row (dict): Dictionary-like object with 'sandtotal_r', 'silttotal_r', 'claytotal_r' keys. @@ -118,7 +137,7 @@ def getTexture(row=None, sand=None, silt=None, clay=None): - clay (float): Percentage of clay. Returns: - - str: Soil texture classification. + - str: Soil texture classification, or None if any input is NaN. """ # Handle missing inputs: if not provided individually, try to get from row. @@ -128,10 +147,9 @@ def getTexture(row=None, sand=None, silt=None, clay=None): silt = row.get("silttotal_r", np.nan) clay = row.get("claytotal_r", np.nan) - # Replace any NaN with 0 for the calculation. - sand = np.nan_to_num(sand, nan=0) - silt = np.nan_to_num(silt, nan=0) - clay = np.nan_to_num(clay, nan=0) + # Return None if any value is NaN (matches legacy behavior) + if np.isnan(sand) or np.isnan(silt) or np.isnan(clay): + return None # Calculate derived values. silt_clay = silt + 1.5 * clay @@ -140,16 +158,18 @@ def getTexture(row=None, sand=None, silt=None, clay=None): # Define conditions and corresponding texture classifications. conditions = [ silt_clay < 15, - (silt_clay >= 15) & (silt_clay < 30), - (((7 <= clay) & (clay <= 20)) & (sand > 52)) + (silt_clay >= 15) & (silt_2x_clay < 30), # Fixed: was using silt_clay for both + (((clay >= 7) & (clay <= 20)) & (sand > 52) & (silt_2x_clay >= 30)) | ((clay < 7) & (silt < 50) & (silt_2x_clay >= 30)), - (7 <= clay) & (clay <= 27) & (28 <= silt) & (silt < 50) & (sand <= 52), - (silt >= 50) & (((12 <= clay) & (clay < 27)) | ((silt < 80) & (clay < 12))), + (clay >= 7) & (clay <= 27) & (silt >= 28) & (silt < 50) & (sand <= 52), + ((silt >= 50) & (clay >= 12) & (clay < 27)) | ((silt >= 50) & (silt < 80) & (clay < 12)), (silt >= 80) & (clay < 12), - (20 <= clay) & (clay < 35) & (silt < 28) & (sand > 45), - (27 <= clay) & (clay < 40) & (sand <= 45) & (sand > 20), + (clay >= 20) & (clay < 35) & (silt < 28) & (sand > 45), + (clay >= 27) & (clay < 40) & (sand > 20) & (sand <= 45), + (clay >= 27) & (clay < 40) & (sand <= 20), (clay >= 35) & (sand >= 45), - (clay >= 40) & (silt >= 40) & (sand <= 45), + (clay >= 40) & (silt >= 40), + (clay >= 40) & (sand <= 45) & (silt < 40), ] choices = [ @@ -161,12 +181,14 @@ def getTexture(row=None, sand=None, silt=None, clay=None): "Silt", "Sandy clay loam", "Clay loam", + "Silty clay loam", "Sandy clay", + "Silty clay", "Clay", ] # Compute the texture classification. - result = np.select(conditions, choices, default="Unknown") + result = np.select(conditions, choices, default=None) # Ensure that a plain Python string is returned. if isinstance(result, np.ndarray): @@ -1614,10 +1636,10 @@ def process_horizon_data(muhorzdata_pd): # Infill missing CEC values with ECEC muhorzdata_pd["CEC"] = muhorzdata_pd["cec7_r"].fillna(muhorzdata_pd["ecec_r"]) - # Rename columns for better clarity - muhorzdata_pd = muhorzdata_pd.rename( - columns={"cec7_r": "CEC", "ph1to1h2o_r": "pH", "ec_r": "EC"} - ) + # Rename columns for better clarity. + # Keep the derived CEC column above as the single source of truth to avoid + # duplicate "CEC" column labels in downstream operations. + muhorzdata_pd = muhorzdata_pd.rename(columns={"ph1to1h2o_r": "pH", "ec_r": "EC"}) # Assign textures muhorzdata_pd["texture"] = muhorzdata_pd.apply(getTexture, axis=1) @@ -2302,16 +2324,23 @@ def entropy_score(series): probabilities = value_counts / len(series) return entropy(probabilities, base=2) + # target_col can be passed as ["col"]; normalize to a single column label. + target_name = target_col[0] if isinstance(target_col, (list, tuple)) else target_col + # Calculate entropy of the entire dataset based on the target variable - total_entropy = entropy_score(data[target_col]) + total_entropy = entropy_score(data[target_name]) # Calculate information gain for each feature information_gains = {} for feature_col in feature_cols: # Calculate weighted average of entropies for each unique value of the feature - feature_entropy = data.groupby(feature_col)[target_col].apply(entropy_score) + feature_entropy = data.groupby(feature_col)[target_name].apply(entropy_score) feature_counts = data[feature_col].value_counts() - weighted_feature_entropy = sum((feature_counts / len(data)) * feature_entropy.fillna(0)) + # Align on feature values and sum numeric terms (avoid Python sum over Series labels). + weighted_terms = ( + feature_counts.reindex(feature_entropy.index, fill_value=0) / len(data) + ) * feature_entropy.astype(float).fillna(0) + weighted_feature_entropy = float(weighted_terms.sum()) information_gain = total_entropy - weighted_feature_entropy information_gains[feature_col] = information_gain From dcff1eb0a13c1e15e8bf96c132099d70a6499ee0 Mon Sep 17 00:00:00 2001 From: Jonathan Maynard Date: Thu, 4 Jun 2026 11:32:38 -0700 Subject: [PATCH 6/7] fix: lint error --- soil_id/us_soil.py | 3 --- 1 file changed, 3 deletions(-) diff --git a/soil_id/us_soil.py b/soil_id/us_soil.py index 6a71abf..dbd736c 100644 --- a/soil_id/us_soil.py +++ b/soil_id/us_soil.py @@ -804,9 +804,6 @@ def _norm_cokey_local(value): comp_max_depths_group = comp_max_depths[ comp_max_depths["cokey"].isin(group_sorted["cokey"]) ] - muhorzdata_pd_group = muhorzdata_pd[ - muhorzdata_pd["cokey"].isin(group_sorted["cokey"]) - ] # Check if OSD depth adjustment is needed if OSD_max_bottom < comp_max_depths_group["comp_max_bottom"].iloc[0]: From c8ab88e7b19367ddab45d9b97c2da499837db126 Mon Sep 17 00:00:00 2001 From: Jonathan Maynard Date: Thu, 4 Jun 2026 11:42:27 -0700 Subject: [PATCH 7/7] fix: clean up whitespace and improve code readability in services.py and us_soil.py --- soil_id/services.py | 2 +- soil_id/us_soil.py | 101 ++++++++++++++++++++------------------------ 2 files changed, 47 insertions(+), 56 deletions(-) diff --git a/soil_id/services.py b/soil_id/services.py index c506028..820daf0 100644 --- a/soil_id/services.py +++ b/soil_id/services.py @@ -150,7 +150,7 @@ def get_soilweb_data(lon, lat, radius_m=1000): lon (float): Longitude of the location for which to fetch soil data. lat (float): Latitude of the location for which to fetch soil data. radius_m (int, optional): Radius in meters to search for soil data around the specified location. Default is 1000 meters. - + Returns: dict: A dictionary containing soil data or error information if the request fails. """ diff --git a/soil_id/us_soil.py b/soil_id/us_soil.py index dbd736c..ff275d3 100644 --- a/soil_id/us_soil.py +++ b/soil_id/us_soil.py @@ -459,20 +459,14 @@ def list_soils(lon, lat, sim=True, max_distance_m=1000): def _norm_flag_cokey(value): return re.sub(r"\.0+$", "", str(value).strip()) - osd_text_by_cokey = { - _norm_flag_cokey(k): v for k, v in osd_text_by_cokey.items() - } - osd_rfv_by_cokey = { - _norm_flag_cokey(k): v for k, v in osd_rfv_by_cokey.items() - } + osd_text_by_cokey = {_norm_flag_cokey(k): v for k, v in osd_text_by_cokey.items()} + osd_rfv_by_cokey = {_norm_flag_cokey(k): v for k, v in osd_rfv_by_cokey.items()} - mucompdata_pd["OSD_text_int"] = ( - mucompdata_pd["cokey"] - .map(lambda c: osd_text_by_cokey.get(_norm_flag_cokey(c), "No")) + mucompdata_pd["OSD_text_int"] = mucompdata_pd["cokey"].map( + lambda c: osd_text_by_cokey.get(_norm_flag_cokey(c), "No") ) - mucompdata_pd["OSD_rfv_int"] = ( - mucompdata_pd["cokey"] - .map(lambda c: osd_rfv_by_cokey.get(_norm_flag_cokey(c), "No")) + mucompdata_pd["OSD_rfv_int"] = mucompdata_pd["cokey"].map( + lambda c: osd_rfv_by_cokey.get(_norm_flag_cokey(c), "No") ) # Merge component bottom depth and clay texture information into mucompdata_pd @@ -732,11 +726,7 @@ def _norm_cokey_local(value): for _cokey, _grp in muhorzdata_pd.groupby("cokey", sort=False): _norm = _norm_cokey_local(_cokey) _ordered = _grp.sort_values("hzdept_r").drop_duplicates().reset_index(drop=True) - _depths = [ - float(v) - for v in _ordered["hzdepb_r"].tolist() - if pd.notnull(v) - ] + _depths = [float(v) for v in _ordered["hzdepb_r"].tolist() if pd.notnull(v)] raw_bottom_depths_by_cokey[_norm] = _depths n_profiles = len(getProfile_cokey) @@ -847,11 +837,13 @@ def _norm_cokey_local(value): horizon_bottom_depths = raw_bottom_depths_by_cokey.get(group_cokey, []) if not horizon_bottom_depths: horizon_bottom_depths = [ - float(v) if v != "" else np.nan + float(v) if v != "" else np.nan for v in hzb_lyrs[target_idx].values() ] # Filter out NaN values - horizon_bottom_depths = [d for d in horizon_bottom_depths if not np.isnan(d)] + horizon_bottom_depths = [ + d for d in horizon_bottom_depths if not np.isnan(d) + ] # Aggregate data for each color dimension l_d = aggregate_data( @@ -942,9 +934,9 @@ def _norm_cokey_local(value): # and component depth is <200cm if OSD_depth_remove: # Remove data based on comp_max_depths - OSD_sand_intpl = OSD_sand_intpl.loc[: comp_max_bottom] - OSD_clay_intpl = OSD_clay_intpl.loc[: comp_max_bottom] - OSD_rfv_intpl = OSD_rfv_intpl.loc[: comp_max_bottom] + OSD_sand_intpl = OSD_sand_intpl.loc[:comp_max_bottom] + OSD_clay_intpl = OSD_clay_intpl.loc[:comp_max_bottom] + OSD_rfv_intpl = OSD_rfv_intpl.loc[:comp_max_bottom] # Create the compname and cokey dataframes compname_df = pd.DataFrame( @@ -1007,11 +999,13 @@ def _norm_cokey_local(value): horizon_bottom_depths = raw_bottom_depths_by_cokey.get(group_cokey, []) if not horizon_bottom_depths: horizon_bottom_depths = [ - float(v) if v != "" else np.nan + float(v) if v != "" else np.nan for v in hzb_lyrs[target_idx].values() ] # Filter out NaN values - horizon_bottom_depths = [d for d in horizon_bottom_depths if not np.isnan(d)] + horizon_bottom_depths = [ + d for d in horizon_bottom_depths if not np.isnan(d) + ] # Aggregate sand data snd_d_osd = aggregate_data( @@ -1057,7 +1051,9 @@ def _merge_missing_layer_values(existing_layer, osd_layer): existing_val = existing_layer.get(k, np.nan) osd_val = osd_layer.get(k, np.nan) merged_layer[k] = ( - osd_val if _is_missing_layer_value(existing_val) else existing_val + osd_val + if _is_missing_layer_value(existing_val) + else existing_val ) return merged_layer @@ -1079,9 +1075,14 @@ def _merge_missing_layer_values(existing_layer, osd_layer): # Update cec, ph, and ec layers if they contain only a single # empty string for lyr in [cec_lyrs, ph_lyrs, ec_lyrs]: - if len(lyr[target_idx]) == 1 and list(lyr[target_idx].values())[0] == "": + if ( + len(lyr[target_idx]) == 1 + and list(lyr[target_idx].values())[0] == "" + ): empty_values = [""] * len(hzb_lyrs[target_idx]) - lyr[target_idx] = dict(zip(hzb_lyrs[target_idx].keys(), empty_values)) + lyr[target_idx] = dict( + zip(hzb_lyrs[target_idx].keys(), empty_values) + ) else: # Create an empty dataframe with NaNs for lab_intpl @@ -1159,9 +1160,7 @@ def _merge_missing_layer_values(existing_layer, osd_layer): # Initialize fallback layers by profile cokey to avoid positional drift. for profile_df, horizon_bottoms in zip(getProfile_cokey, hzb_lyrs): - profile_cokey = re.sub( - r"\.0+$", "", str(profile_df["cokey"].iloc[0]).strip() - ) + profile_cokey = re.sub(r"\.0+$", "", str(profile_df["cokey"].iloc[0]).strip()) max_bottom = max(comp_max_by_cokey_local.get(profile_cokey, 0), 0) # Initialize a DataFrame filled with NaNs @@ -1198,9 +1197,7 @@ def _merge_missing_layer_values(existing_layer, osd_layer): # Initialize fallback layers by profile cokey to avoid positional drift. for profile_df, horizon_bottoms in zip(getProfile_cokey, hzb_lyrs): - profile_cokey = re.sub( - r"\.0+$", "", str(profile_df["cokey"].iloc[0]).strip() - ) + profile_cokey = re.sub(r"\.0+$", "", str(profile_df["cokey"].iloc[0]).strip()) max_bottom = max(comp_max_by_cokey_local.get(profile_cokey, 0), 0) # Initialize a DataFrame filled with NaNs @@ -1252,9 +1249,7 @@ def _norm_cokey_for_filter(value): _norm_cokey_for_filter(df["cokey"].iloc[0]) if not df.empty else "" for df in getProfile_cokey ] - keep_profile_positions = [ - i for i, c in enumerate(profile_cokeys) if c in depth_cokey_set - ] + keep_profile_positions = [i for i, c in enumerate(profile_cokeys) if c in depth_cokey_set] # Subset layers based on indices with depth layer_lists = [ @@ -1307,6 +1302,7 @@ def _norm_cokey_for_filter(value): except Exception as e: # Log the error but continue with None values import traceback + error_details = f"soil_sim failed: {type(e).__name__}: {str(e)}" print(error_details) # Print to stdout print(traceback.format_exc()) # Print full stack trace @@ -1405,9 +1401,7 @@ def _norm_cokey_for_filter(value): on="cokey", how="left", ) - ESDcompdata_pd = pd.concat( - [ESDcompdata_pd, _sda_merged], ignore_index=True - ) + ESDcompdata_pd = pd.concat([ESDcompdata_pd, _sda_merged], ignore_index=True) else: # SoilWeb had no ESD at all; bootstrap from SDA data if any(_sda_df["cokey"].isin(mucompdata_pd["cokey"])): @@ -1487,15 +1481,13 @@ def _empty_esd_record(): # alphabetically, so the selection is fully deterministic. _TYPE_PRIORITY = {"NRCS Rangeland Site": 0} if "ecoclasstypename" in ESDcompdata_pd.columns: - ESDcompdata_pd["_type_pri"] = ( - ESDcompdata_pd["ecoclasstypename"] - .map(lambda t: _TYPE_PRIORITY.get(t, 1) if pd.notna(t) else 1) + ESDcompdata_pd["_type_pri"] = ESDcompdata_pd["ecoclasstypename"].map( + lambda t: _TYPE_PRIORITY.get(t, 1) if pd.notna(t) else 1 ) else: ESDcompdata_pd["_type_pri"] = 1 - ESDcompdata_pd["_id_pri"] = ( - ESDcompdata_pd["ecoclassid"] - .map(lambda e: 0 if (pd.notna(e) and str(e).upper().startswith("R")) else 1) + ESDcompdata_pd["_id_pri"] = ESDcompdata_pd["ecoclassid"].map( + lambda e: 0 if (pd.notna(e) and str(e).upper().startswith("R")) else 1 ) ESDcompdata_pd.sort_values( ["cokey", "_type_pri", "_id_pri", "ecoclassid"], @@ -1630,9 +1622,7 @@ def _empty_esd_record(): { "ESD": { "ecoclassid": cokey_group["ecoclassid"].tolist(), - "ecoclassname": cokey_group[ - "ecoclassname" - ].tolist(), + "ecoclassname": cokey_group["ecoclassname"].tolist(), "edit_url": cokey_group["edit_url"].tolist(), } } @@ -1840,11 +1830,7 @@ def _norm_cokey(value): if data_source == "SSURGO" and OSDhorzdata_pd is not None: for cokey, grp in OSDhorzdata_pd.groupby("cokey", sort=False): g = grp.copy() - g = ( - g.sort_values(["top", "bottom"]) - .drop_duplicates() - .reset_index(drop=True) - ) + g = g.sort_values(["top", "bottom"]).drop_duplicates().reset_index(drop=True) # Keep only valid OSD horizons for interpolation. g = g[g["top"] <= g["bottom"]].reset_index(drop=True) @@ -1895,7 +1881,10 @@ def _align_layer_dict(layer_dict): if not isinstance(layer_dict, dict): return layer_dict ordered_items = sorted(layer_dict.items(), key=lambda kv: int(kv[0])) - return {i: ordered_items[i][1] for i in range(min(depth_len, len(ordered_items)))} + return { + i: ordered_items[i][1] + for i in range(min(depth_len, len(ordered_items))) + } sand = _align_layer_dict(sand) clay = _align_layer_dict(clay) @@ -1938,7 +1927,9 @@ def _align_layer_dict(layer_dict): munsell_values = [ ( lab2munsell(color_ref, LAB_ref, lab_triplet) - if lab_triplet[0] != "" and lab_triplet[1] != "" and lab_triplet[2] != "" + if lab_triplet[0] != "" + and lab_triplet[1] != "" + and lab_triplet[2] != "" else "" ) for lab_triplet in lab_parse