<< ●●Forge | top | CSVからKMLに変換 >>

ラスターの色が一瞬で一色に!

MapServerでラスターデータを表示にチャレンジしています。gdal_csharp.dll も使って、動的にラスタデータを作って、MapServerで表示、なんていうのをVBから操作してます。

なんとか、HFAフォーマットのラスタデータの作成に成功し、1ファイルに8つのバンド(レイヤー)を含めることができました。各バンドも、Double型など値として持たせることができ、Run Length で圧縮をかけると、100万個のデータもわずか3MBのファイルに収めることができました。

で、本題ですが、やっとできたラスターデータを表示する設定をマップファイルに書き込んで、いざ表示すると、、無事に表示されます。やった!と喜んでいると、ある瞬間に、設定したCLASSの値がいっせいに同じ色に化けてしまいました。。。
で、同様の現象はどっかでもでているはずだと、ググったところ、
COLOR_MATCH_THRESHOLDという記事が、Mapserver-devのMLに投稿されていました。

端的に解決策は、Layerのセッションの中に、『PROCESSING "COLOR_MATCH_THRESHOLD=3"』を入れるのがいいそうだ。

COLO_MATCH_THRESHOLDの説明は、たくぼさんのページに説明がありました。

で、これを設定する理由は、MapServerの中での色管理テーブルを効率よく使用するために、色管理テーブルと一致させる精度の閾値をデフォルトでは、0(ゼロ)に設定してあるため、表示に必要な色がなかった場合、新しい色が追加されることがあるらしいです。

これを回避するために、値を3(2〜6の間を推奨値)としてあたえることで、必要な色との違いが 3 以内であればその色を使うことで、色管理テーブルが変わることを防ぐことができるようです。

主に、GDALのラスタを表示するために用意されているオプションであるとの記述もありました。

これで、無事に色化けなく表示に成功!!
bugna | MapServer | 11:50 | comments(0) | trackbacks(0) | - | - |
Comment









Trackback
URL:

07
--
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
--
>>
<<
--