diff --git a/DESCRIPTION b/DESCRIPTION index e3345011..370e0b5a 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -1,7 +1,7 @@ Package: GSODR Type: Package Title: Global Surface Summary of the Day ('GSOD') Weather Data Client -Version: 3.1.1.9000 +Version: 3.1.2 Authors@R: c(person("Adam H.", "Sparks", role = c("aut", "cre"), email = "adamhsparks@gmail.com", comment = c(ORCID = "0000-0002-0061-8359")), @@ -31,7 +31,7 @@ Authors@R: c(person("Adam H.", "Sparks", role = c("aut", "cre"), person("Tyler", "Widdison", role = "ctb", email = "Tyler.Widdison@usav.org", comment = "Reported bug where `nearest_stations()` did not return stations in order of nearest to - farthest.")) + farthest")) URL: https://docs.ropensci.org/GSODR/ BugReports: https://github.com/ropensci/GSODR/issues Description: Provides automated downloading, parsing, cleaning, unit conversion diff --git a/NEWS.md b/NEWS.md index 431665e2..3e89eda7 100644 --- a/NEWS.md +++ b/NEWS.md @@ -1,10 +1,10 @@ -# GSODR (development version) +# GSODR 3.1.2 ## Bug fixes * Fix (more) bugs related to `NA` value replacements. -## Minor changes +## Minor changes and improvements * Simplify `NA` value replacement in "PRCP" column. @@ -14,6 +14,13 @@ * Better tests for the generated weather data `data.table` output checking values and formats. +* Tests are updated for updated data availability in the GSOD data due to continuous improvements to the data set. + +* Standardise handling of author/contributor comments. +None have a full stop now in the comment. + +* Use `on.exit()` to reset the working directory to the original user-space value after changing the working directory to untar files located in `tempdir()`. + # GSODR 3.1.1 ## Bug fixes @@ -22,7 +29,7 @@ * Fixes bug where NA values reported as 99.99, 999.9 or 9999.9 were not replaced with `NA`. -* Fix bug where FRSHTT (Fog, Rain/Drizzle, Snow/Ice, Hail, Tornado, Thunder) column values split into the respective columns only returned NA, not the proper values as expected. +* Fix bug where FRSHTT (Fog, Rain/Drizzle, Snow/Ice, Hail, Tornado, Thunder) column values split into the respective columns only returned `NA`, not the proper values as expected. Reported in [#84](https://github.com/ropensci/GSODR/issues/84). ## Minor changes diff --git a/R/internal_functions.R b/R/internal_functions.R index 16ab07b4..27ebf2b1 100644 --- a/R/internal_functions.R +++ b/R/internal_functions.R @@ -179,10 +179,10 @@ list.files(tempdir(), pattern = "*\\.tar.gz$", full.names = TRUE) for (i in tar_files) { wd <- getwd() + on.exit(setwd(wd)) setwd(tempdir()) year_dir <- substr(i, nchar(i) - 10, nchar(i) - 7) utils::untar(i, exdir = year_dir) - setwd(wd) } GSOD_list <- diff --git a/README.md b/README.md index e37cb81d..76c666ef 100644 --- a/README.md +++ b/README.md @@ -75,8 +75,6 @@ The [_**gsod**_](https://github.com/databrew/gsod) package from [DataBrew](https [_**stationaRy**_](https://cran.r-project.org/package=stationaRy), from Richard Iannone offers hourly meteorological data from stations located all over the world. There is a wealth of data available, with historic weather data accessible from nearly 30,000 stations. -[_**bomrang**_](https://CRAN.R-project.org/package=bomrang), from [rOpenSci](https://docs.ropensci.org/bomrang/) provides functions to interface with Australia Government Bureau of Meteorology (BoM) data, fetching current and historical data including précis and marine forecasts, current weather data from stations, agriculture bulletin data, BoM 0900 or 1500 weather bulletins and satellite and radar imagery. - [_**riem**_](https://CRAN.R-project.org/package=riem) from [rOpenSci](https://docs.ropensci.org/riem/) allows to get weather data from Automated Surface Observing System (ASOS) stations (airports) in the whole world thanks to the Iowa Environment Mesonet website. [_**weathercan**_](https://CRAN.R-project.org/package=weathercan) from [rOpenSci](https://github.com/ropensci/weathercan) makes it easier to search for and download multiple months/years of historical weather data from Environment and Climate Change Canada (ECCC) website. diff --git a/codemeta.json b/codemeta.json index 05d25960..e1e0d974 100644 --- a/codemeta.json +++ b/codemeta.json @@ -35,7 +35,7 @@ "keywords": ["US-NCEI", "meteorological-data", "global-weather", "weather", "weather-data", "meteorology", "station-data", "surface-weather", "data-access", "US-NCDC", "r", "gsod", "ncdc", "weather-stations", "global-data", "ncei", "weather-information", "historical-weather", "historical-data", "daily-data", "daily-weather", "rstats", "r-package"], "license": "https://spdx.org/licenses/MIT", "title": "GSODR", - "version": "3.1.1", + "version": "3.1.2", "name": "GSODR: Global Surface Summary of the Day ('GSOD') Weather Data Client", "issueTracker": "https://github.com/ropensci/GSODR/issues", "programmingLanguage": { @@ -375,7 +375,7 @@ "relatedLink": ["https://docs.ropensci.org/GSODR/", "https://CRAN.R-project.org/package=GSODR"], "developmentStatus": "https://www.repostatus.org/#active", "funder": {}, - "fileSize": "3777.459KB", + "fileSize": "3781.662KB", "releaseNotes": "https://github.com/ropensci/GSODR/blob/master/NEWS.md", "readme": "https://github.com/ropensci/GSODR/blob/main/README.md", "review": { diff --git a/cran-comments.md b/cran-comments.md index 2ae63480..65a28901 100644 --- a/cran-comments.md +++ b/cran-comments.md @@ -1,4 +1,8 @@ -## GSODR 3.1.1 +# GSODR 3.1.2 + +## Comments for the CRAN team + +I realise that the last release was last week, however, I found a few more bugs in the code that could cause some surprises with `NA` values for end users, so I've elected to release a new patch release. ## Test environments * GitHub Actions (ubuntu-latest): release, devel @@ -10,5 +14,8 @@ ## R CMD check results 0 ERRORs | 0 WARNINGs | 0 NOTES. -# Reverse dependencies -No ERRORs or WARNINGs found +## Reverse dependencies +We checked 1 reverse dependencies, comparing R CMD check results across CRAN and dev versions of this package. + + * We saw 0 new problems + * We failed to check 0 packages diff --git a/inst/WORDLIST b/inst/WORDLIST index 41dfb1e9..5feb0ee2 100644 --- a/inst/WORDLIST +++ b/inst/WORDLIST @@ -2,7 +2,6 @@ ASOS Agroclimatology Alduchov Bigouette -BoM CCI CDO CGIAR @@ -58,6 +57,7 @@ SNDP SRTM STNID STP +Standardise Toowoomba USCS VISIB @@ -75,7 +75,6 @@ YYYYMMDD acc agroclimatology al -bomrang capitalisation cliflo clifro @@ -107,7 +106,6 @@ onLoad optimised plyr pre -précis purrr rOpenSci rda diff --git a/man/GSODR-package.Rd b/man/GSODR-package.Rd index 2b371512..fb4c003f 100644 --- a/man/GSODR-package.Rd +++ b/man/GSODR-package.Rd @@ -54,7 +54,7 @@ Other contributors: fail) [contributor] \item Tyler Widdison \email{Tyler.Widdison@usav.org} (Reported bug where `nearest_stations()` did not return stations in order of nearest to - farthest.) [contributor] + farthest) [contributor] } } diff --git a/tests/testthat/test-download_files.R b/tests/testthat/test-download_files.R new file mode 100644 index 00000000..f86c9005 --- /dev/null +++ b/tests/testthat/test-download_files.R @@ -0,0 +1,37 @@ +test_that( + ".download_files properly works, subsetting for country and + agroclimatology works", + { + skip_on_cran() + do.call(file.remove, list(list.files( + tempdir(), + pattern = ".csv$", + full.names = TRUE + ))) + years <- 1982 + agroclimatology <- TRUE + country <- "RP" + station <- NULL + + load(system.file("extdata", "isd_history.rda", package = "GSODR")) + setkey(isd_history, "STNID") + stations <- isd_history + + load(system.file("extdata", "isd_history.rda", + package = "GSODR")) + + GSOD_list <- .download_files(station, + years) + + agro_list <- .agroclimatology_list(GSOD_list, + stations, + years) + expect_length(agro_list, 7480) + + RP_list <- .subset_country_list(country, + GSOD_list, + stations, + years) + expect_length(RP_list, 54) + } +) diff --git a/tests/testthat/test-get_GSOD.R b/tests/testthat/test-get_GSOD.R index 1f375842..13ad1fd7 100644 --- a/tests/testthat/test-get_GSOD.R +++ b/tests/testthat/test-get_GSOD.R @@ -62,7 +62,7 @@ test_that("missing days check allows stations with permissible days missing, data.frame(c(rep(12, 300)), c(rep("X", 300))) df_list <- list(just_right_2015, too_short_2015) dir.create(path = file.path(td, "2015")) - + filenames <- c("just_right0", "too_short00") sapply(seq_len(length(df_list)), function(x) @@ -75,7 +75,7 @@ test_that("missing days check allows stations with permissible days missing, pattern = ".csv$", full.names = TRUE ) - + if (!is.null(max_missing)) { GSOD_list_filtered <- .validate_missing_days(max_missing, GSOD_list) @@ -102,7 +102,7 @@ test_that("missing days check allows stations with permissible days missing, data.frame(c(rep(12, 300)), c(rep("X", 300))) df_list <- list(just_right_2016, too_short_2016) dir.create(path = file.path(td, "2016")) - + filenames <- c("just_right0", "too_short00") sapply(seq_len(length(df_list)), function(x) @@ -119,7 +119,7 @@ test_that("missing days check allows stations with permissible days missing, GSOD_list_filtered <- .validate_missing_days(max_missing, GSOD_list) } - + expect_length(GSOD_list, 2) expect_match(basename(GSOD_list_filtered), "just_right0.csv") rm_files <- @@ -128,14 +128,6 @@ test_that("missing days check allows stations with permissible days missing, file.remove(file.path(td, "2016")) }) -# Check that stations are filtered for missing days ---------------------------- -# 1929 has no stations with a full 365 days, so none should be returned -test_that("The 'max_missing' parameter filters out improper stations", { - skip_on_cran() - expect_error(get_GSOD(years = 1929, max_missing = 1), - regexp = "There were no stations that had a max of.") -}) - # Check that max_missing only accepts positive values -------------------------- test_that("The 'max_missing' parameter will not accept NA values", { skip_on_cran() @@ -154,15 +146,15 @@ test_that("Check validate country returns a two letter code", { # CRAN NOTE avoidance isd_history <- NULL load(system.file("extdata", "isd_history.rda", package = "GSODR")) - + country <- "Philippines" Philippines <- .validate_country(country, isd_history) expect_match(Philippines, "RP") - + country <- "PHL" PHL <- .validate_country(country, isd_history) expect_match(PHL, "RP") - + country <- "PH" PH <- .validate_country(country, isd_history) expect_match(PH, "RP") diff --git a/tests/testthat/test-process_csv.R b/tests/testthat/test-process_csv.R index cd9156ee..2e860152 100644 --- a/tests/testthat/test-process_csv.R +++ b/tests/testthat/test-process_csv.R @@ -1,41 +1,11 @@ - -# Check that .process_csv() works properly and returns a data.table ------------ test_that( - ".download_files properly works, subsetting for country and - agroclimatology works and .process_csv returns a data.table", { - skip_on_cran() - do.call(file.remove, list(list.files( - tempdir(), - pattern = ".csv$", - full.names = TRUE - ))) - years <- 1982 - agroclimatology <- TRUE - country <- "RP" - station <- NULL + ".process_csv returns a data.table", { + # Check that .process_gz returns a properly formatted data.table ----------- load(system.file("extdata", "isd_history.rda", package = "GSODR")) setkey(isd_history, "STNID") stations <- isd_history - load(system.file("extdata", "isd_history.rda", - package = "GSODR")) - - GSOD_list <- .download_files(station, - years) - - agro_list <- .agroclimatology_list(GSOD_list, - stations, - years) - expect_length(agro_list, 7480) - - RP_list <- .subset_country_list(country, - GSOD_list, - stations, - years) - expect_length(RP_list, 54) - - # Check that .process_gz returns a properly formatted data.table ----------- csv_file <- .download_files(station = "955510-99999", years = "2016") csv_out <- .process_csv(csv_file, stations) @@ -45,124 +15,124 @@ test_that( expect_is(csv_out$STNID, "character") expect_equal(csv_out$STNID[[1]], "955510-99999") - + expect_is(csv_out$NAME, "character") expect_equal(csv_out$NAME[[1]], "TOOWOOMBA AIRPORT") - + expect_is(csv_out$CTRY, "character") expect_equal(csv_out$CTRY[[1]], "AS") - + expect_is(csv_out$LATITUDE, "numeric") expect_equal(csv_out$LATITUDE[[1]], -27.55, tolerance = 0.01) - + expect_is(csv_out$LONGITUDE, "numeric") expect_equal(csv_out$LONGITUDE[[1]], 151.9, tolerance = 0.01) - + expect_is(csv_out$ELEVATION, "numeric") expect_equal(csv_out$ELEVATION[[1]], 642, tolerance = 0.01) - + expect_is(csv_out$YEARMODA, "Date") expect_equal(csv_out$YEARMODA[[1]], as.Date("2016-01-01")) - + expect_is(csv_out$YEAR, "integer") expect_equal(csv_out$YEAR[[1]], 2016) - + expect_is(csv_out$MONTH, "integer") expect_equal(csv_out$MONTH[[1]], 1) - + expect_is(csv_out$DAY, "integer") expect_equal(csv_out$DAY[[1]], 1) - + expect_is(csv_out$YDAY, "integer") expect_equal(csv_out$YDAY[[1]], 1) - + expect_is(csv_out$TEMP, "numeric") expect_equal(csv_out$TEMP[[1]], 20.2, tolerance = 0.1) - + expect_is(csv_out$TEMP_ATTRIBUTES, "integer") expect_equal(csv_out$TEMP_ATTRIBUTES[[1]], 8) - + expect_is(csv_out$DEWP, "numeric") expect_equal(csv_out$DEWP[[1]], 12.4, tolerance = 0.1) - + expect_is(csv_out$DEWP_ATTRIBUTES, "integer") expect_equal(csv_out$DEWP_ATTRIBUTES[[1]], 8) - + expect_is(csv_out$SLP, "numeric") expect_equal(csv_out$SLP[[1]], 1011, tolerance = 0.1) - + expect_is(csv_out$SLP_ATTRIBUTES, "integer") expect_equal(csv_out$SLP_ATTRIBUTES[[1]], 8) - + expect_is(csv_out$STP, "numeric") expect_equal(csv_out$STP[[1]], 939.6, tolerance = 0.1) - + expect_is(csv_out$STP_ATTRIBUTES, "integer") expect_equal(csv_out$STP_ATTRIBUTES[[1]], 8) - + expect_is(csv_out$VISIB, "numeric") expect_equal(csv_out$VISIB[[1]], as.numeric(NA)) - + expect_is(csv_out$VISIB_ATTRIBUTES, "integer") expect_equal(csv_out$VISIB_ATTRIBUTES[[1]], 0) - + expect_is(csv_out$WDSP, "numeric") expect_equal(csv_out$WDSP[[1]], 5.2, tolerance = 0.1) - + expect_is(csv_out$WDSP_ATTRIBUTES, "integer") expect_equal(csv_out$WDSP_ATTRIBUTES[[1]], 8) - + expect_is(csv_out$MXSPD, "numeric") expect_equal(csv_out$MXSPD[[1]], 7.2, tolerance = 0.1) - + expect_is(csv_out$GUST, "numeric") expect_equal(csv_out$GUST[[1]], as.numeric(NA)) - + expect_is(csv_out$MAX, "numeric") expect_equal(csv_out$MAX[[1]], 25.7, tolerance = 0.1) - + expect_is(csv_out$MAX_ATTRIBUTES, "character") expect_equal(csv_out$MAX_ATTRIBUTES[[1]], "*") - + expect_is(csv_out$MIN, "numeric") expect_equal(csv_out$MIN[[1]], 14.5, tolerance = 0.1) - + expect_is(csv_out$MIN_ATTRIBUTES, "character") expect_equal(csv_out$MIN_ATTRIBUTES[[1]], as.character(NA)) - + expect_is(csv_out$PRCP, "numeric") expect_equal(csv_out$PRCP[[1]], 0) - + expect_is(csv_out$PRCP_ATTRIBUTES, "character") expect_equal(csv_out$PRCP_ATTRIBUTES[[1]], "I") - + expect_is(csv_out$SNDP, "numeric") expect_equal(csv_out$SNDP[[1]], as.numeric(NA)) - + expect_is(csv_out$I_FOG, "numeric") expect_equal(csv_out$I_FOG[[1]], 0) - + expect_is(csv_out$I_RAIN_DRIZZLE, "numeric") expect_equal(csv_out$I_RAIN_DRIZZLE[[1]], 0) - + expect_is(csv_out$I_SNOW_ICE, "numeric") expect_equal(csv_out$I_SNOW_ICE[[1]], 0) - + expect_is(csv_out$I_HAIL, "numeric") expect_equal(csv_out$I_HAIL[[1]], 0) - + expect_is(csv_out$I_THUNDER, "numeric") expect_equal(csv_out$I_THUNDER[[1]], 0) - + expect_is(csv_out$I_TORNADO_FUNNEL, "numeric") expect_equal(csv_out$I_TORNADO_FUNNEL[[1]], 0) - + expect_is(csv_out$EA, "numeric") expect_equal(csv_out$EA[[1]], 1.4, tolerance = 0.1) - + expect_is(csv_out$ES, "numeric") expect_equal(csv_out$ES[[1]], 2.4, tolerance = 0.1) - + expect_is(csv_out$RH, "numeric") expect_equal(csv_out$RH[[1]], 60.8, tolerance = 0.1) } diff --git a/vignettes/GSODR.Rmd b/vignettes/GSODR.Rmd index 57bb8965..a7922fe3 100644 --- a/vignettes/GSODR.Rmd +++ b/vignettes/GSODR.Rmd @@ -86,12 +86,12 @@ subset(Oz, grepl("TOOWOOMBA", NAME)) ``` ``` -## STNID NAME LAT LON CTRY STATE BEGIN -## 1: 945510-99999 TOOWOOMBA -27.58 151.9 AS 19561231 -## 2: 955510-99999 TOOWOOMBA AIRPORT -27.55 151.9 AS 19980301 -## END COUNTRY_NAME ISO2C ISO3C -## 1: 20120503 AUSTRALIA AU AUS -## 2: 20210116 AUSTRALIA AU AUS +## STNID NAME LAT LON CTRY STATE +## 1: 945510-99999 TOOWOOMBA -27.58 151.9 AS +## 2: 955510-99999 TOOWOOMBA AIRPORT -27.55 151.9 AS +## BEGIN END COUNTRY_NAME ISO2C ISO3C +## 1: 19561231 20120503 AUSTRALIA AU AUS +## 2: 19980301 20210116 AUSTRALIA AU AUS ``` ## Download a Single Station and Year Using get_GSOD() @@ -105,7 +105,7 @@ str(tbar) ``` ``` -## Classes 'data.table' and 'data.frame': 731 obs. of 47 variables: +## Classes 'data.table' and 'data.frame': 365 obs. of 47 variables: ## $ STNID : chr "955510-99999" "955510-99999" "955510-99999" "955510-99999" ... ## $ NAME : chr "TOOWOOMBA AIRPORT" "TOOWOOMBA AIRPORT" "TOOWOOMBA AIRPORT" "TOOWOOMBA AIRPORT" ... ## $ CTRY : chr "AS" "AS" "AS" "AS" ... @@ -319,42 +319,42 @@ inventory ## *** FEDERAL CLIMATE COMPLEX INTEGRATED SURFACE DATA INVENTORY *** ## This inventory provides the number of weather observations by ## STATION-YEAR-MONTH for beginning of record through June 2021 -## STNID NAME LAT LON CTRY STATE BEGIN END COUNTRY_NAME -## 1: 007018-99999 NA NA NA NA -## 2: 007018-99999 NA NA NA NA -## 3: 007026-99999 NA NA NA NA -## 4: 007026-99999 NA NA NA NA -## 5: 007026-99999 NA NA NA NA -## --- -## 657964: A51256-451 NA NA NA NA -## 657965: A51256-451 NA NA NA NA -## 657966: A51256-451 NA NA NA NA -## 657967: A51256-451 NA NA NA NA -## 657968: A51256-451 NA NA NA NA -## ISO2C ISO3C YEAR JAN FEB MAR APR MAY JUN JUL AUG SEP -## 1: 2011 0 0 2104 2797 2543 2614 382 0 0 -## 2: 2013 0 0 0 0 0 0 710 0 0 -## 3: 2012 0 0 0 0 0 0 367 0 0 -## 4: 2014 0 0 0 0 0 0 180 0 4 -## 5: 2016 0 0 0 0 0 794 0 0 0 -## --- -## 657964: 2017 2192 1883 2204 1910 2145 2113 2218 2204 2082 -## 657965: 2018 2192 1887 2194 2113 2151 2095 2202 2197 1816 -## 657966: 2019 2188 2000 2143 2105 2187 2124 2184 2138 2077 -## 657967: 2020 2165 1455 2144 2125 2199 2123 2112 2192 2083 -## 657968: 2021 2085 1992 2217 1975 2146 1650 0 0 0 -## OCT NOV DEC -## 1: 0 0 0 -## 2: 0 0 0 -## 3: 0 0 7 -## 4: 0 552 0 -## 5: 0 0 0 -## --- -## 657964: 2192 2103 2174 -## 657965: 2195 2063 2178 -## 657966: 1872 1508 2159 -## 657967: 2079 2074 2187 -## 657968: 0 0 0 +## STNID NAME LAT LON CTRY STATE BEGIN END +## 1: 007018-99999 NA NA NA NA +## 2: 007018-99999 NA NA NA NA +## 3: 007026-99999 NA NA NA NA +## 4: 007026-99999 NA NA NA NA +## 5: 007026-99999 NA NA NA NA +## --- +## 657968: A51256-451 NA NA NA NA +## 657969: A51256-451 NA NA NA NA +## 657970: A51256-451 NA NA NA NA +## 657971: A51256-451 NA NA NA NA +## 657972: A51256-451 NA NA NA NA +## COUNTRY_NAME ISO2C ISO3C YEAR JAN FEB MAR APR MAY +## 1: 2011 0 0 2104 2797 2543 +## 2: 2013 0 0 0 0 0 +## 3: 2012 0 0 0 0 0 +## 4: 2014 0 0 0 0 0 +## 5: 2016 0 0 0 0 0 +## --- +## 657968: 2017 2192 1883 2204 1910 2145 +## 657969: 2018 2192 1887 2194 2113 2151 +## 657970: 2019 2188 2000 2143 2105 2187 +## 657971: 2020 2165 1455 2144 2125 2199 +## 657972: 2021 2085 1992 2217 1975 2146 +## JUN JUL AUG SEP OCT NOV DEC +## 1: 2614 382 0 0 0 0 0 +## 2: 0 710 0 0 0 0 0 +## 3: 0 367 0 0 0 0 7 +## 4: 0 180 0 4 0 552 0 +## 5: 794 0 0 0 0 0 0 +## --- +## 657968: 2113 2218 2204 2082 2192 2103 2174 +## 657969: 2095 2202 2197 1816 2195 2063 2178 +## 657970: 2124 2184 2138 2077 1872 1508 2159 +## 657971: 2123 2112 2192 2083 2079 2074 2187 +## 657972: 1723 0 0 0 0 0 0 ``` ```r @@ -365,84 +365,84 @@ subset(inventory, STNID %in% "955510-99999") ## *** FEDERAL CLIMATE COMPLEX INTEGRATED SURFACE DATA INVENTORY *** ## This inventory provides the number of weather observations by ## STATION-YEAR-MONTH for beginning of record through June 2021 -## STNID NAME LAT LON CTRY STATE BEGIN -## 1: 955510-99999 TOOWOOMBA AIRPORT -27.55 151.9 AS 19980301 -## 2: 955510-99999 TOOWOOMBA AIRPORT -27.55 151.9 AS 19980301 -## 3: 955510-99999 TOOWOOMBA AIRPORT -27.55 151.9 AS 19980301 -## 4: 955510-99999 TOOWOOMBA AIRPORT -27.55 151.9 AS 19980301 -## 5: 955510-99999 TOOWOOMBA AIRPORT -27.55 151.9 AS 19980301 -## 6: 955510-99999 TOOWOOMBA AIRPORT -27.55 151.9 AS 19980301 -## 7: 955510-99999 TOOWOOMBA AIRPORT -27.55 151.9 AS 19980301 -## 8: 955510-99999 TOOWOOMBA AIRPORT -27.55 151.9 AS 19980301 -## 9: 955510-99999 TOOWOOMBA AIRPORT -27.55 151.9 AS 19980301 -## 10: 955510-99999 TOOWOOMBA AIRPORT -27.55 151.9 AS 19980301 -## 11: 955510-99999 TOOWOOMBA AIRPORT -27.55 151.9 AS 19980301 -## 12: 955510-99999 TOOWOOMBA AIRPORT -27.55 151.9 AS 19980301 -## 13: 955510-99999 TOOWOOMBA AIRPORT -27.55 151.9 AS 19980301 -## 14: 955510-99999 TOOWOOMBA AIRPORT -27.55 151.9 AS 19980301 -## 15: 955510-99999 TOOWOOMBA AIRPORT -27.55 151.9 AS 19980301 -## 16: 955510-99999 TOOWOOMBA AIRPORT -27.55 151.9 AS 19980301 -## 17: 955510-99999 TOOWOOMBA AIRPORT -27.55 151.9 AS 19980301 -## 18: 955510-99999 TOOWOOMBA AIRPORT -27.55 151.9 AS 19980301 -## 19: 955510-99999 TOOWOOMBA AIRPORT -27.55 151.9 AS 19980301 -## 20: 955510-99999 TOOWOOMBA AIRPORT -27.55 151.9 AS 19980301 -## 21: 955510-99999 TOOWOOMBA AIRPORT -27.55 151.9 AS 19980301 -## 22: 955510-99999 TOOWOOMBA AIRPORT -27.55 151.9 AS 19980301 -## 23: 955510-99999 TOOWOOMBA AIRPORT -27.55 151.9 AS 19980301 -## 24: 955510-99999 TOOWOOMBA AIRPORT -27.55 151.9 AS 19980301 -## STNID NAME LAT LON CTRY STATE BEGIN -## END COUNTRY_NAME ISO2C ISO3C YEAR JAN FEB MAR APR MAY JUN -## 1: 20210116 AUSTRALIA AU AUS 1998 0 0 222 223 221 211 -## 2: 20210116 AUSTRALIA AU AUS 1999 213 201 235 224 244 229 -## 3: 20210116 AUSTRALIA AU AUS 2000 241 227 247 238 246 237 -## 4: 20210116 AUSTRALIA AU AUS 2001 245 223 246 238 239 236 -## 5: 20210116 AUSTRALIA AU AUS 2002 245 219 246 236 243 229 -## 6: 20210116 AUSTRALIA AU AUS 2003 244 217 220 232 235 233 -## 7: 20210116 AUSTRALIA AU AUS 2004 240 227 241 229 233 224 -## 8: 20210116 AUSTRALIA AU AUS 2005 241 221 242 240 247 239 -## 9: 20210116 AUSTRALIA AU AUS 2006 245 223 246 232 241 238 -## 10: 20210116 AUSTRALIA AU AUS 2007 247 222 244 240 248 240 -## 11: 20210116 AUSTRALIA AU AUS 2008 247 228 248 239 248 239 -## 12: 20210116 AUSTRALIA AU AUS 2009 245 222 246 235 244 237 -## 13: 20210116 AUSTRALIA AU AUS 2010 248 223 248 240 244 240 -## 14: 20210116 AUSTRALIA AU AUS 2011 247 224 247 240 247 240 -## 15: 20210116 AUSTRALIA AU AUS 2012 248 232 248 240 248 240 -## 16: 20210116 AUSTRALIA AU AUS 2013 236 220 247 233 248 239 -## 17: 20210116 AUSTRALIA AU AUS 2014 243 224 247 240 246 239 -## 18: 20210116 AUSTRALIA AU AUS 2015 248 222 248 239 247 240 -## 19: 20210116 AUSTRALIA AU AUS 2016 246 228 245 240 246 240 -## 20: 20210116 AUSTRALIA AU AUS 2017 247 224 248 240 248 239 -## 21: 20210116 AUSTRALIA AU AUS 2018 248 224 248 239 248 240 -## 22: 20210116 AUSTRALIA AU AUS 2019 247 224 246 240 248 240 -## 23: 20210116 AUSTRALIA AU AUS 2020 246 232 248 238 248 348 -## 24: 20210116 AUSTRALIA AU AUS 2021 485 483 742 720 743 546 -## END COUNTRY_NAME ISO2C ISO3C YEAR JAN FEB MAR APR MAY JUN -## JUL AUG SEP OCT NOV DEC -## 1: 226 217 222 234 215 230 -## 2: 239 247 236 246 233 243 -## 3: 245 240 236 248 239 248 -## 4: 243 240 237 236 235 246 -## 5: 243 246 227 238 233 246 -## 6: 246 242 218 239 225 245 -## 7: 235 244 235 244 235 245 -## 8: 247 247 234 242 239 246 -## 9: 247 247 239 247 240 247 -## 10: 244 244 239 247 237 246 -## 11: 248 247 239 247 238 248 -## 12: 248 248 239 248 239 248 -## 13: 242 247 240 248 240 247 -## 14: 248 247 239 248 239 248 -## 15: 248 247 240 248 240 245 -## 16: 252 247 238 248 239 246 -## 17: 246 247 240 247 240 248 -## 18: 247 248 239 247 238 247 -## 19: 248 248 238 248 239 248 -## 20: 248 247 239 248 240 248 -## 21: 247 248 239 246 240 248 -## 22: 248 248 240 248 239 248 -## 23: 493 492 480 496 475 496 -## 24: 0 0 0 0 0 0 -## JUL AUG SEP OCT NOV DEC +## STNID NAME LAT LON CTRY STATE +## 1: 955510-99999 TOOWOOMBA AIRPORT -27.55 151.9 AS +## 2: 955510-99999 TOOWOOMBA AIRPORT -27.55 151.9 AS +## 3: 955510-99999 TOOWOOMBA AIRPORT -27.55 151.9 AS +## 4: 955510-99999 TOOWOOMBA AIRPORT -27.55 151.9 AS +## 5: 955510-99999 TOOWOOMBA AIRPORT -27.55 151.9 AS +## 6: 955510-99999 TOOWOOMBA AIRPORT -27.55 151.9 AS +## 7: 955510-99999 TOOWOOMBA AIRPORT -27.55 151.9 AS +## 8: 955510-99999 TOOWOOMBA AIRPORT -27.55 151.9 AS +## 9: 955510-99999 TOOWOOMBA AIRPORT -27.55 151.9 AS +## 10: 955510-99999 TOOWOOMBA AIRPORT -27.55 151.9 AS +## 11: 955510-99999 TOOWOOMBA AIRPORT -27.55 151.9 AS +## 12: 955510-99999 TOOWOOMBA AIRPORT -27.55 151.9 AS +## 13: 955510-99999 TOOWOOMBA AIRPORT -27.55 151.9 AS +## 14: 955510-99999 TOOWOOMBA AIRPORT -27.55 151.9 AS +## 15: 955510-99999 TOOWOOMBA AIRPORT -27.55 151.9 AS +## 16: 955510-99999 TOOWOOMBA AIRPORT -27.55 151.9 AS +## 17: 955510-99999 TOOWOOMBA AIRPORT -27.55 151.9 AS +## 18: 955510-99999 TOOWOOMBA AIRPORT -27.55 151.9 AS +## 19: 955510-99999 TOOWOOMBA AIRPORT -27.55 151.9 AS +## 20: 955510-99999 TOOWOOMBA AIRPORT -27.55 151.9 AS +## 21: 955510-99999 TOOWOOMBA AIRPORT -27.55 151.9 AS +## 22: 955510-99999 TOOWOOMBA AIRPORT -27.55 151.9 AS +## 23: 955510-99999 TOOWOOMBA AIRPORT -27.55 151.9 AS +## 24: 955510-99999 TOOWOOMBA AIRPORT -27.55 151.9 AS +## STNID NAME LAT LON CTRY STATE +## BEGIN END COUNTRY_NAME ISO2C ISO3C YEAR JAN FEB MAR +## 1: 19980301 20210116 AUSTRALIA AU AUS 1998 0 0 222 +## 2: 19980301 20210116 AUSTRALIA AU AUS 1999 213 201 235 +## 3: 19980301 20210116 AUSTRALIA AU AUS 2000 241 227 247 +## 4: 19980301 20210116 AUSTRALIA AU AUS 2001 245 223 246 +## 5: 19980301 20210116 AUSTRALIA AU AUS 2002 245 219 246 +## 6: 19980301 20210116 AUSTRALIA AU AUS 2003 244 217 220 +## 7: 19980301 20210116 AUSTRALIA AU AUS 2004 240 227 241 +## 8: 19980301 20210116 AUSTRALIA AU AUS 2005 241 221 242 +## 9: 19980301 20210116 AUSTRALIA AU AUS 2006 245 223 246 +## 10: 19980301 20210116 AUSTRALIA AU AUS 2007 247 222 244 +## 11: 19980301 20210116 AUSTRALIA AU AUS 2008 247 228 248 +## 12: 19980301 20210116 AUSTRALIA AU AUS 2009 245 222 246 +## 13: 19980301 20210116 AUSTRALIA AU AUS 2010 248 223 248 +## 14: 19980301 20210116 AUSTRALIA AU AUS 2011 247 224 247 +## 15: 19980301 20210116 AUSTRALIA AU AUS 2012 248 232 248 +## 16: 19980301 20210116 AUSTRALIA AU AUS 2013 236 220 247 +## 17: 19980301 20210116 AUSTRALIA AU AUS 2014 243 224 247 +## 18: 19980301 20210116 AUSTRALIA AU AUS 2015 248 222 248 +## 19: 19980301 20210116 AUSTRALIA AU AUS 2016 246 228 245 +## 20: 19980301 20210116 AUSTRALIA AU AUS 2017 247 224 248 +## 21: 19980301 20210116 AUSTRALIA AU AUS 2018 248 224 248 +## 22: 19980301 20210116 AUSTRALIA AU AUS 2019 247 224 246 +## 23: 19980301 20210116 AUSTRALIA AU AUS 2020 246 232 248 +## 24: 19980301 20210116 AUSTRALIA AU AUS 2021 485 483 742 +## BEGIN END COUNTRY_NAME ISO2C ISO3C YEAR JAN FEB MAR +## APR MAY JUN JUL AUG SEP OCT NOV DEC +## 1: 223 221 211 226 217 222 234 215 230 +## 2: 224 244 229 239 247 236 246 233 243 +## 3: 238 246 237 245 240 236 248 239 248 +## 4: 238 239 236 243 240 237 236 235 246 +## 5: 236 243 229 243 246 227 238 233 246 +## 6: 232 235 233 246 242 218 239 225 245 +## 7: 229 233 224 235 244 235 244 235 245 +## 8: 240 247 239 247 247 234 242 239 246 +## 9: 232 241 238 247 247 239 247 240 247 +## 10: 240 248 240 244 244 239 247 237 246 +## 11: 239 248 239 248 247 239 247 238 248 +## 12: 235 244 237 248 248 239 248 239 248 +## 13: 240 244 240 242 247 240 248 240 247 +## 14: 240 247 240 248 247 239 248 239 248 +## 15: 240 248 240 248 247 240 248 240 245 +## 16: 233 248 239 252 247 238 248 239 246 +## 17: 240 246 239 246 247 240 247 240 248 +## 18: 239 247 240 247 248 239 247 238 247 +## 19: 240 246 240 248 248 238 248 239 248 +## 20: 240 248 239 248 247 239 248 240 248 +## 21: 239 248 240 247 248 239 246 240 248 +## 22: 240 248 240 248 248 240 248 239 248 +## 23: 238 248 348 493 492 480 496 475 496 +## 24: 720 743 570 0 0 0 0 0 0 +## APR MAY JUN JUL AUG SEP OCT NOV DEC ``` # Notes