ffi-gdal 1.0.1 → 1.0.3

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.
Files changed (199) hide show
  1. checksums.yaml +4 -4
  2. data/.github/dependabot.yml +15 -0
  3. data/.github/workflows/codacy.yml +1 -1
  4. data/.github/workflows/dependency-review.yml +1 -1
  5. data/.github/workflows/specs-in-docker.yml +3 -1
  6. data/.prettierrc.yml +4 -0
  7. data/.rubocop.yml +9 -5
  8. data/.rubocop_todo.yml +5 -11
  9. data/.solargraph.yml +13 -0
  10. data/Changelog-0.x.md +229 -174
  11. data/Changelog.md +20 -4
  12. data/Dockerfile.gdal2 +2 -85
  13. data/Gemfile +12 -2
  14. data/LICENSE.txt +1 -1
  15. data/README.md +14 -16
  16. data/Rakefile +6 -6
  17. data/bin/bundle +12 -12
  18. data/bin/rake +6 -6
  19. data/bin/rspec +6 -6
  20. data/bin/rubocop +6 -6
  21. data/examples/extract_and_colorize.rb +15 -15
  22. data/examples/geometries.rb +12 -12
  23. data/examples/gridding.rb +17 -17
  24. data/examples/ogr_layer_to_layer.rb +3 -3
  25. data/examples/raster_erasing.rb +9 -9
  26. data/examples/remove_small_polygons.rb +11 -11
  27. data/examples/testing_gdal.rb +20 -20
  28. data/examples/warping.rb +13 -13
  29. data/ffi-gdal.gemspec +16 -27
  30. data/lib/ext/ffi_library_function_checks.rb +3 -3
  31. data/lib/ext/narray_ext.rb +1 -1
  32. data/lib/ext/to_bool.rb +2 -2
  33. data/lib/ffi/cpl/conv.rb +2 -2
  34. data/lib/ffi/cpl/error.rb +1 -1
  35. data/lib/ffi/cpl/hash_set.rb +2 -2
  36. data/lib/ffi/cpl/http.rb +3 -3
  37. data/lib/ffi/cpl/http_result.rb +2 -2
  38. data/lib/ffi/cpl/list.rb +1 -1
  39. data/lib/ffi/cpl/mime_part.rb +1 -1
  40. data/lib/ffi/cpl/minixml.rb +2 -2
  41. data/lib/ffi/cpl/port.rb +1 -1
  42. data/lib/ffi/cpl/progress.rb +2 -2
  43. data/lib/ffi/cpl/quad_tree.rb +3 -3
  44. data/lib/ffi/cpl/rect_obj.rb +1 -1
  45. data/lib/ffi/cpl/string.rb +1 -1
  46. data/lib/ffi/cpl/vsi.rb +2 -2
  47. data/lib/ffi/cpl/xml_node.rb +1 -1
  48. data/lib/ffi/cpl.rb +11 -11
  49. data/lib/ffi/extensions/gdal/extensions/all.rb +2 -2
  50. data/lib/ffi/extensions/gdal/extensions.rb +2 -2
  51. data/lib/ffi/extensions/rttopo/gbox.rb +1 -1
  52. data/lib/ffi/extensions/rttopo/geom.rb +2 -2
  53. data/lib/ffi/extensions/rttopo.rb +3 -3
  54. data/lib/ffi/gdal/alg.rb +2 -2
  55. data/lib/ffi/gdal/color_entry.rb +1 -1
  56. data/lib/ffi/gdal/gcp.rb +1 -1
  57. data/lib/ffi/gdal/gdal.rb +3 -3
  58. data/lib/ffi/gdal/grid.rb +2 -2
  59. data/lib/ffi/gdal/grid_data_metrics_options.rb +1 -1
  60. data/lib/ffi/gdal/grid_inverse_distance_to_a_power_options.rb +1 -1
  61. data/lib/ffi/gdal/grid_moving_average_options.rb +1 -1
  62. data/lib/ffi/gdal/grid_nearest_neighbor_options.rb +1 -1
  63. data/lib/ffi/gdal/matching.rb +2 -2
  64. data/lib/ffi/gdal/rpc_info.rb +1 -1
  65. data/lib/ffi/gdal/transformer_info.rb +1 -1
  66. data/lib/ffi/gdal/version.rb +1 -1
  67. data/lib/ffi/gdal/vrt.rb +2 -2
  68. data/lib/ffi/gdal/warp_options.rb +1 -1
  69. data/lib/ffi/gdal/warper.rb +2 -2
  70. data/lib/ffi/gdal.rb +22 -22
  71. data/lib/ffi/ogr/api.rb +3 -3
  72. data/lib/ffi/ogr/contour_writer_info.rb +1 -1
  73. data/lib/ffi/ogr/core.rb +9 -9
  74. data/lib/ffi/ogr/envelope.rb +1 -1
  75. data/lib/ffi/ogr/envelope_3d.rb +1 -1
  76. data/lib/ffi/ogr/featurestyle.rb +1 -1
  77. data/lib/ffi/ogr/field.rb +1 -1
  78. data/lib/ffi/ogr/geocoding.rb +2 -2
  79. data/lib/ffi/ogr/srs_api.rb +63 -63
  80. data/lib/ffi/ogr/style_param.rb +2 -2
  81. data/lib/ffi/ogr/style_value.rb +1 -1
  82. data/lib/ffi/ogr.rb +11 -11
  83. data/lib/ffi-gdal.rb +8 -8
  84. data/lib/gdal/color_table.rb +6 -6
  85. data/lib/gdal/dataset/accessors.rb +101 -0
  86. data/lib/gdal/{dataset_mixins → dataset}/algorithm_methods.rb +1 -1
  87. data/lib/gdal/dataset/class_methods.rb +69 -0
  88. data/lib/gdal/dataset/internal_functions.rb +22 -0
  89. data/lib/gdal/{dataset_mixins → dataset}/matching.rb +1 -1
  90. data/lib/gdal/dataset/raster_band_methods.rb +181 -0
  91. data/lib/gdal/{dataset_mixins → dataset}/warp_methods.rb +1 -1
  92. data/lib/gdal/dataset.rb +21 -359
  93. data/lib/gdal/driver.rb +10 -10
  94. data/lib/gdal/environment_methods.rb +1 -1
  95. data/lib/gdal/extensions/all.rb +1 -1
  96. data/lib/gdal/extensions/color_entry/extensions.rb +2 -2
  97. data/lib/gdal/extensions/color_table/extensions.rb +2 -2
  98. data/lib/gdal/extensions/dataset/extensions.rb +11 -11
  99. data/lib/gdal/extensions/driver/extensions.rb +7 -7
  100. data/lib/gdal/extensions/geo_transform/extensions.rb +2 -2
  101. data/lib/gdal/extensions/gridder.rb +8 -8
  102. data/lib/gdal/extensions/gridder_options.rb +6 -6
  103. data/lib/gdal/extensions/raster_attribute_table/extensions.rb +1 -1
  104. data/lib/gdal/extensions/raster_band/algorithm_extensions.rb +4 -4
  105. data/lib/gdal/extensions/raster_band/coloring_extensions.rb +1 -1
  106. data/lib/gdal/extensions/raster_band/extensions.rb +3 -3
  107. data/lib/gdal/extensions/raster_band/io_extensions.rb +4 -4
  108. data/lib/gdal/extensions/raster_band_classifier.rb +3 -3
  109. data/lib/gdal/geo_transform.rb +1 -1
  110. data/lib/gdal/grid.rb +6 -6
  111. data/lib/gdal/grid_algorithms/metric_average_distance.rb +1 -1
  112. data/lib/gdal/grid_algorithms/metric_average_distance_pts.rb +1 -1
  113. data/lib/gdal/grid_algorithms/metric_count.rb +1 -1
  114. data/lib/gdal/grid_algorithms/metric_maximum.rb +1 -1
  115. data/lib/gdal/grid_algorithms/metric_minimum.rb +1 -1
  116. data/lib/gdal/grid_algorithms/metric_range.rb +1 -1
  117. data/lib/gdal/grid_algorithms.rb +9 -9
  118. data/lib/gdal/internal_helpers.rb +3 -3
  119. data/lib/gdal/logger.rb +1 -1
  120. data/lib/gdal/major_object.rb +6 -6
  121. data/lib/gdal/options.rb +2 -2
  122. data/lib/gdal/raster_attribute_table.rb +5 -5
  123. data/lib/gdal/raster_band.rb +24 -24
  124. data/lib/gdal/rpc_info.rb +2 -2
  125. data/lib/gdal/transformer.rb +1 -1
  126. data/lib/gdal/transformers/general_image_projection_transformer.rb +1 -1
  127. data/lib/gdal/transformers/general_image_projection_transformer2.rb +1 -1
  128. data/lib/gdal/transformers/general_image_projection_transformer3.rb +1 -1
  129. data/lib/gdal/version_info.rb +9 -9
  130. data/lib/gdal/virtual_dataset.rb +4 -4
  131. data/lib/gdal/warp_operation.rb +2 -2
  132. data/lib/gdal/warp_options.rb +2 -2
  133. data/lib/gdal.rb +17 -17
  134. data/lib/ogr/coordinate_transformation.rb +5 -5
  135. data/lib/ogr/data_source.rb +9 -9
  136. data/lib/ogr/driver.rb +9 -9
  137. data/lib/ogr/envelope.rb +1 -1
  138. data/lib/ogr/error_handling.rb +1 -1
  139. data/lib/ogr/extensions/all.rb +1 -1
  140. data/lib/ogr/extensions/data_source/capability_methods.rb +4 -4
  141. data/lib/ogr/extensions/data_source/data_source_extensions.rb +1 -1
  142. data/lib/ogr/extensions/driver/capability_methods.rb +3 -3
  143. data/lib/ogr/extensions/envelope/extensions.rb +1 -1
  144. data/lib/ogr/extensions/feature/extensions.rb +1 -1
  145. data/lib/ogr/extensions/feature_definition/extensions.rb +1 -1
  146. data/lib/ogr/extensions/geometries/point/extensions.rb +1 -1
  147. data/lib/ogr/extensions/geometry/container_mixins.rb +10 -10
  148. data/lib/ogr/extensions/geometry/ewkb_io_extensions.rb +3 -3
  149. data/lib/ogr/extensions/geometry/ewkb_record.rb +4 -4
  150. data/lib/ogr/extensions/geometry/extensions.rb +4 -7
  151. data/lib/ogr/extensions/geometry/rttopo_extensions.rb +2 -2
  152. data/lib/ogr/extensions/geometry/wkb_record.rb +3 -3
  153. data/lib/ogr/extensions/geometry_types/curve/extensions.rb +2 -2
  154. data/lib/ogr/extensions/layer/capability_methods.rb +17 -17
  155. data/lib/ogr/extensions/layer/extensions.rb +1 -1
  156. data/lib/ogr/extensions/spatial_reference/extensions.rb +1 -1
  157. data/lib/ogr/extensions/spatial_reference/initializers.rb +2 -2
  158. data/lib/ogr/extensions/style_table/extensions.rb +1 -1
  159. data/lib/ogr/feature.rb +15 -15
  160. data/lib/ogr/feature_definition.rb +2 -2
  161. data/lib/ogr/field.rb +5 -5
  162. data/lib/ogr/field_definition.rb +1 -1
  163. data/lib/ogr/geocoder.rb +1 -1
  164. data/lib/ogr/geometries/geometry_collection.rb +2 -2
  165. data/lib/ogr/geometries/geometry_collection_25d.rb +1 -1
  166. data/lib/ogr/geometries/line_string.rb +1 -1
  167. data/lib/ogr/geometries/line_string_25d.rb +1 -1
  168. data/lib/ogr/geometries/linear_ring.rb +2 -2
  169. data/lib/ogr/geometries/multi_line_string.rb +2 -2
  170. data/lib/ogr/geometries/multi_line_string_25d.rb +1 -1
  171. data/lib/ogr/geometries/multi_point.rb +1 -1
  172. data/lib/ogr/geometries/multi_point_25d.rb +1 -1
  173. data/lib/ogr/geometries/multi_polygon.rb +2 -2
  174. data/lib/ogr/geometries/multi_polygon_25d.rb +1 -1
  175. data/lib/ogr/geometries/point_25d.rb +1 -1
  176. data/lib/ogr/geometries/polygon.rb +2 -2
  177. data/lib/ogr/geometries/polygon_25d.rb +1 -1
  178. data/lib/ogr/geometry.rb +11 -11
  179. data/lib/ogr/geometry_types/container.rb +1 -1
  180. data/lib/ogr/geometry_types/curve.rb +1 -1
  181. data/lib/ogr/internal_helpers.rb +4 -4
  182. data/lib/ogr/layer.rb +8 -8
  183. data/lib/ogr/layer_mixins/ogr_feature_methods.rb +9 -9
  184. data/lib/ogr/layer_mixins/ogr_field_methods.rb +15 -15
  185. data/lib/ogr/layer_mixins/ogr_sql_methods.rb +2 -2
  186. data/lib/ogr/spatial_reference.rb +19 -19
  187. data/lib/ogr/spatial_reference_mixins/coordinate_system_getter_setters.rb +4 -4
  188. data/lib/ogr/spatial_reference_mixins/exporters.rb +9 -9
  189. data/lib/ogr/spatial_reference_mixins/importers.rb +2 -2
  190. data/lib/ogr/spatial_reference_mixins/morphers.rb +2 -2
  191. data/lib/ogr/spatial_reference_mixins/parameter_getter_setters.rb +1 -1
  192. data/lib/ogr/style_table.rb +3 -3
  193. data/lib/ogr/style_tool.rb +1 -1
  194. data/lib/ogr.rb +33 -33
  195. data/rakelib/docker.rake +2 -2
  196. metadata +14 -150
  197. data/bitbucket-pipelines.yml +0 -16
  198. data/tilt/gdal2.yml +0 -22
  199. data/tilt/gdal3.yml +0 -22
@@ -1,27 +1,27 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'bundler/setup'
4
- require 'thor'
5
- require 'fileutils'
6
- require 'gdal/dataset'
7
- require 'gdal/raster_band'
8
- require 'gdal/raster_band/algorithm_extensions'
3
+ require "bundler/setup"
4
+ require "thor"
5
+ require "fileutils"
6
+ require "gdal/dataset"
7
+ require "gdal/raster_band"
8
+ require "gdal/raster_band/algorithm_extensions"
9
9
 
10
10
  GDAL::Logger.logging_enabled = true
11
11
 
12
12
  module Examples
13
13
  class RasterErasing < ::Thor
14
- desc 'erase SOURCE DEST', 'Erase (clip) pixels from the center of the first raster band in SOURCE to DEST'
14
+ desc "erase SOURCE DEST", "Erase (clip) pixels from the center of the first raster band in SOURCE to DEST"
15
15
  def erase(source_path, dest_path)
16
16
  FileUtils.cp(source_path, dest_path)
17
- dest_dataset = GDAL::Dataset.open(dest_path, 'w')
17
+ dest_dataset = GDAL::Dataset.open(dest_path, "w")
18
18
  geo_transform = dest_dataset.geo_transform
19
19
 
20
20
  raster_band = dest_dataset.raster_band(1)
21
21
  extent_polygon = buffer_extent(dest_dataset.extent)
22
22
 
23
23
  if extent_polygon.empty?
24
- raise 'Poorly buffered extent--you should play with these values to get this demo to work.'
24
+ raise "Poorly buffered extent--you should play with these values to get this demo to work."
25
25
  end
26
26
 
27
27
  raster_point = OGR::Point.new
@@ -1,24 +1,24 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'bundler/setup'
4
- require 'thor'
5
- require 'fileutils'
6
- require 'gdal/dataset'
7
- require 'gdal/raster_band'
3
+ require "bundler/setup"
4
+ require "thor"
5
+ require "fileutils"
6
+ require "gdal/dataset"
7
+ require "gdal/raster_band"
8
8
 
9
9
  GDAL::Logger.logging_enabled = true
10
10
 
11
11
  module Examples
12
12
  class RemoveSmallPolygons < ::Thor
13
- desc 'filter SOURCE_PATH DEST_PATH SIZE',
14
- 'Removes polygons from SOURCE that are under SIZE'
13
+ desc "filter SOURCE_PATH DEST_PATH SIZE",
14
+ "Removes polygons from SOURCE that are under SIZE"
15
15
  option :band_number, type: :numeric, default: 1
16
16
  def filter(source_path, dest_path, size)
17
17
  puts "Copying source '#{source_path}' to '#{dest_path}'..."
18
18
  FileUtils.cp(source_path, dest_path)
19
19
 
20
20
  size = size.to_f
21
- dataset = GDAL::Dataset.open(dest_path, 'w')
21
+ dataset = GDAL::Dataset.open(dest_path, "w")
22
22
  puts "Raster area: #{dataset.extent.area}"
23
23
  raster_band = dataset.raster_band(options[:band_number])
24
24
 
@@ -41,11 +41,11 @@ module Examples
41
41
  FileUtils.rm_rf(dir_path)
42
42
  end
43
43
 
44
- shp_driver = OGR::Driver.by_name 'ESRI Shapefile'
44
+ shp_driver = OGR::Driver.by_name "ESRI Shapefile"
45
45
  data_source = shp_driver.create_data_source(dir_path)
46
- layer = data_source.create_layer('sieve-filtered', geometry_type: :wkbMultiPolygon,
46
+ layer = data_source.create_layer("sieve-filtered", geometry_type: :wkbMultiPolygon,
47
47
  spatial_reference: srs)
48
- zone_num_field_def = OGR::FieldDefinition.new 'ZONE', :OFTInteger
48
+ zone_num_field_def = OGR::FieldDefinition.new "ZONE", :OFTInteger
49
49
  layer.create_field(zone_num_field_def)
50
50
  yield layer
51
51
 
@@ -1,38 +1,38 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'RMagick'
4
- require 'bundler/setup'
5
- require 'ffi-gdal'
3
+ require "RMagick"
4
+ require "bundler/setup"
5
+ require "ffi-gdal"
6
6
 
7
7
  GDAL::Logger.logging_enabled = true
8
8
 
9
- _floyd_too_big_wkt = 'MULTIPOLYGON (((-87.55634718933241 31.168633650404765,' \
10
- '-87.552227316286 31.16870709121005, -87.55234533348232 31.169808696448463,' \
11
- '-87.5478606800096 31.1698913163249, -87.54777484932141 31.168679550914895,' \
12
- '-87.54380517997858 31.168615290194918, -87.54396611251944 31.16511760526154,' \
13
- '-87.55647593536513 31.164906454793982, -87.55634718933241 31.168633650404765)))'
14
- floyd_wkt = 'MULTIPOLYGON (((-87.5530099868775 31.16710573359053,' \
15
- '-87.5530099868775 31.165600160261103,' \
16
- '-87.55384683609009 31.16710573359053,' \
17
- '-87.5530099868775 31.16710573359053)))'
9
+ _floyd_too_big_wkt = "MULTIPOLYGON (((-87.55634718933241 31.168633650404765," \
10
+ "-87.552227316286 31.16870709121005, -87.55234533348232 31.169808696448463," \
11
+ "-87.5478606800096 31.1698913163249, -87.54777484932141 31.168679550914895," \
12
+ "-87.54380517997858 31.168615290194918, -87.54396611251944 31.16511760526154," \
13
+ "-87.55647593536513 31.164906454793982, -87.55634718933241 31.168633650404765)))"
14
+ floyd_wkt = "MULTIPOLYGON (((-87.5530099868775 31.16710573359053," \
15
+ "-87.5530099868775 31.165600160261103," \
16
+ "-87.55384683609009 31.16710573359053," \
17
+ "-87.5530099868775 31.16710573359053)))"
18
18
  _floyd_srid = 4326
19
19
 
20
20
  harper_path =
21
- '/Users/steve.loveless/Development/projects/ffi-gdal/spec/support/images/Harper/Harper_1058_20140612_NRGB.tif'
22
- _harper = GDAL::Dataset.open(harper_path, 'r')
21
+ "/Users/steve.loveless/Development/projects/ffi-gdal/spec/support/images/Harper/Harper_1058_20140612_NRGB.tif"
22
+ _harper = GDAL::Dataset.open(harper_path, "r")
23
23
 
24
24
  floyd_path =
25
- '/Users/steve.loveless/Development/projects/ffi-gdal/spec/support/images/Floyd/Floyd_1058_20140612_NRGB.tif'
26
- floyd = GDAL::Dataset.open(floyd_path, 'r')
25
+ "/Users/steve.loveless/Development/projects/ffi-gdal/spec/support/images/Floyd/Floyd_1058_20140612_NRGB.tif"
26
+ floyd = GDAL::Dataset.open(floyd_path, "r")
27
27
 
28
28
  spatial_ref = OGR::SpatialReference.new(floyd.projection)
29
29
  _floyd_geometry = OGR::Geometry.create_from_wkt(floyd_wkt, spatial_ref)
30
30
 
31
- usg_path = '/Users/steve.loveless/Development/projects/ffi-gdal/spec/support/images/osgeo/geotiff/usgs/c41078a1.tif'
32
- _usg = GDAL::Dataset.open(usg_path, 'r')
31
+ usg_path = "/Users/steve.loveless/Development/projects/ffi-gdal/spec/support/images/osgeo/geotiff/usgs/c41078a1.tif"
32
+ _usg = GDAL::Dataset.open(usg_path, "r")
33
33
 
34
34
  world_file_path = "#{__dir__}/spec/support/worldfiles/SR_50M/SR_50M.tif"
35
- _world_file = GDAL::GeoTransform.from_world_file(world_file_path, 'tfw')
35
+ _world_file = GDAL::GeoTransform.from_world_file(world_file_path, "tfw")
36
36
 
37
37
  # floyd.image_warp('meow.tif', 'GTiff', 1, cutline: floyd_geometry )
38
38
  # extract_ndvi(floyd, 'ndvi.tif', floyd_wkt)
@@ -44,7 +44,7 @@ def warp_to_geometry(dataset, wkt_geometry)
44
44
  geometry.transform_to!(dataset.spatial_reference)
45
45
 
46
46
  # Create a .shp from the geometry
47
- shape = geometry.to_vector('geom.shp', 'ESRI Shapefile',
47
+ shape = geometry.to_vector("geom.shp", "ESRI Shapefile",
48
48
  spatial_reference: dataset.spatial_reference)
49
49
  shape.close
50
50
  end
data/examples/warping.rb CHANGED
@@ -1,13 +1,13 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'bundler/setup'
4
- require 'ffi-gdal'
5
- require 'gdal/dataset'
6
- require 'gdal/warp_operation'
7
- require 'gdal/warp_options'
8
- require 'gdal/transformers/general_image_projection_transformer'
9
- require 'gdal/transformers/general_image_projection_transformer2'
10
- require 'byebug'
3
+ require "bundler/setup"
4
+ require "ffi-gdal"
5
+ require "gdal/dataset"
6
+ require "gdal/warp_operation"
7
+ require "gdal/warp_options"
8
+ require "gdal/transformers/general_image_projection_transformer"
9
+ require "gdal/transformers/general_image_projection_transformer2"
10
+ require "byebug"
11
11
 
12
12
  GDAL::Logger.logging_enabled = true
13
13
 
@@ -50,7 +50,7 @@ module Examples
50
50
  options.resample_algorithm = :GRA_Average
51
51
 
52
52
  options.warp_operation_options = {
53
- init_dest: 'NO_DATA',
53
+ init_dest: "NO_DATA",
54
54
  cutline: clip_wkt
55
55
  # cutline_all_touched: 'TRUE'
56
56
  # cutline_all_touched: true
@@ -58,7 +58,7 @@ module Examples
58
58
 
59
59
  transformer_arg = GDAL::Transformers::GeneralImageProjectionTransformer2.new(
60
60
  source_dataset, destination_dataset: dest_dataset,
61
- insert_center_long: 'FALSE'
61
+ insert_center_long: "FALSE"
62
62
  # DST_SRS: spatial_reference.to_wkt
63
63
  )
64
64
  # transformer_arg = GDAL::Transformers::GeneralImageProjectionTransformer.new(
@@ -96,7 +96,7 @@ module Examples
96
96
 
97
97
  suggested_options = source_dataset.suggested_warp_output(transformer_arg)
98
98
 
99
- driver = GDAL::Driver.by_name 'GTiff'
99
+ driver = GDAL::Driver.by_name "GTiff"
100
100
  ds = driver.create_dataset(path, suggested_options[:pixels], suggested_options[:lines],
101
101
  data_type: source_dataset.raster_band(1).data_type)
102
102
  ds.geo_transform = suggested_options[:geo_transform]
@@ -111,7 +111,7 @@ end
111
111
 
112
112
  if $PROGRAM_NAME == __FILE__
113
113
  args = ARGV.dup
114
- raise 'Must only supply 2 args: [source destination]' unless args.length == 2
114
+ raise "Must only supply 2 args: [source destination]" unless args.length == 2
115
115
 
116
116
  # 32616
117
117
  # harper_wkt = <<-WKT
@@ -139,7 +139,7 @@ if $PROGRAM_NAME == __FILE__
139
139
  source_path = args.shift
140
140
  dest_path = args.shift
141
141
 
142
- source_dataset = GDAL::Dataset.open(source_path, 'r')
142
+ source_dataset = GDAL::Dataset.open(source_path, "r")
143
143
  puts "source srid: #{source_dataset.spatial_reference.authority_code.to_i}"
144
144
 
145
145
  dest_dataset = Examples::Warping
data/ffi-gdal.gemspec CHANGED
@@ -1,41 +1,30 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- lib = File.expand_path('lib', __dir__)
3
+ lib = File.expand_path("lib", __dir__)
4
4
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
5
- require 'ffi/gdal/version'
5
+ require "ffi/gdal/version"
6
6
 
7
7
  Gem::Specification.new do |spec|
8
- spec.name = 'ffi-gdal'
8
+ spec.name = "ffi-gdal"
9
9
  spec.version = FFI::GDAL::VERSION
10
- spec.authors = ['Steve Loveless']
11
- spec.email = %w[steve@agrian.com]
12
- spec.summary = 'FFI wrapper for GDAL/OGR.'
13
- spec.homepage = 'https://github.com/agrian-inc/ffi-gdal'
14
- spec.license = 'MIT'
10
+ spec.authors = ["Steve Loveless"]
11
+ spec.email = %w[steve.loveless@telusagcg.com]
12
+ spec.summary = "FFI wrapper for GDAL/OGR."
13
+ spec.homepage = "https://github.com/telus-agcg/ffi-gdal"
14
+ spec.license = "MIT"
15
15
 
16
16
  spec.files = Dir.chdir(File.expand_path(__dir__)) do
17
17
  `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
18
18
  end
19
19
 
20
- spec.metadata['rubygems_mfa_required'] = 'true'
20
+ spec.metadata["rubygems_mfa_required"] = "true"
21
21
  spec.require_paths = %w[lib]
22
- spec.required_ruby_version = '>= 2.6'
22
+ spec.required_ruby_version = ">= 2.6"
23
23
 
24
- spec.add_dependency 'bindata', '~> 2.0'
25
- spec.add_dependency 'ffi'
26
- spec.add_dependency 'log_switch', '~> 1.0.0'
27
- spec.add_dependency 'multi_xml'
28
- spec.add_dependency 'narray', '~> 0.6.0'
29
- spec.add_dependency 'numo-narray'
30
-
31
- spec.add_development_dependency 'bundler'
32
- spec.add_development_dependency 'byebug'
33
- spec.add_development_dependency 'climate_control'
34
- spec.add_development_dependency 'fakefs'
35
- spec.add_development_dependency 'rake'
36
- spec.add_development_dependency 'rspec', '~> 3.0'
37
- spec.add_development_dependency 'rspec-github'
38
- spec.add_development_dependency 'rubocop', '>= 1.0'
39
- spec.add_development_dependency 'rubocop-performance'
40
- spec.add_development_dependency 'simplecov', '~> 0.9'
24
+ spec.add_dependency "bindata", "~> 2.0"
25
+ spec.add_dependency "ffi"
26
+ spec.add_dependency "log_switch", "~> 1.0.0"
27
+ spec.add_dependency "multi_xml"
28
+ spec.add_dependency "narray", "~> 0.6.0"
29
+ spec.add_dependency "numo-narray"
41
30
  end
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'ffi'
4
- require 'ffi/library'
3
+ require "ffi"
4
+ require "ffi/library"
5
5
 
6
6
  module FFI
7
7
  # Redefining #attach_function so we can avoid bombing out if a called method
@@ -14,7 +14,7 @@ module FFI
14
14
  rescue FFI::NotFoundError
15
15
  @unsupported_gdal_functions ||= []
16
16
 
17
- if $VERBOSE || ENV.fetch('VERBOSE', nil)
17
+ if $VERBOSE || ENV.fetch("VERBOSE", nil)
18
18
  warn "ffi-gdal warning: function '#{args.first}' is not available in this " \
19
19
  "build of GDAL/OGR (v#{FFI::GDAL.GDALVersionInfo('RELEASE_NAME')})"
20
20
  end
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'narray'
3
+ require "narray"
4
4
 
5
5
  class NArray
6
6
  def type
data/lib/ext/to_bool.rb CHANGED
@@ -11,8 +11,8 @@ end
11
11
 
12
12
  class String
13
13
  def to_bool
14
- return true if self == "\x01" || self == '1'
15
- return false if self == "\x00" || self == '0'
14
+ return true if self == "\x01" || self == "1"
15
+ return false if self == "\x00" || self == "0"
16
16
 
17
17
  raise "String '#{self}' can't be converted to Boolean."
18
18
  end
data/lib/ffi/cpl/conv.rb CHANGED
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'ffi'
4
- require_relative '../../ext/ffi_library_function_checks'
3
+ require "ffi"
4
+ require_relative "../../ext/ffi_library_function_checks"
5
5
 
6
6
  module FFI
7
7
  module CPL
data/lib/ffi/cpl/error.rb CHANGED
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require_relative '../../ext/ffi_library_function_checks'
3
+ require_relative "../../ext/ffi_library_function_checks"
4
4
 
5
5
  module FFI
6
6
  module CPL
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'ffi'
4
- require_relative '../../ext/ffi_library_function_checks'
3
+ require "ffi"
4
+ require_relative "../../ext/ffi_library_function_checks"
5
5
 
6
6
  module FFI
7
7
  module CPL
data/lib/ffi/cpl/http.rb CHANGED
@@ -1,8 +1,8 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'ffi'
4
- require_relative 'http_result'
5
- require_relative '../../ext/ffi_library_function_checks'
3
+ require "ffi"
4
+ require_relative "http_result"
5
+ require_relative "../../ext/ffi_library_function_checks"
6
6
 
7
7
  module FFI
8
8
  module CPL
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'ffi'
4
- require_relative 'mime_part'
3
+ require "ffi"
4
+ require_relative "mime_part"
5
5
 
6
6
  module FFI
7
7
  module CPL
data/lib/ffi/cpl/list.rb CHANGED
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'ffi'
3
+ require "ffi"
4
4
 
5
5
  module FFI
6
6
  module CPL
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'ffi'
3
+ require "ffi"
4
4
 
5
5
  module FFI
6
6
  module CPL
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'ffi'
4
- require_relative '../../ext/ffi_library_function_checks'
3
+ require "ffi"
4
+ require_relative "../../ext/ffi_library_function_checks"
5
5
 
6
6
  module FFI
7
7
  module CPL
data/lib/ffi/cpl/port.rb CHANGED
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'ffi'
3
+ require "ffi"
4
4
 
5
5
  module FFI
6
6
  module CPL
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'ffi'
4
- require_relative '../../ext/ffi_library_function_checks'
3
+ require "ffi"
4
+ require_relative "../../ext/ffi_library_function_checks"
5
5
 
6
6
  module FFI
7
7
  module CPL
@@ -1,8 +1,8 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'ffi'
4
- require_relative 'rect_obj'
5
- require_relative '../../ext/ffi_library_function_checks'
3
+ require "ffi"
4
+ require_relative "rect_obj"
5
+ require_relative "../../ext/ffi_library_function_checks"
6
6
 
7
7
  module FFI
8
8
  module CPL
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'ffi'
3
+ require "ffi"
4
4
 
5
5
  module FFI
6
6
  module CPL
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require_relative '../../ext/ffi_library_function_checks'
3
+ require_relative "../../ext/ffi_library_function_checks"
4
4
 
5
5
  module FFI
6
6
  module CPL
data/lib/ffi/cpl/vsi.rb CHANGED
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'ffi'
4
- require_relative '../../ext/ffi_library_function_checks'
3
+ require "ffi"
4
+ require_relative "../../ext/ffi_library_function_checks"
5
5
 
6
6
  module FFI
7
7
  module CPL
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'ffi'
3
+ require "ffi"
4
4
 
5
5
  module FFI
6
6
  module CPL
data/lib/ffi/cpl.rb CHANGED
@@ -2,16 +2,16 @@
2
2
 
3
3
  module FFI
4
4
  module CPL
5
- autoload :Conv, File.expand_path('cpl/conv.rb', __dir__)
6
- autoload :Error, File.expand_path('cpl/error.rb', __dir__)
7
- autoload :HashSet, File.expand_path('cpl/hash_set.rb', __dir__)
8
- autoload :HTTP, File.expand_path('cpl/http.rb', __dir__)
9
- autoload :MiniXML, File.expand_path('cpl/minixml.rb', __dir__)
10
- autoload :Port, File.expand_path('cpl/port.rb', __dir__)
11
- autoload :Progress, File.expand_path('cpl/progress.rb', __dir__)
12
- autoload :QuadTree, File.expand_path('cpl/quad_tree.rb', __dir__)
13
- autoload :String, File.expand_path('cpl/string.rb', __dir__)
14
- autoload :VSI, File.expand_path('cpl/vsi.rb', __dir__)
15
- autoload :XMLNode, File.expand_path('cpl/xml_node.rb', __dir__)
5
+ autoload :Conv, File.expand_path("cpl/conv.rb", __dir__)
6
+ autoload :Error, File.expand_path("cpl/error.rb", __dir__)
7
+ autoload :HashSet, File.expand_path("cpl/hash_set.rb", __dir__)
8
+ autoload :HTTP, File.expand_path("cpl/http.rb", __dir__)
9
+ autoload :MiniXML, File.expand_path("cpl/minixml.rb", __dir__)
10
+ autoload :Port, File.expand_path("cpl/port.rb", __dir__)
11
+ autoload :Progress, File.expand_path("cpl/progress.rb", __dir__)
12
+ autoload :QuadTree, File.expand_path("cpl/quad_tree.rb", __dir__)
13
+ autoload :String, File.expand_path("cpl/string.rb", __dir__)
14
+ autoload :VSI, File.expand_path("cpl/vsi.rb", __dir__)
15
+ autoload :XMLNode, File.expand_path("cpl/xml_node.rb", __dir__)
16
16
  end
17
17
  end
@@ -1,4 +1,4 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'gdal/all'
4
- require 'ogr/all'
3
+ require "gdal/all"
4
+ require "ogr/all"
@@ -1,8 +1,8 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require_relative 'extensions/version'
3
+ require_relative "extensions/version"
4
4
 
5
- require_relative '../../../gdal/dataset/extensions'
5
+ require_relative "../../../gdal/dataset/extensions"
6
6
 
7
7
  module FFI
8
8
  module GDAL
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'ffi'
3
+ require "ffi"
4
4
 
5
5
  module FFI
6
6
  module Rttopo
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'ffi'
4
- require_relative 'gbox'
3
+ require "ffi"
4
+ require_relative "gbox"
5
5
 
6
6
  module FFI
7
7
  module Rttopo
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'ffi-gdal'
4
- require_relative 'rttopo/geom'
3
+ require "ffi-gdal"
4
+ require_relative "rttopo/geom"
5
5
 
6
6
  module FFI
7
7
  module Rttopo
@@ -9,7 +9,7 @@ module FFI
9
9
 
10
10
  # @return [String]
11
11
  def self.rttopo_library_path
12
- @rttopo_library_path ||= ENV.fetch('RTTOPO_LIBRARY_PATH', 'rttopo')
12
+ @rttopo_library_path ||= ENV.fetch("RTTOPO_LIBRARY_PATH", "rttopo")
13
13
  end
14
14
 
15
15
  if rttopo_library_path.nil? || rttopo_library_path.empty?
data/lib/ffi/gdal/alg.rb CHANGED
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'ffi'
4
- require_relative '../../ext/ffi_library_function_checks'
3
+ require "ffi"
4
+ require_relative "../../ext/ffi_library_function_checks"
5
5
 
6
6
  module FFI
7
7
  module GDAL
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'ffi'
3
+ require "ffi"
4
4
 
5
5
  module FFI
6
6
  module GDAL
data/lib/ffi/gdal/gcp.rb CHANGED
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'ffi'
3
+ require "ffi"
4
4
 
5
5
  module FFI
6
6
  module GDAL
data/lib/ffi/gdal/gdal.rb CHANGED
@@ -1,8 +1,8 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'ffi'
4
- require_relative '../../ext/ffi_library_function_checks'
5
- require_relative 'color_entry'
3
+ require "ffi"
4
+ require_relative "../../ext/ffi_library_function_checks"
5
+ require_relative "color_entry"
6
6
 
7
7
  module FFI
8
8
  module GDAL
data/lib/ffi/gdal/grid.rb CHANGED
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'ffi'
4
- require_relative '../../ext/ffi_library_function_checks'
3
+ require "ffi"
4
+ require_relative "../../ext/ffi_library_function_checks"
5
5
 
6
6
  module FFI
7
7
  module GDAL
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'ffi'
3
+ require "ffi"
4
4
 
5
5
  module FFI
6
6
  module GDAL
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'ffi'
3
+ require "ffi"
4
4
 
5
5
  module FFI
6
6
  module GDAL