ffi-gdal 1.0.0.beta6 → 1.0.0.beta11
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 +5 -5
- data/.rubocop.yml +54 -19
- data/.rubocop_todo.yml +65 -0
- data/.ruby-version +1 -1
- data/Gemfile +2 -0
- data/History.md +74 -0
- data/README.md +5 -0
- data/Rakefile +11 -1
- data/bitbucket-pipelines.yml +16 -0
- data/examples/extract_and_colorize.rb +7 -10
- data/examples/geometries.rb +68 -1
- data/examples/gridding.rb +2 -0
- data/examples/ogr_layer_to_layer.rb +2 -0
- data/examples/raster_erasing.rb +15 -8
- data/examples/remove_small_polygons.rb +2 -0
- data/examples/testing_gdal.rb +9 -2
- data/examples/warping.rb +23 -5
- data/ffi-gdal.gemspec +7 -4
- data/lib/ext/error_symbols.rb +2 -0
- data/lib/ext/ffi_library_function_checks.rb +2 -0
- data/lib/ext/float_ext.rb +2 -0
- data/lib/ext/narray_ext.rb +2 -0
- data/lib/ext/numeric_as_data_type.rb +2 -0
- data/lib/ext/to_bool.rb +5 -3
- data/lib/ffi-gdal.rb +2 -0
- data/lib/ffi/cpl.rb +2 -0
- data/lib/ffi/cpl/conv.rb +4 -2
- data/lib/ffi/cpl/error.rb +2 -0
- data/lib/ffi/cpl/hash_set.rb +2 -0
- data/lib/ffi/cpl/http.rb +2 -0
- data/lib/ffi/cpl/http_result.rb +2 -0
- data/lib/ffi/cpl/list.rb +2 -0
- data/lib/ffi/cpl/mime_part.rb +2 -0
- data/lib/ffi/cpl/minixml.rb +2 -0
- data/lib/ffi/cpl/port.rb +2 -0
- data/lib/ffi/cpl/progress.rb +2 -0
- data/lib/ffi/cpl/quad_tree.rb +2 -0
- data/lib/ffi/cpl/rect_obj.rb +2 -0
- data/lib/ffi/cpl/string.rb +2 -0
- data/lib/ffi/cpl/vsi.rb +2 -0
- data/lib/ffi/cpl/xml_node.rb +2 -0
- data/lib/ffi/gdal.rb +3 -3
- data/lib/ffi/gdal/alg.rb +2 -0
- data/lib/ffi/gdal/color_entry.rb +2 -0
- data/lib/ffi/gdal/exceptions.rb +2 -0
- data/lib/ffi/gdal/gcp.rb +2 -0
- data/lib/ffi/gdal/gdal.rb +2 -0
- data/lib/ffi/gdal/grid.rb +2 -0
- data/lib/ffi/gdal/grid_data_metrics_options.rb +2 -0
- data/lib/ffi/gdal/grid_inverse_distance_to_a_power_options.rb +2 -0
- data/lib/ffi/gdal/grid_moving_average_options.rb +2 -0
- data/lib/ffi/gdal/grid_nearest_neighbor_options.rb +2 -0
- data/lib/ffi/gdal/matching.rb +2 -0
- data/lib/ffi/gdal/rpc_info.rb +2 -0
- data/lib/ffi/gdal/transformer_info.rb +2 -0
- data/lib/ffi/gdal/version.rb +3 -1
- data/lib/ffi/gdal/vrt.rb +2 -0
- data/lib/ffi/gdal/warp_options.rb +9 -4
- data/lib/ffi/gdal/warper.rb +19 -1
- data/lib/ffi/ogr.rb +2 -0
- data/lib/ffi/ogr/api.rb +2 -0
- data/lib/ffi/ogr/contour_writer_info.rb +2 -0
- data/lib/ffi/ogr/core.rb +2 -0
- data/lib/ffi/ogr/envelope.rb +2 -0
- data/lib/ffi/ogr/envelope_3d.rb +2 -0
- data/lib/ffi/ogr/featurestyle.rb +2 -0
- data/lib/ffi/ogr/field.rb +2 -0
- data/lib/ffi/ogr/geocoding.rb +2 -0
- data/lib/ffi/ogr/srs_api.rb +3 -0
- data/lib/ffi/ogr/style_param.rb +2 -0
- data/lib/ffi/ogr/style_value.rb +2 -0
- data/lib/gdal.rb +3 -0
- data/lib/gdal/color_entry.rb +2 -0
- data/lib/gdal/color_entry_mixins/extensions.rb +2 -14
- data/lib/gdal/color_interpretation.rb +2 -0
- data/lib/gdal/color_table.rb +2 -0
- data/lib/gdal/color_table_mixins/extensions.rb +3 -17
- data/lib/gdal/color_table_types/cmyk.rb +2 -0
- data/lib/gdal/color_table_types/gray.rb +2 -0
- data/lib/gdal/color_table_types/hls.rb +2 -0
- data/lib/gdal/color_table_types/rgb.rb +2 -0
- data/lib/gdal/cpl_error_handler.rb +2 -0
- data/lib/gdal/data_type.rb +2 -0
- data/lib/gdal/dataset.rb +11 -7
- data/lib/gdal/dataset_mixins/algorithm_methods.rb +7 -4
- data/lib/gdal/dataset_mixins/extensions.rb +7 -47
- data/lib/gdal/dataset_mixins/matching.rb +4 -1
- data/lib/gdal/dataset_mixins/warp_methods.rb +52 -11
- data/lib/gdal/driver.rb +6 -8
- data/lib/gdal/driver_mixins/extensions.rb +2 -0
- data/lib/gdal/environment_methods.rb +2 -0
- data/lib/gdal/exceptions.rb +2 -0
- data/lib/gdal/geo_transform.rb +3 -3
- data/lib/gdal/geo_transform_mixins/extensions.rb +2 -17
- data/lib/gdal/grid.rb +4 -1
- data/lib/gdal/grid_algorithms.rb +2 -0
- data/lib/gdal/grid_algorithms/data_metrics_base.rb +2 -0
- data/lib/gdal/grid_algorithms/inverse_distance_to_a_power.rb +2 -0
- data/lib/gdal/grid_algorithms/metric_average_distance.rb +2 -0
- data/lib/gdal/grid_algorithms/metric_average_distance_pts.rb +2 -0
- data/lib/gdal/grid_algorithms/metric_count.rb +2 -0
- data/lib/gdal/grid_algorithms/metric_maximum.rb +2 -0
- data/lib/gdal/grid_algorithms/metric_minimum.rb +2 -0
- data/lib/gdal/grid_algorithms/metric_range.rb +2 -0
- data/lib/gdal/grid_algorithms/moving_average.rb +2 -0
- data/lib/gdal/grid_algorithms/nearest_neighbor.rb +2 -0
- data/lib/gdal/gridder.rb +11 -3
- data/lib/gdal/gridder/point_extracting.rb +3 -2
- data/lib/gdal/gridder_options.rb +2 -0
- data/lib/gdal/internal_helpers.rb +3 -4
- data/lib/gdal/logger.rb +2 -0
- data/lib/gdal/major_object.rb +2 -0
- data/lib/gdal/merger.rb +2 -0
- data/lib/gdal/options.rb +16 -13
- data/lib/gdal/raster_attribute_table.rb +2 -0
- data/lib/gdal/raster_attribute_table_mixins/extensions.rb +3 -16
- data/lib/gdal/raster_band.rb +11 -6
- data/lib/gdal/raster_band_classifier.rb +52 -19
- data/lib/gdal/raster_band_mixins/algorithm_extensions.rb +2 -0
- data/lib/gdal/raster_band_mixins/algorithm_methods.rb +12 -5
- data/lib/gdal/raster_band_mixins/coloring_extensions.rb +3 -1
- data/lib/gdal/raster_band_mixins/extensions.rb +6 -35
- data/lib/gdal/raster_band_mixins/io_extensions.rb +7 -4
- data/lib/gdal/rpc_info.rb +2 -0
- data/lib/gdal/transformer.rb +2 -0
- data/lib/gdal/transformers/approximate_transformer.rb +4 -1
- data/lib/gdal/transformers/base_general_image_projection_transformer.rb +4 -1
- data/lib/gdal/transformers/gcp_transformer.rb +6 -2
- data/lib/gdal/transformers/general_image_projection_transformer.rb +2 -0
- data/lib/gdal/transformers/general_image_projection_transformer2.rb +4 -1
- data/lib/gdal/transformers/general_image_projection_transformer3.rb +4 -1
- data/lib/gdal/transformers/geolocation_transformer.rb +4 -1
- data/lib/gdal/transformers/reprojection_transformer.rb +2 -0
- data/lib/gdal/transformers/rpc_transformer.rb +4 -1
- data/lib/gdal/transformers/tps_transformer.rb +2 -0
- data/lib/gdal/version_info.rb +9 -7
- data/lib/gdal/virtual_dataset.rb +2 -0
- data/lib/gdal/warp_operation.rb +2 -0
- data/lib/gdal/warp_options.rb +105 -35
- data/lib/ogr.rb +2 -0
- data/lib/ogr/coordinate_transformation.rb +2 -0
- data/lib/ogr/data_source.rb +5 -9
- data/lib/ogr/data_source_extensions.rb +2 -19
- data/lib/ogr/data_source_mixins/capability_methods.rb +2 -0
- data/lib/ogr/driver.rb +4 -6
- data/lib/ogr/driver_mixins/capability_methods.rb +2 -0
- data/lib/ogr/envelope.rb +4 -2
- data/lib/ogr/envelope_extensions.rb +2 -22
- data/lib/ogr/error_handling.rb +3 -1
- data/lib/ogr/exceptions.rb +3 -1
- data/lib/ogr/feature.rb +17 -9
- data/lib/ogr/feature_definition.rb +7 -4
- data/lib/ogr/feature_definition_extensions.rb +2 -18
- data/lib/ogr/feature_extensions.rb +2 -27
- data/lib/ogr/field.rb +5 -1
- data/lib/ogr/field_definition.rb +5 -6
- data/lib/ogr/geocoder.rb +2 -0
- data/lib/ogr/geometries/geometry_collection.rb +2 -0
- data/lib/ogr/geometries/geometry_collection_25d.rb +2 -0
- data/lib/ogr/geometries/line_string.rb +2 -1
- data/lib/ogr/geometries/line_string_25d.rb +2 -0
- data/lib/ogr/geometries/linear_ring.rb +2 -0
- data/lib/ogr/geometries/multi_line_string.rb +2 -0
- data/lib/ogr/geometries/multi_line_string_25d.rb +2 -0
- data/lib/ogr/geometries/multi_point.rb +2 -0
- data/lib/ogr/geometries/multi_point_25d.rb +2 -0
- data/lib/ogr/geometries/multi_polygon.rb +2 -0
- data/lib/ogr/geometries/multi_polygon_25d.rb +2 -0
- data/lib/ogr/geometries/none_geometry.rb +2 -0
- data/lib/ogr/geometries/point.rb +2 -0
- data/lib/ogr/geometries/point_25d.rb +2 -0
- data/lib/ogr/geometries/polygon.rb +2 -0
- data/lib/ogr/geometries/polygon_25d.rb +2 -0
- data/lib/ogr/geometries/unknown_geometry.rb +2 -0
- data/lib/ogr/geometry.rb +3 -4
- data/lib/ogr/geometry_field_definition.rb +3 -4
- data/lib/ogr/geometry_mixins/container_mixins.rb +2 -0
- data/lib/ogr/geometry_mixins/extensions.rb +10 -39
- data/lib/ogr/geometry_types/container.rb +2 -0
- data/lib/ogr/geometry_types/curve.rb +3 -1
- data/lib/ogr/geometry_types/surface.rb +2 -0
- data/lib/ogr/internal_helpers.rb +2 -0
- data/lib/ogr/layer.rb +5 -1
- data/lib/ogr/layer_mixins/capability_methods.rb +2 -0
- data/lib/ogr/layer_mixins/extensions.rb +9 -27
- data/lib/ogr/layer_mixins/ogr_feature_methods.rb +6 -12
- data/lib/ogr/layer_mixins/ogr_field_methods.rb +10 -14
- data/lib/ogr/layer_mixins/ogr_layer_method_methods.rb +2 -0
- data/lib/ogr/layer_mixins/ogr_query_filter_methods.rb +8 -3
- data/lib/ogr/layer_mixins/ogr_sql_methods.rb +3 -3
- data/lib/ogr/spatial_reference.rb +12 -2
- data/lib/ogr/spatial_reference_extensions.rb +2 -26
- data/lib/ogr/spatial_reference_mixins/coordinate_system_getter_setters.rb +12 -5
- data/lib/ogr/spatial_reference_mixins/exporters.rb +2 -0
- data/lib/ogr/spatial_reference_mixins/importers.rb +6 -2
- data/lib/ogr/spatial_reference_mixins/morphers.rb +2 -0
- data/lib/ogr/spatial_reference_mixins/parameter_getter_setters.rb +2 -0
- data/lib/ogr/spatial_reference_mixins/type_checks.rb +2 -0
- data/lib/ogr/style_table.rb +2 -0
- data/lib/ogr/style_table_extensions.rb +2 -10
- data/lib/ogr/style_tool.rb +2 -0
- data/spec/ffi-gdal_spec.rb +2 -0
- data/spec/integration/gdal/color_table_info_spec.rb +2 -0
- data/spec/integration/gdal/dataset_info_spec.rb +15 -13
- data/spec/integration/gdal/driver_info_spec.rb +3 -1
- data/spec/integration/gdal/geo_transform_info_spec.rb +2 -0
- data/spec/integration/gdal/gridder_spec.rb +2 -0
- data/spec/integration/gdal/raster_attribute_table_info_spec.rb +2 -0
- data/spec/integration/gdal/raster_band_algorithms_spec.rb +2 -0
- data/spec/integration/gdal/raster_band_info_spec.rb +37 -15
- data/spec/integration/ogr/layer_spec.rb +2 -6
- data/spec/spec_helper.rb +3 -1
- data/spec/support/images/123.tiff +0 -0
- data/spec/support/integration_help.rb +2 -0
- data/spec/support/shared_contexts.rb +2 -0
- data/spec/support/shared_examples/gdal/major_object_examples.rb +2 -0
- data/spec/support/shared_examples/ogr/{a_25D_geometry.rb → a_25d_geometry.rb} +2 -0
- data/spec/support/shared_examples/ogr/a_container_geometry.rb +2 -0
- data/spec/support/shared_examples/ogr/a_geometry.rb +3 -1
- data/spec/support/shared_examples/ogr/a_line_string.rb +2 -0
- data/spec/unit/ext/error_symbols_spec.rb +2 -0
- data/spec/unit/ext/numeric_as_data_type_spec.rb +2 -0
- data/spec/unit/ffi/gdal_spec.rb +3 -0
- data/spec/unit/gdal/color_entry_spec.rb +2 -0
- data/spec/unit/gdal/color_interpretation_spec.rb +2 -0
- data/spec/unit/gdal/color_table_mixins/extensions_spec.rb +2 -0
- data/spec/unit/gdal/color_table_spec.rb +2 -0
- data/spec/unit/gdal/data_type_spec.rb +2 -0
- data/spec/unit/gdal/dataset_mixins/warp_methods_spec.rb +55 -0
- data/spec/unit/gdal/dataset_spec.rb +2 -0
- data/spec/unit/gdal/driver_mixins/extensions_spec.rb +2 -0
- data/spec/unit/gdal/driver_spec.rb +2 -0
- data/spec/unit/gdal/environment_methods_spec.rb +2 -0
- data/spec/unit/gdal/geo_transform_mixins/extensions_spec.rb +2 -0
- data/spec/unit/gdal/geo_transform_spec.rb +2 -13
- data/spec/unit/gdal/grid_spec.rb +10 -0
- data/spec/unit/gdal/gridder/point_extracting_spec.rb +2 -0
- data/spec/unit/gdal/gridder_options_spec.rb +2 -0
- data/spec/unit/gdal/gridder_spec.rb +42 -0
- data/spec/unit/gdal/internal_helpers_spec.rb +2 -0
- data/spec/unit/gdal/major_object_spec.rb +2 -0
- data/spec/unit/gdal/options_spec.rb +28 -1
- data/spec/unit/gdal/raster_attribute_table_spec.rb +2 -0
- data/spec/unit/gdal/raster_band_classifier_spec.rb +43 -5
- data/spec/unit/gdal/raster_band_mixins/extensions_spec.rb +2 -0
- data/spec/unit/gdal/raster_band_mixins/io_extensions_spec.rb +2 -0
- data/spec/unit/gdal/raster_band_spec.rb +2 -0
- data/spec/unit/gdal/rpc_info_spec.rb +2 -0
- data/spec/unit/gdal/version_info_spec.rb +2 -0
- data/spec/unit/gdal/virtual_dataset_spec.rb +2 -0
- data/spec/unit/gdal/warp_operation_spec.rb +2 -0
- data/spec/unit/gdal/warp_options_spec.rb +338 -0
- data/spec/unit/ogr/coordinate_transformation_spec.rb +2 -0
- data/spec/unit/ogr/data_source_mixins/capability_methods_spec.rb +2 -0
- data/spec/unit/ogr/data_source_spec.rb +2 -0
- data/spec/unit/ogr/driver_mixins/capability_methods_spec.rb +2 -0
- data/spec/unit/ogr/driver_spec.rb +3 -1
- data/spec/unit/ogr/envelope_spec.rb +2 -0
- data/spec/unit/ogr/feature_definition_spec.rb +2 -19
- data/spec/unit/ogr/feature_extensions_spec.rb +3 -1
- data/spec/unit/ogr/feature_spec.rb +3 -3
- data/spec/unit/ogr/field_definition_spec.rb +2 -19
- data/spec/unit/ogr/field_spec.rb +3 -1
- data/spec/unit/ogr/geometries/geometry_collection_25d_spec.rb +2 -0
- data/spec/unit/ogr/geometries/geometry_collection_spec.rb +2 -0
- data/spec/unit/ogr/geometries/line_string_25d_spec.rb +2 -0
- data/spec/unit/ogr/geometries/line_string_spec.rb +2 -0
- data/spec/unit/ogr/geometries/linear_ring_spec.rb +2 -0
- data/spec/unit/ogr/geometries/multi_line_string_25d_spec.rb +2 -0
- data/spec/unit/ogr/geometries/multi_line_string_spec.rb +2 -0
- data/spec/unit/ogr/geometries/multi_point_25d_spec.rb +2 -0
- data/spec/unit/ogr/geometries/multi_point_spec.rb +2 -0
- data/spec/unit/ogr/geometries/multi_polygon_25d_spec.rb +2 -0
- data/spec/unit/ogr/geometries/multi_polygon_spec.rb +2 -0
- data/spec/unit/ogr/geometries/none_geometry_spec.rb +2 -0
- data/spec/unit/ogr/geometries/point_25d_spec.rb +2 -0
- data/spec/unit/ogr/geometries/point_spec.rb +2 -0
- data/spec/unit/ogr/geometries/polygon_25d_spec.rb +2 -0
- data/spec/unit/ogr/geometries/polygon_spec.rb +2 -0
- data/spec/unit/ogr/geometries/unknown_geometry_spec.rb +2 -0
- data/spec/unit/ogr/geometry_field_definition_spec.rb +2 -16
- data/spec/unit/ogr/geometry_spec.rb +2 -0
- data/spec/unit/ogr/internal_helpers_spec.rb +2 -0
- data/spec/unit/ogr/layer_mixins/capability_methods_spec.rb +2 -0
- data/spec/unit/ogr/layer_mixins/ogr_feature_methods_spec.rb +2 -0
- data/spec/unit/ogr/layer_mixins/ogr_field_methods_spec.rb +2 -0
- data/spec/unit/ogr/layer_mixins/ogr_layer_method_methods_spec.rb +2 -0
- data/spec/unit/ogr/layer_mixins/ogr_query_filter_methods_spec.rb +2 -0
- data/spec/unit/ogr/layer_mixins/ogr_sql_methods_spec.rb +2 -0
- data/spec/unit/ogr/layer_spec.rb +2 -0
- data/spec/unit/ogr/spatial_reference_mixins/coordinate_system_getter_setters_spec.rb +2 -0
- data/spec/unit/ogr/spatial_reference_mixins/exporters_spec.rb +19 -15
- data/spec/unit/ogr/spatial_reference_mixins/importers_spec.rb +2 -0
- data/spec/unit/ogr/spatial_reference_mixins/morphers_spec.rb +9 -7
- data/spec/unit/ogr/spatial_reference_mixins/parameter_getter_setters_spec.rb +2 -0
- data/spec/unit/ogr/spatial_reference_mixins/type_checks_spec.rb +2 -0
- data/spec/unit/ogr/spatial_reference_spec.rb +4 -2
- data/spec/unit/ogr/style_table_spec.rb +2 -26
- data/spec/unit/ogr/style_tool_spec.rb +2 -0
- data/spec/unit/version_info_spec.rb +2 -0
- metadata +47 -15
- data/lib/ogr/field_definition_extensions.rb +0 -22
- data/lib/ogr/geometry_field_definition_extensions.rb +0 -19
data/examples/gridding.rb
CHANGED
data/examples/raster_erasing.rb
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'bundler/setup'
|
2
4
|
require 'thor'
|
3
5
|
require 'fileutils'
|
@@ -15,14 +17,7 @@ module Examples
|
|
15
17
|
geo_transform = dest_dataset.geo_transform
|
16
18
|
|
17
19
|
raster_band = dest_dataset.raster_band(1)
|
18
|
-
extent_polygon = dest_dataset.extent
|
19
|
-
buffer_size = if extent_polygon.area > 1
|
20
|
-
extent_polygon.area / -5000
|
21
|
-
else
|
22
|
-
extent_polygon.area / -0.5
|
23
|
-
end
|
24
|
-
|
25
|
-
extent_polygon = extent_polygon.buffer(buffer_size)
|
20
|
+
extent_polygon = buffer_extent(dest_dataset.extent)
|
26
21
|
|
27
22
|
if extent_polygon.empty?
|
28
23
|
raise 'Poorly buffered extent--you should play with these values to get this demo to work.'
|
@@ -41,6 +36,18 @@ module Examples
|
|
41
36
|
|
42
37
|
puts "Erased dataset in #{Time.now - start}s. Output at '#{dest_path}'"
|
43
38
|
end
|
39
|
+
|
40
|
+
private
|
41
|
+
|
42
|
+
def buffer_extent(extent_polygon)
|
43
|
+
buffer_size = if extent_polygon.area > 1
|
44
|
+
extent_polygon.area / -5000
|
45
|
+
else
|
46
|
+
extent_polygon.area / -0.5
|
47
|
+
end
|
48
|
+
|
49
|
+
extent_polygon.buffer(buffer_size)
|
50
|
+
end
|
44
51
|
end
|
45
52
|
end
|
46
53
|
|
data/examples/testing_gdal.rb
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'RMagick'
|
2
4
|
require 'bundler/setup'
|
3
5
|
require 'pry'
|
@@ -5,8 +7,13 @@ require 'ffi-gdal'
|
|
5
7
|
|
6
8
|
GDAL::Logger.logging_enabled = true
|
7
9
|
|
8
|
-
floyd_too_big_wkt = 'MULTIPOLYGON (((-87.55634718933241 31.168633650404765,
|
9
|
-
|
10
|
+
floyd_too_big_wkt = 'MULTIPOLYGON (((-87.55634718933241 31.168633650404765,' \
|
11
|
+
'-87.552227316286 31.16870709121005, -87.55234533348232 31.169808696448463,' \
|
12
|
+
'-87.5478606800096 31.1698913163249, -87.54777484932141 31.168679550914895,' \
|
13
|
+
'-87.54380517997858 31.168615290194918, -87.54396611251944 31.16511760526154,' \
|
14
|
+
'-87.55647593536513 31.164906454793982, -87.55634718933241 31.168633650404765)))'
|
15
|
+
floyd_wkt = 'MULTIPOLYGON (((-87.5530099868775 31.16710573359053,' \
|
16
|
+
'-87.5530099868775 31.165600160261103,-87.55384683609009 31.16710573359053,-87.5530099868775 31.16710573359053)))'
|
10
17
|
floyd_srid = 4326
|
11
18
|
|
12
19
|
harper_path = '/Users/sloveless/Development/projects/ffi-gdal/spec/support/images/Harper/Harper_1058_20140612_NRGB.tif'
|
data/examples/warping.rb
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'bundler/setup'
|
2
4
|
require 'ffi-gdal'
|
3
5
|
require 'gdal/dataset'
|
@@ -56,7 +58,7 @@ module Examples
|
|
56
58
|
transformer_arg = GDAL::Transformers::GeneralImageProjectionTransformer2.new(
|
57
59
|
source_dataset, destination_dataset: dest_dataset,
|
58
60
|
insert_center_long: 'FALSE',
|
59
|
-
|
61
|
+
# DST_SRS: spatial_reference.to_wkt
|
60
62
|
)
|
61
63
|
# transformer_arg = GDAL::Transformers::GeneralImageProjectionTransformer.new(
|
62
64
|
# source_dataset, destination_dataset: dest_dataset,
|
@@ -94,7 +96,8 @@ module Examples
|
|
94
96
|
suggested_options = source_dataset.suggested_warp_output(transformer_arg)
|
95
97
|
|
96
98
|
driver = GDAL::Driver.by_name 'GTiff'
|
97
|
-
ds = driver.create_dataset(path, suggested_options[:pixels], suggested_options[:lines],
|
99
|
+
ds = driver.create_dataset(path, suggested_options[:pixels], suggested_options[:lines],
|
100
|
+
data_type: source_dataset.raster_band(1).data_type)
|
98
101
|
ds.geo_transform = suggested_options[:geo_transform]
|
99
102
|
ds.projection = dest_wkt
|
100
103
|
ds.raster_band(1).no_data_value = source_dataset.raster_band(1).no_data_value[:value]
|
@@ -111,11 +114,25 @@ if $PROGRAM_NAME == __FILE__
|
|
111
114
|
|
112
115
|
# 32616
|
113
116
|
# harper_wkt = <<-WKT
|
114
|
-
# POLYGON ((446272.16070421785116196 3450423.99460560129955411, 446267.51794699463061988 3450225.33339292788878083,
|
117
|
+
# POLYGON ((446272.16070421785116196 3450423.99460560129955411, 446267.51794699463061988 3450225.33339292788878083,
|
118
|
+
# 446169.27478282485390082 3450181.28046096721664071, 446167.92126038181595504 3449679.13779170718044043,
|
119
|
+
# 446257.50292950111906976 3449447.46736949309706688, 446177.33125468820799142 3449388.86781942518427968,
|
120
|
+
# 446181.49593684601131827 3449256.37749340012669563, 446201.94002113211899996 3449230.98345079040154815,
|
121
|
+
# 446963.20628352143103257 3449239.17042332561686635, 446960.24312665761681274 3449612.50297579308971763,
|
122
|
+
# 446866.33160242711892352 3449708.10946208890527487, 446750.25655526417540386 3449727.9624758935533464,
|
123
|
+
# 446691.84310374449705705 3449902.8676586695946753, 446610.46438609907636419 3450082.70331544848158956,
|
124
|
+
# 446642.15819176007062197 3450128.30150367366150022, 446528.87474136805394664 3450220.39211917016655207,
|
125
|
+
# 446272.16070421785116196 3450423.99460560129955411))
|
115
126
|
# WKT
|
127
|
+
|
116
128
|
# 4326
|
117
129
|
chualar_wkt = <<-WKT
|
118
|
-
Polygon ((-121.52653414366494644 36.58183382122394534, -121.52612663439269625 36.57798512254166923,
|
130
|
+
Polygon ((-121.52653414366494644 36.58183382122394534, -121.52612663439269625 36.57798512254166923,
|
131
|
+
-121.52503994300006696 36.57793984373364538, -121.52503994300006696 36.57952460201457967,
|
132
|
+
-121.5239985304154402 36.57952460201457967, -121.52404380922347116 36.57789456492562152,
|
133
|
+
-121.52245905094252976 36.57789456492562152, -121.52264016617463938 36.58151686956775706,
|
134
|
+
-121.52413436683951886 36.58165270599183572, -121.52422492445558078 36.58002266890287757,
|
135
|
+
-121.52513050061611466 36.58002266890287757, -121.52653414366494644 36.58183382122394534))
|
119
136
|
WKT
|
120
137
|
|
121
138
|
source_path = args.shift
|
@@ -124,7 +141,8 @@ Polygon ((-121.52653414366494644 36.58183382122394534, -121.52612663439269625 36
|
|
124
141
|
source_dataset = GDAL::Dataset.open(source_path, 'r')
|
125
142
|
puts "source srid: #{source_dataset.spatial_reference.authority_code.to_i}"
|
126
143
|
|
127
|
-
dest_dataset = Examples::Warping.create_destination_reprojected_dataset(source_dataset,
|
144
|
+
dest_dataset = Examples::Warping.create_destination_reprojected_dataset(source_dataset,
|
145
|
+
dest_path, source_dataset.spatial_reference.authority_code.to_i)
|
128
146
|
# Examples::Warping.copy_dataset(source_dataset, dest_path)
|
129
147
|
# dest_dataset = GDAL::Dataset.open(dest_path, 'w')
|
130
148
|
|
data/ffi-gdal.gemspec
CHANGED
@@ -1,5 +1,6 @@
|
|
1
|
-
#
|
2
|
-
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
lib = File.expand_path('lib', __dir__)
|
3
4
|
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
5
|
require 'ffi/gdal/version'
|
5
6
|
|
@@ -21,12 +22,14 @@ Gem::Specification.new do |spec|
|
|
21
22
|
spec.add_dependency 'log_switch', '~> 1.0.0'
|
22
23
|
spec.add_dependency 'multi_xml'
|
23
24
|
spec.add_dependency 'narray', '~> 0.6.0'
|
25
|
+
spec.add_dependency 'numo-narray'
|
24
26
|
|
25
|
-
spec.add_development_dependency 'bundler'
|
27
|
+
spec.add_development_dependency 'bundler'
|
26
28
|
spec.add_development_dependency 'byebug'
|
27
29
|
spec.add_development_dependency 'fakefs'
|
28
30
|
spec.add_development_dependency 'rake'
|
29
31
|
spec.add_development_dependency 'rspec', '~> 3.0'
|
30
32
|
spec.add_development_dependency 'rubocop'
|
31
|
-
spec.add_development_dependency '
|
33
|
+
spec.add_development_dependency 'rubocop-checkstyle_formatter'
|
34
|
+
spec.add_development_dependency 'simplecov', '~> 0.9'
|
32
35
|
end
|
data/lib/ext/error_symbols.rb
CHANGED
data/lib/ext/float_ext.rb
CHANGED
data/lib/ext/narray_ext.rb
CHANGED
data/lib/ext/to_bool.rb
CHANGED
@@ -1,7 +1,9 @@
|
|
1
|
-
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
class Integer
|
2
4
|
def to_bool
|
3
5
|
return true if self == 1
|
4
|
-
return false if
|
6
|
+
return false if zero?
|
5
7
|
raise "Fixnum '#{self}' can't be converted to Boolean."
|
6
8
|
end
|
7
9
|
end
|
@@ -9,7 +11,7 @@ end
|
|
9
11
|
class String
|
10
12
|
def to_bool
|
11
13
|
return true if to_i == 1
|
12
|
-
return false if to_i
|
14
|
+
return false if to_i.zero?
|
13
15
|
raise "String '#{self}' can't be converted to Boolean."
|
14
16
|
end
|
15
17
|
end
|
data/lib/ffi-gdal.rb
CHANGED
data/lib/ffi/cpl.rb
CHANGED
data/lib/ffi/cpl/conv.rb
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'ffi'
|
2
4
|
require_relative '../../ext/ffi_library_function_checks'
|
3
5
|
|
@@ -10,7 +12,7 @@ module FFI
|
|
10
12
|
#-------------------------------------------------------------------------
|
11
13
|
# Functions
|
12
14
|
#-------------------------------------------------------------------------
|
13
|
-
callback :CPLFileFinder, %i[string string], :
|
15
|
+
callback :CPLFileFinder, %i[string string], :pointer
|
14
16
|
|
15
17
|
#---------
|
16
18
|
# Config
|
@@ -47,7 +49,7 @@ module FFI
|
|
47
49
|
attach_function :CPLScanString, %i[string int int int], :string
|
48
50
|
attach_function :CPLScanDouble, %i[string int], :double
|
49
51
|
attach_function :CPLScanLong, %i[string int], :long
|
50
|
-
attach_function :
|
52
|
+
attach_function :CPLScanULong, %i[string int], :ulong
|
51
53
|
attach_function :CPLScanUIntBig, %i[string int], Port.find_type(:GUIntBig)
|
52
54
|
attach_function :CPLScanPointer, %i[string int], :pointer
|
53
55
|
attach_function :CPLPrintString, %i[string string int], :int
|
data/lib/ffi/cpl/error.rb
CHANGED
data/lib/ffi/cpl/hash_set.rb
CHANGED
data/lib/ffi/cpl/http.rb
CHANGED
data/lib/ffi/cpl/http_result.rb
CHANGED
data/lib/ffi/cpl/list.rb
CHANGED
data/lib/ffi/cpl/mime_part.rb
CHANGED
data/lib/ffi/cpl/minixml.rb
CHANGED
data/lib/ffi/cpl/port.rb
CHANGED
data/lib/ffi/cpl/progress.rb
CHANGED
data/lib/ffi/cpl/quad_tree.rb
CHANGED
data/lib/ffi/cpl/rect_obj.rb
CHANGED
data/lib/ffi/cpl/string.rb
CHANGED
data/lib/ffi/cpl/vsi.rb
CHANGED
data/lib/ffi/cpl/xml_node.rb
CHANGED
data/lib/ffi/gdal.rb
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'ffi'
|
2
4
|
require 'ffi/tools/const_generator'
|
3
5
|
require_relative 'gdal/exceptions'
|
@@ -34,9 +36,7 @@ module FFI
|
|
34
36
|
def self.find_lib(lib)
|
35
37
|
lib_file_name = "#{lib}.#{FFI::Platform::LIBSUFFIX}*"
|
36
38
|
|
37
|
-
if ENV['GDAL_LIBRARY_PATH']
|
38
|
-
return File.join(ENV['GDAL_LIBRARY_PATH'], lib_file_name)
|
39
|
-
end
|
39
|
+
return Dir[File.join(ENV['GDAL_LIBRARY_PATH'], lib_file_name)] if ENV['GDAL_LIBRARY_PATH']
|
40
40
|
|
41
41
|
search_paths.map do |search_path|
|
42
42
|
Dir.glob(search_path).map do |path|
|
data/lib/ffi/gdal/alg.rb
CHANGED
data/lib/ffi/gdal/color_entry.rb
CHANGED
data/lib/ffi/gdal/exceptions.rb
CHANGED
data/lib/ffi/gdal/gcp.rb
CHANGED
data/lib/ffi/gdal/gdal.rb
CHANGED
data/lib/ffi/gdal/grid.rb
CHANGED