とらりもんHOME  Index  Search  Changes  Login

とらりもん - L1Bの中身を抜き出す! Diff

  • Added parts are displayed like this.
  • Deleted parts are displayed like this.

!L1Bデータの一部を抜き出す!
MODISを始めとする衛星データはHDF形式で保存されている。衛星画像を作成したいときは必要な部分だけを抜き出す必要がある。MYD02SSH.A2008279.0400.005.2008279235411.hdfを例として、以下のコマンドで簡単にできる。
$ hdp dumpsds -i 0 MYD02SSH.A2008279.0400.005.2008279235411.hdf | less
(-iはSDS(Science Data Set)のIDを指定するオプション。)
すると以下のように表示される。
File name: MYD02SSH.A2008279.0400.005.2008279235411.hdf
File attributes:
         Attr0: Name = HDFEOSVersion
                 Type = 8-bit signed char
                 Count= 11
                 Value = HDFEOS_V2.9
         Attr1: Name = StructMetadata.0
                 Type = 8-bit signed char
                 Count= 32000
                 Value = GROUP=SwathStructure\012\011GROUP=SWATH_1
                         \012\011\011SwathName="MODIS_SWATH_Type_L
                         1B"\012\011\011GROUP=Dimension\012\011\011
                         \011OBJECT=Dimension_1\012\011\011\011\011
                         DimensionName="2*nscans"\012\011\011\011\011
                         Size=406\012\011\011\011END_OBJECT=Dimens
                         ion_1\012\011\011\011OBJECT=Dimension_2\012
                         \011\011\011\011DimensionName="1KM_geo_di
                         m"\012\011\011\011\011Size=271\012\011\011
                         \011END_OBJECT=Dimension_2\012\011\011\011
....................................
下にドンドン読み進めて行くと
Variable Name = Latitude
         Index = 0
         Type= 32-bit floating point
         Ref. = 6
         Rank = 2
         Number of attributes = 5
         Dim0: Name=2*nscans:MODIS_SWATH_Type_L1B
                 Size = 406
                 Scale Type = number-type not set
                 Number of attributes = 0
         Dim1: Name=1KM_geo_dim:MODIS_SWATH_Type_L1B
                 Size = 271
                 Scale Type = number-type not set
                 Number of attributes = 0
         Attr0: Name = units
                 Type = 8-bit signed char
                 Count= 7
                 Value = degrees
         Attr1: Name = valid_range
                 Type = 32-bit floating point
                 Count= 2
                 Value = -90.000000 90.000000
         Attr2: Name = _FillValue
                 Type = 32-bit floating point
                 Count= 1
                 Value = -999.000000
         Attr3: Name = line_numbers
                 Type = 8-bit signed char
                 Count= 4
                 Value = 1,2\000
         Attr4: Name = frame_numbers
                 Type = 8-bit signed char
                 Count= 10
                 Value = 1,2,3,...\000
         Data :
                30.289412 30.276995 30.264616 30.252281 30.240009
...........................
となる。ここに書いてある情報は衛星データを扱う時にめちゃくちゃ重要なものになる。上にVariable Name = Latitude と Index = 0 が記述されている。Latitudeは緯度、IndexはSDSのID番号。つまり、SDSのID番号0は緯度のデータを表している。ちなみにSDSのID番号1はLongitude(経度)のデータが入っている。

しかし、このままだとヘッダーの情報が付加されており、本当に必要な情報だけではない。そこで-dというオプションをつけて以下のコマンド。多分、directのd。
$ hdp dumpsds -i 0 -d MYD02SSH.A2008279.0400.005.2008279235411.hdf | less
すると以下のように表示される。
30.289412 30.276995 30.264616 30.252281 30.240009 30.227806 30.215681
30.203636 30.191675 30.179808 30.168036 30.156359 30.144779 30.133295
30.121916 30.110634 30.099453 30.088373 30.077393 30.066509 30.055721
30.045033 30.034441 30.023945 30.013540 30.003229 29.993008 29.982876
29.972828 29.962870 29.952997 29.943207 29.933496 29.923868 29.914318
29.904844 29.895447 29.886120 29.876867 29.867685 29.858574 29.849529
29.840551 29.831638 29.822788 29.813999 29.805273 29.796604 29.787992
29.779438 29.770941 29.762497 29.754105 29.745764 29.737474 29.729233
29.721039 29.712893 29.704792 29.696735 29.688721 29.680748 29.672819
29.664928 29.657078 29.649263 29.641487 29.633745 29.626040 29.618366
29.610725 29.603117 29.595539 29.587992 29.580471 29.572979 29.565514
29.558075 29.550661 29.543272 29.535906 29.528561 29.521238 29.513937
29.506657 29.499393 29.492149 29.484922 29.477713 29.470518 29.463339
29.456171 29.449020 29.441881 29.434755 29.427639 29.420534 29.413439
29.406351 29.399273 29.392202 29.385138 29.378078 29.371025 29.363976
........................................

これをテキストデータに吐き出す!
$ hdp dumpsds -i 0 -d -b MYD02SSH.A2008279.0400.005.2008279235411.hdf > latitude.bin
-bはデータをバイナリーにするオプション。これをパイプによるlessコマンドなどを使わず、端末で表示させるとエラいことになるから注意!

SDSのID番号について知りたかったら、LAADSのこの[[ぺージ|http://ladsweb.nascom.nasa.gov/data/filespecs.html]]にある[[MOD02SSH|http://ladsweb.nascom.nasa.gov/filespecs/MOD02SSH.fs]]とかに書かれている。[[一覧表|http://outreach.eos.nasa.gov/EOSDIS_CD_01_v2/docs/mod021sds.htm]]

hdpコマンドについて知りたかったらこの[[ページ|http://www.hdfgroup.org/hdp.html]]にアクセス!