ffi-gdal 1.0.2 → 1.0.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (191) hide show
  1. checksums.yaml +4 -4
  2. data/.prettierrc.yml +4 -0
  3. data/.rubocop.yml +9 -5
  4. data/.rubocop_todo.yml +5 -11
  5. data/.solargraph.yml +13 -0
  6. data/Changelog-0.x.md +229 -174
  7. data/Changelog.md +15 -5
  8. data/Dockerfile.gdal2 +1 -1
  9. data/Gemfile +12 -2
  10. data/README.md +13 -10
  11. data/Rakefile +6 -6
  12. data/bin/bundle +12 -12
  13. data/bin/rake +6 -6
  14. data/bin/rspec +6 -6
  15. data/bin/rubocop +6 -6
  16. data/examples/extract_and_colorize.rb +15 -15
  17. data/examples/geometries.rb +12 -12
  18. data/examples/gridding.rb +17 -17
  19. data/examples/ogr_layer_to_layer.rb +3 -3
  20. data/examples/raster_erasing.rb +9 -9
  21. data/examples/remove_small_polygons.rb +11 -11
  22. data/examples/testing_gdal.rb +20 -20
  23. data/examples/warping.rb +13 -13
  24. data/ffi-gdal.gemspec +15 -26
  25. data/lib/ext/ffi_library_function_checks.rb +3 -3
  26. data/lib/ext/narray_ext.rb +1 -1
  27. data/lib/ext/to_bool.rb +2 -2
  28. data/lib/ffi/cpl/conv.rb +2 -2
  29. data/lib/ffi/cpl/error.rb +1 -1
  30. data/lib/ffi/cpl/hash_set.rb +2 -2
  31. data/lib/ffi/cpl/http.rb +3 -3
  32. data/lib/ffi/cpl/http_result.rb +2 -2
  33. data/lib/ffi/cpl/list.rb +1 -1
  34. data/lib/ffi/cpl/mime_part.rb +1 -1
  35. data/lib/ffi/cpl/minixml.rb +2 -2
  36. data/lib/ffi/cpl/port.rb +1 -1
  37. data/lib/ffi/cpl/progress.rb +2 -2
  38. data/lib/ffi/cpl/quad_tree.rb +3 -3
  39. data/lib/ffi/cpl/rect_obj.rb +1 -1
  40. data/lib/ffi/cpl/string.rb +1 -1
  41. data/lib/ffi/cpl/vsi.rb +2 -2
  42. data/lib/ffi/cpl/xml_node.rb +1 -1
  43. data/lib/ffi/cpl.rb +11 -11
  44. data/lib/ffi/extensions/gdal/extensions/all.rb +2 -2
  45. data/lib/ffi/extensions/gdal/extensions.rb +2 -2
  46. data/lib/ffi/extensions/rttopo/gbox.rb +1 -1
  47. data/lib/ffi/extensions/rttopo/geom.rb +2 -2
  48. data/lib/ffi/extensions/rttopo.rb +3 -3
  49. data/lib/ffi/gdal/alg.rb +2 -2
  50. data/lib/ffi/gdal/color_entry.rb +1 -1
  51. data/lib/ffi/gdal/gcp.rb +1 -1
  52. data/lib/ffi/gdal/gdal.rb +3 -3
  53. data/lib/ffi/gdal/grid.rb +2 -2
  54. data/lib/ffi/gdal/grid_data_metrics_options.rb +1 -1
  55. data/lib/ffi/gdal/grid_inverse_distance_to_a_power_options.rb +1 -1
  56. data/lib/ffi/gdal/grid_moving_average_options.rb +1 -1
  57. data/lib/ffi/gdal/grid_nearest_neighbor_options.rb +1 -1
  58. data/lib/ffi/gdal/matching.rb +2 -2
  59. data/lib/ffi/gdal/rpc_info.rb +1 -1
  60. data/lib/ffi/gdal/transformer_info.rb +1 -1
  61. data/lib/ffi/gdal/version.rb +1 -1
  62. data/lib/ffi/gdal/vrt.rb +2 -2
  63. data/lib/ffi/gdal/warp_options.rb +1 -1
  64. data/lib/ffi/gdal/warper.rb +2 -2
  65. data/lib/ffi/gdal.rb +22 -22
  66. data/lib/ffi/ogr/api.rb +3 -3
  67. data/lib/ffi/ogr/contour_writer_info.rb +1 -1
  68. data/lib/ffi/ogr/core.rb +9 -9
  69. data/lib/ffi/ogr/envelope.rb +1 -1
  70. data/lib/ffi/ogr/envelope_3d.rb +1 -1
  71. data/lib/ffi/ogr/featurestyle.rb +1 -1
  72. data/lib/ffi/ogr/field.rb +1 -1
  73. data/lib/ffi/ogr/geocoding.rb +2 -2
  74. data/lib/ffi/ogr/srs_api.rb +63 -63
  75. data/lib/ffi/ogr/style_param.rb +2 -2
  76. data/lib/ffi/ogr/style_value.rb +1 -1
  77. data/lib/ffi/ogr.rb +11 -11
  78. data/lib/ffi-gdal.rb +8 -8
  79. data/lib/gdal/color_table.rb +6 -6
  80. data/lib/gdal/dataset/accessors.rb +101 -0
  81. data/lib/gdal/{dataset_mixins → dataset}/algorithm_methods.rb +1 -1
  82. data/lib/gdal/dataset/class_methods.rb +69 -0
  83. data/lib/gdal/dataset/internal_functions.rb +22 -0
  84. data/lib/gdal/{dataset_mixins → dataset}/matching.rb +1 -1
  85. data/lib/gdal/dataset/raster_band_methods.rb +181 -0
  86. data/lib/gdal/{dataset_mixins → dataset}/warp_methods.rb +1 -1
  87. data/lib/gdal/dataset.rb +21 -359
  88. data/lib/gdal/driver.rb +10 -10
  89. data/lib/gdal/environment_methods.rb +1 -1
  90. data/lib/gdal/extensions/all.rb +1 -1
  91. data/lib/gdal/extensions/color_entry/extensions.rb +2 -2
  92. data/lib/gdal/extensions/color_table/extensions.rb +2 -2
  93. data/lib/gdal/extensions/dataset/extensions.rb +11 -11
  94. data/lib/gdal/extensions/driver/extensions.rb +7 -7
  95. data/lib/gdal/extensions/geo_transform/extensions.rb +2 -2
  96. data/lib/gdal/extensions/gridder.rb +8 -8
  97. data/lib/gdal/extensions/gridder_options.rb +6 -6
  98. data/lib/gdal/extensions/raster_attribute_table/extensions.rb +1 -1
  99. data/lib/gdal/extensions/raster_band/algorithm_extensions.rb +4 -4
  100. data/lib/gdal/extensions/raster_band/coloring_extensions.rb +1 -1
  101. data/lib/gdal/extensions/raster_band/extensions.rb +3 -3
  102. data/lib/gdal/extensions/raster_band/io_extensions.rb +4 -4
  103. data/lib/gdal/extensions/raster_band_classifier.rb +3 -3
  104. data/lib/gdal/geo_transform.rb +1 -1
  105. data/lib/gdal/grid.rb +6 -6
  106. data/lib/gdal/grid_algorithms/metric_average_distance.rb +1 -1
  107. data/lib/gdal/grid_algorithms/metric_average_distance_pts.rb +1 -1
  108. data/lib/gdal/grid_algorithms/metric_count.rb +1 -1
  109. data/lib/gdal/grid_algorithms/metric_maximum.rb +1 -1
  110. data/lib/gdal/grid_algorithms/metric_minimum.rb +1 -1
  111. data/lib/gdal/grid_algorithms/metric_range.rb +1 -1
  112. data/lib/gdal/grid_algorithms.rb +9 -9
  113. data/lib/gdal/internal_helpers.rb +3 -3
  114. data/lib/gdal/logger.rb +1 -1
  115. data/lib/gdal/major_object.rb +6 -6
  116. data/lib/gdal/options.rb +2 -2
  117. data/lib/gdal/raster_attribute_table.rb +5 -5
  118. data/lib/gdal/raster_band.rb +24 -24
  119. data/lib/gdal/rpc_info.rb +2 -2
  120. data/lib/gdal/transformer.rb +1 -1
  121. data/lib/gdal/transformers/general_image_projection_transformer.rb +1 -1
  122. data/lib/gdal/transformers/general_image_projection_transformer2.rb +1 -1
  123. data/lib/gdal/transformers/general_image_projection_transformer3.rb +1 -1
  124. data/lib/gdal/version_info.rb +9 -9
  125. data/lib/gdal/virtual_dataset.rb +4 -4
  126. data/lib/gdal/warp_operation.rb +2 -2
  127. data/lib/gdal/warp_options.rb +2 -2
  128. data/lib/gdal.rb +17 -17
  129. data/lib/ogr/coordinate_transformation.rb +5 -5
  130. data/lib/ogr/data_source.rb +9 -9
  131. data/lib/ogr/driver.rb +9 -9
  132. data/lib/ogr/envelope.rb +1 -1
  133. data/lib/ogr/error_handling.rb +1 -1
  134. data/lib/ogr/extensions/all.rb +1 -1
  135. data/lib/ogr/extensions/data_source/capability_methods.rb +4 -4
  136. data/lib/ogr/extensions/data_source/data_source_extensions.rb +1 -1
  137. data/lib/ogr/extensions/driver/capability_methods.rb +3 -3
  138. data/lib/ogr/extensions/envelope/extensions.rb +1 -1
  139. data/lib/ogr/extensions/feature/extensions.rb +1 -1
  140. data/lib/ogr/extensions/feature_definition/extensions.rb +1 -1
  141. data/lib/ogr/extensions/geometries/point/extensions.rb +1 -1
  142. data/lib/ogr/extensions/geometry/container_mixins.rb +10 -10
  143. data/lib/ogr/extensions/geometry/ewkb_io_extensions.rb +3 -3
  144. data/lib/ogr/extensions/geometry/ewkb_record.rb +4 -4
  145. data/lib/ogr/extensions/geometry/extensions.rb +4 -7
  146. data/lib/ogr/extensions/geometry/rttopo_extensions.rb +2 -2
  147. data/lib/ogr/extensions/geometry/wkb_record.rb +3 -3
  148. data/lib/ogr/extensions/geometry_types/curve/extensions.rb +2 -2
  149. data/lib/ogr/extensions/layer/capability_methods.rb +17 -17
  150. data/lib/ogr/extensions/layer/extensions.rb +1 -1
  151. data/lib/ogr/extensions/spatial_reference/extensions.rb +1 -1
  152. data/lib/ogr/extensions/spatial_reference/initializers.rb +2 -2
  153. data/lib/ogr/extensions/style_table/extensions.rb +1 -1
  154. data/lib/ogr/feature.rb +15 -15
  155. data/lib/ogr/feature_definition.rb +2 -2
  156. data/lib/ogr/field.rb +5 -5
  157. data/lib/ogr/field_definition.rb +1 -1
  158. data/lib/ogr/geocoder.rb +1 -1
  159. data/lib/ogr/geometries/geometry_collection.rb +2 -2
  160. data/lib/ogr/geometries/geometry_collection_25d.rb +1 -1
  161. data/lib/ogr/geometries/line_string.rb +1 -1
  162. data/lib/ogr/geometries/line_string_25d.rb +1 -1
  163. data/lib/ogr/geometries/linear_ring.rb +2 -2
  164. data/lib/ogr/geometries/multi_line_string.rb +2 -2
  165. data/lib/ogr/geometries/multi_line_string_25d.rb +1 -1
  166. data/lib/ogr/geometries/multi_point.rb +1 -1
  167. data/lib/ogr/geometries/multi_point_25d.rb +1 -1
  168. data/lib/ogr/geometries/multi_polygon.rb +2 -2
  169. data/lib/ogr/geometries/multi_polygon_25d.rb +1 -1
  170. data/lib/ogr/geometries/point_25d.rb +1 -1
  171. data/lib/ogr/geometries/polygon.rb +2 -2
  172. data/lib/ogr/geometries/polygon_25d.rb +1 -1
  173. data/lib/ogr/geometry.rb +11 -11
  174. data/lib/ogr/geometry_types/container.rb +1 -1
  175. data/lib/ogr/geometry_types/curve.rb +1 -1
  176. data/lib/ogr/internal_helpers.rb +4 -4
  177. data/lib/ogr/layer.rb +8 -8
  178. data/lib/ogr/layer_mixins/ogr_feature_methods.rb +9 -9
  179. data/lib/ogr/layer_mixins/ogr_field_methods.rb +15 -15
  180. data/lib/ogr/layer_mixins/ogr_sql_methods.rb +2 -2
  181. data/lib/ogr/spatial_reference.rb +19 -19
  182. data/lib/ogr/spatial_reference_mixins/coordinate_system_getter_setters.rb +4 -4
  183. data/lib/ogr/spatial_reference_mixins/exporters.rb +9 -9
  184. data/lib/ogr/spatial_reference_mixins/importers.rb +2 -2
  185. data/lib/ogr/spatial_reference_mixins/morphers.rb +2 -2
  186. data/lib/ogr/spatial_reference_mixins/parameter_getter_setters.rb +1 -1
  187. data/lib/ogr/style_table.rb +3 -3
  188. data/lib/ogr/style_tool.rb +1 -1
  189. data/lib/ogr.rb +33 -33
  190. data/rakelib/docker.rake +2 -2
  191. metadata +11 -145
@@ -1,11 +1,11 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'bigdecimal'
4
- require 'bigdecimal/util'
5
- require 'narray'
6
- require_relative '../gdal'
7
- require_relative 'raster_band_mixins/algorithm_methods'
8
- require_relative 'major_object'
3
+ require "bigdecimal"
4
+ require "bigdecimal/util"
5
+ require "narray"
6
+ require_relative "../gdal"
7
+ require_relative "raster_band_mixins/algorithm_methods"
8
+ require_relative "major_object"
9
9
 
10
10
  module GDAL
11
11
  class RasterBand # rubocop:disable Metrics/ClassLength
@@ -37,7 +37,7 @@ module GDAL
37
37
 
38
38
  # @raise [GDAL::Error]
39
39
  def flush_cache
40
- GDAL::CPLErrorHandler.manually_handle('Unable to flush cache') do
40
+ GDAL::CPLErrorHandler.manually_handle("Unable to flush cache") do
41
41
  FFI::GDAL::GDAL.GDALFlushRasterCache(@c_pointer)
42
42
  end
43
43
  end
@@ -79,7 +79,7 @@ module GDAL
79
79
  # @param new_color_interp [FFI::GDAL::GDAL::ColorInterp]
80
80
  # @raise [GDAL::Error]
81
81
  def color_interpretation=(new_color_interp)
82
- GDAL::CPLErrorHandler.manually_handle('Unable to set color interpretation') do
82
+ GDAL::CPLErrorHandler.manually_handle("Unable to set color interpretation") do
83
83
  FFI::GDAL::GDAL.GDALSetRasterColorInterpretation(@c_pointer, new_color_interp)
84
84
  end
85
85
  end
@@ -102,7 +102,7 @@ module GDAL
102
102
  def color_table=(new_color_table)
103
103
  color_table_pointer = GDAL::ColorTable.new_pointer(new_color_table)
104
104
 
105
- GDAL::CPLErrorHandler.manually_handle('Unable to set color table') do
105
+ GDAL::CPLErrorHandler.manually_handle("Unable to set color table") do
106
106
  FFI::GDAL::GDAL.GDALSetRasterColorTable(@c_pointer, color_table_pointer)
107
107
  end
108
108
  end
@@ -140,7 +140,7 @@ module GDAL
140
140
  def category_names=(names)
141
141
  names_pointer = GDAL._string_array_to_pointer(names)
142
142
 
143
- GDAL::CPLErrorHandler.manually_handle('Unable to set category names') do
143
+ GDAL::CPLErrorHandler.manually_handle("Unable to set category names") do
144
144
  FFI::GDAL::GDAL.GDALSetRasterCategoryNames(@c_pointer, names_pointer)
145
145
  end
146
146
  end
@@ -153,7 +153,7 @@ module GDAL
153
153
  def no_data_value
154
154
  associated = FFI::MemoryPointer.new(:bool)
155
155
  value = FFI::GDAL::GDAL.GDALGetRasterNoDataValue(@c_pointer, associated)
156
- value = nil if value.to_d == BigDecimal('-10_000_000_000.0')
156
+ value = nil if value.to_d == BigDecimal("-10_000_000_000.0")
157
157
 
158
158
  { value: value, is_associated: associated.read_bytes(1).to_bool }
159
159
  end
@@ -164,7 +164,7 @@ module GDAL
164
164
  # @param value [Float, nil]
165
165
  # @raise [GDAL::Error]
166
166
  def no_data_value=(value)
167
- GDAL::CPLErrorHandler.manually_handle('Unable to set NODATA value') do
167
+ GDAL::CPLErrorHandler.manually_handle("Unable to set NODATA value") do
168
168
  FFI::GDAL::GDAL.GDALSetRasterNoDataValue(@c_pointer, value)
169
169
  end
170
170
  end
@@ -251,7 +251,7 @@ module GDAL
251
251
  end
252
252
  end
253
253
 
254
- GDAL::CPLErrorHandler.manually_handle('Unable to create mask band') do
254
+ GDAL::CPLErrorHandler.manually_handle("Unable to create mask band") do
255
255
  FFI::GDAL::GDAL.GDALCreateMaskBand(@c_pointer, flag_value)
256
256
  end
257
257
  end
@@ -263,7 +263,7 @@ module GDAL
263
263
  # @param imaginary_value [Float]
264
264
  # @raise [GDAL::Error]
265
265
  def fill(real_value, imaginary_value = 0)
266
- GDAL::CPLErrorHandler.manually_handle('Unable to fill raster') do
266
+ GDAL::CPLErrorHandler.manually_handle("Unable to fill raster") do
267
267
  FFI::GDAL::GDAL.GDALFillRaster(@c_pointer, real_value, imaginary_value)
268
268
  end
269
269
  end
@@ -315,7 +315,7 @@ module GDAL
315
315
  mean_ptr = FFI::MemoryPointer.new(:double)
316
316
  standard_deviation_ptr = FFI::MemoryPointer.new(:double)
317
317
 
318
- GDAL::CPLErrorHandler.manually_handle('Unable to compute raster statistics') do
318
+ GDAL::CPLErrorHandler.manually_handle("Unable to compute raster statistics") do
319
319
  FFI::GDAL::GDAL::GDALComputeRasterStatistics(
320
320
  @c_pointer, # hBand
321
321
  approx_ok, # bApproxOK
@@ -352,7 +352,7 @@ module GDAL
352
352
  success = FFI::MemoryPointer.new(:bool)
353
353
  result = FFI::GDAL::GDAL.GDALGetRasterScale(@c_pointer, success)
354
354
 
355
- raise GDAL::Error, 'GDALGetRasterScale failed' unless success.read_bytes(1).to_bool
355
+ raise GDAL::Error, "GDALGetRasterScale failed" unless success.read_bytes(1).to_bool
356
356
 
357
357
  result
358
358
  end
@@ -360,7 +360,7 @@ module GDAL
360
360
  # @param new_scale [Float]
361
361
  # @raise [GDAL::Error]
362
362
  def scale=(new_scale)
363
- GDAL::CPLErrorHandler.manually_handle('Unable to set raster scale') do
363
+ GDAL::CPLErrorHandler.manually_handle("Unable to set raster scale") do
364
364
  FFI::GDAL::GDAL.GDALSetRasterScale(@c_pointer, new_scale.to_f)
365
365
  end
366
366
  end
@@ -381,7 +381,7 @@ module GDAL
381
381
  success = FFI::MemoryPointer.new(:bool)
382
382
  result = FFI::GDAL::GDAL.GDALGetRasterOffset(@c_pointer, success)
383
383
 
384
- raise GDAL::Error, 'GDALGetRasterOffset failed' unless success.read_bytes(1).to_bool
384
+ raise GDAL::Error, "GDALGetRasterOffset failed" unless success.read_bytes(1).to_bool
385
385
 
386
386
  result
387
387
  end
@@ -391,7 +391,7 @@ module GDAL
391
391
  # @param new_offset [Float]
392
392
  # @return [Boolean]
393
393
  def offset=(new_offset)
394
- GDAL::CPLErrorHandler.manually_handle('Unable to set raster offset') do
394
+ GDAL::CPLErrorHandler.manually_handle("Unable to set raster offset") do
395
395
  FFI::GDAL::GDAL.GDALSetRasterOffset(@c_pointer, new_offset)
396
396
  end
397
397
  end
@@ -414,7 +414,7 @@ module GDAL
414
414
  return
415
415
  end
416
416
 
417
- GDAL::CPLErrorHandler.manually_handle('Unable to set unit type') do
417
+ GDAL::CPLErrorHandler.manually_handle("Unable to set unit type") do
418
418
  FFI::GDAL::GDAL.GDALSetRasterUnitType(@c_pointer, new_unit_type)
419
419
  end
420
420
  end
@@ -431,7 +431,7 @@ module GDAL
431
431
  def default_raster_attribute_table=(rat_table)
432
432
  rat_table_ptr = GDAL::RasterAttributeTable.new_pointer(rat_table)
433
433
 
434
- GDAL::CPLErrorHandler.manually_handle('Unable to set default raster attribute table') do
434
+ GDAL::CPLErrorHandler.manually_handle("Unable to set default raster attribute table") do
435
435
  FFI::GDAL::GDAL.GDALSetDefaultRAT(@c_pointer, rat_table_ptr)
436
436
  end
437
437
  end
@@ -592,7 +592,7 @@ module GDAL
592
592
  destination_pointer = GDAL._pointer(GDAL::RasterBand, destination_band)
593
593
  options_ptr = GDAL::Options.pointer(options)
594
594
 
595
- GDAL::CPLErrorHandler.manually_handle('Unable to copy whole raster') do
595
+ GDAL::CPLErrorHandler.manually_handle("Unable to copy whole raster") do
596
596
  FFI::GDAL::GDAL.GDALRasterBandCopyWholeRaster(@c_pointer,
597
597
  destination_pointer,
598
598
  options_ptr,
@@ -691,7 +691,7 @@ module GDAL
691
691
  def read_block(x_block_number, y_block_number, image_buffer = nil)
692
692
  image_buffer ||= FFI::MemoryPointer.new(:buffer_out, block_buffer_size)
693
693
 
694
- GDAL::CPLErrorHandler.manually_handle('Unable to read block') do
694
+ GDAL::CPLErrorHandler.manually_handle("Unable to read block") do
695
695
  FFI::GDAL::GDAL.GDALReadBlock(@c_pointer, x_block_number, y_block_number, image_buffer)
696
696
  end
697
697
 
@@ -707,7 +707,7 @@ module GDAL
707
707
  def write_block(x_block_number, y_block_number, data_pointer = nil)
708
708
  data_pointer ||= FFI::Buffer.alloc_inout(block_buffer_size)
709
709
 
710
- GDAL::CPLErrorHandler.manually_handle('Unable to write block') do
710
+ GDAL::CPLErrorHandler.manually_handle("Unable to write block") do
711
711
  FFI::GDAL::GDAL.GDALWriteBlock(@c_pointer, x_block_number, y_block_number, data_pointer)
712
712
  end
713
713
 
data/lib/gdal/rpc_info.rb CHANGED
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'forwardable'
4
- require_relative '../gdal'
3
+ require "forwardable"
4
+ require_relative "../gdal"
5
5
 
6
6
  module GDAL
7
7
  # @return [FFI::GDAL::RPCInfo]
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require_relative '../gdal'
3
+ require_relative "../gdal"
4
4
 
5
5
  module GDAL
6
6
  class Transformer
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require_relative 'base_general_image_projection_transformer'
3
+ require_relative "base_general_image_projection_transformer"
4
4
 
5
5
  module GDAL
6
6
  module Transformers
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require_relative 'base_general_image_projection_transformer'
3
+ require_relative "base_general_image_projection_transformer"
4
4
 
5
5
  module GDAL
6
6
  module Transformers
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require_relative 'base_general_image_projection_transformer'
3
+ require_relative "base_general_image_projection_transformer"
4
4
 
5
5
  module GDAL
6
6
  module Transformers
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'date'
3
+ require "date"
4
4
 
5
5
  module GDAL
6
6
  module VersionInfo
@@ -8,42 +8,42 @@ module GDAL
8
8
  #
9
9
  # @return [String]
10
10
  def version_num
11
- FFI::GDAL.GDALVersionInfo('VERSION_NUM')
11
+ FFI::GDAL.GDALVersionInfo("VERSION_NUM")
12
12
  end
13
13
 
14
14
  # @return [Date]
15
15
  def release_date
16
- Date.parse(FFI::GDAL.GDALVersionInfo('RELEASE_DATE'))
16
+ Date.parse(FFI::GDAL.GDALVersionInfo("RELEASE_DATE"))
17
17
  end
18
18
 
19
19
  # Version in the form "1.1.7".
20
20
  #
21
21
  # @return [String]
22
22
  def release_name
23
- FFI::GDAL.GDALVersionInfo('RELEASE_NAME')
23
+ FFI::GDAL.GDALVersionInfo("RELEASE_NAME")
24
24
  end
25
25
 
26
26
  # The long licensing info.
27
27
  #
28
28
  # @return [String]
29
29
  def license
30
- FFI::GDAL.GDALVersionInfo('LICENSE')
30
+ FFI::GDAL.GDALVersionInfo("LICENSE")
31
31
  end
32
32
 
33
33
  # Options used when building GDAL.
34
34
  #
35
35
  # @return [Hash{String => String}]
36
36
  def build_info
37
- key_value_pairs = FFI::GDAL.GDALVersionInfo('BUILD_INFO')
37
+ key_value_pairs = FFI::GDAL.GDALVersionInfo("BUILD_INFO")
38
38
  key_value_pairs.split.each_with_object({}) do |kv, obj|
39
- key, value = kv.split('=', 2)
39
+ key, value = kv.split("=", 2)
40
40
  obj[key] = value
41
41
  end
42
42
  end
43
43
 
44
44
  # @return [String]
45
45
  def long_version
46
- FFI::GDAL.GDALVersionInfo('--version')
46
+ FFI::GDAL.GDALVersionInfo("--version")
47
47
  end
48
48
 
49
49
  # @param major [Integer]
@@ -51,7 +51,7 @@ module GDAL
51
51
  # @return [Boolean] +true+ if the runtime GDAL library matches the given
52
52
  # version params.
53
53
  def check_version(major, minor)
54
- FFI::GDAL.GDALCheckVersion(major, minor, 'FFI::GDAL')
54
+ FFI::GDAL.GDALCheckVersion(major, minor, "FFI::GDAL")
55
55
  end
56
56
  end
57
57
  end
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require_relative '../gdal'
4
- require_relative 'major_object'
3
+ require_relative "../gdal"
4
+ require_relative "major_object"
5
5
 
6
6
  module GDAL
7
7
  class VirtualDataset
@@ -19,7 +19,7 @@ module GDAL
19
19
  end
20
20
 
21
21
  # TODO: Build the xml string
22
- def to_xml(path = '')
22
+ def to_xml(path = "")
23
23
  xml_node = FFI::GDAL::VRT.VRTSerializeToXML(@c_pointer, path)
24
24
 
25
25
  FFI::CPL::MiniXML.CPLSerializeXMLTree(xml_node)
@@ -46,7 +46,7 @@ module GDAL
46
46
  def add_simple_source(vrt_band, source_band, no_data_value,
47
47
  src_x_offset: 0, src_y_offset: 0, src_x_size: nil, src_y_size: nil,
48
48
  dst_x_offset: 0, dst_y_offset: 0, dst_x_size: nil, dst_y_size: nil,
49
- resampling: '')
49
+ resampling: "")
50
50
  FFI::GDAL::VRT.VRTAddSimpleSource(
51
51
  vrt_band,
52
52
  source_band, # hSrcBand
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require_relative '../gdal'
3
+ require_relative "../gdal"
4
4
 
5
5
  module GDAL
6
6
  class WarpOperation
@@ -18,7 +18,7 @@ module GDAL
18
18
  def initialize(warp_options)
19
19
  pointer = FFI::GDAL::Warper.GDALCreateWarpOperation(warp_options.c_struct)
20
20
 
21
- raise GDAL::Error, 'Unable to create warp operation' if pointer.null?
21
+ raise GDAL::Error, "Unable to create warp operation" if pointer.null?
22
22
 
23
23
  @c_pointer = FFI::AutoPointer.new(pointer, WarpOperation.method(:release))
24
24
  end
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require_relative '../gdal'
3
+ require_relative "../gdal"
4
4
 
5
5
  module GDAL
6
6
  class WarpOptions
@@ -97,7 +97,7 @@ module GDAL
97
97
 
98
98
  # @param geometry [OGR::Geometry]
99
99
  def cutline=(geometry)
100
- raise 'Not a geom' unless geometry.is_a?(OGR::Geometry)
100
+ raise "Not a geom" unless geometry.is_a?(OGR::Geometry)
101
101
 
102
102
  @cutline = geometry
103
103
 
data/lib/gdal.rb CHANGED
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require_relative 'ffi-gdal'
4
- require_relative 'ffi/gdal'
3
+ require_relative "ffi-gdal"
4
+ require_relative "ffi/gdal"
5
5
 
6
6
  module GDAL
7
7
  class << self
@@ -27,23 +27,23 @@ module GDAL
27
27
  end
28
28
 
29
29
  # Autoload just the core GDAL object types.
30
- autoload :ColorTable, gdal_require('gdal/color_table')
31
- autoload :Dataset, gdal_require('gdal/dataset')
32
- autoload :DataType, gdal_require('gdal/data_type')
33
- autoload :Driver, gdal_require('gdal/driver')
34
- autoload :GeoTransform, gdal_require('gdal/geo_transform')
35
- autoload :Logger, gdal_require('gdal/logger')
36
- autoload :MajorObject, gdal_require('gdal/major_object')
37
- autoload :Options, gdal_require('gdal/options')
38
- autoload :RasterAttributeTable, gdal_require('gdal/raster_attribute_table')
39
- autoload :RasterBand, gdal_require('gdal/raster_band')
30
+ autoload :ColorTable, gdal_require("gdal/color_table")
31
+ autoload :Dataset, gdal_require("gdal/dataset")
32
+ autoload :DataType, gdal_require("gdal/data_type")
33
+ autoload :Driver, gdal_require("gdal/driver")
34
+ autoload :GeoTransform, gdal_require("gdal/geo_transform")
35
+ autoload :Logger, gdal_require("gdal/logger")
36
+ autoload :MajorObject, gdal_require("gdal/major_object")
37
+ autoload :Options, gdal_require("gdal/options")
38
+ autoload :RasterAttributeTable, gdal_require("gdal/raster_attribute_table")
39
+ autoload :RasterBand, gdal_require("gdal/raster_band")
40
40
  end
41
41
 
42
- require_relative 'gdal/exceptions'
43
- require_relative 'gdal/version_info'
44
- require_relative 'gdal/environment_methods'
45
- require_relative 'gdal/internal_helpers'
46
- require_relative 'gdal/cpl_error_handler'
42
+ require_relative "gdal/exceptions"
43
+ require_relative "gdal/version_info"
44
+ require_relative "gdal/environment_methods"
45
+ require_relative "gdal/internal_helpers"
46
+ require_relative "gdal/cpl_error_handler"
47
47
 
48
48
  module GDAL
49
49
  extend VersionInfo
@@ -1,8 +1,8 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'narray'
4
- require_relative '../ogr'
5
- require_relative '../gdal'
3
+ require "narray"
4
+ require_relative "../ogr"
5
+ require_relative "../gdal"
6
6
 
7
7
  module OGR
8
8
  class CoordinateTransformation
@@ -13,7 +13,7 @@ module OGR
13
13
  FFI::GDAL::GDAL.OCTProj4Normalize(proj4_source)
14
14
  else
15
15
  raise OGR::UnsupportedOperation,
16
- 'Your version of GDAL/OGR does not support OCTProj4Normalize'
16
+ "Your version of GDAL/OGR does not support OCTProj4Normalize"
17
17
  end
18
18
  end
19
19
 
@@ -46,7 +46,7 @@ module OGR
46
46
  # by the null-pointer check below.
47
47
  pointer = FFI::OGR::SRSAPI.OCTNewCoordinateTransformation(source_ptr, destination_ptr)
48
48
 
49
- raise GDAL::Error, 'Unable to create coordinate transformation' if pointer.null?
49
+ raise GDAL::Error, "Unable to create coordinate transformation" if pointer.null?
50
50
 
51
51
  @c_pointer = pointer
52
52
  end
@@ -1,8 +1,8 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require_relative '../gdal'
4
- require_relative '../ogr'
5
- require_relative '../gdal/major_object'
3
+ require_relative "../gdal"
4
+ require_relative "../ogr"
5
+ require_relative "../gdal/major_object"
6
6
 
7
7
  module OGR
8
8
  class DataSource
@@ -14,7 +14,7 @@ module OGR
14
14
  # @param path [String]
15
15
  # @param access_flag [String] 'r' for read, 'w', for write.
16
16
  # @return [OGR::DataSource]
17
- def self.open(path, access_flag = 'r')
17
+ def self.open(path, access_flag = "r")
18
18
  ds = new(path, access_flag)
19
19
 
20
20
  if block_given?
@@ -138,9 +138,9 @@ module OGR
138
138
  # @param options [Hash] Driver-specific options.
139
139
  # @return [OGR::Layer]
140
140
  def create_layer(name, geometry_type: :wkbUnknown, spatial_reference: nil, **options)
141
- unless test_capability('CreateLayer')
141
+ unless test_capability("CreateLayer")
142
142
  raise OGR::UnsupportedOperation,
143
- 'This data source does not support creating layers.'
143
+ "This data source does not support creating layers."
144
144
  end
145
145
 
146
146
  spatial_ref_ptr = GDAL._pointer(OGR::SpatialReference, spatial_reference, autorelease: false) if spatial_reference
@@ -174,9 +174,9 @@ module OGR
174
174
  # @param index [Integer]
175
175
  # @raise [OGR::Failure]
176
176
  def delete_layer(index)
177
- unless test_capability('DeleteLayer')
177
+ unless test_capability("DeleteLayer")
178
178
  raise OGR::UnsupportedOperation,
179
- 'This data source does not support deleting layers.'
179
+ "This data source does not support deleting layers."
180
180
  end
181
181
 
182
182
  OGR::ErrorHandling.handle_ogr_err("Unable to delete layer at index #{index}") do
@@ -236,7 +236,7 @@ module OGR
236
236
 
237
237
  # @raise [OGR::Failure]
238
238
  def sync_to_disk
239
- OGR::ErrorHandling.handle_ogr_err('Unable to syn datasource to disk') do
239
+ OGR::ErrorHandling.handle_ogr_err("Unable to syn datasource to disk") do
240
240
  FFI::OGR::API.OGR_DS_SyncToDisk(@c_pointer)
241
241
  end
242
242
  end
data/lib/ogr/driver.rb CHANGED
@@ -1,8 +1,8 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require_relative '../ogr'
4
- require_relative '../gdal'
5
- require_relative '../gdal/major_object'
3
+ require_relative "../ogr"
4
+ require_relative "../gdal"
5
+ require_relative "../gdal/major_object"
6
6
 
7
7
  module OGR
8
8
  # Wrapper for OGR's Driver class. In this case, to use a driver, find the
@@ -69,7 +69,7 @@ module OGR
69
69
  # @param file_name [String]
70
70
  # @param access_flag [String] 'r' or 'w'.
71
71
  # @return [OGR::DataSource, nil]
72
- def open(file_name, access_flag = 'r')
72
+ def open(file_name, access_flag = "r")
73
73
  update = OGR._boolean_access_flag(access_flag)
74
74
 
75
75
  data_source_ptr = FFI::OGR::API.OGR_Dr_Open(@c_pointer, file_name, update)
@@ -87,8 +87,8 @@ module OGR
87
87
  # @param options [Hash]
88
88
  # @return [OGR::DataSource, nil]
89
89
  def create_data_source(file_name, **options)
90
- unless test_capability('CreateDataSource')
91
- raise OGR::UnsupportedOperation, 'This driver does not support data source creation.'
90
+ unless test_capability("CreateDataSource")
91
+ raise OGR::UnsupportedOperation, "This driver does not support data source creation."
92
92
  end
93
93
 
94
94
  options_ptr = GDAL::Options.pointer(options)
@@ -97,7 +97,7 @@ module OGR
97
97
  file_name, options_ptr)
98
98
  raise OGR::CreateFailure, "Unable to create DataSource '#{file_name}'" if data_source_ptr.null?
99
99
 
100
- ds = OGR::DataSource.new(data_source_ptr, 'w')
100
+ ds = OGR::DataSource.new(data_source_ptr, "w")
101
101
  yield ds if block_given?
102
102
 
103
103
  ds
@@ -106,8 +106,8 @@ module OGR
106
106
  # @param file_name [String]
107
107
  # @raise [OGR::Failure]
108
108
  def delete_data_source(file_name)
109
- unless test_capability('DeleteDataSource')
110
- raise OGR::UnsupportedOperation, 'This driver does not support deleting data sources.'
109
+ unless test_capability("DeleteDataSource")
110
+ raise OGR::UnsupportedOperation, "This driver does not support deleting data sources."
111
111
  end
112
112
 
113
113
  OGR::ErrorHandling.handle_ogr_err("Unable to delete data source '#{file_name}'") do
data/lib/ogr/envelope.rb CHANGED
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require_relative '../ogr'
3
+ require_relative "../ogr"
4
4
 
5
5
  module OGR
6
6
  class Envelope
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require_relative 'exceptions'
3
+ require_relative "exceptions"
4
4
 
5
5
  module OGR
6
6
  # OGR returns errors as Integers--not as part of the GDAL/CPLErr error
@@ -1,3 +1,3 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- Dir[File.join(__dir__, '**/*.rb')].sort.each { |f| require f }
3
+ Dir[File.join(__dir__, "**/*.rb")].sort.each { |f| require f }
@@ -6,23 +6,23 @@ module OGR
6
6
  module CapabilityMethods
7
7
  # @return [Boolean] +true+ if the DataSource can create existing Layers.
8
8
  def can_create_layer?
9
- test_capability('CreateLayer')
9
+ test_capability("CreateLayer")
10
10
  end
11
11
 
12
12
  # @return [Boolean] +true+ if the DataSource can delete existing Layers.
13
13
  def can_delete_layer?
14
- test_capability('DeleteLayer')
14
+ test_capability("DeleteLayer")
15
15
  end
16
16
 
17
17
  # @return [Boolean] +true+ if the DataSource supports creating a
18
18
  # GeometryField after a Layer has been created.
19
19
  def can_create_geometry_field_after_create_layer?
20
- test_capability('CreateGeomFieldAfterCreateLayer')
20
+ test_capability("CreateGeomFieldAfterCreateLayer")
21
21
  end
22
22
 
23
23
  # @return [Boolean] +true+ if the DataSource supports curve geometries.
24
24
  def supports_curve_geometries?
25
- test_capability('CurveGeometries')
25
+ test_capability("CurveGeometries")
26
26
  end
27
27
  end
28
28
  end
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'ogr/data_source'
3
+ require "ogr/data_source"
4
4
 
5
5
  module OGR
6
6
  class DataSource
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'ogr/driver'
3
+ require "ogr/driver"
4
4
 
5
5
  module OGR
6
6
  module DriverMixins
@@ -8,12 +8,12 @@ module OGR
8
8
  module CapabilityMethods
9
9
  # @return [Boolean] +true+ if this driver supports creating data sources.
10
10
  def can_create_data_source?
11
- test_capability('CreateDataSource')
11
+ test_capability("CreateDataSource")
12
12
  end
13
13
 
14
14
  # @return [Boolean] +true+ if this driver supports deleting data sources.
15
15
  def can_delete_data_source?
16
- test_capability('DeleteDataSource')
16
+ test_capability("DeleteDataSource")
17
17
  end
18
18
  end
19
19
  end
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'ogr/envelope'
3
+ require "ogr/envelope"
4
4
 
5
5
  module OGR
6
6
  class Envelope
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'ogr/feature'
3
+ require "ogr/feature"
4
4
 
5
5
  module OGR
6
6
  class Feature
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'ogr/feature_definition'
3
+ require "ogr/feature_definition"
4
4
 
5
5
  module OGR
6
6
  class FeatureDefinition
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'ogr/geometry'
3
+ require "ogr/geometry"
4
4
 
5
5
  module OGR
6
6
  class Point