Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

482 create tadamonitoringlocationidentifier in tada autoclean #560

Open
wants to merge 102 commits into
base: develop
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
102 commits
Select commit Hold shift + click to select a range
01ba18e
Update Utilities.R
hillarymarler Aug 30, 2024
8dc776f
Update Utilities.R
hillarymarler Aug 30, 2024
2659fba
Update Utilities.R
hillarymarler Aug 30, 2024
765a28f
Update Utilities.R
hillarymarler Sep 6, 2024
88901cc
Use TADA.MonitoringLocationIdentifier in DepthProfile.R
hillarymarler Sep 6, 2024
4516d91
Use TADA.MonitoringLocationIdentifier in grouping in functions
hillarymarler Sep 9, 2024
45ba95e
Documentation updates
hillarymarler Sep 9, 2024
b6e8a17
Merge branch 'develop' into 482-create-tadamonitoringlocationidentifi…
hillarymarler Sep 9, 2024
877946d
Update Utilities.R
hillarymarler Sep 9, 2024
72f8459
Update example data
hillarymarler Sep 9, 2024
1fbf1be
Update Utilities.R
hillarymarler Sep 9, 2024
edec4d9
Update CriteriaComparison.R
hillarymarler Sep 10, 2024
6b06998
Update depth profile functions and documentation
hillarymarler Sep 10, 2024
2883495
Update Figures.R
hillarymarler Sep 10, 2024
63761b5
Update TADA_OverviewMap.Rd
hillarymarler Sep 10, 2024
a20bb05
Updated OverviewMap and added TADA.MonitorinigLocationTypeName
hillarymarler Sep 10, 2024
d1ba61a
Update Documentation
hillarymarler Sep 10, 2024
2c55ea9
Updates incorporating TADA.MonitoringLocationTypeName
hillarymarler Sep 10, 2024
a58be61
Update Utilities.R
hillarymarler Sep 11, 2024
dc76337
Updates to TADA_FlaggedSitesMap
hillarymarler Sep 11, 2024
ff1a6b7
Update Figures.R
hillarymarler Sep 12, 2024
825cf6f
Update Figures.R
hillarymarler Sep 12, 2024
9d9dca4
Update documentation
hillarymarler Sep 12, 2024
85a5ade
Documentation updates
hillarymarler Sep 12, 2024
72deada
Analysis data filter bug fix
hillarymarler Sep 12, 2024
33d961b
Update Filtering.R
hillarymarler Sep 13, 2024
1b8fecc
Update Filtering.R
hillarymarler Sep 13, 2024
6dbbbba
Update TADAModule1_BeginnerTraining.Rmd
hillarymarler Sep 18, 2024
2bc5b93
Update TADAModule1_BeginnerTraining.Rmd
hillarymarler Sep 19, 2024
84c76bc
Update TADAModule1_BeginnerTraining.Rmd
hillarymarler Sep 19, 2024
cb1693e
Update TADAModule1_BeginnerTraining.Rmd
hillarymarler Sep 19, 2024
8d43b6c
Update TADAModule1_BeginnerTraining.Rmd
hillarymarler Sep 19, 2024
2139687
Update TADAModule1_BeginnerTraining.Rmd
hillarymarler Sep 19, 2024
f9a3c54
Update example data
hillarymarler Sep 20, 2024
ad9029b
Update Filtering.R
hillarymarler Sep 23, 2024
bbfd1f7
Update TADAModule1_AdvancedTraining.Rmd
wokenny13 Sep 24, 2024
9bf9db0
Merge branch 'develop' into 482-create-tadamonitoringlocationidentifi…
hillarymarler Oct 29, 2024
e3d1ff2
Update from develop
hillarymarler Oct 29, 2024
d6d80ad
Update Utilities.R
hillarymarler Oct 31, 2024
940bcdc
Merge branch 'develop' into 482-create-tadamonitoringlocationidentifi…
hillarymarler Nov 1, 2024
a2ebe60
Merge branch 'develop' into 482-create-tadamonitoringlocationidentifi…
hillarymarler Nov 7, 2024
6ea8b11
Merge updates from develop
hillarymarler Nov 7, 2024
3ff94e1
Update Utilities.R
hillarymarler Nov 7, 2024
464b20a
Merge branch 'develop' into 482-create-tadamonitoringlocationidentifi…
hillarymarler Nov 22, 2024
93b23d5
Fix conflicts
hillarymarler Nov 22, 2024
59e1b23
Example data updates
hillarymarler Nov 22, 2024
0d18494
Merge branch 'develop' into 482-create-tadamonitoringlocationidentifi…
cristinamullin Dec 5, 2024
01e23f6
Update Utilities.R
hillarymarler Dec 11, 2024
a451b9e
Merge branch 'develop' into 482-create-tadamonitoringlocationidentifi…
hillarymarler Dec 18, 2024
3679dce
Updates to TADA_FindNearbySites
hillarymarler Dec 20, 2024
c0d3b75
Update Utilities.R
hillarymarler Dec 23, 2024
72a8412
Updated draft function and documentation
hillarymarler Dec 23, 2024
8fb555a
Update example data
hillarymarler Dec 23, 2024
2fe7962
Update Utilities.R
hillarymarler Dec 23, 2024
50ddfc7
Update TADA_FindNearbySites.Rd
hillarymarler Dec 23, 2024
d6073ca
Update Utilities.R
hillarymarler Dec 23, 2024
88718c8
Update Utilities.R
hillarymarler Dec 23, 2024
2243d48
Merge branch 'develop' into 482-create-tadamonitoringlocationidentifi…
hillarymarler Dec 26, 2024
887c8c3
Update Utilities.R
hillarymarler Dec 26, 2024
260c206
Update example data and find nearby updates
hillarymarler Dec 26, 2024
0aebccc
Update Utilities.R
hillarymarler Dec 26, 2024
152bde1
Documentation updates
hillarymarler Dec 26, 2024
b3bbf54
Update WORDLIST
hillarymarler Dec 26, 2024
42d5526
Removed unnecessary test file
hillarymarler Dec 26, 2024
a4ea801
Update Utilities.R
hillarymarler Dec 27, 2024
49aceff
Update Utilities.R
hillarymarler Dec 27, 2024
6b30ff1
Documentation update
hillarymarler Dec 27, 2024
7804721
Update Utilities.R
hillarymarler Dec 30, 2024
1fe9588
Documentation update
hillarymarler Dec 30, 2024
0f06e97
Org hierarchy bug fix
hillarymarler Dec 30, 2024
d6843b6
Find nearby sites formatting update
hillarymarler Dec 31, 2024
3fe2900
Update DESCRIPTION
hillarymarler Dec 31, 2024
d207722
Update DESCRIPTION
hillarymarler Dec 31, 2024
e9151b7
Update Utilities.R
hillarymarler Dec 31, 2024
6abe27d
Update Utilities.R
hillarymarler Dec 31, 2024
11758e9
Update Utilities.R
hillarymarler Dec 31, 2024
a1f6dda
Update Utilities.R
hillarymarler Dec 31, 2024
5088595
Update Utilities.R
hillarymarler Dec 31, 2024
cfdc177
Update ResultFlagsIndependent.R
hillarymarler Dec 31, 2024
6159455
Update data and examples
hillarymarler Jan 2, 2025
7afaa3b
Update ResultFlagsIndependent.R
hillarymarler Jan 2, 2025
7e254a7
Update ResultFlagsIndependent.R
hillarymarler Jan 2, 2025
e3317d9
Update RequiredCols.R
hillarymarler Jan 2, 2025
92a1b0b
Update Utilities.R
hillarymarler Jan 2, 2025
9cbf748
FindNearby related updates
hillarymarler Jan 2, 2025
8414979
Update TADA_FindNearbySites.Rd
hillarymarler Jan 2, 2025
92e32f4
Update Utilities.R
hillarymarler Jan 2, 2025
165434f
Bug fix
hillarymarler Jan 2, 2025
d2c0c16
Update test-URLChecker.R
hillarymarler Jan 2, 2025
62d60ef
Update Utilities.R
hillarymarler Jan 3, 2025
48eb622
Spelling updates
hillarymarler Jan 3, 2025
e09e5b7
Update TADAAssessmentUnitUseCase.Rmd
hillarymarler Jan 13, 2025
a489209
Bug fixes for multiple org dups
hillarymarler Jan 13, 2025
803c178
test fixes
hillarymarler Jan 13, 2025
0a8f082
Update test-DataDiscoveryRetrieval.R
hillarymarler Jan 14, 2025
3edc74c
Update DESCRIPTION
hillarymarler Jan 14, 2025
3192f73
Update test-DataDiscoveryRetrieval.R
hillarymarler Jan 14, 2025
bc81de9
Update Utilities.R
hillarymarler Jan 15, 2025
a53c364
Update Utilities.R
hillarymarler Jan 15, 2025
d9f011e
Update Utilities.R
hillarymarler Jan 15, 2025
5bcf538
Update TADAAssessmentUnitUseCase.Rmd
hillarymarler Jan 16, 2025
2285b15
Bug fix
hillarymarler Jan 16, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .Rbuildignore
Original file line number Diff line number Diff line change
Expand Up @@ -9,3 +9,4 @@ readme.html
.gitignore
^articles
^vignettes/articles$

3 changes: 0 additions & 3 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,3 @@ test_function.R
_snaps

testing_log.txt

# test data from AK
AK_EPATADA_troubleshooting
8 changes: 6 additions & 2 deletions DESCRIPTION
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,9 @@ Authors@R:
comment = c(ORCID = "0000-0002-0615-6087")),
person(given = "Hillary",
family = "Marler",
role = "aut"),
role = "aut",
email = "[email protected]",
comment = c(ORCID = "0009-0006-0323-1172")),
person(given = "Jacob",
family = "Greif",
role = "aut"),
Expand Down Expand Up @@ -72,7 +74,9 @@ Imports:
nhdplusTools,
arcgislayers,
httr,
jsonlite
jsonlite,
units,
igraph
Depends:
R (>= 3.5.0)
Suggests:
Expand Down
18 changes: 10 additions & 8 deletions R/CriteriaComparison.R
Original file line number Diff line number Diff line change
Expand Up @@ -181,15 +181,17 @@ TADA_CreatePairRef <- function(.data, ph = TRUE, hardness = TRUE, temp = TRUE,
#' Pair Results for Numeric Criteria Calculation (UNDER ACTIVE DEVELOPMENT)
#'
#' This function pairs TADA results with results from specified characteristics from the same
#' MonitoringLocation within a user-specified time window to facilitate the calculation of numeric
#' criteria. The columns created by TADA_AutoClean are required to run this function. If they are not
#' present in the data frame, the function will stop and print an error message.
#' TADA.MonitoringLocation within a user-specified time window to facilitate the calculation of
#' numeric criteria. The columns created by TADA_AutoClean are required to run this function. If
#' they are not present in the data frame, the function will stop and print an error message.
#'
#' Users can provide a pairing reference file (can be created using TADA_CreatePairRef) to specify
#' which combinations of TADA.CharacteristicName, TADA.ResultMeasure.MeasureUnit,
#' TADA.MethodSpeciationName, and TADA.ResultSampleFractionText should be used for hardness, pH,
#' temperature, salinity, chloride or other user-defined groups. If no ref is specified, all possible
#' combinations for hardness, pH, temperature, salinity and chloride will be used.
#' temperature, salinity, chloride or other user-defined groups. If no ref is specified, all
#' possible combinations for hardness, pH, temperature, salinity and chloride will be used. It is
#' highly recommended that users perform all unit conversion and synonym harmonization before using
#' TADA_PairForCriteriaCalc.
#'
#' @param .data TADA dataframe
#'
Expand Down Expand Up @@ -277,7 +279,7 @@ TADA_PairForCriteriaCalc <- function(.data, ref = "null", hours_range = 4) {
) %>%
dplyr::select(
TADA.CharacteristicName, TADA.ResultMeasureValue, TADA.ResultMeasure.MeasureUnitCode,
ActivityIdentifier, MonitoringLocationIdentifier, ActivityStartDateTime,
ActivityIdentifier, TADA.MonitoringLocationIdentifier, ActivityStartDateTime,
TADA.ResultSampleFractionText, TADA.MethodSpeciationName
) %>%
dplyr::left_join(ref.subset,
Expand Down Expand Up @@ -335,11 +337,11 @@ TADA_PairForCriteriaCalc <- function(.data, ref = "null", hours_range = 4) {
dplyr::filter(
!ResultIdentifier %in% pair.activityid$ResultIdentifier,
!is.na(ActivityStartDateTime),
MonitoringLocationIdentifier %in% pair.subset$MonitoringLocationIdentifier
TADA.MonitoringLocationIdentifier %in% pair.subset$TADA.MonitoringLocationIdentifier
) %>%
dplyr::left_join(pair.subset2,
relationship = "many-to-many",
by = dplyr::join_by(MonitoringLocationIdentifier)
by = dplyr::join_by(TADA.MonitoringLocationIdentifier)
) %>%
dplyr::group_by(ResultIdentifier) %>%
# Figure out fastest time comparison method - needs to be absolute time comparison
Expand Down
96 changes: 48 additions & 48 deletions R/DepthProfile.R

Large diffs are not rendered by default.

282 changes: 172 additions & 110 deletions R/Figures.R

Large diffs are not rendered by default.

21 changes: 12 additions & 9 deletions R/Filtering.R
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ TADA_FieldCounts <- function(.data, display = c("key", "most", "all"), character
"ActivityMediaSubdivisionName",
"ActivityCommentText",
"ResultCommentText",
"MonitoringLocationTypeName",
"TADA.MonitoringLocationTypeName",
"StateCode",
"OrganizationFormalName",
"TADA.CharacteristicName",
Expand Down Expand Up @@ -79,8 +79,10 @@ TADA_FieldCounts <- function(.data, display = c("key", "most", "all"), character
"ActivityRelativeDepthName",
"ProjectIdentifier",
"ProjectName",
"TADA.MonitoringLocationIdentifier",
"MonitoringLocationIdentifier",
"MonitoringLocationName",
"MonitoringLocationTypeName",
"ActivityCommentText",
"SampleAquifer",
"HydrologicCondition",
Expand Down Expand Up @@ -112,7 +114,6 @@ TADA_FieldCounts <- function(.data, display = c("key", "most", "all"), character
"ResultDetectionQuantitationLimitUrl",
"DetectionQuantitationLimitTypeName",
"ProviderName",
"MonitoringLocationTypeName",
"MonitoringLocationDescriptionText",
"HUCEightDigitCode",
"HorizontalCollectionMethodName",
Expand Down Expand Up @@ -191,10 +192,14 @@ TADA_FieldValuesTable <- function(.data, field = "null", characteristicName = "n
if (!field %in% names(.data)) {
stop("Field input does not exist in dataset. Please populate the 'field' argument with a valid field name. Enter ?TADA_FieldValuesTable in console for more information.")
}

# change NAs to "NA" (character string)
.data[[field]][is.na(.data[[field]])] <- "NA"

# filter to characteristic if provided
if (!characteristicName %in% c("null")) {
.data <- subset(.data, .data$TADA.CharacteristicName %in% c(characteristicName))
.data <- .data %>%
dplyr::filter(TADA.CharacteristicName %in% characteristicName)
if (dim(.data)[1] < 1) {
stop("Characteristic name(s) provided are not contained within the input dataset. Note that TADA converts characteristic names to ALL CAPS for easier harmonization.")
}
Expand Down Expand Up @@ -282,11 +287,9 @@ TADA_AnalysisDataFilter <- function(.data,
# import MonitoringLocationTypeNames and TADA.Media.Flags
sw.sitetypes <- utils::read.csv(system.file("extdata", "WQXMonitoringLocationTypeNameRef.csv", package = "EPATADA")) %>%
dplyr::select(Name, TADA.Media.Flag) %>%
dplyr::rename(
ML.Media.Flag = TADA.Media.Flag,
MonitoringLocationTypeName = Name
)

dplyr::rename(ML.Media.Flag = TADA.Media.Flag) %>%
dplyr::mutate(MonitoringLocationTypeName = toupper(Name)) %>%
dplyr::select(-Name)

# add TADA.Media.Flag column
.data <- .data %>%
Expand All @@ -304,7 +307,7 @@ TADA_AnalysisDataFilter <- function(.data,
ActivityMediaSubdivisionName == "Surface Water" ~ "Surface Water",
!ActivityMediaName %in% c("WATER", "Water", "water") ~ ActivityMediaName
)) %>%
# add TADA.Media.Flag for additional rows based on MonitoringLocationTypeName
# add TADA.Media.Flag for additional rows based on TADA.MonitoringLocationTypeName
dplyr::left_join(sw.sitetypes, by = "MonitoringLocationTypeName") %>%
dplyr::mutate(
TADA.Media.Flag = ifelse(is.na(TADA.Media.Flag),
Expand Down
45 changes: 30 additions & 15 deletions R/GeospatialFunctions.R
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,12 @@
#'
#' Transform a Water Quality Portal dataframe into a geospatial sf object.
#'
#' Adds one new column to input dataframe, 'geometry', which allows for mapping and additional geospatial capabilities. Check out the TADAModule2.Rmd for an example workflow.
#' Adds one new column to input dataframe, 'geometry', which allows for mapping and additional
#' geospatial capabilities. Check out the TADAModule2.Rmd for an example workflow.
#'
#' @param .data A dataframe created by `TADA_DataRetrieval()`.
#' @param crs The coordinate reference system (CRS) you would like the returned point features to be in. The default is CRS 4326 (WGS84).
#' @param crs The coordinate reference system (CRS) you would like the returned point features to
#' be in. The default is CRS 4326 (WGS84).
#'
#' @return The original TADA Water Quality Portal dataframe but as geospatial sf point objects.
#'
Expand Down Expand Up @@ -111,11 +113,16 @@ TADA_MakeSpatial <- function(.data, crs = 4326) {

#' fetchATTAINS
#'
#' Fetches ATTAINS features (state- or tribe- or other entity- submitted points, lines, and polygons representing their assessment units; and the EPA snapshot of the associated NHDPlus HR catchments that the state- or tribe- or other entity- submitted features fall within) within a bounding box produced from a set of TADA spatial features.
#' Fetches ATTAINS features (state- or tribe- or other entity- submitted points, lines, and polygons
#' representing their assessment units; and the EPA snapshot of the associated NHDPlus HR catchments
#' that the state- or tribe- or other entity- submitted features fall within) within a bounding box
#' produced from a set of TADA spatial features.
#'
#' @param .data A dataframe developed using `TADA_DataRetrieval()` or `TADA_MakeSpatial()`.
#' @param catchments_only Whether to return just the summarized ATTAINS catchment features, or both the catchments and raw ATTAINS features. TRUE or FALSE.
#' @return Spatial features (ATTAINS_catchments, ATTAINS_points, ATTAINS_lines, and ATTAINS_polygons) that are within the spatial bounding box of water quality observations.
#' @param catchments_only Whether to return just the summarized ATTAINS catchment features, or both
#' the catchments and raw ATTAINS features. TRUE or FALSE.
#' @return Spatial features (ATTAINS_catchments, ATTAINS_points, ATTAINS_lines, and
#' ATTAINS_polygons) that are within the spatial bounding box of water quality observations.
#'
#' @seealso [TADA_MakeSpatial()]
#' @seealso [TADA_DataRetrieval()]
Expand Down Expand Up @@ -266,7 +273,8 @@ fetchATTAINS <- function(.data, catchments_only = FALSE) {
}

# If the area of the bbox is massive (about the area of California or larger), AND there
# aren't that many actual monitoring locations (100)... OR the bbox is about the size of New Hampshire, and the observations are under 25...
# aren't that many actual monitoring locations (100)... OR the bbox is about the size of
# New Hampshire, and the observations are under 25...
# ... speed up processing by going site-by-site:
if (nrow(.data) <= 100 & as.numeric(sf::st_area(sf::st_as_sfc(bbox_raw))) >= 4e+11 || nrow(.data) <= 25 & as.numeric(sf::st_area(sf::st_as_sfc(bbox_raw))) >= 1e+11) {
catchment_features <- vector("list", length = nrow(.data))
Expand Down Expand Up @@ -458,13 +466,20 @@ fetchATTAINS <- function(.data, catchments_only = FALSE) {

#' fetchNHD
#'
#' Fetches NHD features from either the high resolution or medium resolution version of the National Hydrography Dataset (NHD) that intersect catchments containing TADA Water Quality Portal observations.
#' Fetches NHD features from either the high resolution or medium resolution version of the National
#' Hydrography Dataset (NHD) that intersect catchments containing TADA Water Quality Portal
#' observations.
#'
#' @param .data A dataframe created by `TADA_DataRetrieval()` or the geospatial equivalent made by `TADA_MakeSpatial()`.
#' @param resolution Whether to download the NHDPlus HiRes resolution ("Hi") or medium NHDPlus V2 resolution ("Med") version of the National Hydrography Dataset (NHD). Default is "Hi".
#' @param features Which NHD features to return: "catchments", "flowlines", "waterbodies", or any combination.
#' @param .data A dataframe created by `TADA_DataRetrieval()` or the geospatial equivalent made by
#' `TADA_MakeSpatial()`.
#' @param resolution Whether to download the NHDPlus HiRes resolution ("Hi") or medium NHDPlus V2
#' resolution ("Med") version of the National Hydrography Dataset (NHD). Default is "Hi".
#' @param features Which NHD features to return: "catchments", "flowlines", "waterbodies", or any
#' combination.
#'
#' @return A list containing all selected NHD features associated with the WQP observations of interest. Or, if a single feature type is selected, a single geospatial object instead of a list. Default is "catchments" only.
#' @return A list containing all selected NHD features associated with the WQP observations of
#' interest. Or, if a single feature type is selected, a single geospatial object instead of a list.
#' Default is "catchments" only.
#'
#' @seealso [TADA_DataRetrieval()]
#' @seealso [TADA_MakeSpatial()]
Expand Down Expand Up @@ -1095,8 +1110,8 @@ TADA_GetATTAINS <- function(.data, fill_catchments = FALSE, resolution = "Hi", r
print("There are no ATTAINS catchments associated with these WQP observations. Returning an empty data frame for `TADA_with_ATTAINS`.")

if (fill_catchments == FALSE) {
# If there are no intersecting ATTAINS catchments, fill_catchments = FALSE, and return_sf = TRUE, return empty sf features with the
# empty TADA_with_ATTAINS df.
# If there are no intersecting ATTAINS catchments, fill_catchments = FALSE, and
# return_sf = TRUE, return empty sf features with the empty TADA_with_ATTAINS df.
if (return_sf == TRUE) {
ATTAINS_catchments <- NULL
ATTAINS_lines <- NULL
Expand All @@ -1111,8 +1126,8 @@ TADA_GetATTAINS <- function(.data, fill_catchments = FALSE, resolution = "Hi", r
"ATTAINS_polygons" = ATTAINS_polygons
))
} else {
# If there are no intersecting ATTAINS catchments, fill_catchments = FALSE, and return_sf = FALSE, just return the
# empty TADA_with_ATTAINS df.
# If there are no intersecting ATTAINS catchments, fill_catchments = FALSE, and
# return_sf = FALSE, just return the empty TADA_with_ATTAINS df.
return(no_ATTAINS_data)
}
} else if (fill_catchments == TRUE) {
Expand Down
5 changes: 5 additions & 0 deletions R/RequiredCols.R
Original file line number Diff line number Diff line change
Expand Up @@ -171,7 +171,9 @@ require.cols <- c(
"StateCode",
"CountyCode",
"MonitoringLocationName", # required
"TADA.MonitoringLocationName", # generated
"MonitoringLocationTypeName",
"TADA.MonitoringLocationTypeName", #generated
"MonitoringLocationDescriptionText",
"LatitudeMeasure",
"TADA.LatitudeMeasure", # generated
Expand All @@ -182,6 +184,9 @@ require.cols <- c(
"HUCEightDigitCode",
"MonitoringLocationIdentifier", # required
"TADA.MonitoringLocationIdentifier",
"TADA.NearbySites.Flag", # generated,
"TADA.NearbySiteGroup", #generated

# Groundwater fields, used for auto filtering for assessment use case but should not be required to have in TADA template
"AquiferName", # filter, groundwater
"AquiferTypeName", # filter
Expand Down
Loading
Loading