Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/wpgp/popRF
Random Forest-informed Population Disaggregation R package
https://github.com/wpgp/popRF
disaggregation population random-forest
Last synced: 3 months ago
JSON representation
Random Forest-informed Population Disaggregation R package
- Host: GitHub
- URL: https://github.com/wpgp/popRF
- Owner: wpgp
- Created: 2021-05-20T22:37:20.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2023-12-17T08:58:22.000Z (11 months ago)
- Last Synced: 2024-05-18T03:34:01.423Z (6 months ago)
- Topics: disaggregation, population, random-forest
- Language: R
- Homepage:
- Size: 7.71 MB
- Stars: 28
- Watchers: 4
- Forks: 2
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
## popRF: Random Forest-informed Population Disaggregation R package
High resolution, recent data on human population distributions are important for measuring impacts of population growth, monitoring human-environment interactions and for planning and policy development. Many methods are used to disaggregate census data and predict population densities for finer scale, gridded population data sets.
`popRF` is a population modelling R package utilizing Random Forests to inform a dasymetric redistribution of census-based population count data. A description of using Random Forests machine learning method in `popRF` is described in [Stevens et al](https://journals.plos.org/plosone/article?id=10.1371/journal.pone.0107042).### Installation
The `popRF` package can be installed directly from Github.``` r
install.packages("devtools")
devtools::install_github("wpgp/popRF")
```### Demo
The `popRF` package has a demo function `popRFdemo` to generate a population layer
using the [WorldPop](https://www.worldpop.org) geospatial covariates and
subnational census-based population estimates for 230 countries.
All necessary covariates will be downloaded and used to disaggregat population.
All input datasets use a geographical coordinate system (GCS) with WGS 1984
datum (EPSG:4326) in Geotiff format at a resolution of 3 arc-second
(0.00083333333 decimal degree, approximately 100m at the equator).The following script will produce a population layer for Nepal (NPL) using 4 cores.
``` r
library("popRF")popRFdemo(project_dir="/home/user/demo",
country="NPL",
cores=4)
```### Basic Usage
``` r
library("popRF")# Specifying a name of the file from which the unique area ID and corresponding
# population values are to be read from. The file should contain two columns
# comma-separated with the value of administrative ID and population without
# columns names. If it does not contain an absolute path, the file name is
# relative to the current working directorypop_table <- list("NPL"="/user/npl_population.csv")
# Specifying a nested list of named list(s), i.e. where each element of the
# first list is a named list object with atomic elements. The name of
# each named list corresponds to the 3-letter ISO code of a specified
# country. The elements within each named list define the specified
# input covariates to be used in the random forest model, i.e. the name
# of the covariates and the corresponding, if applicable and local, path
# to them. If the path is not a full path, it is assumed to be relative
# to the current working directoryinput_cov <- list(
"NPL"= list(
"cov1" = "covariate1.tif",
"cov2" = "covariate2.tif"
)
)
# Specifying a named list where each element of the list defines the
# path to the input mastergrid(s), i.e. the template gridded raster(s)
# that contains the unique area IDs as their value. The name(s)
# corresponds to the 3-letter ISO code(s) of a specified country(ies).
# Each corresponding element defines the path to the mastergrid(s). If
# the path is local and not a full path, it is assumed to be relative to
# the current working directoryinput_mastergrid <- list("NPL" = "npl_mastergrid.tif")
# Specifying a named list where each element of the list defines the path
# to the input country-specific watermask. The name corresponds to the
# 3-letter ISO code of a specified country. Each corresponding element
# defines the path to the watermask, i.e. the binary raster that
# delineates the presence of water (1) and non-water (0), that is used
# to mask out areas from modelling. If the path is local and not a full
# path, it is assumed to be relative to the current working directory.input_watermask <- list("NPL" = "npl_watermask.tif")
# Specifying a named list where each element of the list defines the path
# to the input raster(s) containing the pixel area. The name corresponds
# to the 3-letter ISO code of a specified country. Each corresponding
# element defines the path to the raster whose values indicate the area
# of each unprojected (WGS84) pixel. If the path is local and not a full
# path, it is assumed to be relative to the current working directory.input_px_area <- list("NPL" = "npl_px_area.tif")
# Running a model
res <- popRF(pop=pop_table,
cov=input_cov,
mastergrid=input_mastergrid,
watermask=input_watermask,
px_area=input_px_area,
output_dir="/user/output",
cores=4)# Plot populataion raster
plot(res$pop)# Plot Error via Trees
plot(res$popfit)
```### Outputs
Population raster layer in GeoTiff format.
## Contributions
Contributions are welcome. Please raise or respond to an issue, or create a new
branch to develop a feature/modification and submit a pull request.## Acknowledgements
``` r
#> citation("popRF")#> To cite popRF in publications use:
#>
#> Bondarenko M., Nieves J.J., Forrest R.S., Andrea E.G., Jochem C., Kerr D., and Sorichetta A. (2021): popRF: Random Forest-informed Population
#> Disaggregation R package, _Comprehensive R Archive Network (CRAN)_, url:https://cran.r-project.org/package=popRF.
#>
#> A BibTeX entry for LaTeX users is
#>
#> @Manual{,
#> title = {popRF: Random Forest-informed Population Disaggregation R package.},
#> author = {Maksym Bondarenko and Jeremiah J Nieves and Forrest R. Stevens and Andrea E. Gaughan and Chris Jochem and David Kerr and Alessandro Sorichetta},
#> year = {2021},
#> journal = {Comprehensive R Archive Network (CRAN)},
#> url = {https://cran.r-project.org/package=popRF},
#> language = {English},
#> }
```### License
[GNU General Public License v3.0 (GNU GPLv3)](https://www.gnu.org/licenses/gpl-3.0.en.html)