query_templates
query_templates
Query templates for common Soil Data Access query patterns.
This module provides convenient factory functions for building common SDA queries. These functions are simpler and more intuitive than using the QueryBuilder class directly.
Examples: # Get map units for a survey area query = query_mapunits_by_legend(“IA109”)
# Get components at a specific point
query = query_components_at_point(-93.5, 42.5)
# Get available survey areas
query = query_available_survey_areas()
# Get pedons in a bounding box
query = query_pedons_intersecting_bbox(-94.0, 42.0, -93.0, 43.0)
Functions
| Name | Description |
|---|---|
| query_available_survey_areas | Get list of available survey areas. |
| query_component_horizons_by_legend | Get component and horizon data for a survey area. |
| query_components_at_point | Get soil component data at a specific point. |
| query_components_by_legend | Get components for a survey area. |
| query_from_sql | Create a query from a raw SQL string. |
| query_mapunits_by_legend | Get map units for a survey area by legend/area symbol. |
| query_mapunits_intersecting_bbox | Get map units that intersect with a bounding box. |
| query_pedon_by_pedon_key | Get a single pedon by its pedon key with flexible table joining. |
| query_pedon_horizons_by_pedon_keys | Get horizon data for specified pedon keys with flexible table joining. |
| query_pedons_intersecting_bbox | Get pedons that intersect with a bounding box with flexible table joining. |
| query_spatial_by_legend | Get spatial data for map units on a legend/area symbol. |
| query_survey_area_boundaries | Get survey area boundary polygons. |
query_available_survey_areas
query_templates.query_available_survey_areas(columns=None, table='sacatalog')Get list of available survey areas.
Args: columns: Custom columns to select table: Table to query (default: ‘sacatalog’ or ‘legend’)
Returns: Query: A Query object ready for execution
Examples: >>> query = query_available_survey_areas() >>> query = query_available_survey_areas(table=“legend”)
query_component_horizons_by_legend
query_templates.query_component_horizons_by_legend(areasymbol, columns=None)Get component and horizon data for a survey area.
Args: areasymbol: Area symbol (e.g., ‘IA109’) columns: Custom columns to select (defaults to detailed horizon columns)
Returns: Query: A Query object ready for execution
Examples: >>> query = query_component_horizons_by_legend(“IA109”)
query_components_at_point
query_templates.query_components_at_point(longitude, latitude, columns=None)Get soil component data at a specific point.
Args: longitude: Longitude of the point latitude: Latitude of the point columns: Custom columns to select (defaults to component and horizon columns)
Returns: Query: A Query object ready for execution with spatial filter
Examples: >>> query = query_components_at_point(-93.5, 42.5)
query_components_by_legend
query_templates.query_components_by_legend(areasymbol, columns=None)Get components for a survey area.
Args: areasymbol: Area symbol (e.g., ‘IA109’) columns: Custom columns to select (defaults to basic component columns)
Returns: Query: A Query object ready for execution
Examples: >>> query = query_components_by_legend(“IA109”)
query_from_sql
query_templates.query_from_sql(sql)Create a query from a raw SQL string.
Args: sql: The raw SQL query string
Returns: Query: A Query object
Examples: >>> query = query_from_sql(“SELECT TOP 10 mukey, muname FROM mapunit”)
query_mapunits_by_legend
query_templates.query_mapunits_by_legend(areasymbol, columns=None)Get map units for a survey area by legend/area symbol.
Args: areasymbol: Area symbol (e.g., ‘IA109’) columns: Custom columns to select (defaults to basic map unit columns)
Returns: Query: A Query object ready for execution
Examples: >>> query = query_mapunits_by_legend(“IA109”) >>> query = query_mapunits_by_legend(“IA109”, columns=[“mukey”, “muname”])
query_mapunits_intersecting_bbox
query_templates.query_mapunits_intersecting_bbox(
min_x,
min_y,
max_x,
max_y,
columns=None,
)Get map units that intersect with a bounding box.
Args: min_x: Minimum longitude (west bound) min_y: Minimum latitude (south bound) max_x: Maximum longitude (east bound) max_y: Maximum latitude (north bound) columns: Custom columns to select (defaults to basic map unit columns with geometry)
Returns: Query: A Query object ready for execution with spatial filter
Examples: >>> query = query_mapunits_intersecting_bbox(-94.0, 42.0, -93.0, 43.0)
query_pedon_by_pedon_key
query_templates.query_pedon_by_pedon_key(
pedon_key,
columns=None,
base_table='lab_combine_nasis_ncss',
related_tables=None,
)Get a single pedon by its pedon key with flexible table joining.
Args: pedon_key: Pedon key to query columns: Columns to select (defaults to basic pedon columns) base_table: Base pedon/site table (default: “lab_combine_nasis_ncss”) related_tables: Additional tables to left join
Returns: Query: A Query object ready for execution
Examples: >>> query = query_pedon_by_pedon_key(“12345”)
query_pedon_horizons_by_pedon_keys
query_templates.query_pedon_horizons_by_pedon_keys(
pedon_keys,
columns=None,
base_table='lab_layer',
related_tables=None,
)Get horizon data for specified pedon keys with flexible table joining.
Args: pedon_keys: List of pedon keys to query columns: Columns to select (defaults to basic lab horizon columns) base_table: Base horizon table (default: “lab_layer”) related_tables: Additional tables to left join (default: basic lab tables)
Returns: Query: A Query object ready for execution
Examples: >>> query = query_pedon_horizons_by_pedon_keys([“12345”, “67890”])
query_pedons_intersecting_bbox
query_templates.query_pedons_intersecting_bbox(
min_x,
min_y,
max_x,
max_y,
columns=None,
base_table='lab_combine_nasis_ncss',
related_tables=None,
lon_column='longitude_decimal_degrees',
lat_column='latitude_decimal_degrees',
)Get pedons that intersect with a bounding box with flexible table joining.
Args: min_x: Minimum longitude min_y: Minimum latitude max_x: Maximum longitude max_y: Maximum latitude columns: Columns to select (defaults to basic pedon columns) base_table: Base pedon/site table (default: “lab_combine_nasis_ncss”) related_tables: Additional tables to left join lon_column: Name of the longitude column (default: “longitude_decimal_degrees”) lat_column: Name of the latitude column (default: “latitude_decimal_degrees”)
Returns: Query: A Query object ready for execution
Examples: >>> query = query_pedons_intersecting_bbox(-94.0, 42.0, -93.0, 43.0)
query_spatial_by_legend
query_templates.query_spatial_by_legend(areasymbol, columns=None)Get spatial data for map units on a legend/area symbol.
Args: areasymbol: Area symbol (e.g., ‘IA109’) columns: Custom columns to select (defaults to spatial map unit columns)
Returns: Query: A Query object ready for execution with geometry
Examples: >>> query = query_spatial_by_legend(“IA109”)
query_survey_area_boundaries
query_templates.query_survey_area_boundaries(columns=None, table='sapolygon')Get survey area boundary polygons.
Args: columns: Custom columns to select (defaults to area symbol, name, and geometry) table: Table to query (default: ‘sapolygon’)
Returns: Query: A Query object ready for execution with spatial data
Examples: >>> query = query_survey_area_boundaries()