Skip to content

Latest commit

 

History

History
556 lines (416 loc) · 19.9 KB

NEWS.md

File metadata and controls

556 lines (416 loc) · 19.9 KB

mapme.biodiversity (development version)

General

  • get_biodiversity_intactness_index(), get_iucn(), and get_key_biodiversity_areas() now use spds_exists() to check if input files exist
  • get_chelsa() now supports precipitation layers for 2019
  • changes bucket URL for get_chelsa() to https://os.zhdk.cloud.switch.ch/chelsav2/GLOBAL/monthly/pr

Internal

  • the sf_col attribute value is now retained throughout the portfolio checks and chunking routines

  • .raster_bbox() now only uses the cornerCoordinates output from gdalinfo to derive a bounding box (#385)

  • bounding boxes for raster and vector resources are now derived via st_as_sfc(st_bbox(x)) to ensure that they are oriented correctly when using S2 (#377 and #385)

mapme.biodiversity 0.9.3

Bug fixes

  • get_nasa_srtm() now uses GDAL's VSI path option pc_url_signing=yes to sign URLs from Microsoft Planetary Computer (#383)

Internal

  • test for .read_vector() now copies input GPKG to a directory with write permissions to avoid CRAN check failures when included in a read only directory

mapme.biodiversity 0.9.2

General

  • new resources:

    • get_acled()
  • new indicators:

    • calc_fatalities_acled()
    • calc_fatalities_ucdp() (renamed)
    • calc_exposed_population_acled()
    • calc_exposed_population_ucdp() (renamed)
  • calc_fatalities_ucdp() now returns a sparse timeseries, e.g. asset-months with now fatalities are omitted.

Bug fixes

  • fixes portfolio_wide() throwing an error when single assets with NULL values are present
  • calc_mangroves_area() returned NULL if invalid geometries were encountered Now it tries to repair geometries and return the area of valid geometries (#375)

Internal

  • .get_intersection() now assumes both x and tindex to be represented by oriented rings on the sphere (#378)

mapme.biodiversity 0.9.1

General

  • new resources:
    • get_accessibility_2000() (#365, @fBedecarrats)
  • new indicators:
    • calc_traveltime_2000() (#365, @fBedecarrats)

Internal

  • adjusts test for get_gsw_timseries() and calc_gsw_timeseries() to write to temporal directory of the R session to fix CRAN errors (#370, @karpfen)

mapme.biodiversity 0.9.0

General

  • prep_resources() received additional argument mode to get control over the reading mode (e.g. portfolio or asset)

  • resources based on WorldClim now support selecting the spatial resolution and cover the historical timeseries starting from 1960 (#302)

  • assets are now chunked into sub-components prior to indicator calculation thus parallelization now is applied to a single level (#322)

  • chunk_size now is properly set to 100,000 ha as per documentation (before it was set to 10,000 ha) (#324)

  • setting chunk_size=NULL is now allowed and skips chunking (#331)

  • treecover indicators now trough a message if landscapemetrics is not installed (#325)

  • setting outdir via mapme_options() now probes the destination by trying to write a GTiff file and errors if unsuccessful (#335)

  • code previously using httr now uses httr2 (#330)

  • new resources:

    • get_iucn() (#359)
    • get_chelsa() (#318)
    • get_ipbes_biomes() (#345)
    • get_humanfootprint() (#341)
    • get_gsw_time_series() (#354, @karpfen)
    • get_key_biodiversity_areas() (#349, @karpfen)
    • get_biodiversity_intactness_index() (#351, @karpfen)
    • get_vul_carbon(), get_man_carbon(), and get_irr_carbon() (#339)
  • new indicators:

    • calc_slope() (#355, @fBedecarrats)
    • calc_ipbes_biomes() (#345)
    • calc_humanfootprint() (#341)
    • calc_gsw_time_series() (#354, @karpfen)
    • calc_species_richness() (#359)
    • calc_exposed_population() (#321)
    • calc_precipitation_chelsa() (#318)
    • calc_key_biodiversity_area() (#349, @karpfen)
    • calc_biodiversity_intactness_index() (#351, @karpfen)
    • calc_vul_carbon(), calc_man_carbon(), and calc_irr_carbon() (#339)

Bug fixes

  • fixes transforming asset to the CRS of raster dataset in calc_deforestation_drivers() (#300)
  • write_portfolio() now drops indicators with only NULL values instead of throwing an error (#303)
  • get_ucdp_ged() now adds SRS infos to the footprints object (#313)
  • uses binary writing mode for worldpop resource on Windows (#319)

Internal

  • .check_portfolio() now checks if assetid has unique values and only overrides them if this in not the case (#305)
  • .read_raster() now reads values into memory and removes VRT files on-exit (#311)
  • .fetch_resources() now honors both creation and opening options (#315)
  • httr calls are replaced with the respective httr2 equivalents (#329)

mapme.biodiversity 0.8.0

General

  • updates gfw_lossyear resource to v20240402 which entails emission data between 2000 - 2023
  • removes the nasa_firms resource and associated active_fire_counts indicator
  • adds mcd64a1 resource and burned_area indicator
  • mapme.biodiveristy now leverages GDAL for data I/O meaning that all GDAL readable source data sets and writable destinations are now supported
  • README.md now includes a section on how to set up cloud-storages to use as a destination for resource data
  • The quickstart vignette now uses GFW data as example data
  • chunking is now applied based on the area of an assets bounding box instead of its own area
  • write_portfolio() now again serializes to a two-table GeoPackage and re-introduces read_portfolio() (#294)
  • datetime column values are now encoded as POSIXct

Internal

  • exports make_footprints() to ease the process of creating footprints for resource functions
  • exports spds_exists() for resource function to check if a data source is exists
  • get_*() functions are now required to return footprint objects indicating the spatial extent of each elements and pointing towards a GDAL readable data source in the source column
  • in case a user-specified destination is found, the package now uses gdal_translate to write data from source to destination
  • tests for long-running examples and tests are skipped on GA and CRAN
  • fixes a bug in checking if a portfolio inherits from tbl_df

mapme.biodiversity 0.7.0

Bug fixes

  • fixes bug with wrong tile paths returned by get_gfw_emissions()

Breaking changes

  • introduces a standardized output format for indicators, see #240 for more information
  • get_chirps() now allows to specify the years for which to download CHIRPS resources
  • calc_precipitation_chirps() now only returns precipitation sums
  • deprecation of indicator active_fire_properties since resources can now be retrieved using prep_resources() (see below)

General

  • exports prep_resources() to prepare resources for single assets
  • exports portfolio_long() and portfolio_wide() to automatically un-nest indicator columns and change the data layout to either long or wide
  • changes the behavior of write_portfolio() to serialize portfolios to GDAL supported spatial formats in either long or wide format and deprecates read_portfolio()
  • introduces option chunk_size to mapme_options() to control the size for which polygons are split and processed in chunks
  • allows assets of type 'MULTIPOLYGON' and automatically combines the results based on an aggregation function
  • indicator examples now use portfolio_long() instead of tidyr::unnest()

Internal

  • indicator functions must now return tibbles with columns named datetime, variable, unit and value
  • inner-level indicator functions must now specify a statistic for aggregation of chunks
  • chirps and nasa_grace resources updated
  • check for internet connectivity can now be disabled via environment variable mapme_check_connection (#262)
  • gfw_treecover and gfw_lossyear resources updated to v1.11 (#277, @fBedecarrats)
  • GFW indicators now automatically detect the maximum years based on the gfw_lossyear layer (#273)
  • drops curl, stringr, and tidyselect as dependencies
  • moves progressr and rvest from Imports to Suggests
  • drops SPEI from Suggests

mapme.biodiversity 0.6.0

Breaking changes

  • introduces a new UI based on closures for resources and indicators, see #240 for more information

General

  • improves output of available_resources() and available_indicators()
  • introduces mapme_options() to add fine-control of the packages behaviour
  • deprecates init_portfolio() in favor of mapme_options()
  • exports helper functions for third parties to extend the package for custom resources and indicators:
    • check_available_years()
    • check_namespace()
    • download_or_skip()
    • check_engine()
    • check_stats()
    • select_engine()
    • make_global_grid()
    • unzip_and_remove()

New features

  • added Global Surface Water resources and respective indicators (#235, @karpfen)

Internal

  • removed st_make_valid() from .read_vector().

mapme.biodiversity 0.5.0

General

  • Quickstart vignette uses the WorldPop resource instead of CHIRPS, not relying on a working internet connection (#230).

New features

  • GFW resources and indicators include latest GFC-2022-v1.10 version (#203).
  • Raster resources with a CRS different from WGS84 are now supported (#213).

Breaking changes

  • The argument add_resources to init_portfolio() is deprecated. This means that get_resources() has to be run in every new R session to make resource available for further processing (#219).

  • Rasters are now cropped to the spatial extent of an asset with setting snap="out", thus delivering a slightly bigger extent (#212).

  • Speed improvements for GFW indicators (up to x10 for larger rasters) now require R package exactextractr to be installed. Also, it is advised to have the R package landscapemetrics installed to gain the full computation speed improvement.

Bug Fixes

  • calc_indicators() checks for 0-length tibbles (#196, #199, #215).
  • Fix bug with reading rasters with temporal dimensions (#209).
  • All raster cells touching a polygon are now returned (#208).

Internal

  • .read_raster_source() now uses a simplified logic to cover all cases (e.g. single tiles, tiled rasters with and without temporal dimension, single temporal rasters) (#211).
  • Rasters are cropped using snap="out" by default (#212).
  • .read_raster_source() now projects assets in case their CRS differs from the portfolio (#213).
  • tile indices for raster resources are now appended to the portfolio attributes as sf objects instead of being written to disk (#219).
  • .read_raster_source() now applies a precision round-trip of 5 decimal point to match rasters with slight changes in their spatial extent (#217).
  • register_resource() and register_indicator() now issue warnings for resources/indicators with names already registered and overwrites them (#220).

mapme.biodiversity 0.4.0

New features

  • added new resource called ucdp_ged providing a database of violent conflict from 1989 to today

  • added a new indicator called fatalities aggregating number of deaths by type of conflict on a monthly time scale based on the ucdp_ged resource.

  • Added a new resource called fritz_et_al providing a raster layer of deforestation

  • added a new resource called fritz_et_al providing a raster layer of deforestation drivers in tropical forests based on Fritz et al. (2022)

  • added a new indicator called deforestation_drivers using the fritz_et_al resource to obtain information on the absolute and relative area driving forest losses in assets for the period 2008-2019

  • added two new exported functions register_resource() and register_indicator() which allow users to register custom functions for resources/indicators

  • added a new vignette for the web-version of the package only informing about how to obtain wide-output from indicators

  • added a new vignette for the web-version for a custom analysis of the NASA FIRMS resource in the example section

  • added the data for years 2017-2020 to the Global Mangrove Watch resource

Breaking changes

  • Changed the parallel backend to the future package. Parallel processing is now implemented by furrr::future_map() on the asset level within the calc_indicators() function. User code is now required to set up a plan() to enable parallel processing. The function call needs to be wrapped on the user side with progressr::with_progress() to show a progress bar.

  • mapme.biodiversity no longer sets terra's temporal directory for you. Instead you have to call terra::terraOptions() manually

Bug Fixes

  • esalandcover indicator now returns the value per each land cover class exactly once (#177)

Internal

  • disabled running examples on CRAN

  • disabled tests for get_* functions on CRAN

  • terra engines now use get() to resolve the requested zonal statistic function

  • applying tidyverse coding style to existing code (#156, @karpfen)

  • extensive re-factoring of vector-raster zonal statistic engines (#150)

  • extensive re-writing of testing infrastructure for indicator functions omitting the usage of snapshot tests as far as possible (#142)

  • rundir and todisk arguments removed from indicator functions since they were of no practical use

  • instead of a resource and indicator backlog, resources and indicators are now registered to .pkgenv and queried there during runtime. This also allows users to register custom resources/indicator functions

  • removed deprecation warnings for old resource/indicator name

mapme.biodiversity 0.3.0

Breaking changes

  • on MacOS s2-based calculations are now enabled so users can expect the package to return numerically equivalent results on any operating system (#131)

  • the online source for the nasa_srtm resource shows an expired SSL certificate since November 2022. The get_resources() function now includes an error and instructions how to disable SSL certification at a users own risk. The websites maintainers have been contacted and asked to renew the certification. (#131)

New features

  • GFW resources are now updated to use the latest version allowing analysis for the additional year of 2021 (#123, @fBedecarrats)

  • GFW indicators now accept numeric min_size argument allowing to specify fractional covers (#110)

  • fire indicators now allow the simultaneous calculation of indicators based on MODIS and VIIRS. Before users had to chose between one of the instruments for each analysis (#126)

Bug fixes

  • case when one or multiple assets return NA instead of a tibble is now properly tested and handled (#101)

  • Rasters are no longer temporary written to disk to omit a bug caused by applying mask/classify to an already existing raster file (#108, @Jo-Schie)

  • Bug with soilproperties set to NA caused by the function to return a data.frame instead of a tibble was fixed (#116)

  • both, treecoverloss_emissions and treecover_area_and_emissions now return 0 instead of NaN for observation years where now forest loss occurred (#120)

Internal

  • .make_global_grid() now specifies the CRS when constructing the bounding box and returns the grid in the specified CRS instead of Lat/Lon (#113)

  • .calc_active_fire_properties now uses st_coordinates to retrieve locations of fires (#119, @DavisVaughan)

  • tests for MacOS have been re-enabled (#131)

  • tests for downloading nasa_srtm resource are skipped because the SSL certificate of the online source has expired (#131)

mapme.biodiversity 0.2.1

Bug fixes

  • fixes a serious bug that occurred for tiled resources when multiple assets are within the same tile resulting in returning the same tile multiple times

Internal

  • tests to catch above mentioned bug have been introduced for tiled resources

mapme.biodiversity 0.2.0

Breaking changes

  • extensive renaming of resources and indicators. These are handled gracefully until the next release (i.e. a warning is issued and names are replaced):

  • resources:

  • treecover2000 -> gfw_treecover

  • lossyear -> gfw_lossyear

  • greenhouse -> gfw_emissions

  • traveltime -> nelson_et_al

  • nasagrace -> nasa_grace

  • mintemperature -> worldclim_min_temperature

  • maxtemperature -> worldclim_max_temperature

  • precipitation -> worldclim_precipitation

  • ecoregions -> teow

  • mangrove -> gmw

  • srtmdem -> nasa_srtm

  • indicators:

  • treecover -> treecover_area

  • emissions -> treecoverloss_emissions

  • treeloss -> treecover_area_and_emissions

  • chirpsprec -> precipitation_chirps

  • accessibility -> traveltime

  • popcount -> population_count

  • wctmin -> temperature_min_wc

  • wctmax -> temperature_max_wc

  • wcprec -> precipitation_wc

  • gmw -> mangroves_area

  • teow -> ecoregion

New features

  • new resource(s):
    • nasa_firms
  • new indicator(s):
    • active_fire_properties
    • active_fire_counts

Internal

  • adapted download routine to GMW v3 (#80)
  • removed data.table from imports

Bug fixes

  • fixing issue #84 concerning intersection of tiled datasets (#86, @Jo-Schie)

mapme.biodiversity 0.1.2

Internal

  • unit tests have been silenced in order to be more informative for reverse dependency checks
  • checks for tile availability reactivated for SRTM
  • fixed notes due to uninitialized variables in TEOW and biome indicators

mapme.biodiversity 0.1.1

Internal

  • init_portfolio() now sets the testing attribute to FALSE by default.
  • get_<resource>() functions now return filenames early if testing is set to TRUE.
  • calc_<indicator>() examples now copy files to the R temporal directory and are wrapped in try() to avoid errors/warnings on CRAN if an internet resource is not available.
  • examples for calc_tri() and calc_elevation() are now disabled on CRAN because of the responsiveness of CIGAR servers.

mapme.biodiversity 0.1.0

Breaking changes

  • renamed '.assetid' to 'assetid' (#22)

New features

  • None

Internal

  • ensures that tests and examples adhere to CRAN policies of only writing to the temporal directory (#22).

mapme.biodiversity 0.0.1

Initial release

  • Added a NEWS.md file to track changes to the package.
  • initial supported resources are:
    • ecoregions
    • esalandcover
    • greenhouse
    • lossyear
    • mangrove
    • nasagrace
    • soilgrids
    • srtmdem
    • traveltime
    • treecover
    • worldclim
    • worldpop
  • initial supported indicators are:
    • acessibility
    • biome
    • chirpsprec
    • drought_indicator
    • elevation
    • emissions
    • gmw
    • landcover
    • popcount
    • soilproperties
    • teow
    • treecover
    • treeloss
    • tri
    • wcprec
    • wctmax
    • wctmin
  • init_portfolio() is used to initialize a portfolio object. The input must be an sf object where all geometries are of type POLYGON
  • users can request the download of one or more resources via get_resources()
  • users can request the processing of an indicator via calc_indicators()
  • indicators are added to the portfolio object as nested list columns
  • a processed portfolio object can be exported as a GeoPackage via write_portfolio()
  • a portfolio saved to disk as a GeoPackage can be read back into R via read_portfolio(). If users wish to download additional resources or calculate indicators, init_portfolio() has to be called again.
  • Parallelization using multiple cores on the host machine is disabled on Windows
  • on MacOS, the s2 engine for spherical geometric vector operations is disabled and lwgeom is used instead.

Internal

  • Introduced absolute URLS in userguide.Rmd pointing to the online documentation (#59)
  • \value tags added to all exported functions explaining what is the output/side effect (#59)
  • using requireNamespace() instead of installed.packages() to check if packages listed in SUGGEST are loadable (#58)