Hemos investigado herramientas avanzadas como lenguajes de programación para el análisis espacial, hasta ahora Python fue nuestra elección de facto debido a su velocidad de aprendizaje y su facilidad de uso. Sin embargo, cuando se trabaja con una gran cantidad de datos y se realizan consultas espaciales masivas, surgen algunas preguntas sobre el rendimiento de Python y luego analizamos otras opciones como R, Julia o Rust. Hemos realizado este tutorial para la instalación de la librería espacial Terra en un kernel R en Jupyter bajo un entorno Conda, el tutorial cubre todos los pasos de instalación en Windows junto con algunos ejemplos para cargar y plotear datos vectoriales y ráster.
Tutorial
Código
Líneas de comando en Anaconda Prompt:
Crea el entorno
conda create -n rspatial
Activa tu entorno
conda activate rspatial
Instala las librerías requeridas
conda install -c conda-forge r-terra jupyterlab r-irkernel
Si desea desactivar el entorno, escriba:
deactivate
Si desea eliminar el entorno, simplemente escriba
conda env remove -n rspatial
Este es el código de ejemplo para cargar archivos shapefiles y rásteres
#Check the version of R to check the compatibily with the terra package
R.version
_
platform x86_64-w64-mingw32
arch x86_64
os mingw32
system x86_64, mingw32
status
major 4
minor 1.3
year 2022
month 03
day 10
svn rev 81868
language R
version.string R version 4.1.3 (2022-03-10)
nickname One Push-Up
#install required packages for terra
#install.packages('codetools')
package 'codetools' successfully unpacked and MD5 sums checked
The downloaded binary packages are in
C:\Users\saulm\AppData\Local\Temp\Rtmpuicsub\downloaded_packages
#call the terra package
library("terra")
terra 1.5.21
Abrir datos vectoriales espaciales
#open the shapefile
vectorData <- vect('../In/Shp/Geology_Aoi_Reclass_10N.shp')
#get shapefile info
vectorData
Warning message:
"PROJ: proj_identify: SQLite error on SELECT key, value FROM metadata WHERE key IN ('DATABASE.LAYOUT.VERSION.MAJOR', 'DATABASE.LAYOUT.VERSION.MINOR'): no such table: metadata (GDAL error 1)"
class : SpatVector
geometry : polygons
dimensions : 2, 12 (geometries, attributes)
extent : 546956.3, 557456.2, 5294244, 5311978 (xmin, xmax, ymin, ymax)
source : Geology_Aoi_Reclass_10N.shp
coord. ref. : WGS_1984_UTM_Zone_10N
names : OBJECTID GUNIT_TXT COMMENTS PUB_SOURCE PUB_NUMBER
type : <num> <chr> <chr> <chr> <chr>
values : 1.108e+04 Qw Whidbey Format~ USGS MF 1541
1.107e+04 Qp Peat (Holocene) USGS MF 1541
QUAD_NAME FEATURE_LI AGE_LITHOL UNIQUE_ID Shape_Leng Shape_Area
<chr> <chr> <chr> <int> <num> <num>
Edmonds East USGS | MF 1541~ Pleistocene gl~ 11081 3.847e+04 3.086e+06
Edmonds East USGS | MF 1541~ Quaternary bog~ 11071 1.53e+04 7.726e+06
ModelCode
<int>
2
3
#set size of plot
library(repr)
options(repr.plot.width=12, repr.plot.height=16)
#plot shapefile
plot(vectorData, 'AGE_LITHOL')
Abrir datos ráster
#open raster dataset as grd
rasterData <- rast('../In/Rst/dem10m_clip.tif')
#show raster info
rasterData
class : SpatRaster
dimensions : 1773, 1049, 1 (nrow, ncol, nlyr)
resolution : 10.001, 10.00067 (x, y)
extent : 546964.7, 557455.7, 5294244, 5311975 (xmin, xmax, ymin, ymax)
coord. ref. : WGS 84 / UTM zone 10N (EPSG:32610)
source : dem10m_clip.tif
name : dem10m_clip
#replace negative/empty values for NA
rasterData[rasterData<0] <- NA
#plot data
plot(rasterData)
Datos de entrada
Puede descargar los datos de entrada desde este link.