PostGIS - en to ja translation catalogue (127 entries)

note: Tag: title
en: Raster Data Management, Queries, and Applications
ja: ラスタデータの管理、クエリ、アプリケーション

note: Tag: title
en: Loading and Creating Rasters
ja: ラスタのロードと生成

note: Tag: para
en: For most use cases, you will create PostGIS rasters by loading existing raster files using the packaged <varname>raster2pgsql</varname> raster loader.
ja: <varname>raster2pgsql</varname>ラスタローダを使ってPostGISラスタを既存のラスタファイルからロードするのは、最もよく行われます。

note: Tag: title
en: Using raster2pgsql to load rasters
ja: raster2pgsqlを使ってラスタをロードする

note: Tag: para
en: The <varname>raster2pgsql</varname> is a raster loader executable that loads GDAL supported raster formats into sql suitable for loading into a PostGIS raster table. It is capable of loading folders of raster files as well as creating overviews of rasters.
ja: <varname>raster2pgsql</varname>は、GDALがサポートするラスタ書式をPostGISラスタテーブルにロードするのに適切なSQLにするバイナリファイルです。ラスタのオーバビューの生成だけでなく、ラスタファイルのフォルダのロードも可能です。

note: Tag: para
en: Since the raster2pgsql is compiled as part of PostGIS most often (unless you compile your own GDAL library), the raster types supported by the executable will be the same as those compiled in the GDAL dependency library. To get a list of raster types your particular raster2pgsql supports use the <varname>-G</varname> switch. These should be the same as those provided by your PostGIS install documented here <xref linkend="RT_ST_GDALDrivers"/> if you are using the same gdal library for both.
ja: raster2pgsqlは、ほとんどの場合、PostGISの一部としてコンパイルされます (GDALライブラリをコンパイルしている場合)が、バイナリファイルによってサポートされるラスタタイプは、GDALでコンパイルされたのと同じです。raster2pgsqlがサポートするラスタタイプの一覧を得るには、<varname>-G</varname>スイッチを使います。この一覧は、インストールした PostGIS が提供する<xref linkend="RT_ST_GDALDrivers"/>と同じになるはずです。

note: Tag: para
en: The older version of this tool was a python script. The executable has replaced the python script. If you still find the need for the Python script Examples of the python one can be found at <ulink url="http://trac.osgeo.org/gdal/wiki/frmts_wtkraster.html">GDAL PostGIS Raster Driver Usage</ulink>. Please note that the raster2pgsql python script may not work with future versions of PostGIS raster and is no longer supported.
ja: このツールの古い版では、Pythonスクリプトでした。実行ファイルに置き換えられています。Pythonスクリプトが必要な場合は、 <ulink url="http://trac.osgeo.org/gdal/wiki/frmts_wtkraster.html">GDAL PostGIS Raster Driver Usage</ulink>に、Pythonの例があります。raster2pgsqlのPythonスクリプトは、今後のPostGIS rasterでは動作しないかも知れませんし、サポートされませんので、ご注意ください。

note: Tag: para
en: When creating overviews of a specific factor from a set of rasters that are aligned, it is possible for the overviews to not align. Visit <ulink url="http://trac.osgeo.org/postgis/ticket/1764">http://trac.osgeo.org/postgis/ticket/1764</ulink> for an example where the overviews do not align.
ja: 同じアラインメントを持つラスタの集合から特定の要素のオーバビューを生成する時、オーバビューが同じアラインメントを持たないことがあります。オーバビューが同じアラインメントを持たない例については<ulink url="http://trac.osgeo.org/postgis/ticket/1764">http://trac.osgeo.org/postgis/ticket/1764</ulink>をご覧下さい。

note: Tag: para
en: EXAMPLE USAGE:
ja: 使用例:

note: Tag: para
en: Display help screen. Help will also display if you don't pass in any arguments.
ja: ヘルプを表示します。引数を全く指定しない場合にも表示されます。

note: Tag: para
en: Print the supported raster formats.
ja: サポートされているラスタ書式を印字します。

note: Tag: term
en: (c|a|d|p) These are mutually exclusive options:
ja: (c|a|d|p) 相互に排他的なオプションです

note: Tag: para
en: Create new table and populate it with raster(s), <emphasis>this is the default mode</emphasis>
ja: 新しいテーブルを生成し、ラスタを入れます。<emphasis>これがデフォルトモードです</emphasis>。

note: Tag: para
en: Append raster(s) to an existing table.
ja: 既存のテーブルにラスタを追加します。

note: Tag: para
en: Drop table, create new one and populate it with raster(s)
ja: テーブルを削除し、新しいテーブルを生成し、ラスタを入れます。

note: Tag: para
en: Prepare mode, only create the table.
ja: 準備モード、テーブルを作るだけです。

note: Tag: term
en: Raster processing: Applying constraints for proper registering in raster catalogs
ja: ラスタ処理: ラスタカタログに適切に登録するための制約の適用

note: Tag: para
en: Apply raster constraints -- srid, pixelsize etc. to ensure raster is properly registered in <varname>raster_columns</varname> view.
ja: SRIDやピクセルサイズ等のラスタ制約を適用して、<varname>raster_columns</varname>ビューで適切な登録ができるようにします。

note: Tag: para
en: Disable setting the max extent constraint. Only applied if -C flag is also used.
ja: 制約の最大範囲を無効にします。-Cフラグが使われている場合のみ適用されます。

note: Tag: para
en: Set the constraints (spatially unique and coverage tile) for regular blocking. Only applied if -C flag is also used.
ja: 正規ブロック制約 (空間的に一意で網羅タイル)を適用します。-Cフラグが使用されている場合のみ適用されます。

note: Tag: term
en: Raster processing: Optional parameters used to manipulate input raster dataset
ja: ラスタ処理: 入力ラスタデータセットの操作に使われる追加的なパラメータ

note: Tag: para
en: Assign output raster with specified SRID. If not provided or is zero, raster's metadata will be checked to determine an appropriate SRID.
ja: 出力ラスタを指定されたSRIDにします。 指定しないか0を指定した場合、ラスタのメタデータに対して、適切なSRIDを決定するためのチェックを行います。

note: Tag: para
en: Index (1-based) of band to extract from raster. For more than one band index, separate with comma (,). If unspecified, all bands of raster will be extracted.
ja: ラスタから抽出するバンドのインデクス (1始まり)。1より多いバンドを抽出するには、コンマ(,)で区切ります。指定しない場合、全てのバンドが抽出されます。

note: Tag: para
en: Cut raster into tiles to be inserted one per table row. <varname>TILE_SIZE</varname> is expressed as WIDTHxHEIGHT or set to the value "auto" to allow the loader to compute an appropriate tile size using the first raster and applied to all rasters.
ja: 行毎に挿入するラスタを切断します。<varname>TILE_SIZE</varname>は、「幅x高さ」で表現しますが、"auto"を指定すると、最初のラスタを使って適切なタイルサイズが計算され、全てのラスタに適用されます。

note: Tag: para
en: Pad right-most and bottom-most tiles to guarantee that all tiles have the same width and height.
ja: 全てのタイルが同じ幅と高さを持つことを保証するために、右端、下端のタイルに詰め物を施します。

note: Tag: para
en: Register the raster as a filesystem (out-db) raster.
ja: ファイルシステム (データベース外)ラスタとして、ラスタを登録します。

note: Tag: para
en: Only the metadata of the raster and path location to the raster is stored in the database (not the pixels).
ja: データベースには、ラスタのメタデータとラスタのファイルパスのみ格納されます (ピクセルは格納されません)。

note: Tag: para
en: Create overview of the raster. For more than one factor, separate with comma(,). Overview table name follows the pattern o_<varname>overview factor</varname>_<varname>table</varname>, where <varname>overview factor</varname> is a placeholder for numerical overview factor and <varname>table</varname> is replaced with the base table name. Created overview is stored in the database and is not affected by -R. Note that your generated sql file will contain both the main table and overview tables.
ja: ラスタのオーバビューを生成します。一つより多い係数を用いる場合は、コンマ (,) で区切ります。オーバビューのテーブル名はo_<varname>overview factor</varname>_<varname>table</varname>となります。<varname>overview factor</varname>にはオーバビュー係数が入り、<varname>table</varname>には基底テーブル名が入ります。生成されるオーバビューはデータベースに格納され、-Rは無視されます。生成されたSQLファイルは元データのテーブルとオーバビューテーブルの両方を含むことに注意して下さい。

note: Tag: para
en: NODATA value to use on bands without a NODATA value.
ja: NODATA値を持たないバンドで使用するNODATA値を設定します。

note: Tag: term
en: Optional parameters used to manipulate database objects
ja: テータベースオブジェクトの操作に使われる追加的なパラメータ

note: Tag: para
en: Specify name of destination raster column, default is 'rast'
ja: 出力先ラスタカラムの名前を指定します。デフォルトは'rast'です。

note: Tag: para
en: Add a column with the name of the file
ja: ファイル名でカラムを追加します。

note: Tag: para
en: Specify the name of the filename column. Implies -F.
ja: ファイル名カラムの名前を指定します。-Fを暗に含みます。

note: Tag: para
en: Wrap PostgreSQL identifiers in quotes.
ja: PostgreSQL識別子に引用符を付けます。

note: Tag: para
en: Create a GiST index on the raster column.
ja: ラスタカラムにGiSTインデクスを生成します。

note: Tag: para
en: Vacuum analyze the raster table.
ja: ラスタテーブルにvacuum analyzeを行います。

note: Tag: para
en: Skip NODATA value checks for each raster band.
ja: バンドごとのNODATA値のチェックを省略します。

note: Tag: para
en: Specify the tablespace for the new table. Note that indices (including the primary key) will still use the default tablespace unless the -X flag is also used.
ja: 生成されるテーブルのテーブルスペースを指定します。-Xフラグを併用しない場合には、インデクス (主キーを含む)はデフォルトのテーブルスペースを使用することにご注意ください。

note: Tag: para
en: Specify the tablespace for the table's new index. This applies to the primary key and the spatial index if the -I flag is used.
ja: テーブルの新しいインデクスに使うテーブル空間を指定します。主キーに適用され、-Iフラグがある場合においては空間インデクスにも適用されます。

note: Tag: para
en: Use copy statements instead of insert statements.
ja: INSERTステートメントでなくCOPYステートメントを使います。

note: Tag: para
en: Execute each statement individually, do not use a transaction.
ja: ステートメント毎に実行して、トランザクションを使用しないようにします。

note: Tag: para
en: Control endianness of generated binary output of raster; specify 0 for XDR and 1 for NDR (default); only NDR output is supported now
ja: 生成されるラスタのバイナリ出力のエンディアンを制御します。XDR (訳注: ビッグエンディアン)の場合は0を、NDR (訳注:リトルエンディアン)の場合は1を、それぞれ指定します。デフォルトは1です。現時点ではNDR出力のみサポートします。

note: Tag: para
en: Specify version of output format. Default is 0. Only 0 is supported at this time.
ja: 出力書式の版を指定します。デフォルトは0です。現時点では0のみサポートします。

note: Tag: para
en: An example session using the loader to create an input file and uploading it chunked in 100x100 tiles might look like this:
ja: ローダを用いて入力ファイルを100x100のタイルで生成して、データベースにアップロードする例は、次の通りです。

note: Tag: para
en: You can leave the schema name out e.g <varname>demelevation</varname> instead of <varname>public.demelevation</varname> and the raster table will be created in the default schema of the database or user
ja: <varname>public.demelevation</varname>でなく<varname>demelevation</varname> というようにスキーマ名を外すことができます。この場合、ラスタテーブルはデータベースまたユーザの指定するデフォルトのスキーマに生成されます。

note: Tag: para
en: A conversion and upload can be done all in one step using UNIX pipes:
ja: 変換とアップロードはUNIXのパイプを使うと一回で実行できます。

note: Tag: para
en: Load rasters Massachusetts state plane meters aerial tiles into a schema called <varname>aerial</varname> and create a full view, 2 and 4 level overview tables, use copy mode for inserting (no intermediary file just straight to db), and -e don't force everything in a transaction (good if you want to see data in tables right away without waiting). Break up the rasters into 128x128 pixel tiles and apply raster constraints. Use copy mode instead of table insert. (-F) Include a field called filename to hold the name of the file the tiles were cut from.
ja: マサチューセッツ州平面のメートル単位の空中写真タイルを<varname>aerial</varname>という名前のスキーマにロードします。 元の画像と2, 4レベルのオーバビューのテーブルとを生成します。 データ格納にCOPYを使用し (データベースに仲介ファイルなくまっすぐ入ります)、-eでトランザクションを指定しないようにします (待たずにテーブルのデータを見たい場合には良いです)。ラスタを128x128ピクセルのタイルに分解してラスタ制約を適用します。INSERTモードでなくCOPYモードを使用します。-Fで、カラム名をタイル切り出し元ファイルのファイル名にします。

note: Tag: programlisting
en: --get a list of raster types supported:
    raster2pgsql -G
ja: -- サポートされているラスタタイプの一覧:
    raster2pgsql -G

note: Tag: para
en: The -G commands outputs a list something like
ja: -Gコマンドの出力は次のようになります。

note: Tag: title
en: Creating rasters using PostGIS raster functions
ja: PostGISラスタ関数を用いたラスタの生成

note: Tag: para
en: On many occasions, you'll want to create rasters and raster tables right in the database. There are a plethora of functions to do that. The general steps to follow.
ja: データベース内でラスタやラスタテーブルを生成したい場合が多くあります。これを行うための関数が多数あります。一般的な手順は次の通りです。

note: Tag: para
en: Create a table with a raster column to hold the new raster records which can be accomplished with:
ja: 新しいラスタ行を保持するためのラスタカラムを持つテーブルを生成します。次を実行します。

note: Tag: para
en: There are many functions to help with that goal. If you are creating rasters not as a derivative of other rasters, you will want to start with: <xref linkend="RT_ST_MakeEmptyRaster"/>, followed by <xref linkend="RT_ST_AddBand"/>
ja: この目標で助けとなる関数は多数あります。他のラスタの派生でないラスタを生成する場合、<xref linkend="RT_ST_MakeEmptyRaster"/>と<xref linkend="RT_ST_AddBand"/>を順次実行して作業を開始します。

note: Tag: para
en: You can also create rasters from geometries. To achieve that you'll want to use <xref linkend="RT_ST_AsRaster"/> perhaps accompanied with other functions such as <xref linkend="RT_ST_Union"/> or <xref linkend="RT_ST_MapAlgebraFct2"/> or any of the family of other map algebra functions.
ja: ジオメトリからラスタを生成することもできます。<xref linkend="RT_ST_AsRaster"/>を使います。<xref linkend="RT_ST_Union"/>や<xref linkend="RT_ST_MapAlgebraFct2"/>や、地図解析関数群等といった、他の関数を組み合わせる場合もあります。

note: Tag: para
en: There are even many more options for creating new raster tables from existing tables. For example you can create a raster table in a different projection from an existing one using <xref linkend="RT_ST_Transform"/>
ja: 既存テーブルから新しいラスタテーブルを生成するための多数の選択肢があります。たとえば、<xref linkend="RT_ST_Transform"/>を使って、既存テーブルから異なる投影法のラスタテーブルを生成します。

note: Tag: para
en: Once you are done populating your table initially, you'll want to create a spatial index on the raster column with something like:
ja: はじめにテーブルにデータを入れたら、ラスタカラムに空間インデクスを生成したくなるでしょう。次のようにします。

note: Tag: para
en: Note the use of <xref linkend="RT_ST_ConvexHull"/> since most raster operators are based on the convex hull of the rasters.
ja: <xref linkend="RT_ST_ConvexHull"/>を使用していることに注意して下さい。多くのラスタ演算子はラスタの凸包を元にしています。

note: Tag: para
en: Pre-2.0 versions of PostGIS raster were based on the envelop rather than the convex hull. For the spatial indexes to work properly you'll need to drop those and replace with convex hull based index.
ja: 2.0より前の PostGIS ラスタは、エンベロープを基本にして、凸包ではありませんでした。空間インデクスを適切に働かせるには、エンベロープを基本にしたインデクスを削除して、凸包を元にしたインデクスに置き換えます。

note: Tag: para
en: Apply raster constraints using <xref linkend="RT_AddRasterConstraints"/>
ja: <xref linkend="RT_AddRasterConstraints"/>を用いてラスタ制約を適用します。

note: Tag: title
en: Raster Catalogs
ja: ラスタカタログ

note: Tag: para
en: There are two raster catalog views that come packaged with PostGIS. Both views utilize information embedded in the constraints of the raster tables. As a result the catalog views are always consistent with the raster data in the tables since the constraints are enforced.
ja: PostGISが生成する、二つのラスタカタログのビューがあります。両方ともラスタテーブルの制約の中に埋め込まれる情報を用いています。結果として、カタログビューは、テーブル内のラスタデータに制約が働くため、常にラスタデータとの矛盾がありません。

note: Tag: para
en: <varname>raster_columns</varname> this view catalogs all the raster table columns in your database.
ja: <varname>raster_columns</varname> ラスタタイプのデータベースにおける全てのラスタテーブルカラムのカタログです。

note: Tag: para
en: <varname>raster_overviews</varname> this view catalogs all the raster table columns in your database that serve as overviews for a finer grained table. Tables of this type are generated when you use the <varname>-l</varname> switch during load.
ja: <varname>raster_overviews</varname> データベース内の、より詳細なテーブルのためのオーバビューを提供するラスタテーブルのカラム全てのカタログです。この種のテーブルは、ロード時に<varname>-l</varname>を指定した時に生成されます。

note: Tag: title
en: Raster Columns Catalog
ja: ラスタカラムカタログ

note: Tag: para
en: The <varname>raster_columns</varname> is a catalog of all raster table columns in your database that are of type raster. It is a view utilizing the constraints on the tables so the information is always consistent even if you restore one raster table from a backup of another database. The following columns exist in the <varname>raster_columns</varname> catalog.
ja: <varname>raster_columns</varname>は、ラスタタイプのデータベースにおける全てのラスタテーブルカラムのカタログです。テーブルの制約を使ったビューなので、他のデータベースのバックアップからラスタテーブルをリストアしたとしても、情報は常に矛盾がありません。<varname>raster_columns</varname>カタログには次のカラムがあります。

note: Tag: para
en: If you created your tables not with the loader or forgot to specify the <varname>-C</varname> flag during load, you can enforce the constraints after the fact using <xref linkend="RT_AddRasterConstraints"/> so that the <varname>raster_columns</varname> catalog registers the common information about your raster tiles.
ja: ローダを使わずにテーブルを生成したり、ロード時に<varname>-C</varname> フラグを忘れたりした場合には、事後に<xref linkend="RT_AddRasterConstraints"/>で制約を強制でき、<varname>raster_columns</varname>カタログは、ラスタタイルの共通の情報を登録します。

note: Tag: para
en: <varname>r_table_catalog</varname> The database the table is in. This will always read the current database.
ja: <varname>r_table_catalog</varname> テーブルが存在するデータベースです。これは常に現在のデータベースを読みます。

note: Tag: para
en: <varname>r_table_schema</varname> The database schema the raster table belongs to.
ja: <varname>r_table_schema</varname> ラスタテーブルが属するデータベーススキーマです。

note: Tag: para
en: <varname>r_table_name</varname> raster table
ja: <varname>r_table_name</varname> ラスタテーブルです。

note: Tag: para
en: <varname>r_raster_column</varname> the column in the <varname>r_table_name</varname> table that is of type raster. There is nothing in PostGIS preventing you from having multiple raster columns per table so its possible to have a raster table listed multiple times with a different raster column for each.
ja: <varname>r_raster_column</varname> ラスタタイプである<varname>r_table_name</varname>テーブルのカラムです。PostGISには、一つのテーブルに複数のラスタカラムを持つことを妨げません。異なるラスタカラムを持つラスタテーブルが、ラスタカラム毎に複数回出現するテーブルを持つことができます。

note: Tag: para
en: <varname>srid</varname> The spatial reference identifier of the raster. Should be an entry in the <xref linkend="spatial_ref_sys"/>.
ja: <varname>srid</varname> ラスタの空間参照系識別番号です。<xref linkend="spatial_ref_sys"/>にあるエントリであるべきです。

note: Tag: para
en: <varname>scale_x</varname> The scaling between geometric spatial coordinates and pixel. This is only available if all tiles in the raster column have the same <varname>scale_x</varname> and this constraint is applied. Refer to <xref linkend="RT_ST_ScaleX"/> for more details.
ja: <varname>scale_x</varname> 地理空間座標とピクセルの間の拡大縮小係数です。これは、ラスタカラムのすべてのタイルが同じ<varname>scale_x</varname>を持ち、制約が適用されている場合のみ出現します。詳細情報については<xref linkend="RT_ST_ScaleX"/>を参照してください。

note: Tag: para
en: <varname>scale_y</varname> The scaling between geometric spatial coordinates and pixel. This is only available if all tiles in the raster column have the same <varname>scale_y</varname> and the <varname>scale_y</varname> constraint is applied. Refer to <xref linkend="RT_ST_ScaleY"/> for more details.
ja: <varname>scale_y</varname> 地理空間座標とピクセルの間の拡大縮小係数です。これは、ラスタカラムのすべてのタイルが同じ<varname>scale_y</varname>を持ち、制約が適用されている場合のみ出現します。詳細情報については<xref linkend="RT_ST_ScaleY"/>を参照してください。

note: Tag: para
en: <varname>blocksize_x</varname> The width (number of pixels across) of each raster tile . Refer to <xref linkend="RT_ST_Width"/> for more details.
ja: <varname>blocksize_x</varname> ラスタタイルごとの幅 (横方向のピクセル数)です。詳細情報については<xref linkend="RT_ST_Width"/>を参照してください。

note: Tag: para
en: <varname>blocksize_y</varname> The width (number of pixels down) of each raster tile . Refer to <xref linkend="RT_ST_Height"/> for more details.
ja: <varname>blocksize_y</varname> ラスタタイルごとの高さ (縦方向のピクセル数)です。詳細情報については<xref linkend="RT_ST_Height" />を参照してください。

note: Tag: para
en: <varname>same_alignment</varname> A boolean that is true if all the raster tiles have the same alignment . Refer to <xref linkend="RT_ST_SameAlignment"/> for more details.
ja: <varname>same_alignment</varname> 全てのラスタタイルが同じアラインメントを持っているかを示す真偽値です。詳細情報については<xref linkend="RT_ST_SameAlignment"/>を参照してください。

note: Tag: para
en: <varname>regular_blocking</varname> If the raster column has the spatially unique and coverage tile constraints, the value with be TRUE. Otherwise, it will be FALSE.
ja: <varname>regular_blocking</varname> ラスタカラムが空間的に一意かつカバレッジタイルの制約を持つなら、TRUEとなります。その他の場合はFALSEになります。。

note: Tag: para
en: <varname>num_bands</varname> The number of bands in each tile of your raster set. This is the same information as what is provided by
ja: <varname>num_bands</varname> ラスタ集合のタイルごとのバンド数。

note: Tag: para
en: <varname>pixel_types</varname> An array defining the pixel type for each band. You will have the same number of elements in this array as you have number of bands. The pixel_types are one of the following defined in <xref linkend="RT_ST_BandPixelType"/>.
ja: <varname>pixel_types</varname> バンドごとのピクセルタイプを定義する配列です。この配列の要素数はバンド数と同じです。pixel_typesは、<xref linkend="RT_ST_BandPixelType"/>で定義されるピクセルタイプの一つを取ります。

note: Tag: para
en: <varname>nodata_values</varname> An array of double precision numbers denoting the <varname>nodata_value</varname> for each band. You will have the same number of elements in this array as you have number of bands. These numbers define the pixel value for each band that should be ignored for most operations. This is similar information provided by <xref linkend="RT_ST_BandNoDataValue"/>.
ja: <varname>nodata_values</varname> バンド毎の<varname>nodata_value</varname>を示す倍精度浮動小数点数の配列です。バンド数と同じ配列数となります。これらの値は、バンド毎のほとんどの処理で無視されるべきピクセル値の定義です。これは<xref linkend="RT_ST_BandNoDataValue"/>で得られる情報と似ています。

note: Tag: para
en: <varname>out_db</varname> An array of boolean flags indicating if the raster bands data is maintained outside the database. You will have the same number of elements in this array as you have number of bands.
ja: <varname>out_db</varname> ラスタバンドデータがデータベース外で維持されているかを示す真偽値の配列です。この配列の添え字はバンド番号と同じです。

note: Tag: para
en: <varname>extent</varname> This is the extent of all the raster rows in your raster set. If you plan to load more data that will change the extent of the set, you'll want to run the <xref linkend="RT_DropRasterConstraints"/> function before load and then reapply constraints with <xref linkend="RT_AddRasterConstraints"/> after load.
ja: <varname>extent</varname> ラスタ集合における全てのラスタ行の範囲です。集合の範囲を変更するデータを別途ロードする予定である場合、ロード前に<xref linkend="RT_DropRasterConstraints"/>関数を実行して、ロード後に<xref linkend="RT_AddRasterConstraints"/>で制約を再適用します。

note: Tag: para
en: <varname>spatial_index</varname> A boolean that is true if raster column has a spatial index.
ja: <varname>spatial_index</varname> 空間インデクスを持っているかどうかを示す真偽値です。

note: Tag: title
en: Raster Overviews
ja: ラスタオーバビュー

note: Tag: para
en: <varname>raster_overviews</varname> catalogs information about raster table columns used for overviews and additional information about them that is useful to know when utilizing overviews. Overview tables are cataloged in both <varname>raster_columns</varname> and <varname>raster_overviews</varname> because they are rasters in their own right but also serve an additional special purpose of being a lower resolution caricature of a higher resolution table. These are generated along-side the main raster table when you use the <varname>-l</varname> switch in raster loading or can be generated manually using <xref linkend="RT_AddOverviewConstraints"/>.
ja: <varname>raster_overviews</varname>は、オーバビューで使われるラスタテーブルカラムに関する情報のカタログで、オーバビューを用いる際に知っておくと便利な情報も持ちます。オーバビューテーブルは<varname>raster_columns</varname>と<varname>raster_overviews</varname>の両方のカタログに入れられます。オーバビューもラスタの一つであるのは確かですが、より高い解像度テーブルの解像度を落としたカリカチュアになるという特殊な目的を満たすためでもあるからです。ラスタをロードする際に<varname>-l</varname>スイッチを使うと、オーバビューが主ラスタテーブルと一緒に生成されます。もしくは、<xref linkend="RT_AddOverviewConstraints"/>を使うと手動で生成できます。

note: Tag: para
en: Overview tables contain the same constraints as other raster tables as well as additional informational only constraints specific to overviews.
ja: オーバビューテーブルには、他のラスタテーブルと同じ制約と、オーバビュー特有の制約となる追加情報があります。

note: Tag: para
en: The information in <varname>raster_overviews</varname> does not duplicate the information in <varname>raster_columns</varname>. If you need the information about an overview table present in <varname>raster_columns</varname> you can join the <varname>raster_overviews</varname> and <varname>raster_columns</varname> together to get the full set of information you need.
ja: <varname>raster_overviews</varname>の情報は<varname>raster_columns</varname>とは重複しません。<varname>raster_columns</varname>にあるオーバビューテーブルに関する情報が必要な場合は、<varname>raster_overviews</varname>と<varname>raster_columns</varname>とを結合すると、必要な情報の集合を完全に取得することができます。

note: Tag: para
en: Two main reasons for overviews are:
ja: オーバビューの主たる理由は次の二つです。

note: Tag: para
en: Low resolution representation of the core tables commonly used for fast mapping zoom-out.
ja: ズームアウトした際の地図表示を早くするために、元のテーブルの低解像度表現が一般的に使われます。

note: Tag: para
en: Computations are generally faster to do on them than their higher resolution parents because there are fewer records and each pixel covers more territory. Though the computations are not as accurate as the high-res tables they support, they can be sufficient in many rule-of-thumb computations.
ja: レコード数が少なく、ピクセル毎の適用範囲が広いため、高解像度の元テーブルより計算が一般的に早くなります。計算は高解像度テーブルより精度は落ちますが、大まかな計算には十分でありえます。

note: Tag: para
en: The <varname>raster_overviews</varname> catalog contains the following columns of information.
ja: <varname>raster_overviews</varname>カタログには、次の情報のカラムがあります。

note: Tag: para
en: <varname>o_table_catalog</varname> The database the overview table is in. This will always read the current database.
ja: <varname>o_table_catalog</varname> オーバビューテーブルが存在するデータベースです。常に現在のデータベースを読みます。

note: Tag: para
en: <varname>o_table_schema</varname> The database schema the overview raster table belongs to.
ja: <varname>o_table_schema</varname> オーバビューラスタテーブルが属するデータベーススキーマです。

note: Tag: para
en: <varname>o_table_name</varname> raster overview table name
ja: <varname>o_table_name</varname> ラスタオーバビューテーブル名です。

note: Tag: para
en: <varname>o_raster_column</varname> the raster column in the overview table.
ja: <varname>o_raster_column</varname> オーバビューテーブル内のラスタカラムです。

note: Tag: para
en: <varname>r_table_catalog</varname> The database the raster table that this overview services is in. This will always read the current database.
ja: <varname>r_table_catalog</varname> このオーバビューの元となるラスタテーブルのデータベースです。常に現在のデータベースを読みます。

note: Tag: para
en: <varname>r_table_schema</varname> The database schema the raster table that this overview services belongs to.
ja: <varname>r_table_schema</varname> このオーバビューの元となるラスタテーブルが属するデータベーススキーマです。

note: Tag: para
en: <varname>r_table_name</varname> raster table that this overview services.
ja: <varname>r_table_name</varname> このオーバビューの元となるラスタテーブルです。

note: Tag: para
en: <varname>r_raster_column</varname> the raster column that this overview column services.
ja: <varname>r_raster_column</varname> このオーバビューの元となるラスタカラムです。

note: Tag: para
en: <varname>overview_factor</varname> - this is the pyramid level of the overview table. The higher the number the lower the resolution of the table. raster2pgsql if given a folder of images, will compute overview of each image file and load separately. Level 1 is assumed and always the original file. Level 2 is will have each tile represent 4 of the original. So for example if you have a folder of 5000x5000 pixel image files that you chose to chunk 125x125, for each image file your base table will have (5000*5000)/(125*125) records = 1600, your (l=2) <varname>o_2</varname> table will have ceiling(1600/Power(2,2)) = 400 rows, your (l=3) <varname>o_3</varname> will have ceiling(1600/Power(2,3) ) = 200 rows. If your pixels aren't divisible by the size of your tiles, you'll get some scrap tiles (tiles not completely filled). Note that each overview tile generated by raster2pgsql has the same number of pixels as its parent, but is of a lower resolution where each pixel of it represents (Power(2,overview_factor) pixels of the original).
ja: <varname>overview_factor</varname> - オーバビューテーブルのピラミッドレベルです。高い数字ほど解像度が低くなります。raster2pgsqlは、画像のフォルダを渡された場合は、分割して、イメージファイルのオーバビューの計算とロードを行います。レベル1は元ファイルと同じです。レベル2は、元ファイルの4分の1になります。たとえば、5000x5000ピクセルの画像ファイルのフォルダがあるとして、125x125に分ける場合、画像ファイルごとに(5000*5000)/(125*125) = 1600行のレコードを持ち、<varname>o_2</varname>テーブル (レベル2)はceiling(1600/Power(2,2)) = 400行、<varname>o_3</varname>(レベル3)ではceiling(1600/Power(2,3) ) = 200行のレコードを持ちます。ピクセルがタイルサイズで割り切れない場合、スクラップタイル (完全には値が入っていない)が得られます。raster2pgsqlによって生成される個々のオーバビュータイルは、元となるラスタと同じピクセル数を持ち、個々のピクセルの表現範囲 (オリジナルの Power(2,overview_factor)ピクセル分)が低い解像度になっている点に注意して下さい。

note: Tag: title
en: Building Custom Applications with PostGIS Raster
ja: PostGISラスタを使ったカスタムアプリケーションの構築

note: Tag: para
en: The fact that PostGIS raster provides you with SQL functions to render rasters in known image formats gives you a lot of optoins for rendering them. For example you can use OpenOffice / LibreOffice for rendering as demonstrated in <ulink url="http://www.postgresonline.com/journal/archives/244-Rendering-PostGIS-Raster-graphics-with-LibreOffice-Base-Reports.html">Rendering PostGIS Raster graphics with LibreOffice Base Reports</ulink>. In addition you can use a wide variety of languages as demonstrated in this section.
ja: PostGISラスタには、対応イメージ書式のラスタをレンダリングするSQL関数があり、レンダリングを行うための多数の選択肢があります。たとえば、<ulink url="http://www.postgresonline.com/journal/archives/244-Rendering-PostGIS-Raster-graphics-with-LibreOffice-Base-Reports.html">Rendering PostGIS Raster graphics with LibreOffice Base Reports</ulink>で例を挙げている通り、OpenOffice/LibreOfficeを使うことができます。さらに、ここで示すように、幅広い言語で使うことができます。

note: Tag: title
en: PHP Example Outputting using ST_AsPNG in concert with other raster functions
ja: ST_AsPNG を他の関数とあわせて使った PHP 出力例

note: Tag: para
en: In this section, we'll demonstrate how to use the PHP PostgreSQL driver and the <xref linkend="RT_ST_AsGDALRaster"/> family of functions to output band 1,2,3 of a raster to a PHP request stream that can then be embedded in an img src html tag.
ja: 本節では、PHPのPostgreSQLドライバと<xref linkend="RT_ST_AsGDALRaster"/>等の関数を使って、HTML imgタグに埋め込むことができるPHPリクエストストリームにラスタの1、2、3バンドを出力する方法を示します。

note: Tag: para
en: The sample query demonstrates how to combine a whole bunch of raster functions together to grab all tiles that intersect a particular wgs 84 bounding box and then unions with <xref linkend="RT_ST_Union"/> the intersecting tiles together returning all bands, transforms to user specified projection using <xref linkend="RT_ST_Transform"/>, and then outputs the results as a png using <xref linkend="RT_ST_AsPNG"/>.
ja: サンプルクエリでは、 指定したWGS84バウンディングボックスにインタセクトするタイルを取って、 <xref linkend="RT_ST_Union"/>でインタセクトしたタイルを結合して全てのバンドを返し、<xref linkend="RT_ST_Transform"/>でユーザ指定投影法に変換し、<xref linkend="RT_ST_AsPNG"/>を使ってPNGで結果を出力するためのラスタ関数群全体をまとめる方法を示します。

note: Tag: para
en: You would call the below using <programlisting>http://mywebserver/test_raster.php?srid=2249</programlisting> to get the raster image in Massachusetts state plane feet.
ja: 次で示すスクリプトは、<programlisting>http://mywebserver/test_raster.php?srid=2249</programlisting>で、マサチューセッツ州平面 (フィート単位)のラスタ画像を取得するものです。

note: Tag: programlisting
en: <![CDATA[<?php
    /** contents of test_raster.php **/
    $conn_str ='dbname=mydb host=localhost port=5432 user=myuser password=mypwd';
    $dbconn = pg_connect($conn_str);
    header('Content-Type: image/png');
    /**If a particular projection was requested use it otherwise use mass state plane meters **/
    if (!empty( $_REQUEST['srid'] ) && is_numeric( $_REQUEST['srid']) ){
                    $input_srid = intval($_REQUEST['srid']);
    }
    else { $input_srid = 26986; }
    /** The set bytea_output may be needed for PostgreSQL 9.0+, but not for 8.4 **/
    $sql = "set bytea_output='escape';
    SELECT ST_AsPNG(ST_Transform(
                            ST_AddBand(ST_Union(rast,1), ARRAY[ST_Union(rast,2),ST_Union(rast,3)])
                                    ,$input_srid) ) As new_rast
     FROM aerials.boston
            WHERE
             ST_Intersects(rast, ST_Transform(ST_MakeEnvelope(-71.1217, 42.227, -71.1210, 42.218,4326),26986) )";
    $result = pg_query($sql);
    $row = pg_fetch_row($result);
    pg_free_result($result);
    if ($row === false) return;
    echo pg_unescape_bytea($row[0]);
    ?>]]>
ja: <![CDATA[<?php
    /** test_raster.phpのコンテンツ **/
    $conn_str ='dbname=mydb host=localhost port=5432 user=myuser password=mypwd';
    $dbconn = pg_connect($conn_str);
    header('Content-Type: image/png');
    /** 特定の投影法が要求された場合にはそれを使い、それ以外ではメートル単位マサチューセッツ州平面を使います **/
    if (!empty( $_REQUEST['srid'] ) && is_numeric( $_REQUEST['srid']) ){
                    $input_srid = intval($_REQUEST['srid']);
    }
    else { $input_srid = 26986; }
    /** set bytea_outputは、PostgreSQL 9.0以上で必要になるかも知れませんが、8.4では不要です **/
    $sql = "set bytea_output='escape';
    SELECT ST_AsPNG(ST_Transform(
                            ST_AddBand(ST_Union(rast,1), ARRAY[ST_Union(rast,2),ST_Union(rast,3)])
                                    ,$input_srid) ) As new_rast
     FROM aerials.boston
            WHERE
             ST_Intersects(rast, ST_Transform(ST_MakeEnvelope(-71.1217, 42.227, -71.1210, 42.218,4326),26986) )";
    $result = pg_query($sql);
    $row = pg_fetch_row($result);
    pg_free_result($result);
    if ($row === false) return;
    echo pg_unescape_bytea($row[0]);
    ?>]]>

note: Tag: title
en: ASP.NET C# Example Outputting using ST_AsPNG in concert with other raster functions
ja: ST_AsPNGを他の関数とあわせて使ったASP.NET C#出力例

note: Tag: para
en: In this section, we'll demonstrate how to use Npgsql PostgreSQL .NET driver and the <xref linkend="RT_ST_AsGDALRaster"/> family of functions to output band 1,2,3 of a raster to a PHP request stream that can then be embedded in an img src html tag.
ja: 本節では、Npgsql PostgreSQL .NETドライバと<xref linkend="RT_ST_AsGDALRaster"/>等の関数を使って、HTML imgタグに埋め込むことができるように、ラスタの1、2、3バンドを出力する方法を示します。

note: Tag: para
en: You will need the npgsql .NET PostgreSQL driver for this exercise which you can get the latest of from <ulink url="http://npgsql.projects.postgresql.org/">http://npgsql.projects.postgresql.org/</ulink>. Just download the latest and drop into your ASP.NET bin folder and you'll be good to go.
ja: この例ではNpgsql .NET PostgreSQLドライバが必要です。最新版は<ulink url="http://npgsql.projects.postgresql.org/">http://npgsql.projects.postgresql.org/</ulink>にあります。最新版をダウンロードして、ASP.NET の binフォルダに入れるだけでうまくいきます。

note: Tag: para
en: This is same example as <xref linkend="RT_PHP_Output"/> except implemented in C#.
ja: この例はC#で実装している点を除いては<xref linkend="RT_PHP_Output"/>と同じです。

note: Tag: para
en: You would call the below using <programlisting>http://mywebserver/TestRaster.ashx?srid=2249</programlisting> to get the raster image in Massachusetts state plane feet.
ja: 次で示すスクリプトは、<programlisting>http://mywebserver/TestRaster.ashx?srid=2249</programlisting>で、マサチューセッツ州平面 (フィート単位)のラスタ画像を取得します。

note: Tag: programlisting
en: -- web.config connection string section --
    <![CDATA[<connectionStrings>
        <add name="DSN"
            connectionString="server=localhost;database=mydb;Port=5432;User Id=myuser;password=mypwd"/>
    </connectionStrings>]]>
ja: -- web.config 接続文字列部 --
    <![CDATA[<connectionStrings>
        <add name="DSN"
            connectionString="server=localhost;database=mydb;Port=5432;User Id=myuser;password=mypwd"/>
    </connectionStrings>]]>

note: Tag: programlisting
en: // Code for TestRaster.ashx
    <![CDATA[<%@ WebHandler Language="C#" Class="TestRaster" %>
    using System;
    using System.Data;
    using System.Web;
    using Npgsql;
    
    public class TestRaster : IHttpHandler
    {
            public void ProcessRequest(HttpContext context)
            {
    
                    context.Response.ContentType = "image/png";
                    context.Response.BinaryWrite(GetResults(context));
    
            }
    
            public bool IsReusable {
                    get { return false; }
            }
    
            public byte[] GetResults(HttpContext context)
            {
                    byte[] result = null;
                    NpgsqlCommand command;
                    string sql = null;
                    int input_srid = 26986;
            try {
                        using (NpgsqlConnection conn = new NpgsqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["DSN"].ConnectionString)) {
                                conn.Open();
    
                    if (context.Request["srid"] != null)
                    {
                        input_srid = Convert.ToInt32(context.Request["srid"]);
                    }
                    sql = @"SELECT ST_AsPNG(
                                ST_Transform(
                                            ST_AddBand(
                                    ST_Union(rast,1), ARRAY[ST_Union(rast,2),ST_Union(rast,3)])
                                                        ,:input_srid) ) As new_rast
                            FROM aerials.boston
                                    WHERE
                                        ST_Intersects(rast,
                                        ST_Transform(ST_MakeEnvelope(-71.1217, 42.227, -71.1210, 42.218,4326),26986) )";
                                command = new NpgsqlCommand(sql, conn);
                    command.Parameters.Add(new NpgsqlParameter("input_srid", input_srid));
    
    
                                result = (byte[]) command.ExecuteScalar();
                    conn.Close();
                            }
    
                    }
            catch (Exception ex)
            {
                result = null;
                context.Response.Write(ex.Message.Trim());
            }
                    return result;
            }
    }]]>
ja: // TestRaster.ashxのコード
    <![CDATA[<%@ WebHandler Language="C#" Class="TestRaster" %>
    using System;
    using System.Data;
    using System.Web;
    using Npgsql;
    
    public class TestRaster : IHttpHandler
    {
            public void ProcessRequest(HttpContext context)
            {
    
                    context.Response.ContentType = "image/png";
                    context.Response.BinaryWrite(GetResults(context));
    
            }
    
            public bool IsReusable {
                    get { return false; }
            }
    
            public byte[] GetResults(HttpContext context)
            {
                    byte[] result = null;
                    NpgsqlCommand command;
                    string sql = null;
                    int input_srid = 26986;
            try {
                        using (NpgsqlConnection conn = new NpgsqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["DSN"].ConnectionString)) {
                                conn.Open();
    
                    if (context.Request["srid"] != null)
                    {
                        input_srid = Convert.ToInt32(context.Request["srid"]);
                    }
                    sql = @"SELECT ST_AsPNG(
                                ST_Transform(
                                            ST_AddBand(
                                    ST_Union(rast,1), ARRAY[ST_Union(rast,2),ST_Union(rast,3)])
                                                        ,:input_srid) ) As new_rast
                            FROM aerials.boston
                                    WHERE
                                        ST_Intersects(rast,
                                        ST_Transform(ST_MakeEnvelope(-71.1217, 42.227, -71.1210, 42.218,4326),26986) )";
                                command = new NpgsqlCommand(sql, conn);
                    command.Parameters.Add(new NpgsqlParameter("input_srid", input_srid));
    
    
                                result = (byte[]) command.ExecuteScalar();
                    conn.Close();
                            }
    
                    }
            catch (Exception ex)
            {
                result = null;
                context.Response.Write(ex.Message.Trim());
            }
                    return result;
            }
    }]]>

note: Tag: title
en: Java console app that outputs raster query as Image file
ja: rasterクエリを画像ファイルで出力するJavaコンソールアプリケーション

note: Tag: para
en: This is a simple java console app that takes a query that returns one image and outputs to specified file.
ja: これは、一つの画像を返すクエリを取り、指定したファイルに出力する、簡単なJavaコンソールアプリケーションです。

note: Tag: para
en: You can download the latest PostgreSQL JDBC drivers from <ulink url="http://jdbc.postgresql.org/download.html">http://jdbc.postgresql.org/download.html</ulink>
ja: 最新のPostgreSQL JDBCドライバは<ulink url="http://jdbc.postgresql.org/download.html">http://jdbc.postgresql.org/download.html</ulink>からダウンロードできます。

note: Tag: para
en: You can compile the following code using a command something like:
ja: あとで示すコードをコンパイルします。コマンドは次の通りです。

note: Tag: para
en: And call it from the command-line with something like
ja: 次のようにコマンドラインから呼び出します。

note: Tag: programlisting
en: // Code for SaveQueryImage.java
    <![CDATA[import java.sql.Connection;
    import java.sql.SQLException;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    import java.io.*;
    
    public class SaveQueryImage {
      public static void main(String[] argv) {
          System.out.println("Checking if Driver is registered with DriverManager.");
    
          try {
            //java.sql.DriverManager.registerDriver (new org.postgresql.Driver());
            Class.forName("org.postgresql.Driver");
          }
          catch (ClassNotFoundException cnfe) {
            System.out.println("Couldn't find the driver!");
            cnfe.printStackTrace();
            System.exit(1);
          }
    
          Connection conn = null;
    
          try {
            conn = DriverManager.getConnection("jdbc:postgresql://localhost:5432/mydb","myuser", "mypwd");
            conn.setAutoCommit(false);
    
            PreparedStatement sGetImg = conn.prepareStatement(argv[0]);
    
            ResultSet rs = sGetImg.executeQuery();
    
                    FileOutputStream fout;
                    try
                    {
                            rs.next();
                            /** Output to file name requested by user **/
                            fout = new FileOutputStream(new File(argv[1]) );
                            fout.write(rs.getBytes(1));
                            fout.close();
                    }
                    catch(Exception e)
                    {
                            System.out.println("Can't create file");
                            e.printStackTrace();
                    }
    
            rs.close();
                    sGetImg.close();
            conn.close();
          }
          catch (SQLException se) {
            System.out.println("Couldn't connect: print out a stack trace and exit.");
            se.printStackTrace();
            System.exit(1);
          }
      }
    }]]>
ja: // SaveQueryImage.javaのコード
    <![CDATA[import java.sql.Connection;
    import java.sql.SQLException;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    import java.io.*;
    
    public class SaveQueryImage {
      public static void main(String[] argv) {
          System.out.println("Checking if Driver is registered with DriverManager.");
    
          try {
            //java.sql.DriverManager.registerDriver (new org.postgresql.Driver());
            Class.forName("org.postgresql.Driver");
          }
          catch (ClassNotFoundException cnfe) {
            System.out.println("Couldn't find the driver!");
            cnfe.printStackTrace();
            System.exit(1);
          }
    
          Connection conn = null;
    
          try {
            conn = DriverManager.getConnection("jdbc:postgresql://localhost:5432/mydb","myuser", "mypwd");
            conn.setAutoCommit(false);
    
            PreparedStatement sGetImg = conn.prepareStatement(argv[0]);
    
            ResultSet rs = sGetImg.executeQuery();
    
                    FileOutputStream fout;
                    try
                    {
                            rs.next();
                            /** Output to file name requested by user **/
                            fout = new FileOutputStream(new File(argv[1]) );
                            fout.write(rs.getBytes(1));
                            fout.close();
                    }
                    catch(Exception e)
                    {
                            System.out.println("Can't create file");
                            e.printStackTrace();
                    }
    
            rs.close();
                    sGetImg.close();
            conn.close();
          }
          catch (SQLException se) {
            System.out.println("Couldn't connect: print out a stack trace and exit.");
            se.printStackTrace();
            System.exit(1);
          }
      }
    }]]>

note: Tag: title
en: Use PLPython to dump out images via SQL
ja: PLPython を使って SQL を介して画像をダンプする

note: Tag: para
en: This is a plpython stored function that creates a file in the server directory for each record. Requires you have plpython installed. Should work fine with both plpythonu and plpython3u.
ja: これは、サーバディレクトリ内でレコードごとにファイルを生成するPythonストアド関数です。plpythonが必要です。plpythonuとplpython3uの両方が正しく動作します。

note: Tag: programlisting
en: --write out 5 images to the PostgreSQL server in varying sizes
    -- note the postgresql daemon account needs to have write access to folder
    -- this echos back the file names created;
     SELECT write_file(ST_AsPNG(
            ST_AsRaster(ST_Buffer(ST_Point(1,5),j*5, 'quad_segs=2'),150*j, 150*j, '8BUI',100)),
             'C:/temp/slices'|| j || '.png')
             FROM generate_series(1,5) As j;
    
         write_file
    ---------------------
     C:/temp/slices1.png
     C:/temp/slices2.png
     C:/temp/slices3.png
     C:/temp/slices4.png
     C:/temp/slices5.png
ja: -- 5つの画像をPostgreSQLサーバに可変サイズで描きます。
    -- PostgreSQLデーモンのアカウントにフォルダへの書き込み権限が必要ですので
    -- ご注意ください。
    -- 生成されたファイル名をエコーバックします。
     SELECT write_file(ST_AsPNG(
            ST_AsRaster(ST_Buffer(ST_Point(1,5),j*5, 'quad_segs=2'),150*j, 150*j, '8BUI',100)),
             'C:/temp/slices'|| j || '.png')
             FROM generate_series(1,5) As j;
    
         write_file
    ---------------------
     C:/temp/slices1.png
     C:/temp/slices2.png
     C:/temp/slices3.png
     C:/temp/slices4.png
     C:/temp/slices5.png

note: Tag: title
en: Outputting Rasters with PSQL
ja: PSQLでラスタを出力する

note: Tag: para
en: Sadly PSQL doesn't have easy to use built-in functionality for outputting binaries. This is a bit of a hack that piggy backs on PostgreSQL somewhat legacy large object support. To use first launch your psql commandline connected to your database.
ja: PSQLから組み込み機能を用いてバイナリを出力するのは簡単ではありません。ここで紹介する方法は、レガシーなラージオブジェクトをサポートするPostgreSQL上に乗っかる、ちょっとしたハックです。まずは、psqlを起動して、データベースに接続します。

note: Tag: para
en: Unlike the python approach, this approach creates the file on your local computer.
ja: この方法はPythonの場合と違い、ローカル機にファイルが生成されます

note: Tag: screen
en: SELECT oid, lowrite(lo_open(oid, 131072), png) As num_bytes
     FROM
     ( VALUES (lo_create(0),
       ST_AsPNG( (SELECT rast FROM aerials.boston WHERE rid=1) )
      ) ) As v(oid,png);
    -- you'll get an output something like --
       oid   | num_bytes
    ---------+-----------
     2630819 |     74860
    
    -- next note the oid and do this replacing the c:/test.png to file path location
    -- on your local computer
     \lo_export 2630819 'C:/temp/aerial_samp.png'
    
    -- this deletes the file from large object storage on db
    SELECT lo_unlink(2630819);
ja: SELECT oid, lowrite(lo_open(oid, 131072), png) As num_bytes
     FROM
     ( VALUES (lo_create(0),
       ST_AsPNG( (SELECT rast FROM aerials.boston WHERE rid=1) )
      ) ) As v(oid,png);
    -- 次のような出力が得られます --
       oid   | num_bytes
    ---------+-----------
     2630819 |     74860
    
    -- 続いて、oidを書き留めて、'C:/temp/aerial_smap.png'を
    -- ローカルのコンピュータ上のファイルパスに置き換えたうえで、
    -- 次を実行します。
     \lo_export 2630819 'C:/temp/aerial_samp.png'
    
    -- db上のラージオブジェクトストレージからファイルを削除します
    SELECT lo_unlink(2630819);
