[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[dennou-ruby:003430] Re: rb-grib-0.1.0 released



堀之内様・西澤様

大塚です。

昨日テストした環境は ruby 1.9.3, GPhys CVS版, rb-GRIB git版で、
読んでいたファイルが前のGRIBインターフェースでは正しく読めないファイル
(気象庁1ヶ月予報、コンソーシアム経由)だったので、
前のものではテストしていませんでした。

改めて他に読める GRIB ファイルは無いかと思って試していたら、
別のバグに当たってしまいました。
ログを添付いたします。
読もうとしたのは NCEP FNL です。
必要でしたら、どこかにサンプルを置きます。

取り急ぎご報告まで。

(2011/12/06 22:58), Takeshi Horinouchi wrote:
> 堀之内です.
> 
> 前のだったらどうですか?
> 
>> 西澤様
>>
>> 大塚です。
>>
>> GRIB1 のファイル (46 MB) で試したところ、ディスクキャッシュの
>> 効いていない場合で読み込み時間が 8.013s ->  6.287s に短縮、
>> ディスクキャッシュの効いた状態で 3.836s ->  2.825s に短縮しました。
>> (一回しか計っていないので計測誤差はそれなりに有ります。)
>> データ自体も見た範囲では正しく読めているようです。
>>
>> GRIB2 のファイルも読めているようです。
>> あまりサイズの大きなファイルが手元に無いので、
>> 大きなファイルでのパフォーマンス改善度は分かりません。
>>
>> しばらく使ってみて不具合があればご報告いたします。
>>
>> (2011/12/06 21:14), Seiya Nishizawa wrote:
>>> 西澤です
>>>
>>> 速度が非常に遅かった(前の Grib ライブラリよりも遅かった) ので、
>>> ボトルネックのいくつかの箇所を C に持って行きました。
>>>
>>> 試していただけますでしょうか>   大塚様
>>>
>>> 西澤誠也
>>>
>>> 2011/11/29 Seiya Nishizawa<seiya@xxxxxxxxxxxxxx>:
>>>> 西澤です
>>>>
>>>> GRIB1, 2 を扱うことができる ruby ライブラリrb-GRIB の 0.1.0 をリリースしました。
>>>> http://ruby.gfd-dennou.org/products/rb-grib/
>>>>
>>>> 下層で、ECMWFが出している GRIB API を利用しています。
>>>>
>>>> GPhys から利用するためには、 CVS 最新版に上げる必要があります。

-- 
京都大学大学院理学研究科
気象学研究室
大塚成徳 (Shigenori OTSUKA)
email: otsuka@xxxxxxxxxxxxxxxxxx
tel: 075-753-3935
otsuka@otsuka02:~/data2/fnl$ time ruby193 -r numru/gphys -e'p NumRu::GPhys::IO.open("fnl_20110411_12_00_c","t")'
BUG: send the following message to the developers
GribVar: t in fnl_20110411_12_00_c, [360,181]
[0, 975420.0, 0, nil, ""]
[[["typeOfLevel", "surface"], ["typeOfLevel", "depthBelowLandLayer"]], [["level", 0], ["topLevel", 0]], [["yearOfCentury", 11], ["bottomLevel", 10]], [["month", 4], ["levels", "0-10"]], [["day", 11], ["yearOfCentury", 11]], [["hour", 12], ["month", 4]], [["minute", 0], ["day", 11]], [["second", 0], ["hour", 12]], [["unitOfTimeRange", "h"], ["minute", 0]], [["P1", 0], ["second", 0]], [["P2", 0], ["unitOfTimeRange", "h"]], [["timeRangeIndicator", 10], ["P1", 0]], [["numberIncludedInAverage", 0], ["P2", 0]], [["mybits", ""], ["timeRangeIndicator", 10]], [["numberMissingFromAveragesOrAccumulations", 0], ["numberIncludedInAverage", 0]], [["centuryOfReferenceTimeOfData", 21], ["mybits", ""]], [["subCentre", 0], ["numberMissingFromAveragesOrAccumulations", 0]], [["paramIdECMF", "130"], ["centuryOfReferenceTimeOfData", 21]], [["paramId", NArray.int(4): 
[ 130, 0, -1985682920, 32703 ]], ["subCentre", 0]], [["cfName", "air_temperature"], ["paramIdECMF", "130"]], [["decimalScaleFactor", 1], ["paramId", NArray.int(4): 
[ 130, 0, -1985681512, 32703 ]]], [["setLocalDefinition", 0], ["cfName", "air_temperature"]], [["dataDate", 20110411], ["decimalScaleFactor", 2]], [["dataTime", 1200], ["setLocalDefinition", 0]], [["julianDay", 2455663.0], ["dataDate", 20110411]], [["stepUnits", "h"], ["dataTime", 1200]], [["stepType", "instant"], ["julianDay", 2455663.0]], [["stepRange", "0"], ["stepUnits", "h"]], [["startStep", 0], ["stepType", "instant"]], [["endStep", 0], ["stepRange", "0"]], [["deleteLocalDefinition", 0], ["startStep", 0]], [["shortNameECMF", "t"], ["endStep", 0]], [["shortName", "t"], ["deleteLocalDefinition", 0]], [["ifsParam", 130], ["shortNameECMF", "t"]], [["gridDescriptionSectionPresent", 1], ["shortName", "t"]], [["bitmapPresent", 0], ["ifsParam", 130]], [["radius", "6.36747e+06"], ["gridDescriptionSectionPresent", 1]], [["shapeOfTheEarth", 6], ["bitmapPresent", 1]], [["numberOfVerticalCoordinateValues", 0], ["radius", "6.36747e+06"]], [["pvlLocation", 255], ["shapeOfTheEarth", 6]], [["dataRepresentationType", 0], ["numberOfVerticalCoordinateValues", 0]], [["Ni", 360], ["pvlLocation", 255]], [["Nj", 181], ["dataRepresentationType", 0]], [["latitudeOfFirstGridPoint", 90000], ["Ni", 360]], [["latitudeOfFirstGridPointInDegrees", 90.0], ["Nj", 181]], [["longitudeOfFirstGridPoint", 0], ["latitudeOfFirstGridPoint", 90000]], [["longitudeOfFirstGridPointInDegrees", 0.0], ["latitudeOfFirstGridPointInDegrees", 90.0]], [["resolutionAndComponentFlags", 128], ["longitudeOfFirstGridPoint", 0]], [["ijDirectionIncrementGiven", 1], ["longitudeOfFirstGridPointInDegrees", 0.0]], [["earthIsOblate", 0], ["resolutionAndComponentFlags", 128]], [["uvRelativeToGrid", 0], ["ijDirectionIncrementGiven", 1]], [["latitudeOfLastGridPoint", -90000], ["earthIsOblate", 0]], [["latitudeOfLastGridPointInDegrees", -90.0], ["uvRelativeToGrid", 0]], [["longitudeOfLastGridPoint", -1000], ["latitudeOfLastGridPoint", -90000]], [["longitudeOfLastGridPointInDegrees", -1.0], ["latitudeOfLastGridPointInDegrees", -90.0]], [["iDirectionIncrement", 1000], ["longitudeOfLastGridPoint", -1000]], [["jDirectionIncrement", 1000], ["longitudeOfLastGridPointInDegrees", -1.0]], [["scanningMode", 0], ["iDirectionIncrement", 1000]], [["iScansNegatively", 0], ["jDirectionIncrement", 1000]], [["jScansPositively", 0], ["scanningMode", 0]], [["jPointsAreConsecutive", 0], ["iScansNegatively", 0]], [["iScansPositively", 1], ["jScansPositively", 0]], [["jDirectionIncrementInDegrees", 1.0], ["jPointsAreConsecutive", 0]], [["iDirectionIncrementInDegrees", 1.0], ["iScansPositively", 1]], [["PVPresent", 0], ["jDirectionIncrementInDegrees", 1.0]], [["PLPresent", 0], ["iDirectionIncrementInDegrees", 1.0]], [["missingValue", 9999], ["PVPresent", 0]], [["bitsPerValue", 11], ["PLPresent", 0]], [["sphericalHarmonics", 0], ["missingValue", 9999]], [["complexPacking", 0], ["tableReference", 0]], [["integerPointValues", 0], ["bitsPerValue", 14]], [["additionalFlagPresent", 0], ["sphericalHarmonics", 0]], [["packingType", "grid_simple"], ["complexPacking", 0]], [["values", NArray.float(65160): 
[ 246.7, 246.7, 246.7, 246.7, 246.7, 246.7, 246.7, 246.7, 246.7, 246.7, ... ]], ["integerPointValues", 0]], [["dataLength", 11199], ["additionalFlagPresent", 0]], [["changeDecimalPrecision", 1], ["packingType", "grid_simple"]], [["decimalPrecision", 1], ["values", NArray.float(65160): 
[ 9999.0, 9999.0, 9999.0, 9999.0, 9999.0, 9999.0, 9999.0, 9999.0, 9999.0, ... ]]], [["bitsPerValueAndRepack", 11], ["dataLength", 4825]], [["scaleValuesBy", 1.0], ["changeDecimalPrecision", 2]], [["offsetValuesBy", 0.0], ["decimalPrecision", 2]], [["gridType", "regular_ll"], ["bitsPerValueAndRepack", 14]]]
/home/otsuka/tmp/work-cvs-svn/rb-grib/lib/numru/grib/grib.rb:341:in `block in init': error (RuntimeError)
	from /home/otsuka/tmp/work-cvs-svn/rb-grib/lib/numru/grib/grib.rb:318:in `each'
	from /home/otsuka/tmp/work-cvs-svn/rb-grib/lib/numru/grib/grib.rb:318:in `each_with_index'
	from /home/otsuka/tmp/work-cvs-svn/rb-grib/lib/numru/grib/grib.rb:318:in `init'
	from /home/otsuka/tmp/work-cvs-svn/gphys/lib/numru/gphys/gphys_grib_io.rb:85:in `var'
	from /home/otsuka/tmp/work-cvs-svn/gphys/lib/numru/gphys/gphys_grib_io.rb:85:in `open'
	from /home/otsuka/tmp/work-cvs-svn/gphys/lib/numru/gphys/gphys_io.rb:121:in `open'
	from -e:1:in `<main>'

real	0m0.630s
user	0m0.500s
sys	0m0.128s