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.
- checksums.yaml +4 -4
- data/.github/dependabot.yml +15 -0
- data/.github/workflows/codacy.yml +1 -1
- data/.github/workflows/dependency-review.yml +1 -1
- data/.github/workflows/specs-in-docker.yml +3 -1
- data/.prettierrc.yml +4 -0
- data/.rubocop.yml +9 -5
- data/.rubocop_todo.yml +5 -11
- data/.solargraph.yml +13 -0
- data/Changelog-0.x.md +229 -174
- data/Changelog.md +20 -4
- data/Dockerfile.gdal2 +2 -85
- data/Gemfile +12 -2
- data/LICENSE.txt +1 -1
- data/README.md +14 -16
- data/Rakefile +6 -6
- data/bin/bundle +12 -12
- data/bin/rake +6 -6
- data/bin/rspec +6 -6
- data/bin/rubocop +6 -6
- data/examples/extract_and_colorize.rb +15 -15
- data/examples/geometries.rb +12 -12
- data/examples/gridding.rb +17 -17
- data/examples/ogr_layer_to_layer.rb +3 -3
- data/examples/raster_erasing.rb +9 -9
- data/examples/remove_small_polygons.rb +11 -11
- data/examples/testing_gdal.rb +20 -20
- data/examples/warping.rb +13 -13
- data/ffi-gdal.gemspec +16 -27
- data/lib/ext/ffi_library_function_checks.rb +3 -3
- data/lib/ext/narray_ext.rb +1 -1
- data/lib/ext/to_bool.rb +2 -2
- data/lib/ffi/cpl/conv.rb +2 -2
- data/lib/ffi/cpl/error.rb +1 -1
- data/lib/ffi/cpl/hash_set.rb +2 -2
- data/lib/ffi/cpl/http.rb +3 -3
- data/lib/ffi/cpl/http_result.rb +2 -2
- data/lib/ffi/cpl/list.rb +1 -1
- data/lib/ffi/cpl/mime_part.rb +1 -1
- data/lib/ffi/cpl/minixml.rb +2 -2
- data/lib/ffi/cpl/port.rb +1 -1
- data/lib/ffi/cpl/progress.rb +2 -2
- data/lib/ffi/cpl/quad_tree.rb +3 -3
- data/lib/ffi/cpl/rect_obj.rb +1 -1
- data/lib/ffi/cpl/string.rb +1 -1
- data/lib/ffi/cpl/vsi.rb +2 -2
- data/lib/ffi/cpl/xml_node.rb +1 -1
- data/lib/ffi/cpl.rb +11 -11
- data/lib/ffi/extensions/gdal/extensions/all.rb +2 -2
- data/lib/ffi/extensions/gdal/extensions.rb +2 -2
- data/lib/ffi/extensions/rttopo/gbox.rb +1 -1
- data/lib/ffi/extensions/rttopo/geom.rb +2 -2
- data/lib/ffi/extensions/rttopo.rb +3 -3
- data/lib/ffi/gdal/alg.rb +2 -2
- data/lib/ffi/gdal/color_entry.rb +1 -1
- data/lib/ffi/gdal/gcp.rb +1 -1
- data/lib/ffi/gdal/gdal.rb +3 -3
- data/lib/ffi/gdal/grid.rb +2 -2
- data/lib/ffi/gdal/grid_data_metrics_options.rb +1 -1
- data/lib/ffi/gdal/grid_inverse_distance_to_a_power_options.rb +1 -1
- data/lib/ffi/gdal/grid_moving_average_options.rb +1 -1
- data/lib/ffi/gdal/grid_nearest_neighbor_options.rb +1 -1
- data/lib/ffi/gdal/matching.rb +2 -2
- data/lib/ffi/gdal/rpc_info.rb +1 -1
- data/lib/ffi/gdal/transformer_info.rb +1 -1
- data/lib/ffi/gdal/version.rb +1 -1
- data/lib/ffi/gdal/vrt.rb +2 -2
- data/lib/ffi/gdal/warp_options.rb +1 -1
- data/lib/ffi/gdal/warper.rb +2 -2
- data/lib/ffi/gdal.rb +22 -22
- data/lib/ffi/ogr/api.rb +3 -3
- data/lib/ffi/ogr/contour_writer_info.rb +1 -1
- data/lib/ffi/ogr/core.rb +9 -9
- data/lib/ffi/ogr/envelope.rb +1 -1
- data/lib/ffi/ogr/envelope_3d.rb +1 -1
- data/lib/ffi/ogr/featurestyle.rb +1 -1
- data/lib/ffi/ogr/field.rb +1 -1
- data/lib/ffi/ogr/geocoding.rb +2 -2
- data/lib/ffi/ogr/srs_api.rb +63 -63
- data/lib/ffi/ogr/style_param.rb +2 -2
- data/lib/ffi/ogr/style_value.rb +1 -1
- data/lib/ffi/ogr.rb +11 -11
- data/lib/ffi-gdal.rb +8 -8
- data/lib/gdal/color_table.rb +6 -6
- data/lib/gdal/dataset/accessors.rb +101 -0
- data/lib/gdal/{dataset_mixins → dataset}/algorithm_methods.rb +1 -1
- data/lib/gdal/dataset/class_methods.rb +69 -0
- data/lib/gdal/dataset/internal_functions.rb +22 -0
- data/lib/gdal/{dataset_mixins → dataset}/matching.rb +1 -1
- data/lib/gdal/dataset/raster_band_methods.rb +181 -0
- data/lib/gdal/{dataset_mixins → dataset}/warp_methods.rb +1 -1
- data/lib/gdal/dataset.rb +21 -359
- data/lib/gdal/driver.rb +10 -10
- data/lib/gdal/environment_methods.rb +1 -1
- data/lib/gdal/extensions/all.rb +1 -1
- data/lib/gdal/extensions/color_entry/extensions.rb +2 -2
- data/lib/gdal/extensions/color_table/extensions.rb +2 -2
- data/lib/gdal/extensions/dataset/extensions.rb +11 -11
- data/lib/gdal/extensions/driver/extensions.rb +7 -7
- data/lib/gdal/extensions/geo_transform/extensions.rb +2 -2
- data/lib/gdal/extensions/gridder.rb +8 -8
- data/lib/gdal/extensions/gridder_options.rb +6 -6
- data/lib/gdal/extensions/raster_attribute_table/extensions.rb +1 -1
- data/lib/gdal/extensions/raster_band/algorithm_extensions.rb +4 -4
- data/lib/gdal/extensions/raster_band/coloring_extensions.rb +1 -1
- data/lib/gdal/extensions/raster_band/extensions.rb +3 -3
- data/lib/gdal/extensions/raster_band/io_extensions.rb +4 -4
- data/lib/gdal/extensions/raster_band_classifier.rb +3 -3
- data/lib/gdal/geo_transform.rb +1 -1
- data/lib/gdal/grid.rb +6 -6
- data/lib/gdal/grid_algorithms/metric_average_distance.rb +1 -1
- data/lib/gdal/grid_algorithms/metric_average_distance_pts.rb +1 -1
- data/lib/gdal/grid_algorithms/metric_count.rb +1 -1
- data/lib/gdal/grid_algorithms/metric_maximum.rb +1 -1
- data/lib/gdal/grid_algorithms/metric_minimum.rb +1 -1
- data/lib/gdal/grid_algorithms/metric_range.rb +1 -1
- data/lib/gdal/grid_algorithms.rb +9 -9
- data/lib/gdal/internal_helpers.rb +3 -3
- data/lib/gdal/logger.rb +1 -1
- data/lib/gdal/major_object.rb +6 -6
- data/lib/gdal/options.rb +2 -2
- data/lib/gdal/raster_attribute_table.rb +5 -5
- data/lib/gdal/raster_band.rb +24 -24
- data/lib/gdal/rpc_info.rb +2 -2
- data/lib/gdal/transformer.rb +1 -1
- data/lib/gdal/transformers/general_image_projection_transformer.rb +1 -1
- data/lib/gdal/transformers/general_image_projection_transformer2.rb +1 -1
- data/lib/gdal/transformers/general_image_projection_transformer3.rb +1 -1
- data/lib/gdal/version_info.rb +9 -9
- data/lib/gdal/virtual_dataset.rb +4 -4
- data/lib/gdal/warp_operation.rb +2 -2
- data/lib/gdal/warp_options.rb +2 -2
- data/lib/gdal.rb +17 -17
- data/lib/ogr/coordinate_transformation.rb +5 -5
- data/lib/ogr/data_source.rb +9 -9
- data/lib/ogr/driver.rb +9 -9
- data/lib/ogr/envelope.rb +1 -1
- data/lib/ogr/error_handling.rb +1 -1
- data/lib/ogr/extensions/all.rb +1 -1
- data/lib/ogr/extensions/data_source/capability_methods.rb +4 -4
- data/lib/ogr/extensions/data_source/data_source_extensions.rb +1 -1
- data/lib/ogr/extensions/driver/capability_methods.rb +3 -3
- data/lib/ogr/extensions/envelope/extensions.rb +1 -1
- data/lib/ogr/extensions/feature/extensions.rb +1 -1
- data/lib/ogr/extensions/feature_definition/extensions.rb +1 -1
- data/lib/ogr/extensions/geometries/point/extensions.rb +1 -1
- data/lib/ogr/extensions/geometry/container_mixins.rb +10 -10
- data/lib/ogr/extensions/geometry/ewkb_io_extensions.rb +3 -3
- data/lib/ogr/extensions/geometry/ewkb_record.rb +4 -4
- data/lib/ogr/extensions/geometry/extensions.rb +4 -7
- data/lib/ogr/extensions/geometry/rttopo_extensions.rb +2 -2
- data/lib/ogr/extensions/geometry/wkb_record.rb +3 -3
- data/lib/ogr/extensions/geometry_types/curve/extensions.rb +2 -2
- data/lib/ogr/extensions/layer/capability_methods.rb +17 -17
- data/lib/ogr/extensions/layer/extensions.rb +1 -1
- data/lib/ogr/extensions/spatial_reference/extensions.rb +1 -1
- data/lib/ogr/extensions/spatial_reference/initializers.rb +2 -2
- data/lib/ogr/extensions/style_table/extensions.rb +1 -1
- data/lib/ogr/feature.rb +15 -15
- data/lib/ogr/feature_definition.rb +2 -2
- data/lib/ogr/field.rb +5 -5
- data/lib/ogr/field_definition.rb +1 -1
- data/lib/ogr/geocoder.rb +1 -1
- data/lib/ogr/geometries/geometry_collection.rb +2 -2
- data/lib/ogr/geometries/geometry_collection_25d.rb +1 -1
- data/lib/ogr/geometries/line_string.rb +1 -1
- data/lib/ogr/geometries/line_string_25d.rb +1 -1
- data/lib/ogr/geometries/linear_ring.rb +2 -2
- data/lib/ogr/geometries/multi_line_string.rb +2 -2
- data/lib/ogr/geometries/multi_line_string_25d.rb +1 -1
- data/lib/ogr/geometries/multi_point.rb +1 -1
- data/lib/ogr/geometries/multi_point_25d.rb +1 -1
- data/lib/ogr/geometries/multi_polygon.rb +2 -2
- data/lib/ogr/geometries/multi_polygon_25d.rb +1 -1
- data/lib/ogr/geometries/point_25d.rb +1 -1
- data/lib/ogr/geometries/polygon.rb +2 -2
- data/lib/ogr/geometries/polygon_25d.rb +1 -1
- data/lib/ogr/geometry.rb +11 -11
- data/lib/ogr/geometry_types/container.rb +1 -1
- data/lib/ogr/geometry_types/curve.rb +1 -1
- data/lib/ogr/internal_helpers.rb +4 -4
- data/lib/ogr/layer.rb +8 -8
- data/lib/ogr/layer_mixins/ogr_feature_methods.rb +9 -9
- data/lib/ogr/layer_mixins/ogr_field_methods.rb +15 -15
- data/lib/ogr/layer_mixins/ogr_sql_methods.rb +2 -2
- data/lib/ogr/spatial_reference.rb +19 -19
- data/lib/ogr/spatial_reference_mixins/coordinate_system_getter_setters.rb +4 -4
- data/lib/ogr/spatial_reference_mixins/exporters.rb +9 -9
- data/lib/ogr/spatial_reference_mixins/importers.rb +2 -2
- data/lib/ogr/spatial_reference_mixins/morphers.rb +2 -2
- data/lib/ogr/spatial_reference_mixins/parameter_getter_setters.rb +1 -1
- data/lib/ogr/style_table.rb +3 -3
- data/lib/ogr/style_tool.rb +1 -1
- data/lib/ogr.rb +33 -33
- data/rakelib/docker.rake +2 -2
- metadata +14 -150
- data/bitbucket-pipelines.yml +0 -16
- data/tilt/gdal2.yml +0 -22
- data/tilt/gdal3.yml +0 -22
data/Changelog-0.x.md
CHANGED
@@ -1,9 +1,11 @@
|
|
1
1
|
# Changelog: 0.x
|
2
2
|
|
3
|
-
Changes listed in this file (somewhat) reflect changes throughout 0.x-1.0.0-beta
|
4
|
-
1.0.0-beta\* releases ended up with many unexpected changes, often
|
5
|
-
get documented. Instead of keeping a
|
6
|
-
|
3
|
+
Changes listed in this file (somewhat) reflect changes throughout 0.x-1.0.0-beta
|
4
|
+
releases. The 1.0.0-beta\* releases ended up with many unexpected changes, often
|
5
|
+
leading to API changes that didn't get documented. Instead of keeping a
|
6
|
+
mish-mash of valid and invalid change entries in the proper
|
7
|
+
[Changelog](Changelog.md), we've moved those here, as they were just prior to
|
8
|
+
the 1.0.0 release.
|
7
9
|
|
8
10
|
---
|
9
11
|
|
@@ -13,7 +15,8 @@ get documented. Instead of keeping a mish-mash of valid and invalid change entri
|
|
13
15
|
|
14
16
|
- Added `.release` class method for many `GDAL` types.
|
15
17
|
- Added `GDAL::Dataset.copy_whole_raster`.
|
16
|
-
- Added exception messages for `OGR` methods that raised using
|
18
|
+
- Added exception messages for `OGR` methods that raised using
|
19
|
+
`OGR::ErrorHandling`.
|
17
20
|
- Added alias for `OGR::SpatialReferenceMixins::Exporters#to_gml` to `to_xml`.
|
18
21
|
- Wrapped `OGR_G_ExportToIsoWkt` and `OGR_G_ExportToJsonEx`.
|
19
22
|
- Merged `ffi-gdal-extensions` gem back to `ffi-gdal`.
|
@@ -25,10 +28,10 @@ get documented. Instead of keeping a mish-mash of valid and invalid change entri
|
|
25
28
|
|
26
29
|
#### GDAL
|
27
30
|
|
28
|
-
- _BREAKING_: `GDAL::RasterBand#no_data_value=` now accepts `nil` to allow
|
29
|
-
value.
|
30
|
-
- _BREAKING_: Many methods were not communicating errors `CPLErr` back to the
|
31
|
-
raise on `CE_Failure` or `CE_Fatal`:
|
31
|
+
- _BREAKING_: `GDAL::RasterBand#no_data_value=` now accepts `nil` to allow
|
32
|
+
unsetting the NODATA value.
|
33
|
+
- _BREAKING_: Many methods were not communicating errors `CPLErr` back to the
|
34
|
+
caller; these now raise on `CE_Failure` or `CE_Fatal`:
|
32
35
|
- `GDAL::Dataset#add_band`
|
33
36
|
- `GDAL::Dataset#build_overviews`
|
34
37
|
- `GDAL::Dataset#create_mask_band`
|
@@ -60,30 +63,37 @@ get documented. Instead of keeping a mish-mash of valid and invalid change entri
|
|
60
63
|
- `GDAL::RasterBand#write_block`
|
61
64
|
- `GDAL` errors that return `CPLE_AppDefined` now raise `GDAL::Error`.
|
62
65
|
- `GDAL` errors now truncate less of the backtrace.
|
63
|
-
- `GDAL::RasterBand#scale` and `#offset` now return the `Float` value and raise
|
64
|
-
instead of returning a `Hash` with that info.
|
66
|
+
- `GDAL::RasterBand#scale` and `#offset` now return the `Float` value and raise
|
67
|
+
on a failed call instead of returning a `Hash` with that info.
|
65
68
|
|
66
69
|
#### OGR
|
67
70
|
|
68
|
-
- _BREAKING_: `OGR::DataSource#copy_data_source` now raises instead of returning
|
69
|
-
to copy.
|
70
|
-
- _BREAKING_:
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
`
|
79
|
-
|
80
|
-
- _BREAKING_: `OGR::
|
81
|
-
|
82
|
-
`
|
71
|
+
- _BREAKING_: `OGR::DataSource#copy_data_source` now raises instead of returning
|
72
|
+
`nil` on a failure to copy.
|
73
|
+
- _BREAKING_:
|
74
|
+
`OGR::SpatialReferenceMixins::CoordinateSystemGetterSetters#set_utm`'s second
|
75
|
+
param is now a keyword arg, `north:` that defaults to `true` (like GDAL's
|
76
|
+
default).
|
77
|
+
- `OGR::SpatialReferenceMixins::CoordinateSystemGetterSetters#set_towgs84`'s
|
78
|
+
`z_distance` requires a value internally, but was defaulted to `nil`; changed
|
79
|
+
the default value to `0.0`.
|
80
|
+
- _BREAKING_:
|
81
|
+
`OGR::SpatialReferenceMixins::CoordinateSystemGetterSetters#axis`'s
|
82
|
+
`target_key` is now required.
|
83
|
+
- _BREAKING_: `OGR::CoordinateTransformation.new` raises a `GDAL:Error` instead
|
84
|
+
of `OGR::Failure`. In GDAL 3, the GDAL error handler kicks in when bad data is
|
85
|
+
used to instantiate the `CoordinateTranformation`. In < 3, the Ruby code
|
86
|
+
checks the returned pointer and raises if it's null. Now these raise the same
|
87
|
+
exception.
|
88
|
+
- _BREAKING_: `OGR::Driver.create_data_source` raises on failure instead of
|
89
|
+
returning `nil`.
|
90
|
+
- `OGR::SpatialReferenceMixins::Importers` now return `self` instead of the
|
91
|
+
`OGR` error code `Symbol`.
|
83
92
|
|
84
93
|
### Fixed
|
85
94
|
|
86
|
-
- [DEV-12827] Fixed lots of double-free crashes resulting from misuse of
|
95
|
+
- [DEV-12827] Fixed lots of double-free crashes resulting from misuse of
|
96
|
+
`FFI::Pointer#autorelease`:
|
87
97
|
- `GDAL::CPLErrorHandler#custom_handle`
|
88
98
|
- `GDAL::ColorInterpretation.name`
|
89
99
|
- `GDAL::ColorTable#clone`
|
@@ -125,12 +135,13 @@ get documented. Instead of keeping a mish-mash of valid and invalid change entri
|
|
125
135
|
|
126
136
|
### GDAL
|
127
137
|
|
128
|
-
- `GDAL::RasterBand#no_data_value` uses `BigDecimal` for checking the returned
|
138
|
+
- `GDAL::RasterBand#no_data_value` uses `BigDecimal` for checking the returned
|
139
|
+
float value.
|
129
140
|
|
130
141
|
#### OGR
|
131
142
|
|
132
|
-
- [DEV-12827] Fixed a number of memory leaks where returned strings should be
|
133
|
-
`FFI::CPL::VSI.VSIFree()`:
|
143
|
+
- [DEV-12827] Fixed a number of memory leaks where returned strings should be
|
144
|
+
released using `FFI::CPL::VSI.VSIFree()`:
|
134
145
|
- `OGR::Geometry#to_gml`
|
135
146
|
- `OGR::Geometry#to_kml`
|
136
147
|
- `OGR::Geometry#to_geo_json`
|
@@ -142,52 +153,60 @@ get documented. Instead of keeping a mish-mash of valid and invalid change entri
|
|
142
153
|
- `OGR::SpatialReference#to_wkt`
|
143
154
|
- `OGR::SpatialReference#to_pretty_wkt`
|
144
155
|
- `OGR::SpatialReference#to_xml`
|
145
|
-
- `OGR::SpatialReferenceMixins::Importers::ClassMethods#new_from_epsga` was
|
146
|
-
`import_from_epsg` instead of `import_from_epsga`.
|
147
|
-
- `OGR::SpatialReference.release` fixed to use `OSRRelease()` in order to avoid
|
148
|
-
-
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
156
|
+
- `OGR::SpatialReferenceMixins::Importers::ClassMethods#new_from_epsga` was
|
157
|
+
incorrectly calling `import_from_epsg` instead of `import_from_epsga`.
|
158
|
+
- `OGR::SpatialReference.release` fixed to use `OSRRelease()` in order to avoid
|
159
|
+
use-after-free.
|
160
|
+
- `OGR::SpatialReferenceMixins::CoordinateSystemGetterSetters#set_utm`'s
|
161
|
+
internal call was expecting an `int`, but was getting passed a `bool`.
|
162
|
+
- `OGR::SpatialReferenceMixins::CoordinateSystemGetterSetters#towgs84` now
|
163
|
+
properly reads data out of the internal C array.
|
164
|
+
- `OGR::SpatialReferenceMixins::CoordinateSystemGetterSetters#axis`: the
|
165
|
+
`orientation` value in the returned `Hash` wasn't calling a fully qualified
|
166
|
+
module.
|
154
167
|
- `OGR::SpatialReferenceMixins::Exporters#to_xml` now actually works.
|
155
168
|
|
156
169
|
### Removed
|
157
170
|
|
158
171
|
- [DEV-361] Move extension methods to ffi-gdal-extensions.
|
159
|
-
- Removed attach_function to CPLURLGetValue and CPLURLAddKVP as they are not in
|
172
|
+
- Removed attach_function to CPLURLGetValue and CPLURLAddKVP as they are not in
|
173
|
+
GDAL 2.
|
160
174
|
- `GDAL::MajorObject#description=`
|
161
175
|
|
162
176
|
## 1.0.0.beta16 / 2022-06-09
|
163
177
|
|
164
178
|
### Bug Fixes
|
165
179
|
|
166
|
-
- [DEV-34269] Ensure `GDAL::RasterBandClassifier#equal_count_ranges` returns a
|
180
|
+
- [DEV-34269] Ensure `GDAL::RasterBandClassifier#equal_count_ranges` returns a
|
181
|
+
range when only one is requested.
|
167
182
|
|
168
183
|
## 1.0.0.beta15 / 2022-05-12
|
169
184
|
|
170
185
|
### Improvements
|
171
186
|
|
172
|
-
- [DEV-20059] Ensure `GDAL::RasterBandClassifier#equal_count_ranges` has a
|
187
|
+
- [DEV-20059] Ensure `GDAL::RasterBandClassifier#equal_count_ranges` has a
|
188
|
+
minimum spacing between breakpoints.
|
173
189
|
|
174
190
|
## 1.0.0.beta14 / 2022-05-06
|
175
191
|
|
176
192
|
### Bug Fixes
|
177
193
|
|
178
|
-
- [DEV-34133] Don't URI.parse path in `GDAL::Dataset#initialize` and
|
194
|
+
- [DEV-34133] Don't URI.parse path in `GDAL::Dataset#initialize` and
|
195
|
+
`OGR::DataSource#initialize`.
|
179
196
|
|
180
197
|
## 1.0.0.beta13 / 2022-04-20
|
181
198
|
|
182
199
|
### Bug Fixes
|
183
200
|
|
184
|
-
- [DEV-20247] Fix return value for `OGR::LayerMixins::Extensions#point_values`
|
201
|
+
- [DEV-20247] Fix return value for `OGR::LayerMixins::Extensions#point_values`
|
202
|
+
when no features are found.
|
185
203
|
|
186
204
|
## 1.0.0.beta12 / 2021-06-07
|
187
205
|
|
188
206
|
### Removed
|
189
207
|
|
190
|
-
- Removed `GDAL::MajorObject#description=`, as this shouldn't be called and
|
208
|
+
- Removed `GDAL::MajorObject#description=`, as this shouldn't be called and
|
209
|
+
causes problems.
|
191
210
|
|
192
211
|
### Bug Fixes
|
193
212
|
|
@@ -203,7 +222,8 @@ get documented. Instead of keeping a mish-mash of valid and invalid change entri
|
|
203
222
|
|
204
223
|
### Fixed
|
205
224
|
|
206
|
-
- [DEV-7980] Ensure `OGR::Feature#field_as_string` returns a UTF-8 encoded
|
225
|
+
- [DEV-7980] Ensure `OGR::Feature#field_as_string` returns a UTF-8 encoded
|
226
|
+
String.
|
207
227
|
|
208
228
|
## [1.0.0.beta9] - 2018-03-26
|
209
229
|
|
@@ -224,7 +244,8 @@ get documented. Instead of keeping a mish-mash of valid and invalid change entri
|
|
224
244
|
|
225
245
|
### Fixed
|
226
246
|
|
227
|
-
- Ensure `GDAL::RasterBandMixinsIOExtensions#read_blocks_by_block` always yields
|
247
|
+
- Ensure `GDAL::RasterBandMixinsIOExtensions#read_blocks_by_block` always yields
|
248
|
+
an Array of pixels.
|
228
249
|
|
229
250
|
## [1.0.0.beta7] - 2016-09-21
|
230
251
|
|
@@ -232,17 +253,20 @@ get documented. Instead of keeping a mish-mash of valid and invalid change entri
|
|
232
253
|
|
233
254
|
#### GDAL
|
234
255
|
|
235
|
-
- Added wrapper for GDALCreateAndReprojectImage in
|
256
|
+
- Added wrapper for GDALCreateAndReprojectImage in
|
257
|
+
`gdal/dataset_mixins/warp_methods.rb`.
|
236
258
|
- Added `GDAL::Options.to_hash` to convert a pointer of options to a Ruby Hash.
|
237
259
|
|
238
260
|
### Changed
|
239
261
|
|
240
262
|
#### GDAL
|
241
263
|
|
242
|
-
- (BREAKING CHANGE) Additionally, changed
|
243
|
-
`
|
244
|
-
|
245
|
-
|
264
|
+
- (BREAKING CHANGE) Additionally, changed
|
265
|
+
`GDAL::DatasetMixins::WarpMethods#reproject_image`'s
|
266
|
+
`destination_spatial_reference` named param to `destination_projection` which
|
267
|
+
takes a String of WKT for a projection instead of an `OGR::SpatialReference`.
|
268
|
+
- Return `nil` for missing NODATA values in `GDAL::RasterBand#no_data_value` and
|
269
|
+
`#no_data_value=`.
|
246
270
|
|
247
271
|
### Fixed
|
248
272
|
|
@@ -252,9 +276,10 @@ get documented. Instead of keeping a mish-mash of valid and invalid change entri
|
|
252
276
|
|
253
277
|
#### GDAL
|
254
278
|
|
255
|
-
- `GDAL::RasterBandMixins::IOExtensions#write_xy_narray` no longer duplicates
|
256
|
-
a remainder.
|
257
|
-
- `GDAL::WarpOptions` should properly act as a wrapper for
|
279
|
+
- `GDAL::RasterBandMixins::IOExtensions#write_xy_narray` no longer duplicates
|
280
|
+
data when blocks have a remainder.
|
281
|
+
- `GDAL::WarpOptions` should properly act as a wrapper for
|
282
|
+
`FFI::GDAL::WarpOptions`.
|
258
283
|
- `Updated extract methods to be compatible with latest `GDAL::Driver#create_dataset`.
|
259
284
|
- `GDAL::MajorObject` now gets autoloaded.
|
260
285
|
- Fix `GDAL::DatasetMixins::AlgorithmMethods` to use the right `FFI` module for
|
@@ -262,13 +287,15 @@ get documented. Instead of keeping a mish-mash of valid and invalid change entri
|
|
262
287
|
|
263
288
|
#### OGR
|
264
289
|
|
265
|
-
- [AGDEV-17357] Define constants from C using `const_set` instead of
|
290
|
+
- [AGDEV-17357] Define constants from C using `const_set` instead of
|
291
|
+
`class_eval`.
|
266
292
|
- Fixed `OGR::GeometryTypes::Curve#points` (missing local variable).
|
267
293
|
|
268
294
|
### Removed
|
269
295
|
|
270
|
-
- Removed all `#as_json` and `#to_json` definitions. They were out of date, not
|
271
|
-
confusing (ex `OGR::Geometries#to_json` vs
|
296
|
+
- Removed all `#as_json` and `#to_json` definitions. They were out of date, not
|
297
|
+
used, and sometimes confusing (ex `OGR::Geometries#to_json` vs
|
298
|
+
`#to_geo_json`).
|
272
299
|
|
273
300
|
## [1.0.0.beta6] - 2016-04-18
|
274
301
|
|
@@ -276,148 +303,172 @@ get documented. Instead of keeping a mish-mash of valid and invalid change entri
|
|
276
303
|
|
277
304
|
#### GDAL
|
278
305
|
|
279
|
-
- Added wrappers for the Grid API. It uses `GDAL::Gridder`, which is the
|
280
|
-
the `gdal_grid` command-line utility,
|
281
|
-
|
306
|
+
- Added wrappers for the Grid API. It uses `GDAL::Gridder`, which is the
|
307
|
+
programmatic equivalent to the `gdal_grid` command-line utility,
|
308
|
+
`GDAL::GridderOptions`, which is an object used to mimic the options you pass
|
309
|
+
to `gdal_grid`, and `GDAL::Grid`, which is the simple object that performs the
|
282
310
|
gridding.
|
283
|
-
- Added first wrapper of `gdalwarper.h` methods, found in
|
284
|
-
|
285
|
-
|
286
|
-
|
287
|
-
|
288
|
-
|
289
|
-
- Added `GDAL::
|
290
|
-
|
291
|
-
- Added `GDAL::InternalHelpers`
|
292
|
-
|
293
|
-
|
294
|
-
- `GDAL::
|
295
|
-
|
311
|
+
- Added first wrapper of `gdalwarper.h` methods, found in
|
312
|
+
`GDAL::DatasetMixins::WarpMethods`.
|
313
|
+
- Added `GDAL::GeoTransformMixins::Extensions.new_from_envelope` which lets you
|
314
|
+
create a `GDAL::GeoTransform` using the points from an `OGR::Envelope` and the
|
315
|
+
destination raster's width and height. It's convenient because it calculates
|
316
|
+
the pixel size for you.
|
317
|
+
- Added `GDAL::RasterBand#write_block`. Somehow this went missing from previous
|
318
|
+
`RasterBand` wrapping.
|
319
|
+
- Added `GDAL::InternalHelpers._buffer_from_data_type` to compliment the
|
320
|
+
existing `._pointer_from_data_type`. Useful for creating buffer-specific
|
321
|
+
pointers from a GDAL data type.
|
322
|
+
- Added `GDAL::InternalHelpers` methods for creating NArrays based on GDAL data
|
323
|
+
types.
|
324
|
+
- `GDAL::Options` values all have `#to_s` called on them to ensure they're
|
325
|
+
Strings before handing them over to GDAL. The GDAL options "hash" requires
|
326
|
+
that both keys and values be Strings.
|
327
|
+
- `GDAL::RasterBandMixins::AlgorithmMethods` that use GDALProgressFunc functions
|
328
|
+
can now participate in GDALScaledProgress functions.
|
296
329
|
- Added `GDAL::RasterBandMixins::Extensions#pixel_count`.
|
297
|
-
- Allow `GDAL::Dataset`s to be open in shared mode vs non-shared mode. All
|
298
|
-
use shared mode.
|
299
|
-
- Added enumerator `RasterAttributeTableMixins::Extensions#each_column` to allow
|
300
|
-
over columns.
|
330
|
+
- Allow `GDAL::Dataset`s to be open in shared mode vs non-shared mode. All
|
331
|
+
Datasets now default to use shared mode.
|
332
|
+
- Added enumerator `RasterAttributeTableMixins::Extensions#each_column` to allow
|
333
|
+
nicer iterating over columns.
|
301
334
|
|
302
335
|
#### OGR
|
303
336
|
|
304
337
|
- Added `OGR::CoordinateTransform#transform_ex`.
|
305
|
-
- Added `OGR::FeatureExtensions#field()` which gets the field using the
|
306
|
-
`OGR::FieldDefinition#type`. Makes so you don't always have to
|
307
|
-
(`field_as_double`).
|
308
|
-
- Added `OGR::LayerMixins::Extensions#point_values()` which gets values for all
|
309
|
-
layer. It also allows you to specify getting field values
|
310
|
-
for the Grid API. You can also pass it
|
311
|
-
defined in the
|
312
|
-
|
313
|
-
|
314
|
-
|
315
|
-
-
|
316
|
-
|
317
|
-
- Added `OGR::
|
318
|
-
|
319
|
-
|
320
|
-
- Added `OGR::
|
321
|
-
|
322
|
-
|
323
|
-
|
338
|
+
- Added `OGR::FeatureExtensions#field()` which gets the field using the
|
339
|
+
associated `OGR::FieldDefinition#type`. Makes so you don't always have to
|
340
|
+
request the field by its type (`field_as_double`).
|
341
|
+
- Added `OGR::LayerMixins::Extensions#point_values()` which gets values for all
|
342
|
+
of the points in the layer. It also allows you to specify getting field values
|
343
|
+
with that, which helps retrieving data for the Grid API. You can also pass it
|
344
|
+
a block to filter out points that don't match some criteria defined in the
|
345
|
+
block.
|
346
|
+
- Added `OGR::LayerMixins::Extensions#any_geometries_with_z?` which simply
|
347
|
+
checks to see if the layer has any geometries with Z values.
|
348
|
+
- `GDAL::DataType.by_name` always calls `#to_s` on the param now, letting you
|
349
|
+
pass in Symbols.
|
350
|
+
- Added `OGR::Point#set_point`, `OGR::Point25#set_point`, and
|
351
|
+
`OGR::GeometryTypes::Curve#set_point` wrappers for `OGR_G_SetPoint_2D` and
|
352
|
+
`OGR_G_SetPoint`.
|
353
|
+
- Added `OGR::LineString#add_geometry` to allow adding a OGR::Point object to
|
354
|
+
the LineString instead of having to pass coordinates in to #add_point.
|
355
|
+
- Added `OGR::GeometryMixins::Extensions#invalid?` to compliment
|
356
|
+
`OGR::Geometry#valid?`.
|
357
|
+
- Added `OGR::LayerMixins::Extensions#point_geometry`, `#each_point_geometry`,
|
358
|
+
and `point_geometries`. Since `#point` implies it returns a Point object, but
|
359
|
+
the OGR API's related method returns point values (x, y, z), it seemed like it
|
360
|
+
would be useful to have a method that returned a geometry.
|
324
361
|
|
325
362
|
### Changed
|
326
363
|
|
327
364
|
#### GDAL
|
328
365
|
|
329
|
-
- Renamed `GDAL::GridTypes` to `GDAL::GridAlgorithms`. This shouldn't impact
|
330
|
-
only relative to the newly added Grid API wrapper.
|
331
|
-
had been laying around for some
|
332
|
-
|
333
|
-
|
334
|
-
|
335
|
-
|
336
|
-
|
337
|
-
|
338
|
-
|
339
|
-
-
|
340
|
-
|
366
|
+
- Renamed `GDAL::GridTypes` to `GDAL::GridAlgorithms`. This shouldn't impact
|
367
|
+
anyone/thing since it's only relative to the newly added Grid API wrapper.
|
368
|
+
There just happened to me some Grid cruft that had been laying around for some
|
369
|
+
time.
|
370
|
+
- Renamed `GDAL::RasterBandMixins::Extenions#each_by_block` to `#read_by_block`.
|
371
|
+
Its functionality was doing reading, yet implied reading or writing; since
|
372
|
+
writing by block isn't needed anywhere internally yet, I just renamed this.
|
373
|
+
- Renamed `GDAL::RasterBandMixins#write_array` to `#write_xy_narray`. This
|
374
|
+
method's name inferred that it could write any old Array, but that's not the
|
375
|
+
case--it only writes 2D NArray data.
|
376
|
+
- `GDAL::DatasetMixins::Extensions#extent` now manually builds an `OGR::Polygon`
|
377
|
+
instead of polygonizing the entire dataset and taking the envelope of that.
|
378
|
+
Much faster this way.
|
379
|
+
- Refactored `GDAL::RasterBandMixins::Exsentions#projected_points` to return a
|
380
|
+
3D NArray (indicating pixel/row position) instead of just a 2D NArray of
|
381
|
+
coordinates.
|
341
382
|
- Allow `GDAL::RasterBand#create_mask_band` to take a single flag or many.
|
342
|
-
- Allow `GDAL::Driver#create_dataset` and `GDAL::Dataset.open` to take a block,
|
343
|
-
then closing it afterwards.
|
344
|
-
- `GDAL::RasterBandClassifier` now uses NArray to classify. Can result in quite
|
345
|
-
gain.
|
346
|
-
- `GDAL::RasterAttributeTable` methods that returned -1 when a value can't be
|
347
|
-
nil instead.
|
348
|
-
- Renamed `GDAL::RasterAttributeTable#value_to_*` methods to be named after
|
349
|
-
renamed `#add_value` to `#set_value` and refactored
|
350
|
-
|
383
|
+
- Allow `GDAL::Driver#create_dataset` and `GDAL::Dataset.open` to take a block,
|
384
|
+
yielding the dataset then closing it afterwards.
|
385
|
+
- `GDAL::RasterBandClassifier` now uses NArray to classify. Can result in quite
|
386
|
+
a large performance gain.
|
387
|
+
- `GDAL::RasterAttributeTable` methods that returned -1 when a value can't be
|
388
|
+
returned now return nil instead.
|
389
|
+
- Renamed `GDAL::RasterAttributeTable#value_to_*` methods to be named after
|
390
|
+
their C functions. Also, renamed `#add_value` to `#set_value` and refactored
|
391
|
+
into `RasterAttributeTableMixins::Extensions`.
|
392
|
+
- Swapped order of params in `GDAL::Driver#rename_dataset` to be (old, new)
|
393
|
+
instead of (new, old).
|
351
394
|
- `GDAL::Driver#copy_dataset` now yields a writable Dataset.
|
352
395
|
- `GDAL::Driver#copy_dataset` now properly takes progress block arguments.
|
353
396
|
|
354
397
|
#### OGR
|
355
398
|
|
356
|
-
- `OGR::DataSource.open` can now take a block, yielding the data source, then
|
357
|
-
|
358
|
-
|
359
|
-
|
360
|
-
|
399
|
+
- `OGR::DataSource.open` can now take a block, yielding the data source, then
|
400
|
+
closing it afterwards.
|
401
|
+
- Extracted `OGR::LayerMixins::Extensions#each_feature` from
|
402
|
+
`OGR::LayerMixins::Extensions#features` to provide an Enumerator. This lets
|
403
|
+
consumers utilize yielded `OGR::Feature`s as they're retrieved instead of
|
404
|
+
after the `features` Array has been built.
|
405
|
+
`OGR::LayerMixins::Extensions#features` now uses this too.
|
361
406
|
|
362
407
|
### Fixed
|
363
408
|
|
364
|
-
- Cleanup `OGR::Feature`s that were a result of `OGR::Layer#next_feature`.
|
365
|
-
these _must_ be cleaned up before the layer is.
|
409
|
+
- Cleanup `OGR::Feature`s that were a result of `OGR::Layer#next_feature`.
|
410
|
+
According to GDAL docs, these _must_ be cleaned up before the layer is.
|
366
411
|
|
367
412
|
#### GDAL
|
368
413
|
|
369
|
-
- `GDAL::RasterBandMixins::AlgorithmMethods#fill_nodata!` was calling the old
|
370
|
-
function.
|
414
|
+
- `GDAL::RasterBandMixins::AlgorithmMethods#fill_nodata!` was calling the old
|
415
|
+
name of the C function.
|
371
416
|
- `GDAL::EnvironmentMethods#dump_open_datasets` now works.
|
372
417
|
|
373
418
|
#### OGR
|
374
419
|
|
375
|
-
- `OGR::Field#date=` was casting the passed value to a `Time` object, which in
|
376
|
-
the time zone. If a user passes in an object that doesn't
|
377
|
-
setting it for them.
|
420
|
+
- `OGR::Field#date=` was casting the passed value to a `Time` object, which in
|
421
|
+
doing so was setting the time zone. If a user passes in an object that doesn't
|
422
|
+
have the TZ set, the method shouldn't be setting it for them.
|
378
423
|
- `OGR::Geometry#point_on_surface` now properly returns a geometry object.
|
379
424
|
- `OGR::CoordinateTransform#transform` never worked. Fixed.
|
380
425
|
- `OGR::GeometryMixins::Extensions#utm_zone` no longer creates invalid geometry.
|
381
426
|
- `OGR::Feature#dump_readable` never worked. Fixed.
|
382
427
|
- `OGR::Geometry#dump_readable` never worked. Fixed.
|
383
428
|
- Added missing output_layer param to `OGR::LayerMixins::OGRLayerMethodMethods`.
|
384
|
-
- `FFI::OGR::Core::WKBGeometryType` was using an INT32 instead of UINT32 and
|
385
|
-
weren't completely accurate.
|
386
|
-
- `OGR::LayerMixins::Extensions#geometry_from_extent` now builds an
|
387
|
-
|
388
|
-
|
389
|
-
|
429
|
+
- `FFI::OGR::Core::WKBGeometryType` was using an INT32 instead of UINT32 and
|
430
|
+
thus 25D geometry types weren't completely accurate.
|
431
|
+
- `OGR::LayerMixins::Extensions#geometry_from_extent` now builds an
|
432
|
+
`OGR::Polygon` using the same algorithm that
|
433
|
+
`GDAL::DatasetMixins::Extensions#extent` uses. One could argue that there was
|
434
|
+
also a bug here in that `geometry_from_extent` used to return the convex hull
|
435
|
+
of the extent, not the extent itself.
|
390
436
|
|
391
437
|
### Removed
|
392
438
|
|
393
|
-
- Removed all `ObjectSpace.define_finalizer` calls that "cleaned up" C pointers
|
394
|
-
objects that had not yet been closed/destroyed. This was
|
395
|
-
collected (?) and effectively causing
|
439
|
+
- Removed all `ObjectSpace.define_finalizer` calls that "cleaned up" C pointers
|
440
|
+
for Ruby-wrapped objects that had not yet been closed/destroyed. This was
|
441
|
+
keeping those Ruby objects from getting collected (?) and effectively causing
|
442
|
+
lots of unnecessary memory use.
|
396
443
|
|
397
444
|
## [1.0.0.beta5] - 2015-06-16
|
398
445
|
|
399
446
|
### Added
|
400
447
|
|
401
|
-
- Added `GDAL::RasterBand#raster_io` and refactored
|
448
|
+
- Added `GDAL::RasterBand#raster_io` and refactored
|
449
|
+
`GDAL::RasterBand#write_array` to use it.
|
402
450
|
|
403
451
|
### Changed
|
404
452
|
|
405
|
-
- `GDAL::RasterBandClassifier#equal_count_ranges` now returns `nil` if there
|
406
|
-
per group/class to return the requested number of breaks.
|
453
|
+
- `GDAL::RasterBandClassifier#equal_count_ranges` now returns `nil` if there
|
454
|
+
aren't enough points per group/class to return the requested number of breaks.
|
407
455
|
- Simplified NDVI (and related) methods in `GDAL::DatasetMixins::Extensions`.
|
408
|
-
- NDVI and related methods in `GDAL::DatasetMixins::Extensions` now close the
|
409
|
-
instead of leaving it open. It's been far too easy to
|
410
|
-
|
411
|
-
is
|
412
|
-
|
413
|
-
|
414
|
-
|
415
|
-
|
416
|
-
|
456
|
+
- NDVI and related methods in `GDAL::DatasetMixins::Extensions` now close the
|
457
|
+
newly created dataset instead of leaving it open. It's been far too easy to
|
458
|
+
forget to close the dataset after creation, leaving seemingly incorrect
|
459
|
+
resulting datasets (since GDAL doesn't flush writes until the dataset is
|
460
|
+
closed).
|
461
|
+
- NDVI methods in `GDAL::DatasetMixins::Extensions` no longer check for NaNs
|
462
|
+
after doing the NDVI calculations, thus speeding up the algorithm.
|
463
|
+
- `GDAL::DatasetMixins::Extensions#remove_negatives_from` now uses an NArray
|
464
|
+
mask to remove the negative values instead of looping through each value.
|
465
|
+
- `GDAL::DatasetMixins::Extensions` NDVI methods now default to NODATA of
|
466
|
+
`-9999.0`.
|
417
467
|
|
418
468
|
## [1.0.0.beta4] - 2015-04-22
|
419
469
|
|
420
|
-
Whoa there's lots of changes here... Many are outlined below, but there's really
|
470
|
+
Whoa there's lots of changes here... Many are outlined below, but there's really
|
471
|
+
a ton more.
|
421
472
|
|
422
473
|
### Added
|
423
474
|
|
@@ -430,35 +481,36 @@ Whoa there's lots of changes here... Many are outlined below, but there's really
|
|
430
481
|
|
431
482
|
### Changed
|
432
483
|
|
433
|
-
- Full refactor of FFI/C function wrapper. Closer mapping of Ruby functions
|
434
|
-
C-header files where the functions actually reside.
|
435
|
-
- Full redesign of the error handling mechanism; ffi-gdal now hooks in to GDAL's
|
436
|
-
thus errors raised from GDAL automagically get handed over as
|
437
|
-
doesn't provide this.) This also entailed
|
438
|
-
ones.
|
484
|
+
- Full refactor of FFI/C function wrapper. Closer mapping of Ruby functions
|
485
|
+
within modules to the C-header files where the functions actually reside.
|
486
|
+
- Full redesign of the error handling mechanism; ffi-gdal now hooks in to GDAL's
|
487
|
+
error handling, thus errors raised from GDAL automagically get handed over as
|
488
|
+
Ruby exceptions. (GDAL only; OGR doesn't provide this.) This also entailed
|
489
|
+
adding a bunch of new exceptions and renaming some old ones.
|
439
490
|
- Lots more `OGR` love. Much of this API has now been vetted.
|
440
491
|
|
441
492
|
### Fixed
|
442
493
|
|
443
|
-
- Fixed some `GDAL::Dataset` extension methods (`extract_ndvi` and friends) that
|
444
|
-
handling various data types.
|
494
|
+
- Fixed some `GDAL::Dataset` extension methods (`extract_ndvi` and friends) that
|
495
|
+
weren't properly handling various data types.
|
445
496
|
- Better handling of large files.
|
446
|
-
- Fixed regular crashes when dealing with `OGR` Geometries and
|
497
|
+
- Fixed regular crashes when dealing with `OGR` Geometries and
|
498
|
+
`SpatialReferences`.
|
447
499
|
|
448
500
|
## [1.0.0.beta3] - 2014-11-11
|
449
501
|
|
450
502
|
### Fixed
|
451
503
|
|
452
|
-
- `ogr/exceptions` wasn't being required for `ext/error_symbols.rb`, thus any
|
453
|
-
exception was causing a `NameError`.
|
504
|
+
- `ogr/exceptions` wasn't being required for `ext/error_symbols.rb`, thus any
|
505
|
+
use of an OGR exception was causing a `NameError`.
|
454
506
|
|
455
507
|
## [1.0.0.beta2] - 2014-10-23
|
456
508
|
|
457
509
|
### Added
|
458
510
|
|
459
511
|
- Added more documentation
|
460
|
-
- Uncommented `attach_function` calls that had been commented out due to lack of
|
461
|
-
I'd tested on. These get handled now on load.
|
512
|
+
- Uncommented `attach_function` calls that had been commented out due to lack of
|
513
|
+
support in versions I'd tested on. These get handled now on load.
|
462
514
|
|
463
515
|
## [1.0.0.beta1] - 2014-10-23
|
464
516
|
|
@@ -467,19 +519,21 @@ Lots of changes, so just the highlights here...
|
|
467
519
|
### Added
|
468
520
|
|
469
521
|
- Added C and Ruby wrapper for most of `OGR`.
|
470
|
-
- Allow loading, even when C functions aren't defined in the version of `GDAL`
|
522
|
+
- Allow loading, even when C functions aren't defined in the version of `GDAL`
|
523
|
+
that you're using.
|
471
524
|
- Added `#as_json`, `#to_json` to many classes.
|
472
525
|
|
473
526
|
### Changed
|
474
527
|
|
475
528
|
- Better handling of `CPLErr` return values.
|
476
|
-
- Split out additions to `GDAL/OGR` in `*_extensions.rb` modules. Methods
|
477
|
-
modules don't directly wrap `GDAL`/`OGR` functions,
|
478
|
-
attempt to make library usage more
|
529
|
+
- Split out additions to `GDAL/OGR` in `*_extensions.rb` modules. Methods
|
530
|
+
contained in `Extensions` modules don't directly wrap `GDAL`/`OGR` functions,
|
531
|
+
but either provide new functionality or attempt to make library usage more
|
532
|
+
Rubyesque.
|
479
533
|
- Lots of cleanup of class internals.
|
480
534
|
- `autoload` child `GDAL` and `OGR` Ruby classes.
|
481
|
-
- Renamed files under `ffi/` that were derived from `GDAL`/`OGR` header files to
|
482
|
-
name.
|
535
|
+
- Renamed files under `ffi/` that were derived from `GDAL`/`OGR` header files to
|
536
|
+
include `_h` in the name.
|
483
537
|
|
484
538
|
## [0.0.4] - 2014-09-27
|
485
539
|
|
@@ -491,13 +545,14 @@ Lots of changes, so just the highlights here...
|
|
491
545
|
|
492
546
|
### Changed
|
493
547
|
|
494
|
-
- The `approx_ok` param for `RasterBand#histogram` should default to `false`
|
495
|
-
exactness over performance).
|
548
|
+
- The `approx_ok` param for `RasterBand#histogram` should default to `false`
|
549
|
+
(preferring data exactness over performance).
|
496
550
|
|
497
551
|
### Fixed
|
498
552
|
|
499
553
|
- Fixed URL silliness introduced in 0.0.2.
|
500
|
-
- `Dataset#*_band` methods should return `nil` if the band with that color isn't
|
554
|
+
- `Dataset#*_band` methods should return `nil` if the band with that color isn't
|
555
|
+
found.
|
501
556
|
- `RasterBand#default_histogram` died if the band didn't have any values.
|
502
557
|
- `RasterBand#histogram` wasn't returning totals.
|
503
558
|
|