ffi-gdal 1.0.3 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.devcontainer/Dockerfile +9 -0
- data/.devcontainer/devcontainer.json +98 -0
- data/.github/CODEOWNERS +1 -0
- data/.github/workflows/codacy.yml +3 -3
- data/.github/workflows/codeql.yml +4 -4
- data/.github/workflows/continuous-integration.yml +30 -19
- data/.github/workflows/dependency-review.yml +2 -2
- data/.github/workflows/specs-in-docker.yml +12 -6
- data/.gitignore +4 -1
- data/Changelog.md +45 -4
- data/Gemfile +4 -2
- data/README.md +35 -0
- data/bin/rake +1 -1
- data/bin/rspec +1 -1
- data/bin/rubocop +1 -1
- data/lib/ext/numeric_as_data_type.rb +1 -1
- data/lib/ffi/cpl/vsi.rb +10 -0
- data/lib/ffi/gdal/gdal.rb +9 -2
- data/lib/ffi/gdal/grid_data_metrics_options.rb +27 -5
- data/lib/ffi/gdal/grid_inverse_distance_to_a_power_options.rb +30 -10
- data/lib/ffi/gdal/grid_moving_average_options.rb +30 -5
- data/lib/ffi/gdal/grid_nearest_neighbor_options.rb +24 -4
- data/lib/ffi/gdal/internal_helpers/gdal_version.rb +15 -0
- data/lib/ffi/gdal/internal_helpers/layout_version.rb +9 -0
- data/lib/ffi/gdal/internal_helpers/layout_version_resolver.rb +24 -0
- data/lib/ffi/gdal/internal_helpers.rb +11 -0
- data/lib/ffi/gdal/utils.rb +984 -0
- data/lib/ffi/gdal/version.rb +1 -1
- data/lib/ffi/gdal.rb +3 -1
- data/lib/ffi/ogr/core.rb +1 -1
- data/lib/ffi/ogr/srs_api.rb +17 -0
- data/lib/gdal/cpl_error_handler.rb +30 -15
- data/lib/gdal/exceptions.rb +35 -16
- data/lib/gdal/extensions/color_table/extensions.rb +1 -1
- data/lib/gdal/extensions/gridder.rb +4 -0
- data/lib/gdal/geo_transform.rb +13 -0
- data/lib/gdal/grid_algorithms/algorithm_base.rb +35 -0
- data/lib/gdal/grid_algorithms/inverse_distance_to_a_power.rb +3 -7
- data/lib/gdal/grid_algorithms/metric_average_distance.rb +5 -4
- data/lib/gdal/grid_algorithms/metric_average_distance_pts.rb +5 -4
- data/lib/gdal/grid_algorithms/metric_count.rb +5 -4
- data/lib/gdal/grid_algorithms/metric_maximum.rb +5 -4
- data/lib/gdal/grid_algorithms/metric_minimum.rb +5 -4
- data/lib/gdal/grid_algorithms/metric_range.rb +5 -4
- data/lib/gdal/grid_algorithms/moving_average.rb +3 -7
- data/lib/gdal/grid_algorithms/nearest_neighbor.rb +3 -7
- data/lib/gdal/grid_algorithms.rb +2 -0
- data/lib/gdal/internal_helpers.rb +8 -5
- data/lib/gdal/major_object.rb +6 -0
- data/lib/gdal/raster_band.rb +16 -12
- data/lib/gdal/utils/dem/options.rb +52 -0
- data/lib/gdal/utils/dem.rb +108 -0
- data/lib/gdal/utils/grid/options.rb +52 -0
- data/lib/gdal/utils/grid.rb +72 -0
- data/lib/gdal/utils/helpers/dataset_list.rb +43 -0
- data/lib/gdal/utils/helpers/string_list.rb +47 -0
- data/lib/gdal/utils/helpers.rb +11 -0
- data/lib/gdal/utils/info/options.rb +52 -0
- data/lib/gdal/utils/info.rb +40 -0
- data/lib/gdal/utils/nearblack/options.rb +52 -0
- data/lib/gdal/utils/nearblack.rb +119 -0
- data/lib/gdal/utils/rasterize/options.rb +52 -0
- data/lib/gdal/utils/rasterize.rb +108 -0
- data/lib/gdal/utils/translate/options.rb +52 -0
- data/lib/gdal/utils/translate.rb +72 -0
- data/lib/gdal/utils/vector_translate/options.rb +52 -0
- data/lib/gdal/utils/vector_translate.rb +132 -0
- data/lib/gdal/utils/warp/options.rb +52 -0
- data/lib/gdal/utils/warp.rb +118 -0
- data/lib/gdal/utils.rb +22 -0
- data/lib/gdal/warp_options.rb +11 -2
- data/lib/gdal.rb +1 -0
- data/lib/ogr/extensions/geometry/extensions.rb +0 -8
- data/lib/ogr/extensions/layer/extensions.rb +1 -1
- data/lib/ogr/extensions/spatial_reference/extensions.rb +4 -4
- data/lib/ogr/geometry.rb +9 -6
- data/lib/ogr/layer.rb +1 -1
- data/lib/ogr/spatial_reference.rb +27 -2
- metadata +32 -5
- data/.ruby-version +0 -1
- data/lib/gdal/grid_algorithms/data_metrics_base.rb +0 -14
@@ -11,8 +11,8 @@ module OGR
|
|
11
11
|
# @raise [NameError] If the +unit_label+ isn't of a known type.
|
12
12
|
def angular_units=(unit_label)
|
13
13
|
unit_name = unit_label.to_s.upcase
|
14
|
-
unit_label = self.class.const_get("#{unit_name}_LABEL"
|
15
|
-
unit_value = self.class.const_get("RADIAN_TO_#{unit_name}"
|
14
|
+
unit_label = self.class.const_get(:"#{unit_name}_LABEL")
|
15
|
+
unit_value = self.class.const_get(:"RADIAN_TO_#{unit_name}")
|
16
16
|
|
17
17
|
set_angular_units(unit_label, unit_value)
|
18
18
|
rescue NameError
|
@@ -24,8 +24,8 @@ module OGR
|
|
24
24
|
# @raise [NameError] If the +unit_label+ isn't of a known type.
|
25
25
|
def linear_units=(unit_label)
|
26
26
|
unit_name = unit_label.to_s.upcase
|
27
|
-
unit_label = self.class.const_get("#{unit_name}_LABEL"
|
28
|
-
unit_value = self.class.const_get("METER_TO_#{unit_name}"
|
27
|
+
unit_label = self.class.const_get(:"#{unit_name}_LABEL")
|
28
|
+
unit_value = self.class.const_get(:"METER_TO_#{unit_name}")
|
29
29
|
|
30
30
|
set_linear_units(unit_label, unit_value)
|
31
31
|
rescue NameError
|
data/lib/ogr/geometry.rb
CHANGED
@@ -21,12 +21,7 @@ module OGR
|
|
21
21
|
# @param geometry [OGR::Geometry, FFI::Pointer]
|
22
22
|
# @return [OGR::Geometry]
|
23
23
|
def factory(geometry)
|
24
|
-
geometry =
|
25
|
-
if geometry.is_a?(OGR::Geometry)
|
26
|
-
geometry
|
27
|
-
else
|
28
|
-
OGR::UnknownGeometry.new(geometry)
|
29
|
-
end
|
24
|
+
geometry = OGR::UnknownGeometry.new(geometry) unless geometry.is_a?(OGR::Geometry)
|
30
25
|
|
31
26
|
new_pointer = geometry.c_pointer
|
32
27
|
return if new_pointer.nil? || new_pointer.null?
|
@@ -263,6 +258,14 @@ module OGR
|
|
263
258
|
point
|
264
259
|
end
|
265
260
|
|
261
|
+
def is_2d?
|
262
|
+
coordinate_dimension == 2
|
263
|
+
end
|
264
|
+
|
265
|
+
def is_3d?
|
266
|
+
coordinate_dimension == 3
|
267
|
+
end
|
268
|
+
|
266
269
|
# Dump as WKT to the given +file_path+; dumps to STDOUT if none is given.
|
267
270
|
#
|
268
271
|
# @param file_path [String] The text file to write to.
|
data/lib/ogr/layer.rb
CHANGED
@@ -18,7 +18,7 @@ module OGR
|
|
18
18
|
include LayerMixins::OGRQueryFilterMethods
|
19
19
|
include LayerMixins::OGRSQLMethods
|
20
20
|
|
21
|
-
FFI::OGR::Core::OGR_ALTER.constants.
|
21
|
+
FFI::OGR::Core::OGR_ALTER.constants.each_value do |obj|
|
22
22
|
const_set(obj.ruby_name, obj.value.to_i(16))
|
23
23
|
end
|
24
24
|
|
@@ -14,6 +14,8 @@ module OGR
|
|
14
14
|
# 1. "geographic", where positions are measured in long/lat.
|
15
15
|
# 2. "projected", where positions are measure in meters or feet.
|
16
16
|
class SpatialReference
|
17
|
+
Version = Struct.new(:major, :minor, :patch)
|
18
|
+
|
17
19
|
include GDAL::Logger
|
18
20
|
include SpatialReferenceMixins::CoordinateSystemGetterSetters
|
19
21
|
include SpatialReferenceMixins::Exporters
|
@@ -23,13 +25,13 @@ module OGR
|
|
23
25
|
include SpatialReferenceMixins::TypeChecks
|
24
26
|
|
25
27
|
# class_eval FFI::OGR::SRSAPI::SRS_UL.to_ruby
|
26
|
-
FFI::OGR::SRSAPI::SRS_UL.constants.
|
28
|
+
FFI::OGR::SRSAPI::SRS_UL.constants.each_value do |obj|
|
27
29
|
const_set(obj.ruby_name, obj.value)
|
28
30
|
end
|
29
31
|
|
30
32
|
METER_TO_METER = 1.0
|
31
33
|
|
32
|
-
FFI::OGR::SRSAPI::SRS_UA.constants.
|
34
|
+
FFI::OGR::SRSAPI::SRS_UA.constants.each_value do |obj|
|
33
35
|
const_set(obj.ruby_name, obj.value)
|
34
36
|
end
|
35
37
|
|
@@ -125,6 +127,19 @@ module OGR
|
|
125
127
|
FFI::OGR::SRSAPI.OSRRelease(pointer)
|
126
128
|
end
|
127
129
|
|
130
|
+
def self.proj_version
|
131
|
+
major_ptr = FFI::MemoryPointer.new(:int)
|
132
|
+
major_ptr.autorelease = false
|
133
|
+
minor_ptr = FFI::MemoryPointer.new(:int)
|
134
|
+
minor_ptr.autorelease = false
|
135
|
+
patch_ptr = FFI::MemoryPointer.new(:int)
|
136
|
+
patch_ptr.autorelease = false
|
137
|
+
|
138
|
+
FFI::OGR::SRSAPI.OSRGetPROJVersion(major_ptr, minor_ptr, patch_ptr)
|
139
|
+
|
140
|
+
Version.new(major_ptr.read_int, minor_ptr.read_int, patch_ptr.read_int)
|
141
|
+
end
|
142
|
+
|
128
143
|
# @return [FFI::Pointer] C pointer to the C Spatial Reference.
|
129
144
|
attr_reader :c_pointer
|
130
145
|
|
@@ -261,5 +276,15 @@ module OGR
|
|
261
276
|
def create_coordinate_transformation(destination_spatial_ref)
|
262
277
|
OGR::CoordinateTransformation.new(@c_pointer, destination_spatial_ref)
|
263
278
|
end
|
279
|
+
|
280
|
+
# @return [nil] Sets the axis mapping strategy for this spatial reference.
|
281
|
+
def axis_mapping_strategy=(strategy)
|
282
|
+
FFI::OGR::SRSAPI.OSRSetAxisMappingStrategy(@c_pointer, strategy)
|
283
|
+
end
|
284
|
+
|
285
|
+
# @return [FFI::OGR::SRSAPI::AxisMappingStrategy] The axis mapping strategy.
|
286
|
+
def axis_mapping_strategy
|
287
|
+
FFI::OGR::SRSAPI.OSRGetAxisMappingStrategy(@c_pointer)
|
288
|
+
end
|
264
289
|
end
|
265
290
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ffi-gdal
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0
|
4
|
+
version: 1.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Steve Loveless
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2024-08-16 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bindata
|
@@ -101,7 +101,10 @@ executables: []
|
|
101
101
|
extensions: []
|
102
102
|
extra_rdoc_files: []
|
103
103
|
files:
|
104
|
+
- ".devcontainer/Dockerfile"
|
105
|
+
- ".devcontainer/devcontainer.json"
|
104
106
|
- ".dockerignore"
|
107
|
+
- ".github/CODEOWNERS"
|
105
108
|
- ".github/dependabot.yml"
|
106
109
|
- ".github/workflows/codacy.yml"
|
107
110
|
- ".github/workflows/codeql.yml"
|
@@ -113,7 +116,6 @@ files:
|
|
113
116
|
- ".rspec"
|
114
117
|
- ".rubocop.yml"
|
115
118
|
- ".rubocop_todo.yml"
|
116
|
-
- ".ruby-version"
|
117
119
|
- ".solargraph.yml"
|
118
120
|
- Changelog-0.x.md
|
119
121
|
- Changelog.md
|
@@ -178,9 +180,14 @@ files:
|
|
178
180
|
- lib/ffi/gdal/grid_inverse_distance_to_a_power_options.rb
|
179
181
|
- lib/ffi/gdal/grid_moving_average_options.rb
|
180
182
|
- lib/ffi/gdal/grid_nearest_neighbor_options.rb
|
183
|
+
- lib/ffi/gdal/internal_helpers.rb
|
184
|
+
- lib/ffi/gdal/internal_helpers/gdal_version.rb
|
185
|
+
- lib/ffi/gdal/internal_helpers/layout_version.rb
|
186
|
+
- lib/ffi/gdal/internal_helpers/layout_version_resolver.rb
|
181
187
|
- lib/ffi/gdal/matching.rb
|
182
188
|
- lib/ffi/gdal/rpc_info.rb
|
183
189
|
- lib/ffi/gdal/transformer_info.rb
|
190
|
+
- lib/ffi/gdal/utils.rb
|
184
191
|
- lib/ffi/gdal/version.rb
|
185
192
|
- lib/ffi/gdal/vrt.rb
|
186
193
|
- lib/ffi/gdal/warp_options.rb
|
@@ -236,7 +243,7 @@ files:
|
|
236
243
|
- lib/gdal/geo_transform.rb
|
237
244
|
- lib/gdal/grid.rb
|
238
245
|
- lib/gdal/grid_algorithms.rb
|
239
|
-
- lib/gdal/grid_algorithms/
|
246
|
+
- lib/gdal/grid_algorithms/algorithm_base.rb
|
240
247
|
- lib/gdal/grid_algorithms/inverse_distance_to_a_power.rb
|
241
248
|
- lib/gdal/grid_algorithms/metric_average_distance.rb
|
242
249
|
- lib/gdal/grid_algorithms/metric_average_distance_pts.rb
|
@@ -265,6 +272,26 @@ files:
|
|
265
272
|
- lib/gdal/transformers/reprojection_transformer.rb
|
266
273
|
- lib/gdal/transformers/rpc_transformer.rb
|
267
274
|
- lib/gdal/transformers/tps_transformer.rb
|
275
|
+
- lib/gdal/utils.rb
|
276
|
+
- lib/gdal/utils/dem.rb
|
277
|
+
- lib/gdal/utils/dem/options.rb
|
278
|
+
- lib/gdal/utils/grid.rb
|
279
|
+
- lib/gdal/utils/grid/options.rb
|
280
|
+
- lib/gdal/utils/helpers.rb
|
281
|
+
- lib/gdal/utils/helpers/dataset_list.rb
|
282
|
+
- lib/gdal/utils/helpers/string_list.rb
|
283
|
+
- lib/gdal/utils/info.rb
|
284
|
+
- lib/gdal/utils/info/options.rb
|
285
|
+
- lib/gdal/utils/nearblack.rb
|
286
|
+
- lib/gdal/utils/nearblack/options.rb
|
287
|
+
- lib/gdal/utils/rasterize.rb
|
288
|
+
- lib/gdal/utils/rasterize/options.rb
|
289
|
+
- lib/gdal/utils/translate.rb
|
290
|
+
- lib/gdal/utils/translate/options.rb
|
291
|
+
- lib/gdal/utils/vector_translate.rb
|
292
|
+
- lib/gdal/utils/vector_translate/options.rb
|
293
|
+
- lib/gdal/utils/warp.rb
|
294
|
+
- lib/gdal/utils/warp/options.rb
|
268
295
|
- lib/gdal/version_info.rb
|
269
296
|
- lib/gdal/virtual_dataset.rb
|
270
297
|
- lib/gdal/warp_operation.rb
|
@@ -362,7 +389,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
362
389
|
- !ruby/object:Gem::Version
|
363
390
|
version: '0'
|
364
391
|
requirements: []
|
365
|
-
rubygems_version: 3.
|
392
|
+
rubygems_version: 3.5.17
|
366
393
|
signing_key:
|
367
394
|
specification_version: 4
|
368
395
|
summary: FFI wrapper for GDAL/OGR.
|
data/.ruby-version
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
2.7
|
@@ -1,14 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module GDAL
|
4
|
-
module GridAlgorithms
|
5
|
-
class DataMetricsBase
|
6
|
-
# @return [FFI::GDAL::GridDataMetricsOptions]
|
7
|
-
attr_reader :options
|
8
|
-
|
9
|
-
def initialize
|
10
|
-
@options = FFI::GDAL::GridDataMetricsOptions.new
|
11
|
-
end
|
12
|
-
end
|
13
|
-
end
|
14
|
-
end
|