This very long US federal government shutdown has allowed time for building in nicer failure behavior and more documentation for government shutdowns. There's a number of related changes:
- better government shutdown failure behavior for the
swdi()
function (#298) - better government shutdown failure behavior for the
lcd()
function (#295) - better failure behavior for all
ncdc*()
functions (#293) (#297) - added a package level manual file section "Where data comes from and government shutdowns"
swdi()
: changed from downloading data withdownload.file
tocrul
(#298)- fix
arc2()
tests to not have hard-coded dates (#294)
- improvements in failing well when there's a US government shutdown for many functions that work with web REST APIs (#293) (#295)
- fix to
arc2
tests to not be sensitive to the real year that the test is run in, reported in CRAN checks and via email (#294)
- gains function
bsw()
for Blended Sea Winds data (#246) - gains function
ghcnd_read()
- to read .dly files directly, e.g., files already downloaded (#223) thanks @shabbychef for the feature request - gains function
lcd()
for Local Climatological Data (#212) - gains functions
se_data()
andse_files()
for the Storm Events Database (#282) ghcnd()
andghcnd_search()
gain arefresh
parameter to refresh data for the query even if it's already cached locally. in addition, these functions now print messages to tell the user what file path the data is locally cached in, and the min and max dates when usingghcnd_search()
(#269) thanks @kgmccannncdc()
gainsadd_units
parameter (boolean) to toggle adding units to the output data.frame. default isadd_units=FALSE
. ifadd_units=TRUE
we match dataset id and data type id and return units if we have them. do be in touch if you see a problem with these units!ncdc()
now returns tibbles in thedata
slot (#233) (#266) (#289) (#287)
- spelling fixes to
coops
docs (#228) thanks @jsta - fix in
ghcnd_search()
to arrange data by day instead of by month (#247) thanks @asrivas3 for reporting - move
swdi()
to usexml2
andcrul
packages instead ofXML
andhttr
(#275) - added
swdi()
tests (#239) thanks @kevin-ht-ho isd_stations_search()
no longer renames lat and lon column names (#238) thanks @kevin-ht-ho- add codemeta keywords to description (#287)
- replace
httr
withcrul
throughout package (#186) - many tests use
vcr
now for caching, more to do waiting onvcr
being able to handle direct to disk use cases and binary files like pdfs (#284) - fix links in Code of Conduct
- fixes to
gefs()
. was incorrectly repeating time values within ensembles when it should have repeated time values across ensembles so that each ensemble has a time value for each time period (#230) (#231) thanks for report from @lcsma and fix by @potterzot - fix bug in
ncdc()
- fix to internal functionparse_ncdc()
, which was failing onstrsplit()
call if attributes wasNULL
(#232) thanks for reporting @andypicke - fix to
cpc_prcp()
: URLs were changed at some point, fixes for this (#242) - fix to
cpc_prcp()
: to read.gz
files correctly with gzfile instead of file (#248) - fix in
homr()
- NOAA server gives back a 200 OK response even if that's not the case - but we can check content type to see if there was likely an error (#250) - fix to
autoplot.meteo_coverage
(#258) - fix to
buoy_stations()
: was getting the wrong station ids - fixed; and use async HTTP requests to get data faster (#261) thanks @johnharley for the bug report - fix to
ghcnd_stations()
: was returning an extra empty row (#267) thanks @joeroe for the bug report - related to (#267),
ghcnd()
was giving a trailing row of NA's - fixed (#270) swdi()
:radius
parameter doesn't work, update docs to tell users not to use it (#243)ncdc()
fix: fix to internal functionparse_ncdc()
, errored when more than 1 flag returned (#279) thanks @ghaines3 for the bug report- buoy fixes (#251)
storm_shp()
fix: update to use new URL patterns (#263)- make
swdi()
fail better (#274) thanks @OrionDarley - fix
meteo_nearby_stations()
to coerce character to numeric lat and lon values (#257) thanks @mondorescue for the bug report - fix to
meteo_nearby_stations()
- internally ignored the user supplied column names for lat and lon (#286) thanks @ghaines3 for the bug report - fixed
tornadoes()
for Windows OS's:utils::untar()
was failing on windows, changed to usingutils::unzip()
(#203) - fixed
argo_buoy_files()
: usefill=TRUE
in theread.table
call - was erroring on some Windows OS's (#235) thanks @jonmcalder for reporting
Note that some NOAA datasets have changed names:
GHCNDMS
is nowGSOM
(Global Summary of the Month)ANNUAL
is nowGSOY
(Global Summary of the Year)
isd()
gains new parametersadditional
to toggle whether the non-mandatory ISD fields (additional + remarks) are parsed and returned &force
to toggle whether download new version or use cached version.isd_read()
gains new parameteradditional
(see description above) (#190)- New function for Climate Prediction Center data:
cpc_prcp()
(#193) - New function
arc2()
to get data from Africa Rainfall Climatology version 2 (#201)
- A number of NOAA services now use
https
- changed internal code to usehttps
fromhttp
for coops, swdi, ersst, and tornadoes data sources (#187) - Changes to sea ice URLs - just internal (#185)
- Fixes to
coops_search()
to handle requests better: only certain date combinations allowed for certain COOPS products (#213) (#214) thanks @tphilippi ! - Now using
hoardr
package to manage caching in some functions. Will roll out to all functions that cache soon (#191) - README img location fix requested by CRAN (#207)
GHCNDMS
is nowGSOM
andANNUAL
is nowGSOY
- added to docs and examples of using GSOM and GSOY (#189)
- A number of fixes to
isd()
(#168) - Fixes to
coops_search()
to fix time zone problems (#184) thanks @drf5n - Fixes to
ghcnd()
- fix some column types that were of inappropriate type before (#211) - Fix to
ghcnd()
: we were coercing factors to integers, which caused nonsense output - first coercing to character now, then integer (#221) - There were problems in parsing flags (attributes) for some datasets
via
ncdc()
function. Added metadata to the package to help parse flags (#199)
isd()
now using a new packageisdparser
to parse NOAA ISD files. We still fetch the file withinrnoaa
, but the file parsing is done byisdparser
(#176) (#177) (#180) thanks @mrubayet for the push
- Fixed precipitation units in docs for
meteo_*
functions (#178) thanks @mrubayet
- Fixed bug in
ghcnd()
where internal unexported function was not found (#179) - Fix to
isd_stations()
andisd_stations_search()
to work correctly on Windows (#181) thanks @GuodongZhu - Changed base URL for all NOAA NCDC functions (those starting with
ncdc
) tohttps
fromhttp
(#182) thanks @maspotts - Changed base URL for all NOAA HOMR functions (those starting with
homr
) tohttps
fromhttp
(#183)
- Added notes to docs of functions that do file caching - where to find cached files.
meteo_clear_cache
gains parameterforce
to controlforce
parameter inunlink()
- Removed
lubridate
usage inseaiceurls()
function, just using base R functions.
- Fixed bug which was affecting binary installs only. We accidentally determined a path on package build, such that the user of the CRAN binary build machine got inserted into the path. This is now fixed. (#173)
- New function
isd_read()
to read ISD output fromisd()
manually instead of lettingisd()
read in the data. This is useful when you useisd()
but need to read the file in later when it's already cached. (#169) - Some functions in
rnoaa
cache files that are downloaded from various NOAA web services. File caching is usually done when data comes from FTP servers. In some of these functions where we cache data, we used to write to your home directory, but have now changed all these functions to write to a proper cache directory in a platform independent way. We determine the cache directory usingrappdirs::user_cache_dir()
. Note that this may change your workflow if you'd been depending on cached files to be a in particular place on your file system. In addition, thepath
parameter in the changed functions is now defunct, but you get an informative warning about it (#171)
storm_data()
now returns a tibble/data.frame not inside of a list. We used to return a list with a single slotdata
with a data.frame, but this was unnecessary.ghcnd_stations()
now outputs a data.frame (tbl_df
) by itself, instead of a data.frame nested in a list. This may change how you access data from this function. (#163)- Improved docs on token usage for NCDC functions (with prefix
ncdc_*()
) (#167) - Added note to
isd()
docs that when you get an error similar toError: download failed for ftp://ftp.ncdc.noaa.gov/pub/data/noaa/1955/011490-99999-1955.gz
, the file does not exist on NOAA's ftp servers. If your internet is down, you'll get a different error saying as much (#170)
- A large PR was merged with a suite of functions. Most functions added
a prefixed with
meteo_*
, and are meant to find weather monitors near locations (meteo_nearby_stations
), find all monitors within a radius of a location (meteo_distance
), calculate the distances between a location and all available stations (meteo_process_geographic_data
), calculate the distance between two locations (meteo_spherical_distance
), pull GHCND weather data for multiple weather monitors (meteo_pull_monitors
), create a tidy GHCND dataset from a single monitor (meteo_tidy_ghcnd
), and determine the "coverage" for a station data frame (meteo_coverage()
). In addition,vis_miss()
added to visualize missingness in a data.frame. See the PR diff against master for all the changes. (#159) Thanks a ton to @geanders et al. (@hrbrmstr, @maelle, @jdunic, @njtierney, @leighseverson, @RyanGan, @mandilin, @jferreri, @cpatrizio88, @ryan-hicks, @Ewen2015, @mgutilla, @hakessler, @rodlammers)
isd_stations_search()
changed internal structure. We replaced usage ofgeojsonio
andlawn
for fasterdplyr::filter
for bbox inputs, andmeteo_distance()
forlat/long/radius
inputs . This speeds up this function significantly. Thanks to @lukas-rokka (#157)isd_stations_search()
andisd_stations()
now return tibble's instead of data.frame's- Removed cached ISD stations dataset within package to reduce
package size. Only change is now that on first use of the function
the user has to download the entire thing, but on subsquent
uses it will pull from the cached version on the users machine.
isd_stations_search()
now caches usingrappdirs
(#161) - Convert all
is()
uses toinherits()
- Fixed
seaiceeurls()
function that's used to generate urls for theseaice()
function - due to change in NOAA urls (#160) - Fix to function
ghncd_split_vars()
to not fail ondplyr::contains
call (#156) thanks @lawinslow !
- Fixes for new
httr
version to call encoding explicitly (#135) - Fix to broken link for reference to source code used in
gefs
functions (#121) - Speed ups implemented for the
isd()
function - it's a time consuming task as we have to parse a nasty string of characters line by line - more speed ups to come in future versions (#146) - Replace
dplyr::rbind_all()
withdplyr::bind_rows()
as the former is being deprecated (#152)
- Fix for
isd()
function - was failing on some station names that had leading zeros. (#136) - Fix for
ncdc_stations()
- used to allow more than one station id to be passed in, but internally only handled one. This is a restriction due to the NOAA NCDC API. Documentation now shows an example of how to deal with many station ids (#138) - Fixes to the suite of
ncdc_*()
functions to allow multiple inputs to those parameters where allowed (#139) - Fixed bug in
ncdc_plot()
due to newggplot2
version (#153) - Fixed bugs in
argo()
functions: a) with newhttr
, box input of a vector no longer works, now manually make a character vector; b) errant file param being passed into the http request, removed (#155)
- New data source added: ARGO buoy data. See functions starting with
argo()
(#123) for more, see http://www.argo.ucsd.edu/ - New data source added: CO-OPS tide and current data. See function
coops_search()
(#111) for idea from @fmichonneau (#124) for implementing @jsta See http://co-ops.nos.noaa.gov/api/ also (#126) (#128)
rgdal
moved to Suggests to make usage easier (#125)- Changes to
ncdc_plot()
- made default brakes to just default to whatggplot2
does, but you can still pass in your own breaks (#131)
- New data source added: NOAA Global Ensemble Forecast System (GEFS) data.
See functions
gefs()
,gefs_dimension_values()
,gefs_dimensions()
,gefs_latitudes()
,gefs_longitudes()
, andgefs_variables()
(#106) (#119) thanks @potterzot - he's now an author too - New data source added: NOAA Extended Reconstructed Sea Surface Temperature
(ERSST) data. See function
ersst()
(#96) - New function
isd_stations()
to get ISD station data. - Added code of conduct to code repository
- Swapped
ncdf
package forncdf4
package. Windows binaries weren't availiable forncdf4
prior to now. (#117) - Proper license info added for javascript modules used inside the package (#116)
- Improvements to
isd()
function to do transformations of certain variables to give back data that makes more sense (#115) leaflet
,geojsonio
, andlawn
added in Suggests, used in a few functions.- Note added to
swdi()
function man page that thenldn
dataset is available to military users only (#107)
- Fix to
buoy()
function to accept character class inputs for thebuoyid
parameter. the error occurred because matching was not case-insensitive, now works regardless of case (#118) - Fixes for new
ggplot2
version (#113) - Built in
GET
request retries forghncd
functions as some URLs fail unpredictably (#110)
- Explicitly import non-base R pkg functions, so importing from
utils
,methods
, andstats
(#103) - All NCDC legacy API functions are now defunct. See
?rnoaa-defunct
for more information (#104) radius
parameter removed fromncdc_stations()
function (#102), was already removed internally within the function in the last version, now not in the function definition, see also (#98) and (#99)- Dropped
plyr
anddata.table
from imports.plyr::rbind.fill()
anddata.table::rbindlist()
replaced withdplyr::bind_rows()
.
- Fixed problem with
httr
v1
where empty list not allowed to pass to thequery
parameter inGET
(#101)
- Gains a suite of new functions for working with NOAA GHCND data, including
ghcnd()
,ghcnd_clear_cache()
,ghcnd_countries()
,ghcnd_search()
,ghcnd_splitvars()
ghcnd_states()
,ghcnd_stations()
, andghcnd_version()
(#85) (#86) (#87) (#88) (#94) - New contributor Adam Erickson (@DougFirErickson)
- All NOAA buoy functions put back into the package. They were previously on a separate branch in the GitHub repository. (#37) (#71) (#100)
- Minor adjustments to
isd()
functions, including better man file. - Cleaner package imports - importing mostly only functions used in dependencies.
- Startup message gone.
callopts
parameter changed to...
in functionswdi()
.- More robust test suite.
ncdc()
requires that users do their own paging - previously this was done internally (#77)- Many dependencies dropped, simplifying package:
RCurl
,maptools
,stringr
,digest
. A few new ones added:dplyr
,tidyr
.
- All
erddap
functions now defunct - see the package rerddap, a general purpose R client for ERDDAP servers. (#51) (#73) (#90) (#95) - The
extent
function innoaa_stations()
used to accept either a bounding box or a point defined by lat/long. The lat/long option dropped as it required two packages, one of which is a pain to install for many users (#98) (#99)
- New data source NOAA legacy API with ISD, daily, and ish data via function
ncdc_legacy()
. (#54) - New function
isd()
to get ISD data from NOAA FTP server. (#76) - ERDDAP gridded data sets added. Now tabledap datasets are accessible via
erddap_table()
, while gridded datasets are available viaerddap_grid()
. Helper functionerddap_search()
was modified to search for either tabledap or griddap datasets, anderddap_info()
gets and prints summary information differently for tabledap and griddap datasets. (#63)
erddap_data()
defunct, now as functionserddap_table()
anderddap_grid()
, uses newstore
parameter which takes a function, eitherdisk(path, overwrite)
to store on disk ormemory()
to store in R memory.assertthat
library removed, replaced withstopifnot()
- New data source added (NOAA torndoes data) via function
tornadoes()
. (#56) - New data source added (NOAA storm data from IBTrACS) via functions
storm_*()
. (#57) - New data source added (NOAA weather station metadata from HOMR) via functions
homr_*()
(#59) - New vignettes for storm data and homr data.
- Some functions in rnoaa now print data.frame outputs as
dplyr
-like outputs with a summary of the data.frame, as appropriate.
- Across all
ncdc_*
functions changedcallopts
parameter to...
. This parameter allow you to pass in options tohttr::GET
to modify curl requests. (#61) - A new helper function
check_key()
looks for one of two stored keys, as an environment variable under the nameNOAA_KEY
, or an option variable under the namenoaakey
. Environment variables can be set during session likeSys.setenv(VAR = "...")
, or stored long term in your.Renviron
file. Option variables can be set during session likeoptions(var = "...")
, or stored long term in your.Rprofile
file. is.*
andprint.*
functions no longer have public man files, but can be seen viarnoaa:::
if needed.
- New package imports:
sp
,rgeos
,assertthat
,jsonlite
, andncdf4
, and new package Suggests:knitr
,taxize
- Most function names changed. All
noaa*()
functions for NCDC data changed toncdc*()
.noaa_buoy()
changed tobuoy()
.noaa_seaice()
changed toseaice()
. When you call the old versions an error is thrown, with a message pointing you to the new function name. See ?rnoaa-defunct. - New vignettes: NCDC attributes, NCDC workflow, Seaice vignette, SWDI vignette, ERDDAP vignette, NOAA buoy vignette.
- New functions to interact with NOAA ERDDAP data:
erddap_info()
,erddap_data()
, anderddap_search()
. - New functions to interact with NOAA buoy data:
buoy()
, including a number of helper functions. ncdc()
now splits apart attributes. Previously, the attributes were returned as a single column, but now there is column for each attribute so data can be easily retrieved. Attribute columns differ for each differentdatasetid
.buoy()
function has been removed from the CRAN version ofrnoaa
. Install the version withbuoy()
and associated functions viadevtools::install_github("ropensci/rnoaa", ref="buoy")
noaa_swdi()
(function changed toswdi()
) gains new parameterfilepath
to specify path to write a file to ifformat=kmz
orformat=shp
. Examples added for usingformat=
csv, shp, and kmz.- Now using internal version of
plyr::compact
. - Added API response checker/handler to all functions to pass on helpful messages on server errors.
ncdc()
gains new parameterincludemetadata
. If TRUE, includes metadata, if not, does not, and response should be faster as does not take time to calculate metadata.noaa_stations()
gains new parameterradius
. Ifextent
is a vector of length 4 (for a bounding box) then radius is ignored, but if you pass in two points toextent
, it is interpreted as a point, and thenradius
is used as the distance upon which to construct a bounding box.radius
default is 10 km.
datasetid
,startdate
, andenddate
are often required parameters, and changes were made to help users with this.
- Submitted to CRAN.
- Wrote new functions for NOAA API v2.
- A working vignette now.
- Wrappers for NOAA API v1 were written, not on CRAN at this point.