Class: GDAL::Transformers::RPCTransformer

Inherits:
Object
  • Object
show all
Defined in:
lib/gdal/transformers/rpc_transformer.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(rpc_info, pixel_error_threshold, reversed: false, **options) ⇒ RPCTransformer

Returns a new instance of RPCTransformer.

Parameters:

  • rpc_info (GDAL::RPCInfo)
  • reversed (Boolean) (defaults to: false)
  • pixel_error_threshold (Float)
  • options (Hash)

Options Hash (**options):

  • rpc_height (Number)

    A fixed hight offset to be applied to all points passed in.

  • rpc_height_scale (Number)

    A factor used to multiply heights above ground. Useful when elevation offsets of the DEM are not expressed in meters.

  • rpc_dem (Number)

    Name of a GDAL dataset used to extract elevation offsets from. This should be used in replacement of rpc_height.

  • rpc_deminterpolation (Number)

    near, bilinear, or cubic.

  • rpc_dem_missing_value (Number)

    Value of DEM height that must be unsed in case the DEM has a nodata value at the sampling point, or if its extent doesn’t cover the requested coordinate.



38
39
40
41
42
43
44
45
46
47
48
49
# File 'lib/gdal/transformers/rpc_transformer.rb', line 38

def initialize(rpc_info, pixel_error_threshold, reversed: false, **options)
  options_ptr = GDAL::Options.pointer(options)

  pointer = FFI::GDAL::Alg.GDALCreateRPCTransformer(
    rpc_info,
    reversed,
    pixel_error_threshold,
    options_ptr
  )

  @c_pointer = FFI::AutoPointer.new(pointer, RPCTransformer.method(:release))
end

Instance Attribute Details

#c_pointerFFI::Pointer (readonly)

Returns C pointer to the C RPC transformer.

Returns:

  • (FFI::Pointer)

    C pointer to the C RPC transformer.



19
20
21
# File 'lib/gdal/transformers/rpc_transformer.rb', line 19

def c_pointer
  @c_pointer
end

Class Method Details

.functionFFI::Pointer

Returns:

  • (FFI::Pointer)


7
8
9
# File 'lib/gdal/transformers/rpc_transformer.rb', line 7

def self.function
  FFI::GDAL::Alg::RPCTransform
end

.release(pointer) ⇒ Object

Parameters:

  • pointer (FFI::Pointer)


12
13
14
15
16
# File 'lib/gdal/transformers/rpc_transformer.rb', line 12

def self.release(pointer)
  return unless pointer && !pointer.null?

  FFI::GDAL::Alg.GDALDestroyRPCTransformer(pointer)
end

Instance Method Details

#destroy!Object



51
52
53
54
55
56
# File 'lib/gdal/transformers/rpc_transformer.rb', line 51

def destroy!
  return unless @c_pointer

  FFI::GDAL::Alg.GDALDestroyRPCTransformer(@c_pointer)
  @c_pointer = nil
end

#functionFFI::Pointer

Returns:

  • (FFI::Pointer)


59
60
61
# File 'lib/gdal/transformers/rpc_transformer.rb', line 59

def function
  self.class.function
end