Questions tagged «fields-attributes»

字段也称为属性,包含有关要素的信息。



1
是否添加超过255个字符的文本字段?
我正在一个QGIS项目中,其中几乎没有带有文本字段的shapefile图层。我想将整个段落添加为文本字段的描述,但是这些字段受其最大允许长度(255个字符)限制。 如何添加更长的文本?我确定肯定有一种我不考虑的方法。 我读过某个地方,应该尝试PostGIS。该项目的最终目标是将其上传到Web服务器以进行在线查看。因此,我不确定与更大文本文件的PostGIS关系如何在网络上上传或保存?

3
在QGIS的属性表中更改数据类型?
我有其中FIP(实际上是州FIPS和县FIPS合并)的县数据。我有导入为CSV的数据,标题为STCounty的FIPS数据相同。但是,shapefile FIPS被列为Real,而CSV以Integer形式出现,并且Join函数似乎不起作用。下拉框为灰色/空。 因此,更大的问题是如何更改表中的属性类型? 我试图在shapefile(县数据)中创建一个新列,并将其设置为整数,然后将FIPS * 1乘以,但是列中充满了“ NULL”。 我是QGIS的新手,并且在MapInfo方面有很多经验,因此联接概念对我而言并不陌生,只是QGIS中的语法。

1
如何通过Leaflet在GeoJSON图层上添加归因?
我需要在传单地图上使用GeoJSON图层。这是我的代码示例: function onEachFeature(feature, layer) { if (feature.properties && feature.properties.popupContent) { layer.bindPopup(feature.properties.popupContent); } } myGeoJsonLayer = L.geoJson(data, { pointToLayer: function (feature, latlng) { return L.circleMarker(latlng, geojsonMarkerOptions); }, onEachFeature: onEachFeature }); myGeoJsonLayer.addTo(map); TOC.addOverlay(myGeoJsonLayer, "My GeoJSON Layer"); 一切正常。 现在,我想在图层上添加归因,但如何?

1
使用PyQGIS添加字段并计算表达式?
我想使用PyQGIS添加一个新字段并计算每个功能的值。类似于字段计算器选项。 我的“字段计算器”表达式例如: y(start_point($geometry)) from PyQt4.QtCore import QVariant from qgis.core import QgsField, QgsExpression, QgsFeature vl = iface.activeLayer() vl.startEditing() #step 1 myField = QgsField( 'myNewColumn', QVariant.Float ) vl.addAttribute( myField ) idx = vl.fieldNameIndex( 'myNewColumn' ) #step 2 e = QgsExpression( 'y(start_point($geometry))' ) e.prepare( vl.pendingFields() ) for f in vl.getFeatures(): f[idx] = e.evaluate( …

1
从栅格属性表中的另一个属性重新分配栅格像元值?
我有一个大型的(大小为48 US),分辨率为100m,具有栅格属性表(RAT)。数据是由其他人创建的。RAT中的属性之一具有我关心的数据值,而实际的栅格像元值毫无意义。我一直在尝试找出如何将我关心的属性的值重新分配给实际的栅格像元值,但还无法弄清楚如何做到这一点。我要这样做的原因是,我有一个相当复杂的自定义Python工具,其他人开发了该工具来执行我需要的计算,但是不幸的是它没有使用RAT属性的能力。它仅使用栅格像元分配的值,正如我在这种情况下所说的那样,这是毫无意义的。 我尝试了一种运行栅格转点工具的round回方式,以将目标字段作为我关心的属性来创建点要素类,以为可以从所得的点要素类创建新栅格。但是,栅格指向工具失败,表明我没有足够的临时内存(我正在运行具有16 GB RAM和1 TB数据驱动器的Alienware计算机)。 我有什么选择吗?我使用的是ArcGIS 10,但如果我可以做我在另一个软件包中容易描述的事情,我将愿意尝试另一种方式(我不嫁给ArcGIS)。


1
确定形状区域字段名称
我正在处理各种空间多边形文件(shapefile,文件/个人gdb要素类,sde要素类(某些具有空间视图)),并且根据文件类型,我得到了多个Shape Area要素类字段名称(必填字段,而不是已创建的字段) 因此,例如,字段名称的范围从“ Shape_Area”,“ SHAPE_Area”,“ SHAPE.AREA”,“ GEOMETRY_Area”,“ GEOMETRY.AREA” 我正在编写一个python脚本以提取所有这些类型的要素类的区域,并且按照以下方式进行操作: for field in arcpy.ListFields(fc): if field.name in ["Shape_Area", "SHAPE_Area", "SHAPE.AREA", "GEOMETRY_Area", "GEOMETRY.AREA"]: do something 我想知道是否还有一种更聪明的方法来提取形状区域字段,而不只是列出所有可以命名的方式?似乎没有像Area这样的字段属性。还有其他方法吗?

2
如何指定要从QGIS导出的字段?
我正在使用QGIS 2.0.1,并且已连接到MS SQL Server具有空间功能的数据库(不是ESRI)。我能够连接到该层并将其加载到我的目录中。我隐藏了一些对于可见性而言并不重要的字段。 现在,我想将该数据导出为另一种数据类型(在此示例中,我们将使用shapefile)。右键单击图层,选择“另存为”并定义输出文件时,出现以下错误: 导出到矢量文件失败。错误:字段GlobalID的不受支持的类型 注1:如果在对话框中选中“跳过属性创建”,则shapefile的创建没有错误。 注意2:ArcGIS不会出现此问题,它只是将GUID字段转换为“ TEXT”类型。 查看表,我隐藏的字段之一是SQL类型< uniqueidentifier > 的GUID ,这很可能是罪魁祸首。为了解决此问题,我将该字段设置为“隐藏”。我本来以为因为该字段是隐藏的,所以QGIS不会尝试导出该字段,但事实并非如此。 您可以定义要从QGIS导出的字段吗? QGIS是否可以仅导出“可见”字段?还是有另一种从QGIS执行此操作的替代方法(也许通过ogr2ogr查询定义字段)?如果我无法定义要导出的字段,这似乎是QGIS的缺点。 更新:我使用一个示例shapefile进行了测试,以查看是否可以限制输出字段。以下ogr2ogr命令行有效并消除了除“名称”之外的所有字段: ogr2ogr -f "ESRI Shapefile" test.shp city.shp -sql "select name from city" 但是使用QGIS并添加: -sql "select name from city" “另存为”对话框的“层”部分中的“否”不会导致仅带有单个字段的shapefile。因此,我真的看不到如何处理文件输出以仅显示选定的几个字段。任何帮助表示赞赏。

6
从数字字段创建格式为“ 1,000'”的标签?
该问题基于我在gis.stackexchange上遇到的上一个问题: 如何使用正则表达式轻松编辑属性数据? 也许有人可以指出我正确的方向? 我有轮廓线的矢量shapefile。在属性表中,我已经将一个名为FEET的字段转换为一个名为Label的字符串字段,该字段由包含高程值的整数数据组成。另外,我成功地在字符串的末尾添加了',以便在标记数据时将其读取为英尺。 我要尝试做的下一件事是仅在字符串的长度大于4的情况下,在字符串的前两个值之间插入逗号,否则,逗号将仅出现在Label字段中的数千个和数百个数字之间。该长度必须大于4,因为我还要计算“ 到目前为止,我的代码是: case when length( "Label") >4 then regexp_replace( "Label", '^([0-9])+([0-9]{3}\')$','$1 , $2') else "Label" end 但是regexp_replace函数似乎在函数的第3个参数中不接受组变量$ 1 $ 2。 我查看了http://docs.python.org/2/library/re.html,因为根据python对regex的使用,据我所知,字段计算器正则表达式是我所了解的,但一直无法弄清楚。使用Mac OSX上的QGIS 1.8中的字段计算器中的此功能,也许我要尝试执行的操作尚无法实现。或者更可能是我的语法错误,因为我是新手程序员,并且对正则表达式有些陌生。

5
使用ArcPy重命名字段?
我需要做什么: 重命名表/功能类的字段名称 将所有值复制到新字段 到目前为止,我已经按照@ artwork21的建议完成了以下代码: import sys import traceback import arcpy from arcpy import env ## ARGUMENTS # argv[1] = input table/feature class path # argv[2] = input old field name # argv[3] = input new field name path = sys.argv[1] oldFieldName = sys.argv[2] newFieldName = sys.argv[3] env.overwriteOutput = True …
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.