文章中使用的QGIS版本为:3.10.7-A Coruña

字段增删及数据过滤

  • 字段增删
    • 手动设置图层属性进行字段增删
      • 新增
      • 删除
    • 使用python代码进行字段增删
  • 数据过滤
    • 手动进行filter设置进行过滤
    • 使用python进行过滤

字段增删

手动设置图层属性进行字段增删

新增

  • 选中需要操作的图层,点击鼠标右键,选择"属性",打开属性图层属性信息窗口
  • 选中左侧"字段"栏,根据下图步骤,打开编辑,新增字段

删除

  • 删除操作与新增操作都是在"字段"栏进行,如下图

    注意:以上操作需要打开编辑,操作的结果在关闭编辑时才会同步到数据源

使用python代码进行字段增删

  • QGIS支持使用python代码处理数据,如下图所示,使用python代码新增和删除字段,本文演示了新增字段,下方提供了删除字段的代码,感兴趣的读者可以自行测试
import os
import sys
from qgis.gui import *
from qgis.core import *
import qgis.utils
from qgis.core import QgsProjectmapCanvas = iface.mapCanvas()
curlayer = mapCanvas.currentLayer()if curlayer is None:print("%s:%s" % ("Error","图层不可用"))
else:print("%s:图层[%s]开始字段处理" % ("Info", curlayer.name()))curlayer.startEditing()# 新增字段# 判断字段是否存在,若不存在再创建for field in ["LineName", "RoadName"]:if curlayer.fields().indexFromName(field) < 0:# 字段不存在lineNameField = QgsField(field, QVariant.String)ret = curlayer.addAttribute(lineNameField)if ret is False:print("%s:图层[%s]添加字段[%s]失败!" % ("Error", curlayer.name(), field))else:print("%s:图层[%s]添加字段[%s]成功!" % ("Info", curlayer.name(), field))else:print("%s:图层[%s]不需要添加字段[%s]" % ("Info", curlayer.name(), field))# 删除字段# 判断字段是否存在,若存在再删除# del_field = "LineName"# idx = curlayer.fields().indexFromName(del_field)# if idx > 0:#     # 字段存在#     ret = curlayer.deleteAttribute(idx)#     if ret is False:#         print("%s:图层[%s]删除字段[%s]失败!" % ("Error", curlayer.name(), del_field))#     else:#         print("%s:图层[%s]删除字段[%s]成功!" % ("Info", curlayer.name(), del_field))# else:#     print("%s:图层[%s]不需要删除字段[%s]" % ("Info", curlayer.name(), del_field))curlayer.commitChanges()print("%s:图层[%s]字段处理完成" % ("Info", curlayer.name()))

数据过滤

  • 在查看数据时,我们有时候需要从大量数据中对某一字段为特定值的进行过滤,此时可以使用filter进行属性过滤得到想要的数据,类似数据库查询的where语句

手动进行filter设置进行过滤

  • 在非编辑状态,右键选中的图层,选择"过滤"
  • 在弹出的"查询构建器"中,点击字段列表中某个,在右侧点击全部,可以获得该字段在图层的所有取值
  • 在过滤表达式区域,可以参照SQL的WHERE子句设置过滤表达式,支持精确查找,模糊查找等过滤方式,如下图所示

使用python进行过滤

  • 对字段过滤查询,同样可以使用代码进行,这里使用python代码向大家演示下模糊查询,其它类型的查询大家可以根据自己需要,修改sql即可,代码如下
import os
import sys
from qgis.gui import *
from qgis.core import *
import qgis.utils
from qgis.core import QgsProjectmapCanvas = iface.mapCanvas()
curlayer = mapCanvas.currentLayer()if curlayer is None:print("%s:%s" % ("Error","图层不可用"))
else:field = "NAME"value = "%湖%"value2 = "%河%"print("%s:图层[%s]开始过滤" % ("Info", curlayer.name()))# 先要保证图层已取消编辑if curlayer.isEditable():curlayer.commitChanges()# 精确查找# sql = '''{} = \'{}\''''.format(field, value)# 模糊查找sql = '''{name} LIKE \'{v}\' OR {name} LIKE \'{v2}\''''.format(name=field, v=value, v2=value2)ret = curlayer.setSubsetString(sql)if ret:print("%s:对图层[%s]按照[%s]过滤完成." % ("Info", curlayer.name(), sql))else:print("%s:对图层[%s]按照[%s]过滤失败!" % ("Error", curlayer.name(), sql))print("%s:图层[%s]过滤结束" % ("Info", curlayer.name()))


以上就是关于qgis中图层字段增删及按照字段过滤要素的方法,希望能对您有所帮助,如对上述有疑问或者建议,欢迎私信~~

[QGIS]常用操作--字段增删与数据过滤相关推荐

  1. 数据库常用操作之删除重复数据且仅保留一条

    数据库常用操作之删除重复数据且仅保留一条 单字段操作 查询全部重复的数据 MySQL实现 Oracle实现 查询表中重复数据(id最小除外) MySQL实现 删除表中多余重复数据并且只留1条 MySQ ...

  2. MongoDB聚合(aggregate)常用操作及示例

    简介 MongoDB 中聚合(aggregate)主要用于处理数据(诸如统计平均值,求和等),并返回计算后的数据结果. 有点类似 SQL 语句中的 count(*). 常用操作 表达式 描述 $mat ...

  3. 【SQL必知必会笔记(3)】SELECT语句的WHERE子句数据过滤操作

    上个笔记主要介绍了利用SELECT语句检索单个/多个/所有列,并利用DISTINCT关键字检索具有唯一性的值.利用LIMIT/OFFSET子句限制结果:以及利用ORDER BY子句排序检索出的数据,主 ...

  4. MySQL第二讲 - 数据表简单操作 与 “增删查改的开头部分- 增”- 细节狂魔

    文章目录 前文知识点回顾   SQL语句 >>操作指令 (不区分大小写) 1.显示数据库:show databases; 2.创建数据库:create database 数据库名; [如果 ...

  5. pandas 按字符串肚脐眼 读取数据_十分钟学习pandas! pandas常用操作总结!

    学习Python, 当然少不了pandas,pandas是python数据科学中的必备工具,熟练使用pandas是从sql boy/girl 跨越到一名优秀的数据分析师傅的必备技能. 这篇pandas ...

  6. sql两个表查不同数据_产品操作MySQL第6篇 – 数据过滤-WHERE子句

    MYSQL 本资料为产品岗位作为日常工作参考,语言口语化 At 2019/4/26 By David.Yang 如何使用限定条件来进行数据过滤? 在前问当中,我们已经学会到了SELECT查询, 在过程 ...

  7. dataframe 添加一行_R语言Data Frame数据框常用操作

    来源 | R友舍 Data Frame一般被翻译为数据框,感觉就像是R中的表,由行和列组成,与Matrix不同的是,每个列可以是不同的数据类型,而Matrix是必须相同的. Data Frame每一列 ...

  8. Mongodb数据库命令端常用操作

    数据库基本命令操作 数据库常用命令 1.Help查看命令提示 help db.help(); db.yourColl.help(); db.youColl.find().help(); rs.help ...

  9. c#读取excel两列数据并绘制xy曲线_用Python轻松搞定Excel中的20个常用操作

    来源 |早起Python(ID: zaoqi-python) Excel与Python都是数据分析中常用的工具,本文将使用动态图(Excel)+代码(Python)的方式来演示这两种工具是如何实现数据 ...

最新文章

  1. gdk_draw_arc这个函数
  2. Async await 异步编程说明
  3. [Qt入门]模态和非模态对话框创建
  4. 如何使antd中table表格不换行
  5. window.print 点击取消后再次打印无效_教程 | 图书馆自助复印打印机使用方法
  6. canvas笔记-canvas中用户与图形交互
  7. 域对象的引用,ActionContext 和ServletActionContext类的使用
  8. spring-boot子模块打包去掉BOOT-INF文件夹
  9. 使用opencv实现matlab中的imfill填充孔洞功能
  10. 利用ARCGIS制作MIKE21边界文件
  11. 你应该懂得的关于电脑配置冷知识
  12. html5页面蒙版原理,js如何实现蒙版效果
  13. 为自己选一个网络硬盘
  14. springMVC前后端数据交互
  15. iOS7设置状态栏颜色
  16. 受限玻尔兹曼机(RBM)学习笔记(四)对数似然函数
  17. python右键idel消失问题
  18. 【backtrader保姆级教学】日内区间突破型策略
  19. python apply lambda if_在Pandas中使用Apply Lambda函数和多个if语句
  20. 【JavaScript】关于[object Object]

热门文章

  1. Cheat—— 给Linux初学者和管理员一个终极命令行助手
  2. Python Wechaty 微信聊天机器人 padlocal协议搭建指南
  3. 8种用Python实现定时执行任务的方案,一定有你用得到的
  4. 在电脑浏览器网页上倍速观看视频
  5. 工作分析文献综述_文献综述的写作步骤和注意事项
  6. [Ting's笔记Day3]解决Git常见错误non-fast-forward问题
  7. C++中的各种“虚“-- 虚函数、纯虚函数、虚继承、虚基类、虚析构、纯虚析构、抽象类讲解
  8. js获取中文汉字首字母
  9. 中国科学院大学计算机录取比,2020-2021年中国科学院大学计算机软件与理论考研招生情况、分数线、...
  10. 可摇尾巴,可撸,一只无脸机器猫为什么这么火?