ffi-gdal 0.0.4 → 1.0.0.beta1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +7 -1
- data/Rakefile +12 -1
- data/TODO.md +11 -0
- data/ffi-gdal.gemspec +2 -2
- data/lib/ext/error_symbols.rb +59 -0
- data/lib/ext/float_ext.rb +15 -0
- data/lib/ext/narray_ext.rb +16 -0
- data/lib/ext/to_bool.rb +2 -0
- data/lib/ffi-gdal.rb +139 -4
- data/lib/ffi/{gdal/cpl_conv.rb → cpl/conv_h.rb} +2 -3
- data/lib/ffi/{gdal/cpl_error.rb → cpl/error_h.rb} +1 -25
- data/lib/ffi/cpl/minixml_h.rb +14 -0
- data/lib/ffi/{gdal/cpl_string.rb → cpl/string_h.rb} +0 -25
- data/lib/ffi/{gdal/cpl_vsi.rb → cpl/vsi_h.rb} +0 -0
- data/lib/ffi/cpl/xml_node.rb +13 -0
- data/lib/ffi/gdal.rb +57 -593
- data/lib/ffi/gdal/alg_h.rb +127 -0
- data/lib/ffi/gdal/gdal_grid_data_metrics_options.rb +14 -0
- data/lib/ffi/gdal/gdal_grid_inverse_distance_to_a_power_options.rb +19 -0
- data/lib/ffi/gdal/gdal_grid_moving_average_options.rb +14 -0
- data/lib/ffi/gdal/gdal_grid_nearest_neighbor_options.rb +13 -0
- data/lib/ffi/gdal/gdal_h.rb +683 -0
- data/lib/ffi/gdal/gdal_rpc_info.rb +27 -0
- data/lib/ffi/gdal/gdal_transformer_info.rb +14 -0
- data/lib/ffi/gdal/gdal_warp_options.rb +43 -0
- data/lib/ffi/gdal/grid_h.rb +51 -0
- data/lib/ffi/gdal/version.rb +1 -1
- data/lib/ffi/gdal/warper_h.rb +48 -0
- data/lib/ffi/ogr.rb +12 -0
- data/lib/ffi/ogr/api_h.rb +553 -0
- data/lib/ffi/ogr/core_h.rb +148 -0
- data/lib/ffi/ogr/featurestyle_h.rb +22 -0
- data/lib/ffi/ogr/geocoding_h.rb +21 -0
- data/lib/ffi/ogr/ogr_contour_writer_info.rb +14 -0
- data/lib/ffi/ogr/ogr_envelope.rb +12 -0
- data/lib/ffi/ogr/ogr_envelope_3d.rb +14 -0
- data/lib/ffi/ogr/ogr_field.rb +50 -0
- data/lib/ffi/ogr/ogr_style_param.rb +12 -0
- data/lib/ffi/ogr/ogr_style_value.rb +13 -0
- data/lib/ffi/ogr/srs_api_h.rb +325 -0
- data/lib/gdal/color_entry.rb +47 -0
- data/lib/gdal/color_entry_extensions.rb +30 -0
- data/lib/gdal/color_interpretation.rb +15 -0
- data/lib/gdal/color_table.rb +146 -0
- data/lib/gdal/color_table_extensions.rb +47 -0
- data/lib/gdal/color_table_types/cmyk.rb +25 -0
- data/lib/gdal/color_table_types/gray.rb +9 -0
- data/lib/gdal/color_table_types/hls.rb +21 -0
- data/lib/gdal/color_table_types/rgb.rb +25 -0
- data/lib/gdal/data_type.rb +38 -0
- data/lib/gdal/dataset.rb +437 -0
- data/lib/gdal/dataset_extensions.rb +496 -0
- data/lib/gdal/driver.rb +244 -0
- data/lib/gdal/driver_extensions.rb +56 -0
- data/lib/gdal/environment_methods.rb +43 -0
- data/lib/{ffi-gdal → gdal}/exceptions.rb +4 -1
- data/lib/gdal/geo_transform.rb +188 -0
- data/lib/gdal/geo_transform_extensions.rb +90 -0
- data/lib/gdal/logger.rb +7 -0
- data/lib/{ffi-gdal → gdal}/major_object.rb +15 -14
- data/lib/gdal/options.rb +49 -0
- data/lib/gdal/raster_attribute_table.rb +185 -0
- data/lib/gdal/raster_attribute_table_extensions.rb +40 -0
- data/lib/{ffi-gdal → gdal}/raster_band.rb +227 -99
- data/lib/gdal/raster_band_extensions.rb +198 -0
- data/lib/{ffi-gdal → gdal}/version_info.rb +8 -0
- data/lib/gdal/warp_operation.rb +96 -0
- data/lib/ogr/coordinate_transformation.rb +108 -0
- data/lib/ogr/data_source.rb +172 -0
- data/lib/ogr/data_source_extensions.rb +32 -0
- data/lib/ogr/driver.rb +119 -0
- data/lib/ogr/envelope.rb +80 -0
- data/lib/ogr/envelope_extensions.rb +92 -0
- data/lib/ogr/exceptions.rb +35 -0
- data/lib/ogr/feature.rb +212 -0
- data/lib/ogr/feature_definition.rb +120 -0
- data/lib/ogr/feature_definition_extensions.rb +36 -0
- data/lib/ogr/feature_extensions.rb +31 -0
- data/lib/ogr/field.rb +91 -0
- data/lib/ogr/field_extensions.rb +23 -0
- data/lib/ogr/geocoding_session.rb +84 -0
- data/lib/ogr/geometry.rb +617 -0
- data/lib/ogr/geometry_extensions.rb +60 -0
- data/lib/ogr/geometry_types/collection.rb +45 -0
- data/lib/ogr/geometry_types/curve.rb +120 -0
- data/lib/ogr/geometry_types/surface.rb +20 -0
- data/lib/ogr/layer.rb +226 -0
- data/lib/ogr/layer_extensions.rb +55 -0
- data/lib/ogr/line_string.rb +7 -0
- data/lib/ogr/linear_ring.rb +6 -0
- data/lib/ogr/multi_line_string.rb +9 -0
- data/lib/ogr/multi_point.rb +7 -0
- data/lib/ogr/multi_polygon.rb +14 -0
- data/lib/ogr/point.rb +89 -0
- data/lib/ogr/polygon.rb +9 -0
- data/lib/ogr/spatial_reference.rb +723 -0
- data/lib/ogr/spatial_reference_extensions.rb +32 -0
- data/lib/ogr/style_table.rb +17 -0
- data/lib/ogr/style_table_extensions.rb +16 -0
- data/spec/{ffi-gdal/integration → integration}/color_table_info_spec.rb +1 -1
- data/spec/{ffi-gdal/integration → integration}/dataset_info_spec.rb +0 -0
- data/spec/{ffi-gdal/integration → integration}/driver_info_spec.rb +1 -1
- data/spec/{ffi-gdal/integration → integration}/geo_transform_info_spec.rb +0 -0
- data/spec/{ffi-gdal/integration → integration}/raster_attribute_table_info_spec.rb +1 -1
- data/spec/{ffi-gdal/integration → integration}/raster_band_info_spec.rb +5 -5
- data/spec/spec_helper.rb +4 -1
- data/spec/support/shapefiles/states_21basic/states.prj +1 -0
- data/spec/support/shapefiles/states_21basic/states.sbn +0 -0
- data/spec/support/shapefiles/states_21basic/states.sbx +0 -0
- data/spec/support/shapefiles/states_21basic/states.shp +0 -0
- data/spec/support/worldfiles/SR_50M/SR_50M.VERSION.txt +1 -0
- data/spec/support/worldfiles/SR_50M/SR_50M.prj +1 -0
- data/spec/support/worldfiles/SR_50M/SR_50M.tfw +6 -0
- data/spec/{ext/cpl_error_symbols_spec.rb → unit/ext/error_symbols_spec.rb} +1 -1
- data/spec/unit/gdal/color_table_spec.rb +146 -0
- data/spec/unit/ogr/layer_spec.rb +97 -0
- data/spec/unit/ogr/linear_ring_spec.rb +111 -0
- data/spec/unit/ogr/point_spec.rb +321 -0
- data/spec/{ffi-gdal/unit → unit}/version_info_spec.rb +1 -1
- data/testing_gdal.rb +168 -0
- data/testing_gdalwarp.rb +91 -0
- data/testing_layer_to_layer.rb +35 -0
- data/testing_ndvi.rb +76 -0
- data/testing_nir.rb +77 -0
- data/testing_ogr.rb +63 -0
- metadata +167 -59
- data/lib/ext/cpl_error_symbols.rb +0 -37
- data/lib/ffi-gdal/color_table.rb +0 -59
- data/lib/ffi-gdal/dataset.rb +0 -359
- data/lib/ffi-gdal/driver.rb +0 -151
- data/lib/ffi-gdal/geo_transform.rb +0 -137
- data/lib/ffi-gdal/raster_attribute_table.rb +0 -78
- data/lib/ffi/gdal/ogr_api.rb +0 -21
- data/lib/ffi/gdal/ogr_core.rb +0 -195
- data/lib/ffi/gdal/ogr_srs_api.rb +0 -44
- data/meow.rb +0 -144
- data/rubby.rb +0 -224
data/testing_gdalwarp.rb
ADDED
@@ -0,0 +1,91 @@
|
|
1
|
+
require 'bundler/setup'
|
2
|
+
require 'pry'
|
3
|
+
require 'ffi-gdal'
|
4
|
+
|
5
|
+
include GDAL::Logger
|
6
|
+
GDAL::Logger.logging_enabled = true
|
7
|
+
|
8
|
+
|
9
|
+
# https://trac.osgeo.org/gdal/ticket/1599
|
10
|
+
|
11
|
+
#floyd_path = '/Users/sloveless/Development/projects/ffi-gdal/spec/support/images/Floyd/Floyd_1058_20140612_NRGB.tif'
|
12
|
+
#floyd = GDAL::Dataset.open(floyd_path, 'r')
|
13
|
+
#floyd_wkt = 'MULTIPOLYGON(((-87.5530099868775 31.16710573359053,-87.65300998687 31.167105000001, -87.5530099868775 31.165600160261103,-87.55384683609009 31.16710573359053,-87.5530099868775 31.16710573359053)))'
|
14
|
+
spatial_ref = OGR::SpatialReference.new_from_epsg(4326)
|
15
|
+
#floyd_geometry = OGR::Geometry.create_from_wkt(floyd_wkt, spatial_ref)
|
16
|
+
#floyd_geometry.transform_to!(floyd.spatial_reference)
|
17
|
+
|
18
|
+
harper_wkt = "MULTIPOLYGON (((-87.5639814967 31.18677438740807, -87.56095596493151 31.186756030714633, -87.56127783001327 31.185048842709264, -87.56022640407895 31.184259487308854, -87.55996891201355 31.183800556723995, -87.56037660778345 31.183470125325623, -87.55999036968537 31.182295248791167, -87.55936809719456 31.181891381615166, -87.55887457073558 31.18031261157701, -87.55968996227632 31.180018884013712, -87.55872436703105 31.17799948235227, -87.55769439876855 31.177852615097343, -87.55664297283512 31.177283502330614, -87.5565464133106 31.175998396405248, -87.56492563427345 31.176016755184154, -87.56496854961708 31.177154992523167, -87.5639814967 31.177669030707264, -87.56415315807725 31.178752173461035, -87.56501146496161 31.179908735942732, -87.56496854961708 31.18462663017465, -87.56400295437183 31.184810201073287, -87.5639814967 31.18677438740807)))"
|
19
|
+
harper_path = '/Users/sloveless/Development/projects/ffi-gdal/spec/support/images/Harper/Harper_1058_20140612_NRGB.tif'
|
20
|
+
harper = GDAL::Dataset.open(harper_path, 'r')
|
21
|
+
harper_geometry = OGR::Geometry.create_from_wkt(harper_wkt, spatial_ref)
|
22
|
+
harper_geometry.transform_to!(harper.spatial_reference)
|
23
|
+
|
24
|
+
#epsg4326_geom = floyd.to_geometry
|
25
|
+
|
26
|
+
#floyd.close
|
27
|
+
harper.close
|
28
|
+
|
29
|
+
|
30
|
+
#puts floyd.contains_geometry?(floyd_wkt)
|
31
|
+
|
32
|
+
#`gdalwarp -wo "INIT_DEST=255,0,255" -wo "#{floyd_geometry.to_wkt}" #{floyd_path} cut-out.tif`
|
33
|
+
#`gdalwarp -wo "CUTLINE=#{floyd_geometry.to_wkt}" #{floyd_path} cut-out.tif`
|
34
|
+
#`gdalwarp -dstnodata -1 -cutline "#{floyd_geometry.to_wkt}" #{floyd_path} cut-out.tif`
|
35
|
+
#cmd = %{gdalwarp -dstnodata -1 -cutline "#{floyd_geometry.to_wkt}" -crop_to_cutline #{floyd_path} cut-out.tif}
|
36
|
+
#cmd = %{gdalwarp -dstnodata -1 -cutline "#{floyd_geometry.to_wkt}" -crop_to_cutline #{floyd_path} cut-out.tif}
|
37
|
+
|
38
|
+
# Result: No file
|
39
|
+
# cmd = %{gdalwarp -cutline "#{floyd_geometry.to_wkt}" -crop_to_cutline #{floyd_path} cut-out.tif}
|
40
|
+
|
41
|
+
#cmd = %{gdalwarp -wo "INIT_DEST=NO_DATA" -wo "CUTLINE=#{floyd_geometry.to_wkt}" -crop_to_cutline #{floyd_path} cut-out.tif}
|
42
|
+
#cmd = %{gdalwarp -wo "CUTLINE_ALL_TOUCHED=TRUE" -wo "INIT_DEST=NO_DATA" -wo "CUTLINE=#{floyd_geometry.to_wkt}" -crop_to_cutline #{floyd_path} cut-out.tif}
|
43
|
+
#cmd = %{gdalwarp -wo "CUTLINE_ALL_TOUCHED=TRUE" -wo "CUTLINE=#{floyd_geometry.to_wkt}" -wo "SAMPLE_GRID=YES" #{floyd_path} cut-out.tif}
|
44
|
+
#cmd = %{gdalwarp -wo "ALL_TOUCHED=TRUE" -wo "CUTLINE=#{floyd_geometry.to_wkt}" #{floyd_path} cut-out.tif}
|
45
|
+
#cmd = %{gdal_grid -clipsrc "#{floyd_geometry.to_wkt}" #{floyd_path} cut-out.tif}
|
46
|
+
|
47
|
+
require 'fileutils'
|
48
|
+
FileUtils.rm_rf 'stuff'
|
49
|
+
FileUtils.rm_rf 'stuff.shp'
|
50
|
+
FileUtils.rm_rf 'stuff.*'
|
51
|
+
FileUtils.rm_rf 'geometry.json'
|
52
|
+
FileUtils.rm_rf 'cut-out.tif'
|
53
|
+
|
54
|
+
#File.write('geometry.json', harper_geometry.to_geo_json)
|
55
|
+
#File.write('geometry.json', epsg4326_geom.to_geo_json)
|
56
|
+
#ogr_cmd = %{ogr2ogr -f "ESRI Shapefile" stuff.shp geometry.json OGRGeoJSON}
|
57
|
+
#p ogr_cmd
|
58
|
+
|
59
|
+
#{}`#{ogr_cmd}`
|
60
|
+
|
61
|
+
def make_shapefile(geo_json)
|
62
|
+
geo_json_file = Tempfile.new(%w[geo_json .json])
|
63
|
+
geo_json_file.write(geo_json)
|
64
|
+
geo_json_file.close
|
65
|
+
|
66
|
+
shape_dir = Dir.mktmpdir('shapes')
|
67
|
+
shapefile_name = 'clip_shape.shp'
|
68
|
+
shapefile_path = File.join(shape_dir, shapefile_name)
|
69
|
+
|
70
|
+
ogr_command = %{ogr2ogr -f "ESRI Shapefile" #{shapefile_path} #{geo_json_file.path} OGRGeoJSON}
|
71
|
+
logger.debug "Running command to make shapefile: #{ogr_command}"
|
72
|
+
|
73
|
+
`#{ogr_command}`
|
74
|
+
|
75
|
+
FileUtils.rm("#{shape_dir}/clip_shape.prj")
|
76
|
+
|
77
|
+
shape_dir
|
78
|
+
end
|
79
|
+
|
80
|
+
# Result: Empty file
|
81
|
+
#cmd = %{gdalwarp -wo "CUTLINE=#{floyd_wkt}" -s_srs "EPSG:32616" #{floyd_path} cut-out.tif}
|
82
|
+
#prj_file = File.expand_path('stuff.prj', __dir__)
|
83
|
+
#p prj_file
|
84
|
+
#FileUtils.rm prj_file
|
85
|
+
binding.pry
|
86
|
+
|
87
|
+
#cmd = %{gdalwarp -dstnodata -1 -s_srs EPSG:32616 -t_srs EPSG:26916 -crop_to_cutline -cutline stuff.shp #{floyd_path} cut-out.tif}
|
88
|
+
cmd = %{gdalwarp -dstnodata -1 -s_srs EPSG:32616 -t_srs EPSG:26916 -crop_to_cutline -cutline stuff.shp #{harper_path} cut-out.tif}
|
89
|
+
|
90
|
+
p cmd
|
91
|
+
`#{cmd}`
|
@@ -0,0 +1,35 @@
|
|
1
|
+
require 'bundler/setup'
|
2
|
+
require 'pry'
|
3
|
+
require 'ffi-gdal'
|
4
|
+
|
5
|
+
include GDAL::Logger
|
6
|
+
GDAL::Logger.logging_enabled = true
|
7
|
+
|
8
|
+
# http://pcjericks.github.io/py-gdalogr-cookbook/vector_layers.html#create-a-new-layer-from-the-extent-of-an-existing-layer
|
9
|
+
|
10
|
+
# Get a Layer's Extent
|
11
|
+
data_source = OGR::DataSource.open('spec/support/shapefiles/states_21basic/states.shp', 'r')
|
12
|
+
layer = data_source.layer(0)
|
13
|
+
extent = layer.extent
|
14
|
+
|
15
|
+
# extent = geometry.envelope.world_to_pixel(floyd.geo_transform)
|
16
|
+
# x_min = extent[:x_origin]
|
17
|
+
# x_max = extent[:x_max]
|
18
|
+
# y_min = extent[:y_origin]
|
19
|
+
# y_max = extent[:y_max]
|
20
|
+
# log "x_min: #{x_min}"
|
21
|
+
# log "y_min: #{y_min}"
|
22
|
+
# log "y_max: #{y_max}"
|
23
|
+
# log "x_max: #{x_max}"
|
24
|
+
|
25
|
+
# Create a polygon from the extent
|
26
|
+
ring = OGR::Geometry.create(:wkbLinearRing)
|
27
|
+
ring.add_point(extent.x_min, extent.y_min)
|
28
|
+
ring.add_point(extent.x_max, extent.y_min)
|
29
|
+
ring.add_point(extent.x_max, extent.y_max)
|
30
|
+
ring.add_point(extent.x_min, extent.y_max)
|
31
|
+
ring.add_point(extent.x_min, extent.y_min)
|
32
|
+
poly = OGR::Geometry.create(:wkbPolygon)
|
33
|
+
poly.add_geometry(ring)
|
34
|
+
|
35
|
+
binding.pry
|
data/testing_ndvi.rb
ADDED
@@ -0,0 +1,76 @@
|
|
1
|
+
require 'bundler/setup'
|
2
|
+
require 'pry'
|
3
|
+
require 'ffi-gdal'
|
4
|
+
|
5
|
+
include GDAL::Logger
|
6
|
+
GDAL::Logger.logging_enabled = true
|
7
|
+
|
8
|
+
|
9
|
+
floyd_path = '/Users/sloveless/Development/projects/ffi-gdal/spec/support/images/Floyd/Floyd_1058_20140612_NRGB.tif'
|
10
|
+
floyd = GDAL::Dataset.open(floyd_path, 'r')
|
11
|
+
floyd_wkt = 'MULTIPOLYGON (((-87.5530099868775 31.16710573359053,-87.5530099868775 31.165600160261103,-87.55384683609009 31.16710573359053,-87.5530099868775 31.16710573359053)))'
|
12
|
+
|
13
|
+
# http://pcjericks.github.io/py-gdalogr-cookbook/vector_layers.html#convert-vector-layer-to-array
|
14
|
+
pixel_size = 25
|
15
|
+
no_data_value = -1
|
16
|
+
|
17
|
+
# Get the extent of the geometry
|
18
|
+
spatial_reference = OGR::SpatialReference.new_from_epsg(4326)
|
19
|
+
geometry = OGR::Geometry.create_from_wkt(floyd_wkt, spatial_reference)
|
20
|
+
geometry.transform_to!(floyd.spatial_reference)
|
21
|
+
source_srs = geometry.spatial_reference
|
22
|
+
polygon = geometry.geometry_at 0
|
23
|
+
ring = polygon.geometry_at 0
|
24
|
+
|
25
|
+
extent = geometry.envelope
|
26
|
+
x_min = extent.x_min
|
27
|
+
x_max = extent.x_max
|
28
|
+
y_min = extent.y_min
|
29
|
+
y_max = extent.y_max
|
30
|
+
|
31
|
+
log "x_min: #{x_min}"
|
32
|
+
log "y_min: #{y_min}"
|
33
|
+
log "y_max: #{y_max}"
|
34
|
+
log "x_max: #{x_max}"
|
35
|
+
|
36
|
+
# extent = geometry.envelope.world_to_pixel(floyd.geo_transform)
|
37
|
+
# x_min = extent[:x_origin]
|
38
|
+
# x_max = extent[:x_max]
|
39
|
+
# y_min = extent[:y_origin]
|
40
|
+
# y_max = extent[:y_max]
|
41
|
+
# log "x_min: #{x_min}"
|
42
|
+
# log "y_min: #{y_min}"
|
43
|
+
# log "y_max: #{y_max}"
|
44
|
+
# log "x_max: #{x_max}"
|
45
|
+
|
46
|
+
|
47
|
+
# Create the destination data source
|
48
|
+
x_res = ((x_max - x_min) / pixel_size).to_i
|
49
|
+
y_res = ((y_max - y_min) / pixel_size).to_i
|
50
|
+
log "x_res: #{x_res}"
|
51
|
+
log "y_res: #{y_res}"
|
52
|
+
|
53
|
+
#target_ds = GDAL::Driver.by_name('MEM').create_dataset('', x_res, y_res, data_type: :GDT_Float32)
|
54
|
+
target_ds = GDAL::Driver.by_name('GTiff').create_dataset('grr.tif', x_res, y_res, data_type: :GDT_Float32)
|
55
|
+
|
56
|
+
geo_transform = floyd.geo_transform
|
57
|
+
geo_transform.x_origin = x_min
|
58
|
+
geo_transform.pixel_width = pixel_size
|
59
|
+
geo_transform.y_origin = y_max
|
60
|
+
geo_transform.pixel_width = -pixel_size
|
61
|
+
target_ds.geo_transform = geo_transform
|
62
|
+
target_ds.projection = floyd.projection
|
63
|
+
|
64
|
+
band = target_ds.raster_band(1)
|
65
|
+
band.no_data_value = no_data_value
|
66
|
+
band.fill(100)
|
67
|
+
|
68
|
+
#target_ds.rasterize_geometries!(1, geometry, 1, all_touched: 'TRUE')
|
69
|
+
target_ds.rasterize_geometries!(1, ring, 1, all_touched: 'TRUE')
|
70
|
+
|
71
|
+
band.to_na
|
72
|
+
|
73
|
+
|
74
|
+
binding.pry
|
75
|
+
|
76
|
+
target_ds.close
|
data/testing_nir.rb
ADDED
@@ -0,0 +1,77 @@
|
|
1
|
+
require 'bundler/setup'
|
2
|
+
require 'pry'
|
3
|
+
require 'ffi-gdal'
|
4
|
+
|
5
|
+
GDAL::Logger.logging_enabled = true
|
6
|
+
|
7
|
+
floyd_path = '/Users/sloveless/Development/projects/ffi-gdal/spec/support/images/Floyd/Floyd_1058_20140612_NRGB.tif'
|
8
|
+
floyd = GDAL::Dataset.open(floyd_path, 'r')
|
9
|
+
|
10
|
+
# dataset = floyd.extract_nir('nir.tif', 1)
|
11
|
+
# band = dataset.raster_band(1)
|
12
|
+
# colors = %w[644d1e 745924 856728 95742b a5812d b69930 c8b22d d8cb3c e8e65a
|
13
|
+
# f4ee79 e0e457 c8da42 afd135 97b73c 7e993c 657e36 4b612c 314441 23295e
|
14
|
+
# 282973]
|
15
|
+
# band.colorize!(*colors)
|
16
|
+
# binding.pry
|
17
|
+
# dataset.close
|
18
|
+
|
19
|
+
# dataset = floyd.extract_ndvi('ndvi_float.tif', band_order: %i[nir red green blue],
|
20
|
+
# data_type: :GDT_Float32,
|
21
|
+
# remove_negatives: true,
|
22
|
+
# photometric: 'PALETTE')
|
23
|
+
# dataset.close
|
24
|
+
|
25
|
+
# byte_dataset = floyd.extract_ndvi('ndvi_byte.tif', band_order: %i[nir red green blue],
|
26
|
+
# data_type: :GDT_Byte,
|
27
|
+
# remove_negatives: true,
|
28
|
+
# photometric: 'PALETTE')
|
29
|
+
# byte_dataset.close
|
30
|
+
#
|
31
|
+
# uint16_dataset = floyd.extract_ndvi('ndvi_uint16.tif', band_order: %i[nir red green blue],
|
32
|
+
# data_type: :GDT_UInt16,
|
33
|
+
# remove_negatives: true,
|
34
|
+
# photometric: 'PALETTE')
|
35
|
+
# uint16_dataset.close
|
36
|
+
#
|
37
|
+
|
38
|
+
colors = %w[644d1e 745924 856728 95742b a5812d b69930 c8b22d d8cb3c e8e65a
|
39
|
+
f4ee79 e0e457 c8da42 afd135 97b73c 7e993c 657e36 4b612c 314441 23295e
|
40
|
+
282973]
|
41
|
+
|
42
|
+
# byte_dataset = GDAL::Dataset.open('ndvi_byte.tif', 'w')
|
43
|
+
# byte_band = byte_dataset.raster_band(1)
|
44
|
+
# byte_band.colorize!(*colors)
|
45
|
+
# byte_dataset.close
|
46
|
+
|
47
|
+
# unit16_dataset = GDAL::Dataset.open('ndvi_uint16.tif', 'w')
|
48
|
+
# uint16_band = uint16_dataset.raster_band(1)
|
49
|
+
# uint16_band.colorize!(*colors)
|
50
|
+
# uint16_dataset.close
|
51
|
+
|
52
|
+
# g_uint16_dataset = floyd.extract_gndvi('gndvi_uint16.tif', band_order: %i[nir red green blue],
|
53
|
+
# data_type: :GDT_UInt16,
|
54
|
+
# remove_negatives: true,
|
55
|
+
# photometric: 'PALETTE'
|
56
|
+
# )
|
57
|
+
# g_uint16_dataset.close
|
58
|
+
#
|
59
|
+
# g_unit16_dataset = GDAL::Dataset.open('gndvi_uint16.tif', 'w')
|
60
|
+
# g_uint16_band = g_uint16_dataset.raster_band(1)
|
61
|
+
# g_uint16_band.colorize!(*colors)
|
62
|
+
# g_uint16_dataset.close
|
63
|
+
|
64
|
+
g_byte_dataset = floyd.extract_gndvi('gndvi_byte.tif', band_order: %i[nir red green blue],
|
65
|
+
data_type: :GDT_Byte,
|
66
|
+
remove_negatives: true,
|
67
|
+
photometric: 'PALETTE'
|
68
|
+
)
|
69
|
+
g_byte_dataset.close
|
70
|
+
|
71
|
+
g_byte_dataset = GDAL::Dataset.open('gndvi_byte.tif', 'w')
|
72
|
+
g_byte_band = g_byte_dataset.raster_band(1)
|
73
|
+
g_byte_band.colorize!(*colors)
|
74
|
+
binding.pry
|
75
|
+
g_byte_dataset.close
|
76
|
+
|
77
|
+
# floyd.extract_natural_color('nc.tif', band_order: %i[nir red green blue])
|
data/testing_ogr.rb
ADDED
@@ -0,0 +1,63 @@
|
|
1
|
+
require 'bundler/setup'
|
2
|
+
require 'pry'
|
3
|
+
require 'ffi-gdal'
|
4
|
+
|
5
|
+
data_source = OGR::DataSource.open('spec/support/shapefiles/states_21basic/states.shp', 'r')
|
6
|
+
|
7
|
+
point_wkt = 'POINT (1 2)'
|
8
|
+
point = OGR::Geometry.create_from_wkt(point_wkt)
|
9
|
+
other_point_wkt = 'POINT (1 2)'
|
10
|
+
other_point = OGR::Geometry.create_from_wkt(point_wkt)
|
11
|
+
|
12
|
+
line_string_wkt = 'LINESTRING (1 2, 10 30, 40 40, 1 2)'
|
13
|
+
line_string = OGR::Geometry.create_from_wkt(line_string_wkt)
|
14
|
+
other_line_string_wkt = 'LINESTRING (10 10, 0 30, 40 10)'
|
15
|
+
other_line_string = OGR::Geometry.create_from_wkt(other_line_string_wkt)
|
16
|
+
|
17
|
+
polygon_wkt = "POLYGON ((0 0,4 0,4 4,0 4,0 0), (1 1, 2 1, 2 2, 1 1))"
|
18
|
+
polygon = OGR::Geometry.create_from_wkt(polygon_wkt)
|
19
|
+
other_polygon_wkt = "POLYGON ((1 1,5 1,5 5,1 5,1 1), (10 10, 20 10, 20 20, 10 10))"
|
20
|
+
other_polygon = OGR::Geometry.create_from_wkt(other_polygon_wkt)
|
21
|
+
|
22
|
+
multi_point_wkt = 'MULTIPOINT ((10 40), (40 30), (20 20), (30 10))'
|
23
|
+
multi_point = OGR::Geometry.create_from_wkt(multi_point_wkt)
|
24
|
+
|
25
|
+
multi_line_string_wkt = 'MULTILINESTRING ((10 10, 20 20, 10 40), (40 40, 30 30, 40 20, 30 10))'
|
26
|
+
multi_line_string = OGR::Geometry.create_from_wkt(multi_line_string_wkt)
|
27
|
+
|
28
|
+
multi_polygon_wkt = 'MULTIPOLYGON (((-120.03296317083633 44.226828996384285, -120.03199741570855 44.230616638863914, -120.03305119285443 44.23322276021398, -120.03305439612939 44.23323503554639, -120.03305423080232 44.233247523039175, -120.03305070309673 44.23325975261691, -120.03304394580853 44.233271263913274, -120.03303421330706 44.233281623601044, -120.0330218719597 44.23329044170392, -120.03300738634044 44.23329738627662, -120.03299130174162 44.23330219590042, -120.03297422364709 44.23330468952384, -120.03295679493954 44.23330477327791, -120.0329396717 44.23330244400986, -120.03259652218235 44.23323046886841, -120.03259605091168 44.23323469214073, -120.03259130838445 44.233246748969734, -120.03258339633375 44.23325791928269, -120.03257261443646 44.233267779993575, -120.03255937106756 44.233275957618844, -120.03254416783288 44.23328214242357, -120.03252758057009 44.23328610015274, -120.03251023753826 44.2332876809039, -120.032492795622 44.23328682480475, -120.0324759154512 44.23328356428076, -120.03246023637918 44.23327802282714, -120.03244635226639 44.233270410331386, -120.03229057481504 44.233166296752856, -120.03144275436163 44.23298846700243, -120.03135705202111 44.23542539118272, -120.03135483571377 44.23543806847976, -120.0313491680669 44.2354501823413, -120.0313402724131 44.23546125542315, -120.03132849928409 44.23547085139311, -120.03131431259804 44.235478592124444, -120.03129827137883 44.235484172595754, -120.03128100772805 44.23548737291011, -120.03126320191683 44.23548806696012, -120.03124555558011 44.235486227396926, -120.03122876406881 44.235481926707976, -120.03121348904955 44.23547533436071, -120.03120033243181 44.23546671012462, -120.03118981264993 44.23545639383555, -120.02629194435607 44.229488174527326, -120.0262841759258 44.22947593881562, -120.0262801234077 44.229462813795166, -120.02627996353844 44.22944937186798, -120.0262837032901 44.22943619925734, -120.02629117956641 44.22942387044152, -120.02630206631528 44.22941292309999, -120.02631588874878 44.229403834664076, -120.02650834059244 44.22930162063937, -120.02596466290531 44.22893822933382, -120.02595288197551 44.22892861642798, -120.02594398682248 44.22891752390089, -120.02593832881524 44.2289053899198, -120.02593613145164 44.22889269379079, -120.02593748153026 44.22887993702566, -120.02594232572132 44.2288676235318, -120.02595047267361 44.22885623970722, -120.0259616005729 44.228846235226946, -120.02597526985406 44.22883800528063, -120.0259909405644 44.22883187496161, -120.02600799369236 44.22882808642537, -120.02602575561929 44.228826789324046, -120.02604352472815 44.22882803489487, -120.02606059911827 44.2288317739361, -120.02607630433104 44.22883785875077, -120.02675839864344 44.229168810839475, -120.02688733695234 44.22910032953997, -120.02611125484312 44.228061533840545, -120.02610457348571 44.22805003875662, -120.02610110582951 44.22803783693943, -120.02610098163969 44.228025384999874, -120.02610420556363 44.2280131489091, -120.02611065695699 44.22800158656121, -120.0261200943985 44.22799113063793, -120.02613216472427 44.22798217241707, -120.02614641624366 44.227975047130094, -120.0261623156424 44.22797002141719, -120.02617926794002 44.22796728334896, -120.0261966387548 44.227966935388565, -120.02621377804353 44.22796899055725, -120.02623004442708 44.22797337194719, -120.0262448291917 44.2279799155993, -120.02625757906833 44.22798837663918, -120.02626781693645 44.22799843844071, -120.02754662923428 44.229551257921585, -120.030836241635 44.23114734101261, -120.03136956622194 44.229959117652726, -120.03138391393463 44.22955111324294, -120.03138620312208 44.229538207384174, -120.0313920671636 44.22952589494864, -120.03140126651873 44.229514678887824, -120.03141342540293 44.229505017367465, -120.03142804713777 44.22949730505196, -120.03144453443974 44.229491856982676, -120.03146221381887 44.22948889570851, -120.03148036308987 44.22948854219496, -120.03149824087296 44.229490810882744, -120.03151511687828 44.22949560909792, -120.03153030173767 44.22950274083756, -120.03154317516459 44.22951191477631, -120.0315532112922 44.22952275616695, -120.03156000257852 44.22953482814357, -120.03278854263438 44.22679758476189, -120.03286127379035 44.226512326846944, -120.03286465252121 44.226503048718484, -120.03286991708133 44.22649423317623, -120.03301731535839 44.22629080564284, -120.03302703028369 44.22628013425537, -120.03303948802117 44.22627104306898, -120.03305420051213 44.22626388825138, -120.03307059136289 44.22625895010873, -120.0330880184265 44.22625642210408, -120.03310579896007 44.22625640327766, -120.03312323637284 44.226258894367135, -120.03313964751646 44.22626379777834, -120.03315438944897 44.22627092140904, -120.03316688462326 44.22627998617475, -120.03317664351395 44.22629063694302, -120.03318328379541 44.22630245644617, -120.03318654532022 44.226314981629145, -120.03318630031114 44.22632772179051, -120.0331825583669 44.22634017780693, -120.03296317083633 44.226828996384285)))'
|
29
|
+
multi_polygon = OGR::Geometry.create_from_wkt(multi_polygon_wkt)
|
30
|
+
|
31
|
+
# point_wkt = 'POINT (1 2)'
|
32
|
+
# point = OGR::Geometry.create_from_wkt(point_wkt)
|
33
|
+
# puts <<-POINT
|
34
|
+
# boundary: #{point.boundary}
|
35
|
+
# convex_hull: #{point.convex_hull}
|
36
|
+
# count: #{point.count}
|
37
|
+
# name: #{point.name}
|
38
|
+
# point_count: #{point.point_count}
|
39
|
+
# points: #{point.points}
|
40
|
+
# length: #{point.length}
|
41
|
+
# area: #{point.area}
|
42
|
+
# valid: #{point.valid?}
|
43
|
+
# boundary: #{boundary}
|
44
|
+
# POINT
|
45
|
+
#
|
46
|
+
def things(geometry)
|
47
|
+
geometry = geometry.clone
|
48
|
+
ls = geometry.to_line_string
|
49
|
+
mls = geometry.to_multi_line_string
|
50
|
+
#mpoint = geometry.to_multi_point
|
51
|
+
#mpolygon = geometry.to_multi_polygon
|
52
|
+
polygon = geometry.to_polygon
|
53
|
+
|
54
|
+
{
|
55
|
+
line_string_points: ls ? ls.point_count : nil,
|
56
|
+
multi_line_string_points: mls ? mls.point_count : nil,
|
57
|
+
#multi_point_points: mpoint ? mpoint.point_count : nil,
|
58
|
+
#multi_polygon_points: mpolygon ? mpolygon.point_count : nil,
|
59
|
+
#polygon_points: polygon ? polygon.point_count : nil
|
60
|
+
}
|
61
|
+
end
|
62
|
+
|
63
|
+
binding.pry
|
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: 0.0.
|
4
|
+
version: 1.0.0.beta1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Steve Loveless
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-10-23 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: ffi
|
@@ -28,16 +28,16 @@ dependencies:
|
|
28
28
|
name: log_switch
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- - "
|
31
|
+
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version:
|
33
|
+
version: 1.0.0
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- - "
|
38
|
+
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version:
|
40
|
+
version: 1.0.0
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: multi_xml
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -66,20 +66,6 @@ dependencies:
|
|
66
66
|
- - "~>"
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: 0.6.0
|
69
|
-
- !ruby/object:Gem::Dependency
|
70
|
-
name: ruby-progressbar
|
71
|
-
requirement: !ruby/object:Gem::Requirement
|
72
|
-
requirements:
|
73
|
-
- - ">="
|
74
|
-
- !ruby/object:Gem::Version
|
75
|
-
version: '0'
|
76
|
-
type: :runtime
|
77
|
-
prerelease: false
|
78
|
-
version_requirements: !ruby/object:Gem::Requirement
|
79
|
-
requirements:
|
80
|
-
- - ">="
|
81
|
-
- !ruby/object:Gem::Version
|
82
|
-
version: '0'
|
83
69
|
- !ruby/object:Gem::Dependency
|
84
70
|
name: bundler
|
85
71
|
requirement: !ruby/object:Gem::Requirement
|
@@ -122,6 +108,20 @@ dependencies:
|
|
122
108
|
- - "~>"
|
123
109
|
- !ruby/object:Gem::Version
|
124
110
|
version: '3.0'
|
111
|
+
- !ruby/object:Gem::Dependency
|
112
|
+
name: ruby-progressbar
|
113
|
+
requirement: !ruby/object:Gem::Requirement
|
114
|
+
requirements:
|
115
|
+
- - ">="
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: '0'
|
118
|
+
type: :development
|
119
|
+
prerelease: false
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
requirements:
|
122
|
+
- - ">="
|
123
|
+
- !ruby/object:Gem::Version
|
124
|
+
version: '0'
|
125
125
|
description:
|
126
126
|
email:
|
127
127
|
- steve.loveless@gmail.com
|
@@ -136,46 +136,140 @@ files:
|
|
136
136
|
- LICENSE.txt
|
137
137
|
- README.md
|
138
138
|
- Rakefile
|
139
|
+
- TODO.md
|
139
140
|
- ffi-gdal.gemspec
|
140
|
-
- lib/ext/
|
141
|
+
- lib/ext/error_symbols.rb
|
142
|
+
- lib/ext/float_ext.rb
|
143
|
+
- lib/ext/narray_ext.rb
|
141
144
|
- lib/ext/to_bool.rb
|
142
145
|
- lib/ffi-gdal.rb
|
143
|
-
- lib/ffi
|
144
|
-
- lib/ffi
|
145
|
-
- lib/ffi
|
146
|
-
- lib/ffi
|
147
|
-
- lib/ffi
|
148
|
-
- lib/ffi
|
149
|
-
- lib/ffi-gdal/raster_attribute_table.rb
|
150
|
-
- lib/ffi-gdal/raster_band.rb
|
151
|
-
- lib/ffi-gdal/version_info.rb
|
146
|
+
- lib/ffi/cpl/conv_h.rb
|
147
|
+
- lib/ffi/cpl/error_h.rb
|
148
|
+
- lib/ffi/cpl/minixml_h.rb
|
149
|
+
- lib/ffi/cpl/string_h.rb
|
150
|
+
- lib/ffi/cpl/vsi_h.rb
|
151
|
+
- lib/ffi/cpl/xml_node.rb
|
152
152
|
- lib/ffi/gdal.rb
|
153
|
-
- lib/ffi/gdal/
|
154
|
-
- lib/ffi/gdal/cpl_error.rb
|
155
|
-
- lib/ffi/gdal/cpl_string.rb
|
156
|
-
- lib/ffi/gdal/cpl_vsi.rb
|
153
|
+
- lib/ffi/gdal/alg_h.rb
|
157
154
|
- lib/ffi/gdal/gdal_color_entry.rb
|
158
155
|
- lib/ffi/gdal/gdal_gcp.rb
|
159
|
-
- lib/ffi/gdal/
|
160
|
-
- lib/ffi/gdal/
|
161
|
-
- lib/ffi/gdal/
|
156
|
+
- lib/ffi/gdal/gdal_grid_data_metrics_options.rb
|
157
|
+
- lib/ffi/gdal/gdal_grid_inverse_distance_to_a_power_options.rb
|
158
|
+
- lib/ffi/gdal/gdal_grid_moving_average_options.rb
|
159
|
+
- lib/ffi/gdal/gdal_grid_nearest_neighbor_options.rb
|
160
|
+
- lib/ffi/gdal/gdal_h.rb
|
161
|
+
- lib/ffi/gdal/gdal_rpc_info.rb
|
162
|
+
- lib/ffi/gdal/gdal_transformer_info.rb
|
163
|
+
- lib/ffi/gdal/gdal_warp_options.rb
|
164
|
+
- lib/ffi/gdal/grid_h.rb
|
162
165
|
- lib/ffi/gdal/version.rb
|
166
|
+
- lib/ffi/gdal/warper_h.rb
|
167
|
+
- lib/ffi/ogr.rb
|
168
|
+
- lib/ffi/ogr/api_h.rb
|
169
|
+
- lib/ffi/ogr/core_h.rb
|
170
|
+
- lib/ffi/ogr/featurestyle_h.rb
|
171
|
+
- lib/ffi/ogr/geocoding_h.rb
|
172
|
+
- lib/ffi/ogr/ogr_contour_writer_info.rb
|
173
|
+
- lib/ffi/ogr/ogr_envelope.rb
|
174
|
+
- lib/ffi/ogr/ogr_envelope_3d.rb
|
175
|
+
- lib/ffi/ogr/ogr_field.rb
|
176
|
+
- lib/ffi/ogr/ogr_style_param.rb
|
177
|
+
- lib/ffi/ogr/ogr_style_value.rb
|
178
|
+
- lib/ffi/ogr/srs_api_h.rb
|
179
|
+
- lib/gdal/color_entry.rb
|
180
|
+
- lib/gdal/color_entry_extensions.rb
|
181
|
+
- lib/gdal/color_interpretation.rb
|
182
|
+
- lib/gdal/color_table.rb
|
183
|
+
- lib/gdal/color_table_extensions.rb
|
184
|
+
- lib/gdal/color_table_types/cmyk.rb
|
185
|
+
- lib/gdal/color_table_types/gray.rb
|
186
|
+
- lib/gdal/color_table_types/hls.rb
|
187
|
+
- lib/gdal/color_table_types/rgb.rb
|
188
|
+
- lib/gdal/data_type.rb
|
189
|
+
- lib/gdal/dataset.rb
|
190
|
+
- lib/gdal/dataset_extensions.rb
|
191
|
+
- lib/gdal/driver.rb
|
192
|
+
- lib/gdal/driver_extensions.rb
|
193
|
+
- lib/gdal/environment_methods.rb
|
194
|
+
- lib/gdal/exceptions.rb
|
195
|
+
- lib/gdal/geo_transform.rb
|
196
|
+
- lib/gdal/geo_transform_extensions.rb
|
197
|
+
- lib/gdal/logger.rb
|
198
|
+
- lib/gdal/major_object.rb
|
199
|
+
- lib/gdal/options.rb
|
200
|
+
- lib/gdal/raster_attribute_table.rb
|
201
|
+
- lib/gdal/raster_attribute_table_extensions.rb
|
202
|
+
- lib/gdal/raster_band.rb
|
203
|
+
- lib/gdal/raster_band_extensions.rb
|
204
|
+
- lib/gdal/version_info.rb
|
205
|
+
- lib/gdal/warp_operation.rb
|
206
|
+
- lib/ogr/coordinate_transformation.rb
|
207
|
+
- lib/ogr/data_source.rb
|
208
|
+
- lib/ogr/data_source_extensions.rb
|
209
|
+
- lib/ogr/driver.rb
|
210
|
+
- lib/ogr/envelope.rb
|
211
|
+
- lib/ogr/envelope_extensions.rb
|
212
|
+
- lib/ogr/exceptions.rb
|
213
|
+
- lib/ogr/feature.rb
|
214
|
+
- lib/ogr/feature_definition.rb
|
215
|
+
- lib/ogr/feature_definition_extensions.rb
|
216
|
+
- lib/ogr/feature_extensions.rb
|
217
|
+
- lib/ogr/field.rb
|
218
|
+
- lib/ogr/field_extensions.rb
|
219
|
+
- lib/ogr/geocoding_session.rb
|
220
|
+
- lib/ogr/geometry.rb
|
221
|
+
- lib/ogr/geometry_extensions.rb
|
222
|
+
- lib/ogr/geometry_types/collection.rb
|
223
|
+
- lib/ogr/geometry_types/curve.rb
|
224
|
+
- lib/ogr/geometry_types/surface.rb
|
225
|
+
- lib/ogr/layer.rb
|
226
|
+
- lib/ogr/layer_extensions.rb
|
227
|
+
- lib/ogr/line_string.rb
|
228
|
+
- lib/ogr/linear_ring.rb
|
229
|
+
- lib/ogr/multi_line_string.rb
|
230
|
+
- lib/ogr/multi_point.rb
|
231
|
+
- lib/ogr/multi_polygon.rb
|
232
|
+
- lib/ogr/point.rb
|
233
|
+
- lib/ogr/polygon.rb
|
234
|
+
- lib/ogr/spatial_reference.rb
|
235
|
+
- lib/ogr/spatial_reference_extensions.rb
|
236
|
+
- lib/ogr/style_table.rb
|
237
|
+
- lib/ogr/style_table_extensions.rb
|
163
238
|
- linkies.rb
|
164
|
-
- meow.rb
|
165
239
|
- readie.rb
|
166
|
-
- rubby.rb
|
167
|
-
- spec/ext/cpl_error_symbols_spec.rb
|
168
|
-
- spec/ffi-gdal/integration/color_table_info_spec.rb
|
169
|
-
- spec/ffi-gdal/integration/dataset_info_spec.rb
|
170
|
-
- spec/ffi-gdal/integration/driver_info_spec.rb
|
171
|
-
- spec/ffi-gdal/integration/geo_transform_info_spec.rb
|
172
|
-
- spec/ffi-gdal/integration/raster_attribute_table_info_spec.rb
|
173
|
-
- spec/ffi-gdal/integration/raster_band_info_spec.rb
|
174
|
-
- spec/ffi-gdal/unit/version_info_spec.rb
|
175
240
|
- spec/ffi-gdal_spec.rb
|
241
|
+
- spec/integration/color_table_info_spec.rb
|
242
|
+
- spec/integration/dataset_info_spec.rb
|
243
|
+
- spec/integration/driver_info_spec.rb
|
244
|
+
- spec/integration/geo_transform_info_spec.rb
|
245
|
+
- spec/integration/raster_attribute_table_info_spec.rb
|
246
|
+
- spec/integration/raster_band_info_spec.rb
|
176
247
|
- spec/spec_helper.rb
|
177
248
|
- spec/support/integration_help.rb
|
249
|
+
- spec/support/shapefiles/states_21basic/states.dbf
|
250
|
+
- spec/support/shapefiles/states_21basic/states.prj
|
251
|
+
- spec/support/shapefiles/states_21basic/states.sbn
|
252
|
+
- spec/support/shapefiles/states_21basic/states.sbx
|
253
|
+
- spec/support/shapefiles/states_21basic/states.shp
|
254
|
+
- spec/support/shapefiles/states_21basic/states.shp.xml
|
255
|
+
- spec/support/shapefiles/states_21basic/states.shx
|
178
256
|
- spec/support/shared_examples/major_object_examples.rb
|
257
|
+
- spec/support/worldfiles/SR_50M/SR_50M.VERSION.txt
|
258
|
+
- spec/support/worldfiles/SR_50M/SR_50M.prj
|
259
|
+
- spec/support/worldfiles/SR_50M/SR_50M.tfw
|
260
|
+
- spec/support/worldfiles/SR_50M/SR_50M.tif
|
261
|
+
- spec/unit/ext/error_symbols_spec.rb
|
262
|
+
- spec/unit/gdal/color_table_spec.rb
|
263
|
+
- spec/unit/ogr/layer_spec.rb
|
264
|
+
- spec/unit/ogr/linear_ring_spec.rb
|
265
|
+
- spec/unit/ogr/point_spec.rb
|
266
|
+
- spec/unit/version_info_spec.rb
|
267
|
+
- testing_gdal.rb
|
268
|
+
- testing_gdalwarp.rb
|
269
|
+
- testing_layer_to_layer.rb
|
270
|
+
- testing_ndvi.rb
|
271
|
+
- testing_nir.rb
|
272
|
+
- testing_ogr.rb
|
179
273
|
- things.rb
|
180
274
|
homepage: https://github.com/turboladen/ffi-gdal
|
181
275
|
licenses:
|
@@ -192,26 +286,40 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
192
286
|
version: '0'
|
193
287
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
194
288
|
requirements:
|
195
|
-
- - "
|
289
|
+
- - ">"
|
196
290
|
- !ruby/object:Gem::Version
|
197
|
-
version:
|
291
|
+
version: 1.3.1
|
198
292
|
requirements: []
|
199
293
|
rubyforge_project:
|
200
|
-
rubygems_version: 2.
|
294
|
+
rubygems_version: 2.2.2
|
201
295
|
signing_key:
|
202
296
|
specification_version: 4
|
203
297
|
summary: FFI wrapper for GDAL/OGR.
|
204
298
|
test_files:
|
205
|
-
- spec/ext/cpl_error_symbols_spec.rb
|
206
|
-
- spec/ffi-gdal/integration/color_table_info_spec.rb
|
207
|
-
- spec/ffi-gdal/integration/dataset_info_spec.rb
|
208
|
-
- spec/ffi-gdal/integration/driver_info_spec.rb
|
209
|
-
- spec/ffi-gdal/integration/geo_transform_info_spec.rb
|
210
|
-
- spec/ffi-gdal/integration/raster_attribute_table_info_spec.rb
|
211
|
-
- spec/ffi-gdal/integration/raster_band_info_spec.rb
|
212
|
-
- spec/ffi-gdal/unit/version_info_spec.rb
|
213
299
|
- spec/ffi-gdal_spec.rb
|
300
|
+
- spec/integration/color_table_info_spec.rb
|
301
|
+
- spec/integration/dataset_info_spec.rb
|
302
|
+
- spec/integration/driver_info_spec.rb
|
303
|
+
- spec/integration/geo_transform_info_spec.rb
|
304
|
+
- spec/integration/raster_attribute_table_info_spec.rb
|
305
|
+
- spec/integration/raster_band_info_spec.rb
|
214
306
|
- spec/spec_helper.rb
|
215
307
|
- spec/support/integration_help.rb
|
308
|
+
- spec/support/shapefiles/states_21basic/states.dbf
|
309
|
+
- spec/support/shapefiles/states_21basic/states.prj
|
310
|
+
- spec/support/shapefiles/states_21basic/states.sbn
|
311
|
+
- spec/support/shapefiles/states_21basic/states.sbx
|
312
|
+
- spec/support/shapefiles/states_21basic/states.shp
|
313
|
+
- spec/support/shapefiles/states_21basic/states.shp.xml
|
314
|
+
- spec/support/shapefiles/states_21basic/states.shx
|
216
315
|
- spec/support/shared_examples/major_object_examples.rb
|
217
|
-
|
316
|
+
- spec/support/worldfiles/SR_50M/SR_50M.VERSION.txt
|
317
|
+
- spec/support/worldfiles/SR_50M/SR_50M.prj
|
318
|
+
- spec/support/worldfiles/SR_50M/SR_50M.tfw
|
319
|
+
- spec/support/worldfiles/SR_50M/SR_50M.tif
|
320
|
+
- spec/unit/ext/error_symbols_spec.rb
|
321
|
+
- spec/unit/gdal/color_table_spec.rb
|
322
|
+
- spec/unit/ogr/layer_spec.rb
|
323
|
+
- spec/unit/ogr/linear_ring_spec.rb
|
324
|
+
- spec/unit/ogr/point_spec.rb
|
325
|
+
- spec/unit/version_info_spec.rb
|