GeoTIFFをKMZファイルにバッチ変換する


11

約600 MBのGeoTIFFマップファイルがあり、それぞれ約140 mbのサイズをKMZファイルに変換して、人々がそれらをダウンロードしてGarmin GPSユニット、Google Earthなどで使用できるようにします。

誰もがこれらをバッチ処理する簡単な方法を知っています、好ましくはプロセスの一環としてtiff画像をはるかに小さいjpeg画像に変換しますか?

「-co COMPRESS = JPEG」オプションを使用して、画像をより小さなものに最適化するのに役立つと思われるgdal_translateを見つけました。


G-Rasterを使用すると、ファイルごとにプロセスを実行できるように見えます。
ギャビン

グローバルマッパーも機能しているように見えますが、KMZファイルをダウンロードする人々から利益を得ることはないので、少し高価です。
ギャビン

OkMapは良好な出力を生成しますが、この便利なバッチ処理オプションも欠けています。
ギャビン

1
画像が大きい場合、最大1メガピクセルでタイルを張るだけでなく、Garminハンドヘルドがカスタムマップとして受け入れるために、同じKMZ内で100タイルを超えてはなりません。また、WGS84 lat longでなければなりません。Garmin KMZサポートの詳細については、garminフォーラムを参照してください。
ステファン

最後に、OkMapを使用してプロセスを手動で完了しました。皆様のご意見ありがとうございます。
ギャビン

回答:


15

gdal_translateの最近のバージョンでは、KML Superoverlayがサポートされています。GDAL Webサイトにはまだ文書化されていませんが、次のものを使用できます。

gdal_translate.exe -of KMLSUPEROVERLAY c:\ in.tif c:\ out.kmz -co FORMAT = JPEG

これにより、jpeg圧縮を使用してkmzファイルにタイルバージョンが保存されます。

Windowsでは、次を使用して自動化できます。

forfiles / m * .tif / c "cmd / c gdal_translate.exe -of KMLSUPEROVERLAY @FILE @ FNAME.kmz -co FORMAT = JPEG"

これは、入力ファイルがWGS84にあることを前提としています。


1
残念ながら、生成されたKMZがGarminカスタムマップ互換のKMZファイルではないことを発見しました。
ギャビン

なぜ互換性がないのか知っていますか?
アダム・ミルズ

SuperOverlayの構造は異なります。kmzがあり、その中にkmzがたくさんあります。Garmin形式は、jpgのフォルダーとjpgの範囲を説明するdoc.kmlファイルを含むkmzです。なぜ別の構造があるのか​​はわかりませんが、個人的にはガーミン形式がきれいだと思います...これは、ほとんどのガーミンデータ構造が嫌いなので奇妙です。
マイク

@Gavin解決策を見つけましたか?私は同じ問題であると信じているものに直面しています。この質問を参照してください。
ヘリット・

@gerritすみません、いいえ。すぐにまた見たいもののリストに載っています。
ギャビン

0

Geotiffファイルのサイズがそれぞれ140 mbの場合、結果のjpgファイルはまだかなり大きい可能性があります。ファイルをより簡単に表示できるように、ファイルを小さなファイルに分割することは興味深いかもしれません。KML Superoverlayを生成するオプションがあるhttp://www.maptiler.org/を使用して、1つのファイルで試すことができます。MapTilerはすべてのファイルをバッチ処理するのに適しているわけではありませんが、簡単に使用できるため、いくつかの予備テストを行うのが適切です。

希望どおりに機能する場合は、GDAL2Tilesを使用してすべてのファイルをバッチ処理することができます。私はそれを試していませんが、MapTilerはGDAL2Tilesに基づいているので、それは可能だと思います。


OkMapはこれを行います-GeoTIFFを取得し、KMZファイルで使用するために複数の小さな画像に分割します。gdal2tilesは便利なツールです-それからkmzを生成する方法をまだ理解していません。さらにプレイします。
ギャビン

OkMapは私にとって新しいものです。それを見てみましょう、それは興味深いプログラムのようです。
名前

gdal2tilesはほぼそこにありますが、OkMapははるかにエレガントな結果を生成します。タイルサイズはOkMapによって計算され、元の画像を効率的に分割し、正方形のタイルではなく長方形のタイルを許可するため、余分な透明な領域が回避されます。ファイルをバッチ処理するために、何らかの方法でコマンドラインOkMapを自動化できるかどうか疑問に思います。
ギャビン

0

KMLで画像を使用したことはありませんが、gdal2tiles.pyが役立つようです。OSに応じて、さまざまな方法でバッチ変換を実行できます。WindowsでCMDを使用するコマンド:DIR パス > yourfile .txt(ファイルのリストを生成する)、. txtをExcel / OpenOfficeにインポートし、クリーンアップして、GDALの構文を追加します。filename.batとして保存し、コマンドラインから実行します。


私は精通しており、定期的にgdal2tilesを使用していますが、kmzを吐き出すためにどの設定を使用する必要があるか少しわかりません。何か案は?
ギャビン

1
kml出力と画像を圧縮し、zipファイルの名前をkmz拡張子に変更しただけのケースだと思います。
ギャビン

それでおしまい。画像を圧縮する場合は、どのようなデータ型であるかを確認し、よりメモリ効率の良いものに変更する必要があります。
トメック

gdal2tilesはほぼそこにありますが、OkMapははるかにエレガントな結果を生成します。タイルサイズはOkMapによって計算され、元の画像を効率的に分割し、正方形のタイルではなく長方形のタイルを許可するため、余分な透明な領域が回避されます。ファイルをバッチ処理するために、何らかの方法でコマンドラインOkMapを自動化できるかどうか疑問に思います。
ギャビン


0

ArcGISから使用するPythonスクリプトをここに投稿しました。

解像度を失わずに3GB ArcGIS RasterをKMLにエクスポートしますか?

異なるモデルは、異なる数のタイルをサポートします。この制限、使用する画像の範囲、使用する最小解像度を確認する必要があります。次に、元の画像から複数のファイルを作成し、スクリプトツールで画像の各セクションを処理し、必要に応じてラップトップからGPSにファイルを転送する必要があります(Garminは一度に1つの「カスタムマップ」のみをサポートします) 。* mapモデルの多くは、100個の1024x1024タイルのみをサポートしています。コロラド州とモンタナ州はさらにサポートしています。私はタイルのサイズを2048 x 2048に変更して実験しましたが、それでも機能しているようで、一度にかなりの量のデータを使用できます。

あなたの場合、私はいくつかのマルチギグ画像にモザイクし、これらの大きな領域の画像を処理し、ユーザーがグーグルアースでそれらをサブセット化し、そこから独自のkmzを保存できるようにします。カスタムマップは、Garminがjnx形式をサポートし、Birdseyeサブスクリプションを販売するので、意図的に非常に制限しています...または、デバイスのハッキングを強制します。


0

OkMap Desktop(完全版、有料版)には、Garminカスタムマップ互換のKMZファイルを生成するためのバッチ機能が含まれるようになりましたので、これを使用しています。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.