Geodot Plugin
Loading...
Searching...
No Matches
Public Member Functions | Public Attributes | Static Protected Member Functions | List of all members
godot::GeoRasterLayer Class Reference

#include <geodata.h>

Inheritance diagram for godot::GeoRasterLayer:

Public Member Functions

bool is_valid ()
 Returns true if the layer could successfully be loaded.
 
bool has_write_access ()
 Returns true for read-write-access and false for read-only-access.
 
Dictionary get_file_info ()
 
int get_epsg_code ()
 Returns the spatial reference of the underlying dataset.
 
Image::Format get_format ()
 Returns the Image format which corresponds to the data within this raster layer.
 
int get_band_count ()
 Get the total amount of raster bands contained in the layer. Returns 0 if layer is not valid. More...
 
Array get_band_descriptions ()
 Returns the descriptions of the individual raster bands as strings in an array.
 
Ref< GeoDatasetget_dataset ()
 
Ref< GeoRasterLayerclone ()
 
Ref< GeoImageget_image (double top_left_x, double top_left_y, double size_meters, int img_size, GeoImage::INTERPOLATION interpolation_type)
 
Ref< GeoImageget_band_image (double top_left_x, double top_left_y, double size_meters, int img_size, GeoImage::INTERPOLATION interpolation_type, int band_index)
 
float get_value_at_position (double pos_x, double pos_y)
 
float get_value_at_position_with_resolution (double pos_x, double pos_y, double pixel_size_meters)
 
void set_value_at_position (double pos_x, double pos_y, Variant value)
 
void smooth_add_value_at_position (double pos_x, double pos_y, double summand, double radius)
 
void overlay_image_at_position (double pos_x, double pos_y, Ref< Image > image, double scale)
 
Rect2 get_extent ()
 Returns the extent of the layer in projected meters (assuming it is rectangular).
 
Vector3 get_center ()
 
float get_min ()
 
float get_max ()
 
float get_pixel_size ()
 Returns the length of a side of a pixel in the dataset, in meters.
 
void load_from_file (String file_path, bool write_access)
 Load a raster dataset file such as a GeoTIFF into this object.
 
void set_native_dataset (std::shared_ptr< NativeDataset > new_dataset)
 
void set_origin_dataset (Ref< GeoDataset > dataset)
 

Public Attributes

bool write_access
 
String name
 

Static Protected Member Functions

static void _bind_methods ()
 

Detailed Description

A layer which contains raster data. Corresponds to a Raster GDALDataset or Subdataset. Its name property is either the layer name, or the full path if it wasn't opened from a dataset (i.e. get_dataset() returns null).

Member Function Documentation

◆ clone()

Ref< GeoRasterLayer > godot::GeoRasterLayer::clone ( )

Returns a clone of this layer which points to the same file, but uses a different object to access it. This is required when using the same layer in multiple threads.

◆ get_band_count()

int godot::GeoRasterLayer::get_band_count ( )

Get the total amount of raster bands contained in the layer. Returns 0 if layer is not valid.

Returns
the total amount of raster bands in the layer.

◆ get_band_image()

Ref< GeoImage > godot::GeoRasterLayer::get_band_image ( double  top_left_x,
double  top_left_y,
double  size_meters,
int  img_size,
GeoImage::INTERPOLATION  interpolation_type,
int  band_index 
)

Like get_image but only returns the GeoImage of a single Band. Useful for datasets with many bands which are interpreted in an unusual way (i.e. not RGB(A)).

◆ get_center()

Vector3 godot::GeoRasterLayer::get_center ( )

Returns the point in the center of the layer in projected meters. The y-component is 0.0.

◆ get_dataset()

Ref< GeoDataset > godot::GeoRasterLayer::get_dataset ( )

Returns the dataset which this layer was opened from or null if it was opened directly, e.g. from a GeoTIFF.

◆ get_file_info()

Dictionary godot::GeoRasterLayer::get_file_info ( )

Returns information about this file: is_subdataset: true if this layer is part of a larger dataset (e.g. a GeoPackage) and not a single file (e.g. a GeoTIFF). path: the path to the underlying dataset (e.g. the GeoTIFF, or the GeoPackage which this layer was opened from). name: the name of the layer (if is_subdataset is true) or the name of the file (otherwise).

◆ get_image()

Ref< GeoImage > godot::GeoRasterLayer::get_image ( double  top_left_x,
double  top_left_y,
double  size_meters,
int  img_size,
GeoImage::INTERPOLATION  interpolation_type 
)

Returns a GeoImage corresponding to the given position and size. The requested section is read from this GeoRasterLayer into that GeoImage, so this operation is costly for large images. (Consider multithreading.)

◆ get_max()

float godot::GeoRasterLayer::get_max ( )

Returns the largest value found in the first raster band of the dataset. Note that this requires the dataset to have pre-computed statistics!

◆ get_min()

float godot::GeoRasterLayer::get_min ( )

Returns the smallest value found in the first raster band of the dataset. Note that this requires the dataset to have pre-computed statistics!

◆ get_value_at_position()

float godot::GeoRasterLayer::get_value_at_position ( double  pos_x,
double  pos_y 
)

Returns the value in the GeoRasterLayer at exactly the given position. Note that when reading many values from a confined area, it is more efficient to call get_image and read the pixels from there.

◆ get_value_at_position_with_resolution()

float godot::GeoRasterLayer::get_value_at_position_with_resolution ( double  pos_x,
double  pos_y,
double  pixel_size_meters 
)

Returns the value in the GeoRasterLayer at exactly the given position, at the given resolution. This is useful for getting heights which match up with the heights of a lower resolution image which was fetched using get_image, rather than being as detailed as possible.

◆ overlay_image_at_position()

void godot::GeoRasterLayer::overlay_image_at_position ( double  pos_x,
double  pos_y,
Ref< Image >  image,
double  scale 
)

Adds the given image to the raster dataset at the given position. Fully opaque values are replaced; values with alpha between 0 and 1 are interpolated between original and new. A scale of 1 assumes that both images have the same resolution per meter; 2 means that one pixel in this image corresponds to two pixels in the dataset. Useful for drawing into datasets with custom brushes, e.g. a pre-defined land-use pattern.

◆ set_native_dataset()

void godot::GeoRasterLayer::set_native_dataset ( std::shared_ptr< NativeDataset new_dataset)

Set the GDALDataset object for this layer. Must be a valid raster dataset. Not exposed to Godot since Godot doesn't know about GDALDatasets - this is only for internal use.

◆ set_origin_dataset()

void godot::GeoRasterLayer::set_origin_dataset ( Ref< GeoDataset dataset)

Sets the dataset which this layer was opened from. Not exposed to Godot since it should never construct GeoFeatureLayers by hand.

◆ set_value_at_position()

void godot::GeoRasterLayer::set_value_at_position ( double  pos_x,
double  pos_y,
Variant  value 
)

Replaces exactly one pixel at the given position with the given value. The value must correspond to this layer's type (e.g. a float for Float32 images and a Color for RGB images). Useful for modifying datasets on a small scale, e.g. correcting land-use values.

◆ smooth_add_value_at_position()

void godot::GeoRasterLayer::smooth_add_value_at_position ( double  pos_x,
double  pos_y,
double  summand,
double  radius 
)

Adds the given summand to the previous value at the given position and smoothly cross-fades into the original data along the given radius. Useful for terraforming terrain, e.g. creating a new hill with smooth slopes.


The documentation for this class was generated from the following files: