问题标签 [geoalchemy]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python-2.7 - 使用带有列覆盖的元类的 SQLAlchemy 反射
我有一组动态数据库表(带有 PostGIS 的 Postgres 9.3),我正在使用 python 元类进行映射:
其中,db.Model 是通过 flask-sqlalchemy 生成的 db 对象,而 tablename 是一些 unicode。然后将 cls 添加到应用程序范围的字典current_app.class_references
(使用 Flask 的 current_app)以避免尝试多次实例化该类。
每个表都包含一个几何列,wkb_geometry
存储在 Well Known Binary 中。我想将这些映射到使用geoalchemy2,最终目标是检索 GeoJSON。
如果我先验地声明该表,我将使用:
由于我试图动态地执行此操作,因此我需要能够cls1
使用已知类型覆盖反射。
尝试:
使用反射覆盖语法显式定义列。
/li>
它在重新启动时返回以下内容,即尚未实例化该类: InvalidRequestError: Table 'tablename' is already defined for this MetaData instance。指定 'extend_existing=True' 以重新定义现有 Table 对象上的选项和列
对上面定义的类使用 mixins(无表名):
/li>
再次元数据问题。
类实例化后覆盖列定义属性:
/li>
结果是:
InvalidRequestError:在属性“wkb_geometry”下将列 tablename.wkb_geometry 与列 tablename.wkb_geometry 隐式组合。请为这些同名列显式配置一个或多个属性。
是否可以使用元数据构造来支持动态反射**和* *覆盖一个已知的列将在所有表上可用?
python - 如何在 python (geoalchemy) 中设置空间 SQL 查询的范围
自从几天以来,我一直在忙于弄清楚如何使用 geoalchemy2 从 PostGIS 数据库中正确查询数据,geoalchemy2 是 python 支持空间数据库操作的 sqlalchemy 的扩展。
我正在使用来自勃兰登堡(德国行政区)的 python3.4 和 Openstreetmaps 数据,这些数据输入到我当地的 Postgres-DB 中。数据以纬度/经度为单位。我一直在关注如何使用 geoalchemy 包的 ORM 部分进行设置的教程(https://geoalchemy-2.readthedocs.org/en/latest/orm_tutorial.html)。一开始,一切都很顺利
定义映射
/li>定义数据库设置
/li>做我的查询
/li>
现在,在我尝试减少范围之前,一切都运行良好——因为我不想将所有建筑物都存储在我的数据库中,但可能只存储在给定边界或边界多边形内的建筑物。
通过定义边界框缩小范围(WKT 格式)
/li>
我尝试将 .filter() 与各种选项一起使用,但没有成功。到目前为止,我理解 filter() 需要某种布尔输入,因此必须根据它定义一个语句。那么这样的声明有什么问题呢?
检查结果func.ST_Contains(bbox, QuerySchema.way)
带来的结果<geoalchemy2.functions.ST_Contains at 0x10a12a400; ST_Contains>
显然filter()
无法正常工作。
问题:我必须如何执行操作才能正常工作,即只给我给定边界内的那些数据库条目?
python-2.7 - 使用 sqlalchemy marshmallow 难以序列化地理列类型
我尝试使用 Marshmallow 进行反序列化和序列化 SQLAlchemy 对象,但在处理 ORM 中的地理字段时遇到问题。
首先是模型:
其次是棉花糖模式:
然后尝试运行时出现错误:
我在位置字段上尝试了一些覆盖,但无济于事。非常感谢任何帮助。
2016 年 1 月 24 日更新
这是我的代码,因为它具有更简单的模型:
SQLAlchemy 模型:
marshmallow_sqlalchemy 模式对象
根据建议的其他管道:
在运行代码时:
我得到的结果是:
python-2.7 - 安装 ckanext-plugin 扩展后 CKAN 服务器关闭
我正在尝试按照下面列出的分步说明安装 CKAN ckanext-spatial 插件。
安装和配置后,尝试访问站点主页时出现以下 apache 服务器错误。CKAN 目前无法使用。我需要升级 GeoAlchemy 的版本还是扩展的问题?
mod_wsgi (pid=29881):目标 WSGI 脚本 '/etc/ckan/default/apache.wsgi' 不能作为 Python 模块加载。mod_wsgi (pid=29881):处理 WSGI 脚本“/etc/ckan/default/apache.wsgi”时发生异常。回溯(最后一次调用):文件“/etc/ckan/default/apache.wsgi”,第 10 行,在 application = loadapp('config:%s' % config_filepath) 文件“/usr/lib/ckan/default/ lib/python2.7/site-packages/paste/deploy/loadwsgi.py”,第 247 行,在 loadapp 返回 loadobj(APP, uri, name=name, **kw) 文件“/usr/lib/ckan/default/ lib/python2.7/site-packages/paste/deploy/loadwsgi.py”,第 271 行,在 loadobj global_conf=global_conf) 文件“/usr/lib/ckan/default/lib/python2.7/site-packages/paste /deploy/loadwsgi.py",第 296 行,在 loadcontext global_conf=global_conf) 文件中"import (self.module_name, globals(),globals(), [' name ']) 文件“/usr/lib/ckan/default/src/ckan/ckan/config/middleware.py”,第 26 行,来自 ckan .config.environment import load_environment 文件“/usr/lib/ckan/default/src/ckan/ckan/config/environment.py”,第 17 行,在 import ckan.model 作为模型文件“/usr/lib/ckan/default /src/ckan/ckan/model/ init .py”,第 7 行,在导入 vdm.sqlalchemy 文件“ /usr/lib/ckan/default/lib/python2.7/site-packages/vdm/sqlalchemy/init.py”,第 32 行,从工具导入存储库文件“/usr/lib/ckan/default/lib/python2.7/site-packages/vdm/sqlalchemy/tools.py”,第 33 行,在 raise ValueError(" VDM 仅适用于 SQLAlchemy 版本 0.4 至 0.7,不适用于:%s" % sqav) ValueError:VDM 仅适用于 SQLAlchemy 版本 0.4 至 0.7,不适用于:1.0.12
python - 如何在 GeoJSON 中转换 SDO_GEOMTRY
我使用 sqlalchemy 和 geoalchemy,并将我的结果转换为 geojson。用这样的正常方式:
这是不可能的,因为 cx_Oracle.Objets 不可序列化!我可以通过像这样的单独属性进行访问:
这是我的程序:
我将在 GeoJSON 中转换我的所有 cx_Oracle.Objects 但如何?在互联网上,是一个函数 sdo2geojson 可以在 sql developer 中正常工作,但当然这个函数对于 python 来说是未知的......
我希望有一个人可以帮助我???
postgresql - 使用 Python SQLAlchemy 将 POSTGIS 数据类型插入 PostgresDB
我正在尝试使用 SQLalchemy 将 Linestring、Polygon 和其他数据类型的 POSTGIS 值插入 postgres DB 并遇到以下错误:
这是使用 postgres db 命令创建的表的架构:
已经使用 DDL 语句创建了 postgres 表的模式。
我尝试使用 psycopg2 从 xml 插入 gml 值,并且使用以下方法成功插入:
输出--> 成功插入
但是当我使用下面的它失败使用 sqlalchemy 和 geoalchemy
输出==> InternalError: (psycopg2.InternalError) 解析错误 - 无效几何
如何使用 SQLalchemy 和 geoalchemy 将 GIS 数据类型插入 PostgresDB。
任何帮助将不胜感激谢谢!!!!我
python - 在 postgres 中使用 sqlalchemy 访问复合数据类型
我正在尝试使用 sqlalchemy 从 python 中的tiger.geocode 函数中提取复合列。
在纯 sql 形式中,这看起来像这样:
这会产生以下输出:
我面临的问题是如何在从 sqlalchemy 查询对象时引用复合列(rating、lon、lat、stno、street、styp、city、st、zip)?
谢谢,麻烦您了。
python - Python Insert geojson into mssql
I am attempting to load geojson from a file into mssql express using sqlalchemy for the insert and geopandas to load and read the file. sqlserver examples seems to be hard to find, but below is what i was able to scrape together at this point, which doesn't work.
does anyone have a working example of loading geojson into Sql Server sqlexpress with python?
python - 使用 ORM 在烧瓶 + geoalchemy 中查找 x 英里外的所有用户
我创建了以下 SQL 查询来查找一英里内的所有用户,它似乎工作正常:
但是我想将其转换为烧瓶/sqlalchemy/geoalchemy 查询?
python - ModuleNotFoundError:没有名为“空间”的模块
我在一个脚本中遇到了模块未找到错误,它的所有要求都已安装。我正在尝试导入空间库:
该库位于: C:\Users\ASUS\AppData\Local\Programs\Python\Python37\Lib\site-packages\scipy\spatial
我检查了安装的软件包pip list
,没关系。我尝试在 Pycharm 项目环境中安装 spatial-lib,但无法完成:
找不到满足空间库要求的版本(来自版本:)没有找到空间库的匹配分布您使用的是 pip 版本 10.0.1,但是版本 18.1 可用。您应该考虑通过“python -m pip install --upgrade pip”命令进行升级。
这无关紧要,因为我的点子是最新的。也许说得好,导入scipy也有这样的问题。