Fig. 1. California's Groundwater
A map layer (shapefile) showing areas in California where that specified contaminant (Nitrate, Arsenic, Total Dissolved Solids, Uranium, 123-TCP, Percholate) is consistently found above the regulatory thresholds to which public water systems are held. The dataset provides the mean, median, minimum, and maximum result values found in that area, as well as the number of wells where it was sampled.
This dataset was created for the 2019 Water Quality Status Report and 2019 CA State Water Board Data Science Symposium by Groundwater Ambient Monitoring and Assessment Program (GAMA) geologist, Dori Bellan.
The full metadata is provided below:
The final predicted areas for each of the six chemicals exceeding their relative MCLs in CA groundwater after the final step of professional judgement. These final regions are where these chemicals are typically above their MCLs. Created for CA Water Board Data Science Symposium, July 2019.
Empirical Bayesian Kriging (EBK) was used as part of the Geostatistical Analyst extension of ArcGIS Pro v2.1. For each of the six chemicals: nitrate, arsenic, perchlorate, uranium, 1,2,3 Trichloropropane, and total dissolved solids, EBK was used to produce a prediction surface of areas exceeding the relative MCL. EBK used data provided as hosted feature layers within the CA State Water Board GIS Portal; each chemical dataset includes all data (all years), including censored data (translated as detailed below), from the Groundwater Ambient Monitoring and Assessment (GAMA) Program Priority Basin and Domestic Well Projects, and the Division of Drinking Water public supply well datasets. Data points (wells) included must have at least two sampling events, and each well location is assigned the average detection of all sampling results. EBK (to predict the exceedance above the documented MCLs for each chemical) was applied to the statewide datasets for each chemical separately, in one statewide analysis each. Censored data (all detections reported as: equal to zero, less than the most common laboratory method detection limit (MDL), and as "ND") were translated to be the MDL/square root(2). This translation creates the best estimate for a detection, and removes zero values. Since the dataset in each EBK analysis is logarithmically transformed for a more normal distribution and therefore best-fitting model, zero values cannot exist. The final regions produced for nitrate used both the one-half MCL exceedance area and MCL exceedance area predictions.
As indicated, a level of professional judgement produced the final regions of predicted exceedances. This is the final feature layer, "Final_All_Chems_Regions" a regional map showing these predicted areas after the step of professional judgement. A summary of these changes is below. If a more detailed explanation is needed, please contact the author indicated in credits.
For each of the six chemicals, predicted areas were produced by EBK which only included one or two wells above the MCL. These small areas were not included in the final regions. Also not included are areas predicted by EBK where the model "searched" for an additional well location to continue its prediction. These areas may begin its prediction accurately, but while searching for an additional well "neighbor," the model continues to search and does not find one. This occurs at the boundaries of the state's extent, and was subsequently "clipped" by the state's boundary layer. In a few instances, these areas are finished by wrapping the predicted area around well locations, not extending to the boundary. In areas where this occurs and only a very small number of wells exist in the predicted areas, the predicted area is not included in the final regions. Lastly, final regions may extend slightly to include immediately adjacent wells in exceedance.
No inline preview is available for this format. Download the file (opens in a new tab) to view its contents.
Data dictionary
Field definitions supplied by the publishing agency in CKAN.
| Column | Type | Label | Description |
|---|---|---|---|
| filename | text | filename | — |
| compressed_size | numeric | compressed_size | — |
| file_size | numeric | file_size | — |
| compression_ratio | text | compression_ratio | — |
| date_time | timestamp | date_time | — |
| create_system | numeric | create_system | — |
| create_version | numeric | create_version | — |
| extract_version | numeric | extract_version | — |
| flag_bits | numeric | flag_bits | — |
| internal_attr | numeric | internal_attr | — |
| external_attr | numeric | external_attr | — |
| CRC | numeric | CRC | — |
| compress_type | numeric | compress_type | — |
Resource details
| Format | ZIP |
|---|---|
| Size | 1.2 MB |
| Rows | 8 |
| Last updated | Sep 30, 2026 |
| Part of | 2019 California Water Quality Status Report |
Other resources in this dataset
- Fig. 2. 1,2,3,-Trichloropropane
- Fig. 3. Toxicity and Urban Land Use
- Fig. 4-5. Sum Pyrethroid Toxic Units
- Fig. 7. Elk River Sediment Loads
- Fig. 10. FHABs Illnesses by County (2018)
- Fig. 11. Sampling stations for long-term bass lake monitoring.
- Fig. 18. Mayfly Occurrence Data
- Fig. 20. Stream Quality Index Map
CKAN Data API
Access resource data through the CKAN DataStore API. The examples below use this resource's ID.
Endpoints
The Data API provides these actions. Creating or updating records requires appropriate permissions; the query actions read public DataStore records.
| Create | https://ckan.cdt.dev.datopian.com/api/3/action/datastore_create |
|---|---|
| Update / insert | https://ckan.cdt.dev.datopian.com/api/3/action/datastore_upsert |
| Query | https://ckan.cdt.dev.datopian.com/api/3/action/datastore_search |
| Query via SQL | https://ckan.cdt.dev.datopian.com/api/3/action/datastore_search_sql |
Query examples
"https://ckan.cdt.dev.datopian.com/api/3/action/datastore_search?resource_id=2c74bdd6-8378-4f04-9ea8-b9e10a30283d&limit=5""https://ckan.cdt.dev.datopian.com/api/3/action/datastore_search?resource_id=2c74bdd6-8378-4f04-9ea8-b9e10a30283d&q=jones""https://ckan.cdt.dev.datopian.com/api/3/action/datastore_search_sql?sql=SELECT%20%2A%20FROM%20%222c74bdd6-8378-4f04-9ea8-b9e10a30283d%22%20LIMIT%205"SQL queries depend on whether SQL search is enabled by the portal.
OData query
Use the resource's OData URL and its field names for paging, selecting columns, or filtering rows.
ODATA_RESOURCE_URL?$top=5
ODATA_RESOURCE_URL?$skip=5&$top=5
ODATA_RESOURCE_URL?$select=FIELD_NAME&$filter=FIELD_NAME eq 'VALUE'Replace ODATA_RESOURCE_URL, FIELD_NAME, and VALUE with the details for the selected resource. See the OData query options guide (opens in a new tab) for more examples.
Use the API in code
JavaScript (JSONP)
var data = { resource_id: '2c74bdd6-8378-4f04-9ea8-b9e10a30283d', limit: 5, q: 'jones' };
$.ajax({
url: 'https://ckan.cdt.dev.datopian.com/api/3/action/datastore_search',
data: data,
dataType: 'jsonp',
success: function (response) {
console.log(response.result.total, response.result.records);
}
});Python
import json
from urllib.request import urlopen
url = 'https://ckan.cdt.dev.datopian.com/api/3/action/datastore_search?resource_id=2c74bdd6-8378-4f04-9ea8-b9e10a30283d&limit=5'
with urlopen(url) as response:
result = json.load(response)['result']
print(result['total'], result['records'])For parameters and response fields, see the CKAN DataStore documentation (opens in a new tab).