Raster

class CreateNetCDF(fp, title, source, institution, n_timesteps, lons, lats, epsg, varname, units, dtype, chunksizes, fill_value, compression_level, comment=None)[source]

Class to create easy create a spatial NetCDF-file.

Parameters:
  • fn – Filepath.

  • title (str) – Title of NetCDF.

  • source (str) – Source of data.

  • institution (str) – Institution where data was created.

  • n_timesteps (Optional[int]) – Number of timesteps in NetCDF. None if NetCDF should not have time dimension.

  • lons (ndarray) – Array of longitudes.

  • lats (ndarray) – Array of latitudes.

  • epsg (int) – EPSG code.

  • varname (str) – Name of variable to store.

  • units (str) – Unit of variable.

  • dtype (str) – NetCDF dtype. See NetCDF documentation for valid dtypes: https://unidata.github.io/netcdf4-python/

  • chunksizes (tuple[int]) – Sizes of datachunks. (time, lat, lon) if time dimension exists, otherwise (lat, lon).

  • fill_value (Union[float, int]) – Value to represent nodata.

  • compression_level (int) – NetCDF compression level (1-9)

  • comment (str) – Optional dataset comment.

write(values, dt=None)[source]

Write layer to file.

Parameters:
  • values (ndarray) – Values to write.

  • dt (datetime) – Optional datetime to write. If NetCDF has no time dimension, do not write.

Return type:

None

exception NetCDFHasEmtpyLayersException[source]

Raised when one or more layers are empty

clip_to_other(array, src_profile, other_profile)[source]

Clip array to rasterio profile.

Parameters:
  • array (ndarray) – Array to clip.

  • src_profile (Profile) – Rasterio profile of source array.

  • other_profile (Profile) – Rasterio profile of array to clip to.

Returns:
  • outarray – Clipped array.

  • profile – Updated profile.

Return type:

tuple[ndarray, Profile]

clip_to_xy_bounds(src, profile, array, xmin, xmax, ymin, ymax)[source]

Clips rasterio dataset to given bounds.

Parameters:
  • src (DatasetReader) – Rasterio dataset.

  • profile (Profile) – Rasterio profile of dataset.

  • array (ndarray) – Array to clip.

  • xmin (int) – Minimum xbound.

  • xmax (int) – Maximum xbound.

  • ymin (int) – Minimum ybound.

  • ymax (int) – Maximum ybound.

Returns:
  • profile – Updated profile for cut array.

  • array – Array data.

Return type:

ndarray

coord_to_pixel(coord, gt)[source]

Converts coordinate to pixel (x, y) for given geotransformation.

Parameters:
  • coord (ndarray) – the coordinate (lon, lat) that need to be transformed to pixel

  • gt (tuple[float, float, float, float, float, float]) – the geotransformation. Must be unrotated

Returns:

array – tuple of pixel (x, y)

Return type:

tuple[int, int]

coords_to_pixels(coords, gt, dtype=<class 'numpy.uint32'>)[source]

Converts array of coordinates to array of pixels for given geotransformation.

Parameters:
  • coords – the coordinates (lon, lat) that need to be transformed to pixels (shape: 2, n)

  • gt (tuple) – the geotransformation. Must be unrotated

Returns:

array – 2d-array of pixels per coordinate (shape: 2, n)

Return type:

tuple[ndarray, ndarray]

pixel_to_coord(px, py, gt)[source]

Converts pixel (x, y) to coordinate (lon, lat) for given geotransformation. Uses the upper left corner of the pixel. To use the center, add 0.5 to input pixel. :rtype: Tuple[float, float]

Parameters:

pixel: the pixel (x, y) that need to be transformed to coordinate gt: the geotransformation. Must be unrotated

Returns:

array: the coordinate (lon, lat)

pixels_to_coords(pixels, gt)[source]

Converts pixels (x, y) to coordinates (lon, lat) for given geotransformation. Uses the upper left corner of the pixels. To use the centers, add 0.5 to input pixels. :rtype: ndarray

Parameters:

pixels: the pixels (x, y) that need to be transformed to coordinates (shape: 2, n) gt: the geotransformation. Must be unrotated

Returns:

array: the coordinates (lon, lat) (shape: 2, n)

reproject_pixel(gt_from, gt_to, px_in, py_in)[source]

Reproject pixel.

Parameters:
  • gt_from (tuple[float, float, float, float, float, float]) – Orginal geotransformation.

  • gt_to (tuple[float, float, float, float, float, float]) – Target geotransformation.

  • px_in (int) – Input xpixel.

  • py_in (int) – Input ypixel.

Return type:

tuple[int, int]

sample_from_map(array, coords, gt)[source]

Sample coordinates from a map. Can handle multiple dimensions.

Parameters:
  • array (ndarray) – the map to sample from (2+n dimensions)

  • coords (ndarray) – the coordinates used to sample (shape: 2, m)

  • gt (tuple[float, float, float, float, float, float]) – the geotransformation. Must be unrotated

Returns:

array – values per coordinate

Return type:

ndarray

upscale(array, src_profile, factor)[source]

“Upscale array and rasterio profile by x amount.

Parameters:
  • array (ndarray) – Array to upscale.

  • src_profile (ndarray) – Rasterio profile of source array.

  • factor (ndarray) – Factor by which to upscale.

Returns:
  • array – Upscaled array.

  • profile – Updated rasterio profile.

Return type:

tuple[ndarray, Profile]

write_to_array(array, values, coords, gt)[source]

Write values using coordinates to a map. If multiple coordinates map to a single cell, the values are added. The operation is inplace

Parameters:

array: the 2-dimensional array to write to values: the values to write (shape: n) coords: the coordinates of the values (shape: 2, n) gt: the geotransformation. Must be unrotated

Returns:

array: the array with the values added (operation is inplace)