คำถามติดแท็ก fields-attributes

เขตข้อมูลหรือที่เรียกว่าแอตทริบิวต์มีข้อมูลเกี่ยวกับคุณสมบัติ

2
การตั้งค่าเริ่มต้นในฟิลด์ QGIS
ฉันต้องการเพิ่มค่าเริ่มต้นในฟิลด์ของเลเยอร์ ฉันหมายความว่าทุกครั้งที่มีการสร้างคุณลักษณะใหม่ฟิลด์นั้นจะถูกเติมด้วยค่าเริ่มต้นโดยอัตโนมัติ ในกรณีของฉันค่าเริ่มต้นจะเป็นตัวแปร @project_filename (ชื่อไฟล์ของโครงการ) ฉันไม่พบฟังก์ชันการทำงานนี้ทุกที่ ความนับถือ,

1
กำลังเขียนเลเยอร์เวกเตอร์เป็นไฟล์ CSV ด้วยเรขาคณิตโดยใช้ PyQGIS หรือไม่
ฉันใช้ Python พยายามเขียนไฟล์ vector layer ไปยังไฟล์ csv ด้วยรหัสนี้: QgsVectorFileWriter.writeAsVectorFormat(mylayer, r'c:\temp\xyz.csv', "utf-8", None, "CSV") มันสามารถส่งออกไปยัง xyz.csv แต่แสดงเฉพาะคุณลักษณะใน csv ไม่ใช่คอลัมน์รูปทรงเรขาคณิต ฉันจะส่งออกทั้งแอตทริบิวต์และข้อมูลเชิงพื้นที่ไปยังไฟล์ csv ได้อย่างไร

1
กำลังเพิ่มฟิลด์ข้อความที่มีอักขระมากกว่า 255 ตัว?
ฉันกำลังทำงานในโครงการ QGIS ที่ฉันมีรูปร่างไฟล์เลเยอร์ไม่กี่ชั้นพร้อมฟิลด์ข้อความ ฉันต้องการเพิ่มทั้งย่อหน้าเป็นคำอธิบายในฟิลด์ข้อความอย่างไรก็ตามฟิลด์ถูก จำกัด ด้วยความยาวสูงสุดที่อนุญาตซึ่งคือ 255 อักขระ ฉันจะเพิ่มข้อความให้ยาวขึ้นได้อย่างไร ฉันแน่ใจว่าจะต้องมีวิธีที่ฉันไม่ได้พิจารณา ฉันอ่านบางแห่งที่ฉันควรลอง PostGIS เป้าหมายสุดท้ายของโครงการคือการอัปโหลดไปยังเว็บเซิร์ฟเวอร์สำหรับการดูออนไลน์ ดังนั้นฉันไม่แน่ใจว่า PostGIS จะสัมพันธ์กับไฟล์ข้อความขนาดใหญ่กว่านี้ได้อย่างไรสามารถอัปโหลดหรือบันทึกบนเว็บได้ด้วย?

3
การเปลี่ยนประเภทข้อมูลในตารางคุณสมบัติใน QGIS?
ฉันมีข้อมูลเคาน์ตีที่ FIPs (จริง ๆ แล้วรวมรัฐ FIPS และมณฑล FIPS เข้าด้วยกัน) ฉันมีข้อมูลที่นำเข้าเป็น CSV พร้อมกับข้อมูล FIPS ของ sames ที่ชื่อ STCounty อย่างไรก็ตาม Shapefile FIPS แสดงรายการเป็นของจริงและ CSV มาเป็นจำนวนเต็มและฟังก์ชั่นเข้าร่วมดูเหมือนจะไม่ทำงาน กล่องแบบหล่นจะเป็นสีเทา / ว่างเปล่า ดังนั้นคำถามที่ใหญ่กว่าคือคุณจะเปลี่ยนประเภทคุณลักษณะในตารางได้อย่างไร ฉันพยายามสร้างคอลัมน์ใหม่ใน shapefile (เขตข้อมูล) และตั้งค่าเป็นจำนวนเต็มจากนั้นคูณ FIPS * 1 แต่ได้คอลัมน์ที่เต็มด้วย "NULL" ฉันใหม่สำหรับ QGIS และมีประสบการณ์มากมายใน MapInfo ดังนั้นแนวคิดการเข้าร่วมไม่ใช่เรื่องใหม่สำหรับฉันเพียงแค่ไวยากรณ์ใน QGIS

1
วิธีเพิ่มการระบุแหล่งที่มาบนเลเยอร์ GeoJSON จากแผ่นพับ?
ฉันต้องใช้ GeoJSON Layer บนแผนที่ Leaflet ของฉัน นี่คือตัวอย่างรหัสของฉัน: 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"); ทั้งหมดใช้งานได้ ตอนนี้ฉันต้องการเพิ่มที่มาในเลเยอร์ของฉัน แต่อย่างไร

4
วิธีการแปลงฟิลด์สตริงเป็นฟิลด์วันที่
ฉันมีเลเยอร์ที่มีจุดซึ่งแสดงถึงอุบัติเหตุบนท้องถนนที่ร้ายแรงและฟิลด์ "date_14_D" มีวันที่ แต่ประเภทของมันคือสตริง ฉันต้องการแปลงฟิลด์สตริงเป็นฟิลด์วันที่ แต่ปุ่มตกลงไม่ทำงาน มีปัญหาอะไร? ฉันใช้ QGis ดูภาพด้านล่าง

1
เพิ่มเขตข้อมูลและคำนวณนิพจน์ด้วย PyQGIS หรือไม่
ฉันต้องการใช้ PyQGIS เพื่อเพิ่มเขตข้อมูลใหม่และคำนวณค่าสำหรับแต่ละคุณสมบัติ คล้ายกับตัวเลือก Field Calculator นิพจน์ 'Field Calculator' ของฉันเป็นตัวอย่าง: 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() …

1
การกำหนดค่าเซลล์แรสเตอร์ใหม่จากแอตทริบิวต์อื่นในตารางแอตทริบิวต์แรสเตอร์?
ฉันมีชุดข้อมูลแรสเตอร์ความละเอียด 100 ม. ขนาดใหญ่ (ขนาดต่ำกว่า 48 US) ที่มีตารางแอตทริบิวต์แรสเตอร์ (RAT) ข้อมูลถูกสร้างโดยคนอื่น หนึ่งในแอตทริบิวต์ใน RAT มีค่าข้อมูลที่ฉันสนใจในขณะที่ค่าเซลล์ raster จริงนั้นไม่มีความหมาย ฉันพยายามหาวิธีกำหนดค่าของแอตทริบิวต์ที่ฉันสนใจเกี่ยวกับค่าของเซลล์แรสเตอร์จริง แต่ไม่สามารถหาวิธีการทำสิ่งนี้ได้ เหตุผลที่ฉันต้องการทำเช่นนี้คือฉันมีเครื่องมือ Python แบบกำหนดเองที่เกี่ยวข้องอย่างเป็นธรรมซึ่งคนอื่นพัฒนาขึ้นมาเพื่อทำการคำนวณที่ฉันต้องการ แต่น่าเสียดายที่มันไม่มีความสามารถในการใช้แอตทริบิวต์ RAT ใช้เฉพาะค่าที่กำหนดให้กับแรสเตอร์ของเซลล์ซึ่งอย่างที่ฉันบอกในตัวอย่างนี้ไม่มีความหมาย ฉันลองใช้วงเวียนในการรันแรสเตอร์เพื่อชี้เครื่องมือเพื่อสร้างคลาสฟีเจอร์แบบชี้ด้วยฟิลด์เป้าหมายที่เป็นแอททริบิวที่ฉันสนใจโดยคิดว่าฉันสามารถสร้างแรสเตอร์ใหม่จากคลาสฟีเจอร์จุดได้ อย่างไรก็ตาม raster to point tool ไม่สามารถระบุได้ว่าฉันมีหน่วยความจำชั่วคราวไม่เพียงพอ (ฉันใช้เครื่อง Alienware ที่มี RAM ขนาด 16 GB และไดรฟ์ข้อมูล 1 TB) ฉันมีตัวเลือกหรือไม่? ฉันใช้ ArcGIS 10 แต่ถ้าฉันสามารถทำสิ่งที่ฉันอธิบายได้อย่างง่ายดายในแพ็คเกจอื่นฉันยินดีที่จะลองวิธีอื่น (ฉันไม่ได้แต่งงานกับ ArcGIS)

1
การกำหนดชื่อเขตพื้นที่รูปร่าง
ฉันกำลังจัดการกับความหลากหลายของไฟล์รูปหลายเหลี่ยมเชิงพื้นที่ (shapefiles, ไฟล์ / คุณสมบัติส่วนบุคคล gdb ชั้นเรียน, คุณลักษณะชั้นเรียน sde (บางส่วนที่มีมุมมองเชิงพื้นที่)) และขึ้นอยู่กับประเภทไฟล์ที่ฉันได้รับ ฟิลด์ที่ต้องการไม่ใช่ฟิลด์ที่สร้างขึ้น) ตัวอย่างเช่นชื่อฟิลด์จะแตกต่างจาก "Shape_Area", "SHAPE_Area", "SHAPE.AREA", "GEOMETRY_Area", "GEOMETRY.AREA" ฉันเขียนสคริปต์หลามเพื่อดึงพื้นที่ของคลาสคุณลักษณะเหล่านี้ทั้งหมดและฉันจะทำบางสิ่งตามบรรทัดของ: for field in arcpy.ListFields(fc): if field.name in ["Shape_Area", "SHAPE_Area", "SHAPE.AREA", "GEOMETRY_Area", "GEOMETRY.AREA"]: do something ฉันสงสัยว่ามีวิธีที่ฉลาดกว่าในการดึงฟิลด์รูปร่างออกมาแทนที่จะแสดงรายการทุกวิธีที่สามารถตั้งชื่อได้หรือไม่ ดูเหมือนจะไม่มีคุณสมบัติเขตข้อมูลสำหรับสิ่งที่ต้องการพื้นที่ มีวิธีอื่นในการทำเช่นนี้หรือไม่?

2
วิธีระบุฟิลด์เพื่อส่งออกจาก QGIS
ฉันใช้ QGIS 2.0.1 และกำลังเชื่อมต่อกับฐานข้อมูล MS SQL Server ที่เปิดใช้งานเชิงพื้นที่ (ไม่ใช่ ESRI) ฉันสามารถเชื่อมต่อกับเลเยอร์และโหลดลงใน TOC ของฉันได้ ฉันได้ซ่อนเขตข้อมูลจำนวนหนึ่งซึ่งไม่สำคัญสำหรับการมองเห็น ตอนนี้ฉันต้องการส่งออกข้อมูลไปยังประเภทข้อมูลอื่น (เราจะใช้ shapefile สำหรับตัวอย่างนี้) เมื่อฉันคลิกขวาที่เลเยอร์เลือก "บันทึกเป็น" และกำหนดไฟล์ผลลัพธ์ฉันได้รับข้อผิดพลาดต่อไปนี้: การส่งออกเป็นไฟล์เวกเตอร์ล้มเหลว ข้อผิดพลาด: ประเภทที่ไม่สนับสนุนสำหรับฟิลด์ GlobalID หมายเหตุ 1 : ถ้าฉันทำเครื่องหมาย "ข้ามการสร้างแอททริบิวต์" ในกล่องโต้ตอบไฟล์รูปร่างจะถูกสร้างขึ้นโดยไม่มีข้อผิดพลาด หมายเหตุ 2 : ArcGIS ไม่มีปัญหานี้เพียงแปลง GUID ฟิลด์เป็นประเภท "TEXT" หนึ่งในฟิลด์ที่ฉันซ่อนไว้คือ GUID ของ SQL type < uniqueidentifier > ซึ่งเป็นผู้กระทำผิด ในความพยายามที่จะแก้ไขปัญหานี้ฉันสร้างฟิลด์ "ซ่อน" …

6
สร้างป้ายกำกับที่จัดรูปแบบเช่น“ 1,000 '” จากฟิลด์ตัวเลขหรือไม่
คำถามนี้สร้างจากคำถามก่อนหน้านี้ที่พบใน gis.stackexchange: วิธีแก้ไขข้อมูลแอตทริบิวต์อย่างง่ายดายโดยใช้นิพจน์ปกติ บางทีใครบางคนสามารถชี้ให้ฉันในทิศทางที่ถูกต้อง? ฉันมีไฟล์รูปร่างเวกเตอร์ของเส้นชั้นความสูง ในตารางคุณลักษณะฉันได้แปลงเขตข้อมูลที่ชื่อว่า FEET ซึ่งประกอบด้วยข้อมูลจำนวนเต็มที่มีค่าระดับความสูงเป็นเขตข้อมูลสายอักขระที่ชื่อว่า Label นอกจากนี้ฉันผนวกท้าย 'เพื่อสิ้นสุดของสตริงเพื่อให้เมื่อมีการติดป้ายข้อมูลมันจะถูกอ่านเป็นฟุต สิ่งต่อไปที่ฉันพยายามทำคือการใส่เครื่องหมายจุลภาคระหว่างสองค่าแรกของสตริงเฉพาะเมื่อความยาวของสตริงมากกว่า 4 หรือเครื่องหมายจุลภาคจะปรากฏระหว่างหลักพันและหลักร้อยในฟิลด์ป้ายกำกับเท่านั้น ความยาวต้องมากกว่า 4 เพราะฉันยังนับ ' รหัสของฉันคือ: case when length( "Label") >4 then regexp_replace( "Label", '^([0-9])+([0-9]{3}\')$','$1 , $2') else "Label" end อย่างไรก็ตามฟังก์ชั่น regexp_replace ดูเหมือนจะไม่ยอมรับตัวแปรกลุ่ม $ 1 $ 2 ในพารามิเตอร์ที่ 3 ของฟังก์ชัน ฉันดูที่http://docs.python.org/2/library/re.htmlเนื่องจากเครื่องคำนวณภาคสนามนั้นมาจากสิ่งที่ฉันเข้าใจตามการใช้ regex ของไพ ธ อน แต่ก็ไม่สามารถเข้าใจได้ บางทีสิ่งที่ฉันพยายามจะทำยังไม่สามารถทำได้ด้วยฟังก์ชั่นนี้ในเครื่องคิดเลขภาคสนามใน …

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 = …
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.