SimpleSDMLayers

Base.strideMethod
Base.stride(layer::SDMLayer)

Return the stride for a single dimension, where 1 is northing and 2 is easting

source
Base.strideMethod
Base.stride(layer::SDMLayer)

Return the stride (the length of half a cell) for a layer. The result is given as northing, easting stride.

source
SimpleSDMLayers._read_geotiffMethod
geotiff(file; bandnumber::Integer=1, left=nothing, right=nothing, bottom=nothing, top=nothing, driver)

The geotiff function reads a geotiff file, and returns it as a matrix of the correct type. The optional arguments left, right, bottom, and left are defining the bounding box to read from the file. This is particularly useful if you want to get a small subset from large files.

source
SimpleSDMLayers._write_geotiffMethod
geotiff(file::AbstractString, layers::Vector{SDMLayer{T}}; nodata::T=convert(T, -9999)) where {T <: Number}

Stores a series of layers in a file, where every layer in a band. See geotiff for other options.

source
SimpleSDMLayers.burninMethod
burnin(L::SDMLayer, v::Vector{T}) where {T}

Writes the value of v in a layer similar to L, and returns it. It is ASSUMED (but essentially impossible to check) that the values of v are presented in the correct order. This uses burnin! internally.

source
SimpleSDMLayers.cellareaMethod
cellarea(layer::T; R = 6371.0)

Returns the area of each cell in km², assuming a radius of the Earth or R (in km). This is only returned for layers in WGS84, which can be forced with interpolate.

source
SimpleSDMLayers.coarsenFunction
coarsen(f, L::SDMLayer, mask=(2, 2))

Coarsens a layer by collecting a sub-grid of size mask, and applying the function f to all non-empty cells within this mask. The core constraint is that f must take a vector and return a single element (and the size of the mask must be compatible with the size of the layer).

source
SimpleSDMLayers.interpolate!Method
interpolate!(destination::SDMLayer, source::SDMLayer)

Interpolates the data from the source layer into the destination layer. This is useful when the two layers have different resolutions, or different projections.

source
SimpleSDMLayers.interpolateMethod
interpolate(layer::SDMLayer, destination::SDMLayer)

Interpolates a layer target so that it uses the same grid, crs, etc as destination.

source
SimpleSDMLayers.interpolateMethod
interpolate(layer::SDMLayer; dest="+proj=natearth2", newsize=nothing)

Returns an interpolated version of the later under the new destination CRS (natearth2 by default), and with optionally a new size of newsize.

source
SimpleSDMLayers.mask!Method
mask!(layer::SDMLayer, template::SDMLayer)

Updates the positions in the first layer to be those that have a value in the second layer.

source
SimpleSDMLayers.maskMethod
mask(layer::SDMLayer, template::SDMLayer)

Returns a copy of the first layer masked according to the second layer. See also mask!.

source
SimpleSDMLayers.mosaicMethod
mosaic(f, stack::Vector{<:SDMLayer})

Returns a layer that is the application of f to the values at each cell in the array of layers given as the second argument.

source
SimpleSDMLayers.nodata!Method
nodata!(layer::SDMLayer, v)

Turns off all cells containing the value v. This is an overload only applied when v is not of the correct type for layer.

source
SimpleSDMLayers.nodata!Method
nodata!(layer::SDMLayer{T}, nodata::T) where {T}

Changes the value of the layer representing no data. This modifies the layer passed as its first argument.

source
SimpleSDMLayers.reclassifyMethod
reclassify(L::SDMLayer, rules::Pair...)

Returns a layer where the cells are updated as a function of rules, given as (function) => value, where the function must return a Bool value. For example, reclassify(layer, (x -> abs(x)<=1)=>true) will set a value of true to all cells with values in -1;1, and maks all other cells. You can use multiple rules, in which case they are applied sequentially (a later rule can overwrite an earlier one).

source
SimpleSDMLayers.slidingwindow!Method
slidingwindow!(destination::SDMLayer, f::Function, layer::SDMLayer; radius::AbstractFloat=100.0)

Performs a sliding window analysis in which all cells in the destination layer receive the output of applying the function f to all cells in a radius of radius kilometer on the layer layer.

The f function must take a vector of value as an input, and must return a single value as an output. The destination layer must have the correct type re. what is returned by f.

If the centervalue keyword is set to true (default is false), then the f function must take (r, v) an input, where r is the value for the reference cell, and v is the vector of values for all other cells in the window. This is useful to measure, for example, z-scores within a known distance radius: (r,v) -> (r-mean(v))/std(v).

Internally, this function uses threads to speed up calculation quite a bit.

source
SimpleSDMLayers.slidingwindowMethod
slidingwindow(f::Function, layer::SDMLayer; kwargs...)

Performs a sliding window analysis in which all cells in the returned layer receive the output of applying the function f to all cells in a radius of radius kilometer on the layer layer.

The f function must take a vector of values as an input, and must return a single value as an output. The returned layer will have the type returned by f.

If the centervalue keyword is set to true (default is false), then the f function must take (r, v) an input, where r is the value for the reference cell, and v is the vector of values for all other cells in the window. This is useful to measure, for example, z-scores within a known distance radius: (r,v) -> (r-mean(v))/std(v).

Internally, this function uses threads to speed up calculation quite a bit, and uses the slidingwindow! function.

source
SimpleSDMLayers.IncompatibleProjectionErrorType
IncompatibleProjectionError

An error returned when two layers do not have compatible projections. Compatibility is evaluated by converting the SRS of layers to their proj4 string and then testing for string equality.

source
SimpleSDMLayers.SDMLayerType
SDMLayer{T}

Defines a layer of geospatial information.

The type has two data fields:

  • grid: a Matrix of type T
  • indices: a BitMatrix to see which positions are valued

Each row in the grid field represents a slice of the raster of equal northing, i.e. the information is laid out in the matrix as it would be represented on a map once displayed. Similarly, columns have the same easting.

The geospatial information is represented by three positional fields:

  • x and y: two tuples, indicating the coordinates of the corners alongside the x and y dimensions (e.g. easting/northing) - the default values are (-180., 180.) and (-90., 90.), which represents the entire surface of the globe in WGS84
  • crs: any String representation of the CRS which can be handled by Proj.jl - the default is EPSG:4326

Note that we recommend that the SRS be represented as WKT, then as the "EPSG:xxx" format, and then as a a PROJ4 string, by order of decreasing preference. An ArchGDAL representation is always accessible through the projection method. Note that the functions will, internally, convert the projection to different formats in order to achieve specific tasks.

source