2

SQLAlchemy(0.8)/GeoAlchemy2(0.2.1) を使用してネストされた生の PostGreSQL/PostGIS ラスター クエリを複製しようとしていますが、geomvalデータ型のコンポーネントにアクセスする方法がわかりません。「geom」と「val」を返す複合データ型です。

動作する生のクエリは次のとおりです。

SELECT (dap).val, (dap).geom
FROM (SELECT ST_DumpAsPolygons(rast) as dap FROM my_raster_table) thing

そして、私が現在取り組んでいる SQLAlchemy クエリ:

import geoalchemy2 as ga2
from sqlalchemy import *
from sqlalchemy.orm import sessionmaker

metadata = MetaData()
my_raster_table = Table('my_raster_table', metadata,
                  Column('rid', Integer),
                  Column('rast', ga2.Raster))

engine = create_engine(my_conn_str)
session = sessionmaker(engine)()

q = session.query(ga2.func.ST_DumpAsPolygons(my_raster_table.c.rast).label('dap'))

そして、次のようなサブクエリでそれにアクセスしたいと思います。

q2 = session.query(ga2.func.ST_Area(q.subquery().c.dap.geom))

しかし、その構文は機能しません。そうしないと、この質問を投稿できません;)。誰にもアイデアがありますか?ありがとう!

4

1 に答える 1