gdal-helper 0.0.1.3 → 0.0.1.4

Sign up to get free protection for your applications and to get access to all the features.
File without changes
Binary file
@@ -1,9 +1,31 @@
1
1
  #!/usr/bin/env ruby
2
+ # Author:: Jay Cable <jay@spruceboy.net>
3
+ # Copyright:: Copyright (c) 2010 Jay Cable
4
+ # License:: Distributes under the same terms as Ruby.
5
+ ##
6
+ # = \Gdal Helper - A simple wrapper class for gdal
2
7
  # A simple wrapper class for gdal - the goal is to provide a very simple and easy interface to gdal in ruby.
3
8
  # Ruby's gdal bindings, and ruby's ogr bindings are required.
4
9
  # blame for this work goes to jay@spruceboy.net
5
- # Feel free to fork/revamp/whatever - credit would be nice, but not required.
6
- # I am hoping some more qualified folks will take this on and make it gleam with super goodness - Have at it folks!
10
+ # == Roadmap
11
+ # * Feel free to fork/revamp/whatever - credit would be nice, but not required.
12
+ # * I am hoping some more qualified folks will take this on and make it gleam with super goodness - Have at it folks!
13
+ # == Summary
14
+ # Once installed, you can read a file like this:
15
+ # require "gdal_helper"
16
+ # infile = GdalFile.new(filename)
17
+ # infile.each_line do |data|
18
+ # ..do something with data..
19
+ # end
20
+ #
21
+ # And write some gdal file like this:
22
+ # require "gdal_helper"
23
+ # outfile = GdalFile.new(file_name, "w", 30,30,3,"GTiff", String, ["COMPRESS=DEFLATE", "TILED=YES"])
24
+ # #write some data..
25
+ # outfile.write_bands(0,1,30,1,data)
26
+ #
27
+ # For more examples see the "examples" directory.
28
+ # Have fun!
7
29
 
8
30
  ##
9
31
  # I am confused about how gdal shows up on varous distros - here are two tries..
@@ -109,7 +131,8 @@ class GdalBand < GdalStuff
109
131
  end
110
132
 
111
133
  private
112
-
134
+ #--
135
+ # This is just for reference - don't rdoc this stuff..
113
136
  # string.pack notes - for refrence for the function below.
114
137
  # Format | Returns | Function
115
138
  #-------+---------+-----------------------------------------
@@ -218,6 +241,7 @@ class GdalBand < GdalStuff
218
241
  # @ | --- | skip to the offset given by the
219
242
  # | | length argument
220
243
  #-------+---------+-----------------------------------------
244
+ #++
221
245
  #unpacks the data
222
246
  def unpack ( items, data)
223
247
  pack_template = case (@band.DataType)
@@ -238,6 +262,9 @@ class GdalBand < GdalStuff
238
262
  return data.unpack(pack_template*data.length)
239
263
  end
240
264
 
265
+
266
+ #--
267
+ # dont rdoc this stuff.. just notes from pack for my own quick reference..
241
268
  #Notes for pack..
242
269
  # #Directives for pack.
243
270
  #
@@ -279,6 +306,7 @@ class GdalBand < GdalStuff
279
306
  # X | Back up a byte
280
307
  # x | Null byte
281
308
  # Z | Same as ``a'', except that null is added with *
309
+ #++
282
310
  # packs data in prep to write to gdal..
283
311
  def pack(data)
284
312
  pack_template = case(@band.DataType)
@@ -414,6 +442,7 @@ class GdalFile < GdalStuff
414
442
  end
415
443
 
416
444
  #gets the geo transform (wld file traditionally)
445
+ # Returns an array with this information: [Origin (top left corner), X pixel size, Rotation (0 if north is up),Y Origin (top left corner), Rotation (0 if north is up), Y pixel size *-1 (its negitive)]
417
446
  def get_geo_transform()
418
447
  @gdalfile.get_geo_transform
419
448
  end
@@ -428,4 +457,17 @@ class GdalFile < GdalStuff
428
457
  0.upto(ysize-1){|y| yield(y,read_bands(0,y,xsize,1))}
429
458
  end
430
459
 
460
+ # returns the extents as a {"xmin" => min, "ymin" => ymin, "xmax" => xmax, "ymax" => ymax} sort of construct..
461
+ def get_extents
462
+ transform = @gdalfile.get_geo_transform
463
+ #[274785.0, 30.0, 0.0, 4906905.0, 0.0, -30.0]
464
+ #[(0)Origin (top left corner), (1) X pixel size, (2) Rotation (0 if north is up),(3)Y Origin (top left corner), (4) Rotation (0 if north is up), (5) Y pixel size]
465
+ {
466
+ "xmin" => transform[0].to_f,
467
+ "ymin"=> transform[3].to_f + ysize().to_f * transform[5].to_f,
468
+ "ymax" => transform[3].to_f,
469
+ "xmax" => transform[0].to_f + xsize().to_f * transform[1].to_f
470
+ }
471
+ end
472
+
431
473
  end
@@ -1,4 +1,4 @@
1
1
  module GdalHelper
2
- Version = "0.0.1.3"
2
+ Version = "0.0.1.4"
3
3
  end
4
4
 
metadata CHANGED
@@ -6,8 +6,8 @@ version: !ruby/object:Gem::Version
6
6
  - 0
7
7
  - 0
8
8
  - 1
9
- - 3
10
- version: 0.0.1.3
9
+ - 4
10
+ version: 0.0.1.4
11
11
  platform: ruby
12
12
  authors:
13
13
  - JC
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2010-04-22 00:00:00 -08:00
18
+ date: 2010-06-30 00:00:00 -08:00
19
19
  default_executable:
20
20
  dependencies: []
21
21
 
@@ -35,6 +35,7 @@ files:
35
35
  - examples/basic_example.rb
36
36
  - examples/print_info_example.rb
37
37
  - examples/ndvi_color.rb
38
+ - examples/foo.tif
38
39
  - examples/basic_example_using_each_line.rb
39
40
  - examples/gdal_helper_test.rb
40
41
  has_rdoc: true