sde视图sdetable create_view

本文介绍如何使用ArcSDE的sdetable命令创建带有空间信息的视图,包括命令的基本格式及其参数说明,并给出具体示例。

        对于在Oracle数据库中,用视图(View)来组建表间连接提高查询检索效率的方法会经常用到。在GIS系统中,我们也会经常需要进行表间的查询,如:从空间位置查找该空间地物相关的属性信息表。我们常规的做法一般是先通过空间查询,再用关键字段进行关联查询。但在有些情况,如:进行插值时,需要空间表的空间位置,但需要另外一张表的某个属性作为插值字段,就无法实现,必须通过视图的方式来实现。

    在ArcSDE中,可通过sdetable命令来创建视图,该视图可为一般的没有空间信息的,也可为有空间位置的。
     sdetable命令的格式为:
     sdetable -o create_view  -T -t -c  [-a ] [-w <"where_clause">] [-i ] [-s ] [-D ]
[-u ] [-p ] [-N] [-q]
其中:
    -T 为视图名,创建完成后,在arccatalog中浏览与普通的table或是featureclass相同;
    -t 为参与的表名,各表间用“,”隔开,另外,各表名前需加上所属用户,如:sde.tablename;
    -c 为目标视图列,一般格为:用户.表名.字段名,如:sde.sampletable.samplefield。可用.*代表所指定表的所有字段。若参与的table有featureclass(空间表),则若指了shape字段,则结果视图将带有空间信息,与featureclass相似,若没有指定shape字段,则为普通表,与table类似。
    [-a ]为可选项,一般不用设置;
    [-w <"where_clause">]为视图的逻辑条件,为一般的SQL语句where 后面的语句,注意:该语句需用双引号;
    [-i ] [-s ] [-D ]为指定ArcSDE所在服务器,数据库名以及服务名,若是在本机上操作,则这些参数可省;
    [-u ]为用户名,该用户名为SDE用户名;
    [-p ]为SDE密码,即登陆SDE数据库的密码。
以下为创建一个带有空间信息的视图例子:
sdetable -o create_view -T v_xntd -t sip_gxglsde.tm_xntd_aat,sip_gxgldb.v_xntd_glzt -c sip_gxglsde.tm_xntd_aat.*,sip_gxgldb.v_xntd_glzt.* -u sip_gxglsde -p
sip_gxglsde -s 192.168.0.18 -w "sip_gxglsde.tm_xntd_aat.featid=sip_gxgldb.v_xntd_glzt.xntdbh"


题外话:带空间位置的视图可以直接应用于专题图的制作以及图属关联查询

<think>我们正在分析一个代码流程,其中提到了两个函数:`_sde_kms_setup_displays` 和 `dsi_display_get_info`。这两个函数名看起来与显示驱动相关,特别是与高通平台上的显示引擎(SDE,Snapdragon Display Engine)和DSI(Display Serial Interface)显示有关。 ### 步骤分析: 1. **函数作用推测**: - `dsi_display_get_info`: 通常用于获取DSI显示器的相关信息,如分辨率、时序参数等。在Linux内核的DRM(Direct Rendering Manager)子系统中,这类函数用于获取显示面板的详细信息。 - `_sde_kms_setup_displays`: 这个函数名表明它是SDE KMS(Kernel Mode Setting)模块的一部分,用于设置(初始化)显示器。在DRM驱动中,KMS负责配置显示输出,包括设置显示模式、连接显示器等。 2. **流程上下文**: 这两个函数通常出现在显示初始化的流程中。具体来说,在DRM驱动中,当系统启动或热插拔显示器时,会触发显示管道的初始化。这个过程一般包括: - 探测连接的显示器(通过DSI、HDMI等接口) - 获取显示器的能力信息(如支持的分辨率) - 根据获取的信息配置显示控制器(即SDE硬件模块) 3. **流程名称**: 结合上述函数,这个流程很可能是**显示初始化流程**的一部分,具体可以称为**显示管道的建立(Display Pipeline Setup)**或者**显示资源初始化(Display Initialization)**。 在高通SDE驱动中,典型的初始化流程在`msm_drm`驱动中,其中KMS的初始化会调用`sde_kms_hw_init`,而`sde_kms_hw_init`会进一步调用`_sde_kms_setup_displays`来设置所有连接的显示器。而`dsi_display_get_info`则是在DSI显示控制器驱动中,用于获取特定DSI显示器的信息。 ### 代码流程示例: 以下是一个简化的伪代码流程,展示这两个函数的调用关系: ```c static int sde_kms_hw_init(struct msm_kms *kms) { struct sde_kms *sde_kms = to_sde_kms(kms); // ... 其他初始化 ... // 设置显示器 ret = _sde_kms_setup_displays(sde_kms); if (ret) { DRM_ERROR("Failed to setup displays\n"); return ret; } // ... 其他后续操作 ... return 0; } static int _sde_kms_setup_displays(struct sde_kms *sde_kms) { struct drm_device *dev = sde_kms->dev; struct drm_connector *connector; // 遍历所有连接器(connector) list_for_each_entry(connector, &dev->mode_config.connector_list, head) { if (connector->connector_type == DRM_MODE_CONNECTOR_DSI) { // 获取DSI显示信息 struct dsi_display_info info; dsi_display_get_info(connector, &info); // 假设的函数调用,实际可能通过其他方式 // 根据info设置显示器 // ... } } // ... } ``` ### 结论: 这个代码流程是**高通SDE显示驱动中的显示管道初始化流程**,具体为**设置和初始化连接的DSI显示器**。整体流程属于**KMS初始化**的一部分。 §§相关问题§§ 1. 高通SDE显示驱动中,显示初始化流程还包括哪些关键步骤? 2. DSI显示驱动中,`dsi_display_get_info`函数通常获取哪些具体信息? 3. 在Linux DRM框架中,KMS(Kernel Mode Setting)的主要职责是什么? </think> ### 代码流程分析:SDE显示初始化流程 该代码流程涉及高通 Snapdragon Display Engine (SDE) 的显示初始化,核心函数调用关系如下: ```c _sde_kms_setup_displays() // SDE显示控制器初始化入口 ├─ dsi_display_get_info() // 获取DSI显示面板参数 ├─ _sde_encoder_setup() // 配置显示编码器 ├─ _sde_crtc_init() // 初始化CRTC(显示管道) └─ _sde_connector_init() // 绑定显示面板连接器 ``` #### 流程名称:**SDE显示控制器初始化流程** 1. **硬件抽象层初始化** - `_sde_kms_setup_displays` 是 SDE (Snapdragon Display Engine) 的核心入口函数,负责协调显示子系统初始化[^1]。 - 调用时机:在 Linux DRM (Direct Rendering Manager) 驱动加载阶段,通过 `sde_kms_hw_init()` 触发。 2. **显示面板信息获取** - `dsi_display_get_info` 解析 DSI (Display Serial Interface) 面板的 EDID 数据,获取: $$ \text{分辨率}(w \times h) \quad \text{刷新率}(f_hz) \quad \text{时序参数}(t_{clk}) $$ - 返回数据结构包含面板物理尺寸、像素格式等关键参数[^2]。 3. **关键子模块初始化** - **CRTC初始化**:配置显示管道(`_sde_crtc_init`),管理帧缓冲和扫描输出 - **编码器绑定**:建立物理接口(如 DSI/HDMI)与显示管道的映射(`_sde_encoder_setup`) - **连接器注册**:通过 `_sde_connector_init` 注册热插拔检测和模式设置回调 #### 典型应用场景 此流程出现在 Android/Linux 内核启动阶段,具体场景包括: 1. 设备冷启动时的显示初始化 2. 热插拔外部显示器(如 HDMI 连接) 3. 多屏显示配置切换 ```mermaid graph LR A[DRM驱动加载] --> B[sde_kms_hw_init] B --> C[_sde_kms_setup_displays] C --> D[dsi_display_get_info] D --> E[解析面板参数] C --> F[_sde_crtc_init] C --> G[_sde_encoder_setup] C --> H[_sde_connector_init] ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值