2

PostgreSQL にラスターとしてロードしたいビットマップがメモリ内にあります。

ビットマップをファイルに保存してからraster2pgsqlを使用するのは好ましくないオプションですが、高速で画像を生成するカメラがいくつかあるため、DBに挿入するためだけにファイルに保存する余裕はありません.

ビットマップをメモリから直接ロードするためのソリューションを探しています。助言がありますか?

Windows 7でPostGIS2.0を使用してPostgrSQL 9.2を使用しています。問題がある場合、画像はプレーンなグレーレベルです。

4

1 に答える 1

2

画像を変換する必要がないと仮定すると (たとえば、PostGIS 固有の API を介して)、これはまさに PostgreSQL ラージ オブジェクト API の目的です。

使用しているプログラミング言語について言及していないため、詳細を説明するのはかなり困難です。C を使用していると仮定すると、 などを使用できます。マニュアルlibpqラージ オブジェクトをlo_write参照してください。

それでもうまくいかない場合は、raster2pgsqlツールへのパイプを開いてストリーミング書き込みを行う必要があるかもしれません。すべてのプログラムがパイプからの読み取りに対応できるわけではなく、ファイルへのランダム アクセスが必要なプログラムもあります。ドキュメントをざっと見ると、raster2pgsqlSQL を書き出すだけであることが示唆されているため、生成される SQL コードを見てください。ライブラリとしてリンクしてコード内で使用できるかどうか、またはパイプから読み取るように適応できるかどうかを確認してください。ファイルとして (UNIX 上で) アクセス可能な共有メモリ領域を作成し、それを指すこともできます。

アプリ内で行うのと同じ作業を行うために、GDAL ライブラリを使用することになると思いraster2pgsqlます。

(ところで、PostGIS固有の側面については、 https://gis.stackexchange.com/でもっと運がいいかもしれません)

于 2013-06-12T13:44:14.230 に答える