From 32e781f736358af8179271f993d7e15dd852b1b8 Mon Sep 17 00:00:00 2001 From: arnejh Date: Sat, 13 Jun 2026 08:37:57 +0200 Subject: [PATCH] Added support for reading zipped ICESAcoustic XML files. --- .github/workflows/check-full.yaml | 2 +- DESCRIPTION | 4 ++-- NEWS.md | 7 +++++- R/DefineAndUpdateVariables.R | 15 ++++++++----- R/Filter.R | 2 +- R/xsdUtils.R | 29 +++++++++++++++++++++---- inst/extdata/functionArguments.rds | Bin 46254 -> 46496 bytes inst/testresources/ICES_Acoustic_1.zip | Bin 0 -> 2639 bytes inst/tinytest/test-read.R | 6 +++++ man/DefineTranslation.Rd | 2 ++ man/FilterAcoustic.Rd | 2 +- man/FilterBiotic.Rd | 2 +- man/FilterICESAcoustic.Rd | 2 +- man/FilterICESBiotic.Rd | 2 +- man/FilterICESDatras.Rd | 2 +- man/FilterICESDatsusc.Rd | 2 +- man/FilterLanding.Rd | 2 +- man/FilterStoxAcoustic.Rd | 2 +- man/FilterStoxBiotic.Rd | 2 +- man/FilterStoxLanding.Rd | 2 +- src/xmlio/xmlzipfile.h | 1 - 21 files changed, 63 insertions(+), 25 deletions(-) create mode 100644 inst/testresources/ICES_Acoustic_1.zip create mode 100644 inst/tinytest/test-read.R diff --git a/.github/workflows/check-full.yaml b/.github/workflows/check-full.yaml index ae1f65062..c16f59f97 100644 --- a/.github/workflows/check-full.yaml +++ b/.github/workflows/check-full.yaml @@ -51,7 +51,7 @@ jobs: #### 1. Setup: #### ################### - - uses: actions/checkout@v4 + - uses: actions/checkout@v6 - name: Prepare for deployment at push if: github.event_name == 'push' diff --git a/DESCRIPTION b/DESCRIPTION index 070c093cd..f33114e5a 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -1,6 +1,6 @@ Package: RstoxData -Version: 2.2.1-9006 -Date: 2026-06-06 +Version: 2.2.1-9007 +Date: 2026-06-13 Title: Tools to Read and Manipulate Fisheries Data Authors@R: c( person(given = "Arne Johannes", diff --git a/NEWS.md b/NEWS.md index 349bbd63d..37e2bbf49 100644 --- a/NEWS.md +++ b/NEWS.md @@ -1,4 +1,9 @@ -# RstoxData v2.2.1-9005 (2026-05-21) +# RstoxData v2.2.1-9007 (2026-06-13) +* Added support for reading zipped ICESAcoustic XML files (in getIcesVocabulary()). +* Removed warning occurring when translation table and variable is coerced to numeric in matchVariable(). + + +# RstoxData v2.2.1-9006 (2026-06-06) * Fixed bug in Translate functions where translating numeric variables did not work for large values that are represented by scientific notation in R. As an example, 200000000 is represented as 2E+08, and after the fix, both 200000000 and 2E+08 are valid values to translate from. diff --git a/R/DefineAndUpdateVariables.R b/R/DefineAndUpdateVariables.R index 4a83765cb..6e3f6e418 100644 --- a/R/DefineAndUpdateVariables.R +++ b/R/DefineAndUpdateVariables.R @@ -113,6 +113,8 @@ RedefineStoxBiotic <- function( #' @details The columns of the \code{TranslationTable} can be given in one of two ways: (1) A single value or a string to be evaluated and matched using the "\%in\%" operator, such as "HER" or "c(\"HER\", \"CLU\")"; or (2) a string expressing a function of the variable given by the column name, such as "function(IndividualTotalLength) IndividualTotalLength > 10". #' #' Specifying NewValue as a function can be used to transform numeric values, e.g. "function(IndividualTotalLength) IndividualTotalLength * 1.1" to compensate for different length measurement. This can be useful for length that are not total length, in which case TranslateBiotic can be used to translate the lengthmeasurement (NMDBiotic) or LengthType (ICESBiotic) to the accepted "E" or "1", respectively. For BioticData read from ICESBiotic XML files the the LengthType specifies the type of length measurement. These values are not translated using the vocabulary from the XML file, so that total length is represented as "AC_LengthMeasurementType_1" instead of the code "1". For these data the translation can be either to "AC_LengthMeasurementType_1" or to "1". +#' +#' Note that a function string for NewValue must be of the form function(VAR), where VAR is the name of the variable to translate. The function body can however contain other variables. E.g., "function(IndividualTotalLength) 5 * IndividualRoundWeight^(1/3)", will set the IndividualTotalLength 5 times the square root of IndividualTotalLength. #' #' Similar to transforming IndividualTotalLength, IndividualRoundWeight can also be transformed if the individualproducttype is not 1 for NMDBiotic XML files. #' @@ -406,7 +408,8 @@ translateOne <- function( nomatches <- sapply(matches, function(x) length(x) == 1 && is.na(x)) # Translate only if there were ane matches: - if(!any(nomatches)) { + # Here, na.rm = TRUE makes sure we get TRUE/FALSE and not NA: + if(!any(nomatches, na.rm = TRUE)) { # Remove empty matches: matches <- matches[sapply(matches, NROW) > 0] @@ -422,7 +425,7 @@ translateOne <- function( if(length(thisMatches)) { - # Kepp pnly the columns present in the table to translate, so that we can use thisMatches to dientify the rows in which to translate: + # Keep only the columns present in the table to translate, so that we can use thisMatches to identify the rows in which to translate: thisMatches <- subset(thisMatches, select = intersect(names(thisMatches), names(data[[tableName]]))) # Translate @@ -458,7 +461,8 @@ translateOne <- function( thisMatches <- matchVariable(variableToTranslate, translationListOne, data[[tableName]]) - if(any(thisMatches)) { + # Here, na.rm = TRUE makes sure we get TRUE/FALSE and not NA: + if(any(thisMatches, na.rm = TRUE)) { # Translate if(isFunctionString(translationListOne$NewValue, variableToTranslate)) { #data[[tableName]] [thisMatches, eval(variableToTranslate) := eval(parse(text = translationListOne$NewValue)) (get(variableToTranslate)), on = names(thisMatches)] @@ -643,6 +647,7 @@ matchClass <- function(A, B) { # Function to match a condition given in the element 'variableName' of 'list' to the corresponding element in 'table', either as a function expression string that can be evaluated, or a replacement string: matchVariable <- function(variableName, list, table) { + # Special case for NA: if(is.na(list[[variableName]]) || identical(list[[variableName]], "NA")) { is.na(table[[variableName]]) @@ -664,8 +669,8 @@ matchVariable <- function(variableName, list, table) { vector <- eval(parse(text = deparse(list[[variableName]]))) if(!is.list(vector) && is.vector(vector) && length(dim(vector)) < 2) { # If both the translation value and the data value is coercible to numeric, treat as numeric: - xnum <- as.numeric(table[[variableName]]) - ynum <- as.numeric(vector) + suppressWarnings(xnum <- as.numeric(table[[variableName]])) + suppressWarnings(ynum <- as.numeric(vector)) if(!any(is.na(xnum)) && !any(is.na(ynum))) { xnum %in% ynum } diff --git a/R/Filter.R b/R/Filter.R index 735295386..8549be779 100644 --- a/R/Filter.R +++ b/R/Filter.R @@ -511,7 +511,7 @@ expandFilterExpressionList <- function(FilterExpressionList, sep = "/") { #' Filters \code{\link{BioticData}}. #' #' @param BioticData Input \code{\link{BioticData}} data. -#' @param FilterExpression Filter expression given as a list of strings. The name of the list and structures should be identical to the names of the input data list. To extract or exclude missing values (NAs) use the operator \code{\%in\%} or the special operator \code{\%notin\%}, which is defined in RstoxData. For a numeric filter, in the current StoX GUI, NA must be added manually in the text field of the "Expression table dialog" (the "Query builder dialog" will only show numeric values and will show an empty fields if the filter contains NA). Possible values are provided in the filter expression builder in the StoX GUI for character values, integer values, and numeric values that are all whole numbers, but not for keys (CruiseKey, StationKey, HaulKey, SpeciesCategoryKey, SampleKey and IndividualKey in \code{\link{FilterStoxBiotic}}, and CruiseKey, LogKey, BeamKey, AcousticCategoryKey, ChannelReferenceKey and NASCKey in \code{\link{FilterStoxAcoustic}}). +#' @param FilterExpression Filter expression given as a list of strings. The name of the list and structures should be identical to the names of the input data list. To extract or exclude missing values (NAs) use the operator \code{\%in\%} or the special operator \code{\%notin\%}, which is defined in RstoxData. For a numeric filter, in the current StoX GUI, NA must be added manually in the text field of the "Expression table dialog" (the "Query builder dialog" will only show numeric values and will show an empty fields if the filter contains NA). Note that there is a distinction between NA and NaN for numeric variables. To overcome this distinction, use \code{is.na} instead of \code{\%in\%} NA. In the current GUI \code{is.na} must be typed into the parameter field. Possible values are provided in the filter expression builder in the StoX GUI for character values, integer values, and numeric values that are all whole numbers, but not for keys (CruiseKey, StationKey, HaulKey, SpeciesCategoryKey, SampleKey and IndividualKey in \code{\link{FilterStoxBiotic}}, and CruiseKey, LogKey, BeamKey, AcousticCategoryKey, ChannelReferenceKey and NASCKey in \code{\link{FilterStoxAcoustic}}). #' @param FilterUpwards Whether the filter action will propagate in the upwards direction. Default to FALSE. Use this option with caution, particularly for swept-area survey estimates, where setting \code{FilterUpwards} to TRUE could affect the estimated mean density. #' #' @return An object of filtered data in the same format as the input data. diff --git a/R/xsdUtils.R b/R/xsdUtils.R index 7f1dce87f..e9ac711b3 100644 --- a/R/xsdUtils.R +++ b/R/xsdUtils.R @@ -375,7 +375,9 @@ readCharZip <- function(x, ...) { if(length(file) > 1) { stop("Input data can be zipped, but then each file must be zipped individually, so that each zipfile contains only one file (and this file must have the same name as the zip, excluding file extension).") } - output <- readChar(unz(x, file), ...) + con <- unz(x, file) + output <- readChar(con, ...) + close(con) } else { output <- readChar(x, ...) @@ -408,12 +410,31 @@ checkFileNameInZip <- function(x) { getIcesVocabulary <- function(xmlFile) { # Read only first 10e4 character - tmpText <- readChar(xmlFile, 10e4) + nchars <- 10e4 + if(tools::file_ext(xmlFile) == "zip") { + tmpText <- readCharZip(xmlFile, nchars = nchars) + } + else { + tmpText <- readChar(xmlFile, nchars = nchars) + } + xmlObj <- read_html(tmpText) # Apply transformation to get the vocabulary translation table - ret <- rbindlist(lapply(as_list(xml2::xml_find_all(xmlObj, "//vocabulary/*/code")), function(x) if(length(x)>0) return(list(attr(x, "id"), ifelse(length(x) > 0, unlist(x), NA), attr(x, "codetype"))))) - setnames(ret, c("id", "value", "codetype")) + ret <- rbindlist( + lapply( + as_list( + xml2::xml_find_all( + xmlObj, + "//vocabulary/*/code" + ) + ), + #function(x) if(length(x)>0) return(list(attr(x, "id"), ifelse(length(x) > 0, unlist(x), NA), attr(x, "codetype"))) + function(x) if(length(x)>0) return(list(attr(x, "id"), ifelse(length(x) > 0, unlist(x), NA))) + ) + ) + #setnames(ret, c("id", "value", "codetype")) + setnames(ret, c("id", "value")) return(ret) } diff --git a/inst/extdata/functionArguments.rds b/inst/extdata/functionArguments.rds index eb597d84fa2e990c75e2c80e41531699b3cd215b..9649306bacfac6bccaf5e87b533c48a9719b1520 100644 GIT binary patch delta 46189 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

?UO=3j59A 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 E0BKII;s5{u delta 45997 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�sGOw&w8a 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 P|NQ?CUWZMcCJzY!32rW^ diff --git a/inst/testresources/ICES_Acoustic_1.zip b/inst/testresources/ICES_Acoustic_1.zip new file mode 100644 index 0000000000000000000000000000000000000000..c5ddbe3300e33b6e180bd7ddc2f39f9ab776cb14 GIT binary patch literal 2639 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 o3jp|w#r}Kn-w?6l(;!v3rJ7j^Ncx&QzG literal 0 HcmV?d00001 diff --git a/inst/tinytest/test-read.R b/inst/tinytest/test-read.R new file mode 100644 index 000000000..4ce58ffc8 --- /dev/null +++ b/inst/tinytest/test-read.R @@ -0,0 +1,6 @@ +zippedICESAcousticXMLFile <- system.file("testresources","ICES_Acoustic_1.zip", package = "RstoxData") + +a <- RstoxData::ReadAcoustic(zippedICESAcousticXMLFile) +expect_true(a$ICES_Acoustic_1.zip$Data[3, Value] == 46.45) + + diff --git a/man/DefineTranslation.Rd b/man/DefineTranslation.Rd index bbee7ba07..ae99d4b7f 100644 --- a/man/DefineTranslation.Rd +++ b/man/DefineTranslation.Rd @@ -50,6 +50,8 @@ The columns of the \code{TranslationTable} can be given in one of two ways: (1) Specifying NewValue as a function can be used to transform numeric values, e.g. "function(IndividualTotalLength) IndividualTotalLength * 1.1" to compensate for different length measurement. This can be useful for length that are not total length, in which case TranslateBiotic can be used to translate the lengthmeasurement (NMDBiotic) or LengthType (ICESBiotic) to the accepted "E" or "1", respectively. For BioticData read from ICESBiotic XML files the the LengthType specifies the type of length measurement. These values are not translated using the vocabulary from the XML file, so that total length is represented as "AC_LengthMeasurementType_1" instead of the code "1". For these data the translation can be either to "AC_LengthMeasurementType_1" or to "1". +Note that a function string for NewValue must be of the form function(VAR), where VAR is the name of the variable to translate. The function body can however contain other variables. E.g., "function(IndividualTotalLength) 5 * IndividualRoundWeight^(1/3)", will set the IndividualTotalLength 5 times the square root of IndividualTotalLength. + Similar to transforming IndividualTotalLength, IndividualRoundWeight can also be transformed if the individualproducttype is not 1 for NMDBiotic XML files. When the \code{TranslationnTable} is given in the StoX GUI the strings need not be escaped ((1) HER or c("HER", "CLU"); or (2) function(IndividualTotalLength) IndividualTotalLength > 10). diff --git a/man/FilterAcoustic.Rd b/man/FilterAcoustic.Rd index 93e238b4c..268ce027a 100644 --- a/man/FilterAcoustic.Rd +++ b/man/FilterAcoustic.Rd @@ -9,7 +9,7 @@ FilterAcoustic(AcousticData, FilterExpression = list(), FilterUpwards = FALSE) \arguments{ \item{AcousticData}{Input \code{\link{AcousticData}} data.} -\item{FilterExpression}{Filter expression given as a list of strings. The name of the list and structures should be identical to the names of the input data list. To extract or exclude missing values (NAs) use the operator \code{\%in\%} or the special operator \code{\%notin\%}, which is defined in RstoxData. For a numeric filter, in the current StoX GUI, NA must be added manually in the text field of the "Expression table dialog" (the "Query builder dialog" will only show numeric values and will show an empty fields if the filter contains NA). Possible values are provided in the filter expression builder in the StoX GUI for character values, integer values, and numeric values that are all whole numbers, but not for keys (CruiseKey, StationKey, HaulKey, SpeciesCategoryKey, SampleKey and IndividualKey in \code{\link{FilterStoxBiotic}}, and CruiseKey, LogKey, BeamKey, AcousticCategoryKey, ChannelReferenceKey and NASCKey in \code{\link{FilterStoxAcoustic}}).} +\item{FilterExpression}{Filter expression given as a list of strings. The name of the list and structures should be identical to the names of the input data list. To extract or exclude missing values (NAs) use the operator \code{\%in\%} or the special operator \code{\%notin\%}, which is defined in RstoxData. For a numeric filter, in the current StoX GUI, NA must be added manually in the text field of the "Expression table dialog" (the "Query builder dialog" will only show numeric values and will show an empty fields if the filter contains NA). Note that there is a distinction between NA and NaN for numeric variables. To overcome this distinction, use \code{is.na} instead of \code{\%in\%} NA. In the current GUI \code{is.na} must be typed into the parameter field. Possible values are provided in the filter expression builder in the StoX GUI for character values, integer values, and numeric values that are all whole numbers, but not for keys (CruiseKey, StationKey, HaulKey, SpeciesCategoryKey, SampleKey and IndividualKey in \code{\link{FilterStoxBiotic}}, and CruiseKey, LogKey, BeamKey, AcousticCategoryKey, ChannelReferenceKey and NASCKey in \code{\link{FilterStoxAcoustic}}).} \item{FilterUpwards}{Whether the filter action will propagate in the upwards direction. Default to FALSE.} } diff --git a/man/FilterBiotic.Rd b/man/FilterBiotic.Rd index 0fed357fd..8a65b08de 100644 --- a/man/FilterBiotic.Rd +++ b/man/FilterBiotic.Rd @@ -9,7 +9,7 @@ FilterBiotic(BioticData, FilterExpression = list(), FilterUpwards = FALSE) \arguments{ \item{BioticData}{Input \code{\link{BioticData}} data.} -\item{FilterExpression}{Filter expression given as a list of strings. The name of the list and structures should be identical to the names of the input data list. To extract or exclude missing values (NAs) use the operator \code{\%in\%} or the special operator \code{\%notin\%}, which is defined in RstoxData. For a numeric filter, in the current StoX GUI, NA must be added manually in the text field of the "Expression table dialog" (the "Query builder dialog" will only show numeric values and will show an empty fields if the filter contains NA). Possible values are provided in the filter expression builder in the StoX GUI for character values, integer values, and numeric values that are all whole numbers, but not for keys (CruiseKey, StationKey, HaulKey, SpeciesCategoryKey, SampleKey and IndividualKey in \code{\link{FilterStoxBiotic}}, and CruiseKey, LogKey, BeamKey, AcousticCategoryKey, ChannelReferenceKey and NASCKey in \code{\link{FilterStoxAcoustic}}).} +\item{FilterExpression}{Filter expression given as a list of strings. The name of the list and structures should be identical to the names of the input data list. To extract or exclude missing values (NAs) use the operator \code{\%in\%} or the special operator \code{\%notin\%}, which is defined in RstoxData. For a numeric filter, in the current StoX GUI, NA must be added manually in the text field of the "Expression table dialog" (the "Query builder dialog" will only show numeric values and will show an empty fields if the filter contains NA). Note that there is a distinction between NA and NaN for numeric variables. To overcome this distinction, use \code{is.na} instead of \code{\%in\%} NA. In the current GUI \code{is.na} must be typed into the parameter field. Possible values are provided in the filter expression builder in the StoX GUI for character values, integer values, and numeric values that are all whole numbers, but not for keys (CruiseKey, StationKey, HaulKey, SpeciesCategoryKey, SampleKey and IndividualKey in \code{\link{FilterStoxBiotic}}, and CruiseKey, LogKey, BeamKey, AcousticCategoryKey, ChannelReferenceKey and NASCKey in \code{\link{FilterStoxAcoustic}}).} \item{FilterUpwards}{Whether the filter action will propagate in the upwards direction. Default to FALSE. Use this option with caution, particularly for swept-area survey estimates, where setting \code{FilterUpwards} to TRUE could affect the estimated mean density.} } diff --git a/man/FilterICESAcoustic.Rd b/man/FilterICESAcoustic.Rd index a9e843a31..1c6a72ce6 100644 --- a/man/FilterICESAcoustic.Rd +++ b/man/FilterICESAcoustic.Rd @@ -13,7 +13,7 @@ FilterICESAcoustic( \arguments{ \item{ICESAcousticData}{Input \code{\link{ICESAcousticData}} data.} -\item{FilterExpression}{Filter expression given as a list of strings. The name of the list and structures should be identical to the names of the input data list. To extract or exclude missing values (NAs) use the operator \code{\%in\%} or the special operator \code{\%notin\%}, which is defined in RstoxData. For a numeric filter, in the current StoX GUI, NA must be added manually in the text field of the "Expression table dialog" (the "Query builder dialog" will only show numeric values and will show an empty fields if the filter contains NA). Possible values are provided in the filter expression builder in the StoX GUI for character values, integer values, and numeric values that are all whole numbers, but not for keys (CruiseKey, StationKey, HaulKey, SpeciesCategoryKey, SampleKey and IndividualKey in \code{\link{FilterStoxBiotic}}, and CruiseKey, LogKey, BeamKey, AcousticCategoryKey, ChannelReferenceKey and NASCKey in \code{\link{FilterStoxAcoustic}}).} +\item{FilterExpression}{Filter expression given as a list of strings. The name of the list and structures should be identical to the names of the input data list. To extract or exclude missing values (NAs) use the operator \code{\%in\%} or the special operator \code{\%notin\%}, which is defined in RstoxData. For a numeric filter, in the current StoX GUI, NA must be added manually in the text field of the "Expression table dialog" (the "Query builder dialog" will only show numeric values and will show an empty fields if the filter contains NA). Note that there is a distinction between NA and NaN for numeric variables. To overcome this distinction, use \code{is.na} instead of \code{\%in\%} NA. In the current GUI \code{is.na} must be typed into the parameter field. Possible values are provided in the filter expression builder in the StoX GUI for character values, integer values, and numeric values that are all whole numbers, but not for keys (CruiseKey, StationKey, HaulKey, SpeciesCategoryKey, SampleKey and IndividualKey in \code{\link{FilterStoxBiotic}}, and CruiseKey, LogKey, BeamKey, AcousticCategoryKey, ChannelReferenceKey and NASCKey in \code{\link{FilterStoxAcoustic}}).} \item{FilterUpwards}{Whether the filter action will propagate in the upwards direction. Default to FALSE.} } diff --git a/man/FilterICESBiotic.Rd b/man/FilterICESBiotic.Rd index 926268f27..260345c87 100644 --- a/man/FilterICESBiotic.Rd +++ b/man/FilterICESBiotic.Rd @@ -13,7 +13,7 @@ FilterICESBiotic( \arguments{ \item{ICESBioticData}{Input \code{\link{ICESBioticData}} data.} -\item{FilterExpression}{Filter expression given as a list of strings. The name of the list and structures should be identical to the names of the input data list. To extract or exclude missing values (NAs) use the operator \code{\%in\%} or the special operator \code{\%notin\%}, which is defined in RstoxData. For a numeric filter, in the current StoX GUI, NA must be added manually in the text field of the "Expression table dialog" (the "Query builder dialog" will only show numeric values and will show an empty fields if the filter contains NA). Possible values are provided in the filter expression builder in the StoX GUI for character values, integer values, and numeric values that are all whole numbers, but not for keys (CruiseKey, StationKey, HaulKey, SpeciesCategoryKey, SampleKey and IndividualKey in \code{\link{FilterStoxBiotic}}, and CruiseKey, LogKey, BeamKey, AcousticCategoryKey, ChannelReferenceKey and NASCKey in \code{\link{FilterStoxAcoustic}}).} +\item{FilterExpression}{Filter expression given as a list of strings. The name of the list and structures should be identical to the names of the input data list. To extract or exclude missing values (NAs) use the operator \code{\%in\%} or the special operator \code{\%notin\%}, which is defined in RstoxData. For a numeric filter, in the current StoX GUI, NA must be added manually in the text field of the "Expression table dialog" (the "Query builder dialog" will only show numeric values and will show an empty fields if the filter contains NA). Note that there is a distinction between NA and NaN for numeric variables. To overcome this distinction, use \code{is.na} instead of \code{\%in\%} NA. In the current GUI \code{is.na} must be typed into the parameter field. Possible values are provided in the filter expression builder in the StoX GUI for character values, integer values, and numeric values that are all whole numbers, but not for keys (CruiseKey, StationKey, HaulKey, SpeciesCategoryKey, SampleKey and IndividualKey in \code{\link{FilterStoxBiotic}}, and CruiseKey, LogKey, BeamKey, AcousticCategoryKey, ChannelReferenceKey and NASCKey in \code{\link{FilterStoxAcoustic}}).} \item{FilterUpwards}{Whether the filter action will propagate in the upwards direction. Default to FALSE.} } diff --git a/man/FilterICESDatras.Rd b/man/FilterICESDatras.Rd index d9fa8ea56..24e1e24c9 100644 --- a/man/FilterICESDatras.Rd +++ b/man/FilterICESDatras.Rd @@ -9,7 +9,7 @@ FilterICESDatras(ICESDatrasData, FilterExpression = list()) \arguments{ \item{ICESDatrasData}{Input \code{\link{ICESDatrasData}} data.} -\item{FilterExpression}{Filter expression given as a list of strings. The name of the list and structures should be identical to the names of the input data list. To extract or exclude missing values (NAs) use the operator \code{\%in\%} or the special operator \code{\%notin\%}, which is defined in RstoxData. For a numeric filter, in the current StoX GUI, NA must be added manually in the text field of the "Expression table dialog" (the "Query builder dialog" will only show numeric values and will show an empty fields if the filter contains NA). Possible values are provided in the filter expression builder in the StoX GUI for character values, integer values, and numeric values that are all whole numbers, but not for keys (CruiseKey, StationKey, HaulKey, SpeciesCategoryKey, SampleKey and IndividualKey in \code{\link{FilterStoxBiotic}}, and CruiseKey, LogKey, BeamKey, AcousticCategoryKey, ChannelReferenceKey and NASCKey in \code{\link{FilterStoxAcoustic}}).} +\item{FilterExpression}{Filter expression given as a list of strings. The name of the list and structures should be identical to the names of the input data list. To extract or exclude missing values (NAs) use the operator \code{\%in\%} or the special operator \code{\%notin\%}, which is defined in RstoxData. For a numeric filter, in the current StoX GUI, NA must be added manually in the text field of the "Expression table dialog" (the "Query builder dialog" will only show numeric values and will show an empty fields if the filter contains NA). Note that there is a distinction between NA and NaN for numeric variables. To overcome this distinction, use \code{is.na} instead of \code{\%in\%} NA. In the current GUI \code{is.na} must be typed into the parameter field. Possible values are provided in the filter expression builder in the StoX GUI for character values, integer values, and numeric values that are all whole numbers, but not for keys (CruiseKey, StationKey, HaulKey, SpeciesCategoryKey, SampleKey and IndividualKey in \code{\link{FilterStoxBiotic}}, and CruiseKey, LogKey, BeamKey, AcousticCategoryKey, ChannelReferenceKey and NASCKey in \code{\link{FilterStoxAcoustic}}).} } \value{ An object of filtered data in the same format as the input data. diff --git a/man/FilterICESDatsusc.Rd b/man/FilterICESDatsusc.Rd index 4998abf0d..195b52ab9 100644 --- a/man/FilterICESDatsusc.Rd +++ b/man/FilterICESDatsusc.Rd @@ -9,7 +9,7 @@ FilterICESDatsusc(ICESDatsuscData, FilterExpression = list()) \arguments{ \item{ICESDatsuscData}{Input \code{\link{ICESDatsuscData}} data.} -\item{FilterExpression}{Filter expression given as a list of strings. The name of the list and structures should be identical to the names of the input data list. To extract or exclude missing values (NAs) use the operator \code{\%in\%} or the special operator \code{\%notin\%}, which is defined in RstoxData. For a numeric filter, in the current StoX GUI, NA must be added manually in the text field of the "Expression table dialog" (the "Query builder dialog" will only show numeric values and will show an empty fields if the filter contains NA). Possible values are provided in the filter expression builder in the StoX GUI for character values, integer values, and numeric values that are all whole numbers, but not for keys (CruiseKey, StationKey, HaulKey, SpeciesCategoryKey, SampleKey and IndividualKey in \code{\link{FilterStoxBiotic}}, and CruiseKey, LogKey, BeamKey, AcousticCategoryKey, ChannelReferenceKey and NASCKey in \code{\link{FilterStoxAcoustic}}).} +\item{FilterExpression}{Filter expression given as a list of strings. The name of the list and structures should be identical to the names of the input data list. To extract or exclude missing values (NAs) use the operator \code{\%in\%} or the special operator \code{\%notin\%}, which is defined in RstoxData. For a numeric filter, in the current StoX GUI, NA must be added manually in the text field of the "Expression table dialog" (the "Query builder dialog" will only show numeric values and will show an empty fields if the filter contains NA). Note that there is a distinction between NA and NaN for numeric variables. To overcome this distinction, use \code{is.na} instead of \code{\%in\%} NA. In the current GUI \code{is.na} must be typed into the parameter field. Possible values are provided in the filter expression builder in the StoX GUI for character values, integer values, and numeric values that are all whole numbers, but not for keys (CruiseKey, StationKey, HaulKey, SpeciesCategoryKey, SampleKey and IndividualKey in \code{\link{FilterStoxBiotic}}, and CruiseKey, LogKey, BeamKey, AcousticCategoryKey, ChannelReferenceKey and NASCKey in \code{\link{FilterStoxAcoustic}}).} } \value{ An object of filtered data in the same format as the input data. diff --git a/man/FilterLanding.Rd b/man/FilterLanding.Rd index 332648b3e..97f8488e9 100644 --- a/man/FilterLanding.Rd +++ b/man/FilterLanding.Rd @@ -9,7 +9,7 @@ FilterLanding(LandingData, FilterExpression = list(), FilterUpwards = FALSE) \arguments{ \item{LandingData}{Input \code{\link{LandingData}} data.} -\item{FilterExpression}{Filter expression given as a list of strings. The name of the list and structures should be identical to the names of the input data list. To extract or exclude missing values (NAs) use the operator \code{\%in\%} or the special operator \code{\%notin\%}, which is defined in RstoxData. For a numeric filter, in the current StoX GUI, NA must be added manually in the text field of the "Expression table dialog" (the "Query builder dialog" will only show numeric values and will show an empty fields if the filter contains NA). Possible values are provided in the filter expression builder in the StoX GUI for character values, integer values, and numeric values that are all whole numbers, but not for keys (CruiseKey, StationKey, HaulKey, SpeciesCategoryKey, SampleKey and IndividualKey in \code{\link{FilterStoxBiotic}}, and CruiseKey, LogKey, BeamKey, AcousticCategoryKey, ChannelReferenceKey and NASCKey in \code{\link{FilterStoxAcoustic}}).} +\item{FilterExpression}{Filter expression given as a list of strings. The name of the list and structures should be identical to the names of the input data list. To extract or exclude missing values (NAs) use the operator \code{\%in\%} or the special operator \code{\%notin\%}, which is defined in RstoxData. For a numeric filter, in the current StoX GUI, NA must be added manually in the text field of the "Expression table dialog" (the "Query builder dialog" will only show numeric values and will show an empty fields if the filter contains NA). Note that there is a distinction between NA and NaN for numeric variables. To overcome this distinction, use \code{is.na} instead of \code{\%in\%} NA. In the current GUI \code{is.na} must be typed into the parameter field. Possible values are provided in the filter expression builder in the StoX GUI for character values, integer values, and numeric values that are all whole numbers, but not for keys (CruiseKey, StationKey, HaulKey, SpeciesCategoryKey, SampleKey and IndividualKey in \code{\link{FilterStoxBiotic}}, and CruiseKey, LogKey, BeamKey, AcousticCategoryKey, ChannelReferenceKey and NASCKey in \code{\link{FilterStoxAcoustic}}).} \item{FilterUpwards}{Whether the filter action will propagate in the upwards direction. Default to FALSE.} } diff --git a/man/FilterStoxAcoustic.Rd b/man/FilterStoxAcoustic.Rd index 921f5a242..15fd77441 100644 --- a/man/FilterStoxAcoustic.Rd +++ b/man/FilterStoxAcoustic.Rd @@ -13,7 +13,7 @@ FilterStoxAcoustic( \arguments{ \item{StoxAcousticData}{Input \code{\link{StoxAcousticData}} data.} -\item{FilterExpression}{Filter expression given as a list of strings. The name of the list and structures should be identical to the names of the input data list. To extract or exclude missing values (NAs) use the operator \code{\%in\%} or the special operator \code{\%notin\%}, which is defined in RstoxData. For a numeric filter, in the current StoX GUI, NA must be added manually in the text field of the "Expression table dialog" (the "Query builder dialog" will only show numeric values and will show an empty fields if the filter contains NA). Possible values are provided in the filter expression builder in the StoX GUI for character values, integer values, and numeric values that are all whole numbers, but not for keys (CruiseKey, StationKey, HaulKey, SpeciesCategoryKey, SampleKey and IndividualKey in \code{\link{FilterStoxBiotic}}, and CruiseKey, LogKey, BeamKey, AcousticCategoryKey, ChannelReferenceKey and NASCKey in \code{\link{FilterStoxAcoustic}}).} +\item{FilterExpression}{Filter expression given as a list of strings. The name of the list and structures should be identical to the names of the input data list. To extract or exclude missing values (NAs) use the operator \code{\%in\%} or the special operator \code{\%notin\%}, which is defined in RstoxData. For a numeric filter, in the current StoX GUI, NA must be added manually in the text field of the "Expression table dialog" (the "Query builder dialog" will only show numeric values and will show an empty fields if the filter contains NA). Note that there is a distinction between NA and NaN for numeric variables. To overcome this distinction, use \code{is.na} instead of \code{\%in\%} NA. In the current GUI \code{is.na} must be typed into the parameter field. Possible values are provided in the filter expression builder in the StoX GUI for character values, integer values, and numeric values that are all whole numbers, but not for keys (CruiseKey, StationKey, HaulKey, SpeciesCategoryKey, SampleKey and IndividualKey in \code{\link{FilterStoxBiotic}}, and CruiseKey, LogKey, BeamKey, AcousticCategoryKey, ChannelReferenceKey and NASCKey in \code{\link{FilterStoxAcoustic}}).} \item{FilterUpwards}{Whether the filter action will propagate in the upwards direction. Default to FALSE.} } diff --git a/man/FilterStoxBiotic.Rd b/man/FilterStoxBiotic.Rd index 2c34c7af1..aa1f43ae2 100644 --- a/man/FilterStoxBiotic.Rd +++ b/man/FilterStoxBiotic.Rd @@ -13,7 +13,7 @@ FilterStoxBiotic( \arguments{ \item{StoxBioticData}{Input \code{\link{StoxBioticData}} data.} -\item{FilterExpression}{Filter expression given as a list of strings. The name of the list and structures should be identical to the names of the input data list. To extract or exclude missing values (NAs) use the operator \code{\%in\%} or the special operator \code{\%notin\%}, which is defined in RstoxData. For a numeric filter, in the current StoX GUI, NA must be added manually in the text field of the "Expression table dialog" (the "Query builder dialog" will only show numeric values and will show an empty fields if the filter contains NA). Possible values are provided in the filter expression builder in the StoX GUI for character values, integer values, and numeric values that are all whole numbers, but not for keys (CruiseKey, StationKey, HaulKey, SpeciesCategoryKey, SampleKey and IndividualKey in \code{\link{FilterStoxBiotic}}, and CruiseKey, LogKey, BeamKey, AcousticCategoryKey, ChannelReferenceKey and NASCKey in \code{\link{FilterStoxAcoustic}}).} +\item{FilterExpression}{Filter expression given as a list of strings. The name of the list and structures should be identical to the names of the input data list. To extract or exclude missing values (NAs) use the operator \code{\%in\%} or the special operator \code{\%notin\%}, which is defined in RstoxData. For a numeric filter, in the current StoX GUI, NA must be added manually in the text field of the "Expression table dialog" (the "Query builder dialog" will only show numeric values and will show an empty fields if the filter contains NA). Note that there is a distinction between NA and NaN for numeric variables. To overcome this distinction, use \code{is.na} instead of \code{\%in\%} NA. In the current GUI \code{is.na} must be typed into the parameter field. Possible values are provided in the filter expression builder in the StoX GUI for character values, integer values, and numeric values that are all whole numbers, but not for keys (CruiseKey, StationKey, HaulKey, SpeciesCategoryKey, SampleKey and IndividualKey in \code{\link{FilterStoxBiotic}}, and CruiseKey, LogKey, BeamKey, AcousticCategoryKey, ChannelReferenceKey and NASCKey in \code{\link{FilterStoxAcoustic}}).} \item{FilterUpwards}{Whether the filter action will propagate in the upwards direction. Default to FALSE.} } diff --git a/man/FilterStoxLanding.Rd b/man/FilterStoxLanding.Rd index 6462f3cc9..ac1080150 100644 --- a/man/FilterStoxLanding.Rd +++ b/man/FilterStoxLanding.Rd @@ -9,7 +9,7 @@ FilterStoxLanding(StoxLandingData, FilterExpression = list()) \arguments{ \item{StoxLandingData}{Input \code{\link{StoxLandingData}} data.} -\item{FilterExpression}{Filter expression given as a list of strings. The name of the list and structures should be identical to the names of the input data list. To extract or exclude missing values (NAs) use the operator \code{\%in\%} or the special operator \code{\%notin\%}, which is defined in RstoxData. For a numeric filter, in the current StoX GUI, NA must be added manually in the text field of the "Expression table dialog" (the "Query builder dialog" will only show numeric values and will show an empty fields if the filter contains NA). Possible values are provided in the filter expression builder in the StoX GUI for character values, integer values, and numeric values that are all whole numbers, but not for keys (CruiseKey, StationKey, HaulKey, SpeciesCategoryKey, SampleKey and IndividualKey in \code{\link{FilterStoxBiotic}}, and CruiseKey, LogKey, BeamKey, AcousticCategoryKey, ChannelReferenceKey and NASCKey in \code{\link{FilterStoxAcoustic}}).} +\item{FilterExpression}{Filter expression given as a list of strings. The name of the list and structures should be identical to the names of the input data list. To extract or exclude missing values (NAs) use the operator \code{\%in\%} or the special operator \code{\%notin\%}, which is defined in RstoxData. For a numeric filter, in the current StoX GUI, NA must be added manually in the text field of the "Expression table dialog" (the "Query builder dialog" will only show numeric values and will show an empty fields if the filter contains NA). Note that there is a distinction between NA and NaN for numeric variables. To overcome this distinction, use \code{is.na} instead of \code{\%in\%} NA. In the current GUI \code{is.na} must be typed into the parameter field. Possible values are provided in the filter expression builder in the StoX GUI for character values, integer values, and numeric values that are all whole numbers, but not for keys (CruiseKey, StationKey, HaulKey, SpeciesCategoryKey, SampleKey and IndividualKey in \code{\link{FilterStoxBiotic}}, and CruiseKey, LogKey, BeamKey, AcousticCategoryKey, ChannelReferenceKey and NASCKey in \code{\link{FilterStoxAcoustic}}).} } \value{ An object of filtered data in the same format as the input data. diff --git a/src/xmlio/xmlzipfile.h b/src/xmlio/xmlzipfile.h index f5b6633fa..bcc4a1da9 100644 --- a/src/xmlio/xmlzipfile.h +++ b/src/xmlio/xmlzipfile.h @@ -34,7 +34,6 @@ class ZipInputStream : public InputStream virtual ~ZipInputStream(); virtual int read(XML_Char *buf, size_t bufLen); private: - int errNo; mz_bool status; mz_zip_archive zip_archive; mz_zip_reader_extract_iter_state* zipstate;