sde.st_Geometry 怎么解析数据
时间: 2024-05-30 17:09:45 浏览: 12
sde.st_Geometry是ESRI公司推出的一种空间数据类型,可以在ArcSDE和Oracle Spatial等数据库中使用。如果要解析sde.st_Geometry类型的数据,可以使用ESRI提供的ArcObjects或ArcPy等工具进行操作。
具体来说,可以使用ArcObjects中的IWorkspace接口获取sde.st_Geometry类型的数据,然后利用IEnumDataset和IEnumFeature接口枚举数据集和要素,并使用IField和IFieldInfo接口获取要素属性信息。同时,可以使用ISpatialReference接口获取空间参考信息,使用IGeometry和IPoint等接口获取要素的空间几何信息。
另外,也可以使用ArcPy中的arcpy.da.SearchCursor等工具获取sde.st_Geometry类型的数据,并使用SHAPE@属性获取要素的空间几何信息。同时,可以使用getFieldNames、getFields等方法获取要素属性信息。
需要注意的是,sde.st_Geometry类型的数据可能涉及到多种空间要素类型,如点、线、面等,因此需要根据实际情况选择相应的解析方法。
相关问题
select d.* from ( select d.dept_id, d.parent_id, d.dept_code, d.ancestors, d.dept_name, d.order_num, d.leader, d.phone, d.email, d.status, d.del_flag, d.create_by, d.create_time, d.pinyin_logogram,d.pinyin_whole,d.dept_type,d.dept_code,d.storage_type,d.third_code,d.dept_address from sys_dept d where dept_id = ? ) d left join sys_dept_ext sde on sde.dept_id = d.dept_id ### Cause: com.microsoft.sqlserver.jdbc.SQLServerException: 多次为 'd' 指定了列 'dept_code'。正确语句是什么
为了解决这个问题,您需要通过为列使用别名或删除一个重复的列来消除列名重复的问题。以下是修改后的查询语句示例:
```
select d.*, sde.dept_code as sde_dept_code
from (
select d.dept_id, d.parent_id, d.dept_code, d.ancestors, d.dept_name, d.order_num, d.leader, d.phone, d.email, d.status, d.del_flag, d.create_by, d.create_time, d.pinyin_logogram, d.pinyin_whole, d.dept_type, d.storage_type, d.third_code, d.dept_address
from sys_dept d
where dept_id = ?
) d
left join sys_dept_ext sde on sde.dept_id = d.dept_id
```
在这个查询中,为了消除重复的`dept_code`列,我们为`sys_dept_ext`表的`dept_code`列指定了别名`sde_dept_code`。这样就可以避免重复列名的问题,同时保持查询语句的正确性。
解释def run(FLAGS, cfg): # build Tracker tracker = Tracker(cfg, mode='test') # load weights if cfg.architecture in ['DeepSORT']: if cfg.det_weights != 'None': tracker.load_weights_sde(cfg.det_weights, cfg.reid_weights) else: tracker.load_weights_sde(None, cfg.reid_weights) else: tracker.load_weights_jde(cfg.weights)
这段代码是定义了一个名为 run 的函数,该函数接受两个参数 FLAGS 和 cfg。其主要功能是构建一个 Tracker 对象并加载权重。
具体步骤如下:
1. 根据给定的配置 cfg 和模式 'test',创建一个 Tracker 对象 tracker。
2. 判断 cfg.architecture 是否为 'DeepSORT',如果是则继续执行下一步,否则执行步骤 5。
3. 判断 cfg.det_weights 是否为 'None',即检测模型权重是否存在,如果存在则加载检测模型权重 cfg.det_weights 和重识别模型权重 cfg.reid_weights,否则只加载重识别模型权重 cfg.reid_weights。
4. 如果成功加载了检测模型和重识别模型的权重,则通过 tracker.load_weights_sde 函数加载权重到 Tracker 对象中。
5. 如果 cfg.architecture 不是 'DeepSORT',则通过 tracker.load_weights_jde 函数加载 cfg.weights 中的权重到 Tracker 对象中。
该函数的主要目的是准备跟踪器,为跟踪视频或图像中的目标做准备。其中,DeepSORT 是一种基于深度学习的目标跟踪算法,需要加载检测模型和重识别模型的权重;而其他跟踪算法则只需要加载一个模型的权重。