ระบบสารสนเทศทางภูมิศาสตร์

ถามตอบสำหรับนักทำแผนที่นักภูมิศาสตร์และผู้เชี่ยวชาญด้าน GIS

1
ทำไมช่อง @ data @ values ​​สำหรับ RasterLayer มีเพียงลอจิคัล (0) และไม่ใช่ค่าจริง
พยายามไปถึงจุดต่ำสุดของเหตุผลเมื่อฉันอ่านในแรสเตอร์ของ NDVI ช่อง @ data @ values ​​ไม่ได้มีค่าจริงจนกว่าฉันจะตั้งค่าด้วยตนเอง ตัวอย่างเช่น: NDVI <- raster("./filename.tif", crs="+proj=longlat +datum=WGS84") NDVI@data@values ## returns: logical(0) สิ่งนี้ไม่ได้เกิดขึ้นกับแรสเตอร์อื่น ๆ ที่ฉันโหลดด้วยวิธีเดียวกันดังนั้นฉันจึงสับสน ฉันหวังว่าฉันจะเฉพาะเจาะจงมากขึ้น แต่ฉันจำไม่ได้ว่าทำอะไรที่แตกต่างมาก่อน ง่ายพอที่จะรับค่าด้วยตนเองโดยใช้: NDVI1@data@values <- getValues(NDVI19east) แต่มันก็เป็นความเจ็บปวดที่ต้องทำสำหรับไฟล์ทุกไฟล์ ดังนั้นคำถามสองส่วน: ทำไมสิ่งนี้ถึงเกิดขึ้นตั้งแต่แรก? ฉันเข้าใจว่าอาจมีบางอย่างเกี่ยวกับวิธีการจัดเก็บไฟล์แรสเตอร์ (เช่นไม่ว่าจะอยู่ในหน่วยความจำหรือไม่ก็ตาม) แต่ฉันไม่เข้าใจจริง ๆ ว่าการเปลี่ยนแปลงวิธีการที่ฉันควรใช้ในการเข้าถึงข้อมูล ... มีวิธีทำให้กระบวนการนี้เป็นอัตโนมัติ (อาจใช้วิธีที่คล้ายกับ lapply) เพื่ออ่านไฟล์ในรูปแบบ RasterLayers และเข้าถึงค่าสำหรับไฟล์เหล่านั้นหรือไม่? โครงการปัจจุบันของฉันเกี่ยวข้องกับการอ่านครั้งละ 6-10 ไฟล์สำหรับ NDVI, ปริมาณน้ำฝนและตัวแปรสภาพแวดล้อมอื่น ๆ เพื่อรวมเข้าด้วยกันและทำงานซ้อนทับแบบถ่วงน้ำหนัก มันจะเป็นประโยชน์ในการทำให้กระบวนการนำเข้าข้อมูลเป็นไปโดยอัตโนมัติ
12 raster  r  memory 

1
ฉันจะรักษาเลเยอร์ที่จางหายไปเมื่อทำการโมเสคภาพด้วย gdal ได้หรือไม่?
ฉันกำลังทำการโมเสกภาพบางภาพด้วย gdal และต้องการปรับปรุงผลลัพธ์ขั้นสุดท้ายโดยใช้เลเยอร์อัลฟาที่ค่อยเป็นค่อยไป / ค่อยเป็นค่อยไปไปที่ขอบของภาพแต่ละภาพเพื่อลบขอบคมที่อยู่ตรงกลางของโมเสก ปัญหาที่ฉันมีอยู่ก็คือส่วนของภาพแต่ละภาพที่มีเลเยอร์ทีละส่วนกำลังปิดบังภาพที่อยู่ด้านล่างในโมเสกสุดท้ายแทนที่จะเป็นกึ่งโปร่งใสดังที่แสดงด้านล่าง: เป็นการดีที่ฉันต้องการภาพหนึ่งภาพที่จะจางหายไปในครั้งต่อไปโดยใช้ความโปร่งใสแบบค่อยเป็นค่อยไป ขั้นตอนที่ฉันดำเนินการเพื่อสร้างโมเสกมีดังนี้: เพิ่ม gcps ให้กับภาพต้นฉบับเพื่อระบุตำแหน่งทางภูมิศาสตร์และปรับทิศทางให้เหมาะสม (ทำกับแต่ละภาพตามลำดับ): gdal_translate -of GTiff -a_srs EPSG:4326 -a_srs EPSG:4326 -gcp 1616 0 -88.2728612066 40.5175787437 -gcp <etc., etc.> <original_image_with_gradual_alpha>.tif <image_with_gradual_alpha_and_gcps>.tif วางภาพลงใน geotiffs ใหม่ที่วางอย่างเหมาะสม (ทำตามแต่ละภาพ): gdalwarp -s_srs EPSG:4326 -t_srs EPSG:4326 -dstnodata 0 <image_with_gradual_alpha_and_gcps>.tif <warped_geotiff_with_alpha>.tif รวมภาพที่บิดเบี้ยวทั้งหมดเข้าด้วยกันเป็นภาพโมเสคเดียว: gdalbuildvrt -srcnodata 0 mosaic.vrt <warped_geotiff_with_alpha_root>*.tif gdal_translate mosaic.vrt …

4
ฉันจะเชื่อมต่อฉลากและจุดด้วยเส้น / ลูกศรได้อย่างไร
เป็นไปได้ไหมที่ QGIS จะเชื่อมต่อฉลากและจุดด้วยเส้น / ลูกศรหรือบางสิ่ง? ในแผนที่ของฉันมันไม่ชัดเจนว่าป้ายกำกับไปด้วยจุดใด ฉันไม่สามารถนำมันเข้ามาใกล้เพราะมีจุดอีกมากที่จะมา
12 qgis  labeling 

2
รูปหลายเหลี่ยมเชิงพื้นที่% over% รูปหลายเหลี่ยมทำงานอย่างไรเมื่อรวมค่าใน r
ฉันกำลังทำงานในโครงการระบาดวิทยาด้านสิ่งแวดล้อมที่ฉันมีจุดรับสัมผัส (~ 2,000 HHO - IHOs) IHO เหล่านี้ฉีดพ่นในบริเวณใกล้เคียง แต่หยดน้ำและกลิ่นอุจจาระสามารถเดินทางได้หลายไมล์ ดังนั้นการเปิดเผยจุดเหล่านี้จะได้รับบัฟเฟอร์ 3mi และฉันต้องการทราบจำนวนการเปิดรับ IHO (ชนิดต่าง ๆ - ผลรวมของจำนวนมูล, จำนวนหมู, อะไรก็ตามที่ง่ายที่สุดเพียงจำนวนบัฟเฟอร์การสัมผัสซ้อนทับ) ต่อบล็อกสำรวจ NC (~ 200,000) บล็อกการสำรวจสำมะโนประชากร (สีฟ้า) คืออะไร (1) ในเมืองที่มีประชากรมากที่สุด 5 อันดับแรกและ (2) มณฑลที่ไม่ติดกับเขตที่มี IHO อยู่ในนั้น (หมายเหตุ: ทำด้วยฟังก์ชัน gRelate และรหัส DE-9IM - เนียนมาก!) ดูภาพด้านล่างสำหรับภาพ ขั้นตอนสุดท้ายคือการรวมการแสดงแสงที่บัฟเฟอร์เข้ากับบล็อกการสำรวจสำมะโน ที่นี่ฉันอยู่นิ่งงัน ฉันมีช่วงเวลาที่ดีกับฟังก์ชั่น% over% ในแพคเกจ sp จนถึงตอนนี้ แต่เข้าใจจากบทความสั้น …

2
ชี้จุดลงบนแผนที่ใน R (เช่นกับ ggplot2) - วิธีผลักจุดไปด้านข้างทำเครื่องหมายตำแหน่งเดิมรวมจุดที่อยู่ใกล้ ...
ฉันมีฐานข้อมูลที่ประกอบด้วยภาษาลองจิจูดและละติจูดและค่าคุณสมบัติ (ทั้งประเภท 1, ประเภท 2 หรือทั้งสองอย่าง - ในพล็อตเหล่านี้จะมีสีแดงน้ำเงินและเขียวตามลำดับ) อาจมีมากถึงสามจุดต่อภาษาและโดยปกติแล้วคะแนนภาษาสองจุดอาจอยู่ใกล้กันมาก name longitude latitude sp_sum 1 Modern Armenian 45 40 both 2 Modern Armenian 45 40 both 3 Modern Armenian 45 40 spatial 4 Dieri 138 -28.1667 both 5 Dieri 138 -28.1667 both 6 Finnish 25.5577 64.7628 non-spatial 7 Crimean Tatar 28.1418 …

2
ทำ shapefile จากดาต้าดาต้าเฟรม
ฉันต้องการสร้าง shapefile จากเฟรมข้อมูล Pandas โดยใช้แถว lon & lat ฉันมีไฟล์ csv และฉันประมวลผลด้วยแพนด้าเพื่อทำเฟรมข้อมูลซึ่งง่ายต่อการจัดการ มันเป็นไปได้ไหมที่จะทำอย่างนั้นโดยไม่ต้องทำ loop loop ทีละบรรทัด

3
สร้าง Isochrones ใน QGIS หรือไม่
ฉันยังใหม่กับ QGIS และได้พยายามสร้าง isochrones รอบ ๆ จุดมาระยะหนึ่งแล้ว มีตัวเลือกในการสร้าง isochrones บน GUI ใน QGIS หรือไม่? ฉันรู้วิธีสร้างพวกเขาโดยใช้ pgAdmin (โดยใช้คำอธิบายและตัวอย่างของ underdark ( http://anitagraser.com/2011/02/09/creating-catchment-areas-with-pgrouting-and-qgis/ ) แต่ฉันต้องการ ต้องการสร้างโดยใช้ QGIS เท่านั้น มีเลเยอร์หนึ่งซึ่งมีที่อยู่ทางภูมิศาสตร์ที่ฉันต้องสร้าง มันจะดีมากถ้าฉันสามารถสร้าง isochrones ที่มีขนาดแตกต่างกันฉันได้พยายามหาปลั๊กอินหรือตัวเลือกอื่น ๆ เพื่อทำสิ่งนี้ แต่ดูเหมือนจะไม่มีอะไรทำงาน ฉันใช้ QGIS 2.4.0 บน Ubuntu

3
เป็นไปได้หรือไม่ที่จะใช้เลเยอร์หน่วยความจำในอัลกอริทึมการประมวลผล QGIS?
ฉันกำลังสร้างปลั๊กอิน QGIS ที่เชื่อมต่อกับฐานข้อมูล MySQL ในเครือข่ายท้องถิ่นแล้วเพิ่มส่วนย่อยของหนึ่งในตารางไปยังเลเยอร์ในหน่วยความจำ เซตย่อยจะขึ้นอยู่กับสกุลเงินของข้อมูล (ทำการสังเกตล่าสุดสำหรับแต่ละตำแหน่งที่ทำการวัดเท่านั้น) สร้างเลเยอร์หน่วยความจำนี้สำเร็จ อย่างไรก็ตามฉันต้องการเรียกใช้อัลกอริทึมการประมวลผลทางภูมิศาสตร์บางอย่างและฉันมีปัญหาในการใช้เลเยอร์ในหน่วยความจำในส่วนใด ๆ ของพวกเขา self.stationuri = "point?crs=epsg:4326&field=id:integer&field={}:double&index=yes".format(self.cb_field.currentText()) self.vlayer = QgsVectorLayer(self.stationuri,"scratch","memory") if not self.vlayer.isValid(): raise Exception("Failed to create in-memory layer") self.vlayer.startEditing() for i,r in enumerate(result): # Result is row-by-row result of SQL query # Add features ... self.vlayer.commitChanges() self.vlayer.updateExtents() # Add layer to map …

4
วิธีสร้างแบบจำลองสุสาน - หนึ่งจุดต่อผู้เสียชีวิตหรือหนึ่งจุดต่อหลุมฝังศพ? [ปิด]
ปิด คำถามนี้จะต้องมีมากขึ้นมุ่งเน้น ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้มุ่งเน้นที่ปัญหาเดียวโดยแก้ไขโพสต์นี้ ปิดให้บริการใน4 ปีที่แล้ว นี่คือความต่อเนื่องของคำถามก่อนหน้าของฉันเกี่ยวกับโครงการของเราเกี่ยวกับวิธีการได้รับทางเศรษฐกิจด้วยการใช้งานสุสานในระบบ GIS ... บนสุสานเราสามารถหาได้ หลุมศพปกติ: มากถึง 2 คน หลุมศพของครอบครัว: มากกว่า 2 คนขึ้นไป 20 คน (พี่น้องจากการชุมนุมคาทอลิก…) อนุสาวรีย์สงคราม: ประมาณ 30 คน พื้นที่กระจายเถ้า: ไม่ จำกัด จำนวนเริ่มต้นด้วย 100 คน ช่องที่มีการฝังศพ: มากถึง 2 ต่อจุด ผนังฝังศพ Urns: สูงถึง 3 ดังนั้นวิธีที่ดีที่สุดที่จะไปคือการกำหนด: แต่ละคนเป็นวัตถุจุด แต่ละหลุมฝังศพเป็นวัตถุจุดบุคคลที่เป็นส่วนหนึ่งของคุณลักษณะ ฉันจะเลือกสำหรับแต่ละบุคคลเป็นวัตถุจุด: ไฟล์ CSV หนึ่งไฟล์สำหรับทุกคน คอลัมน์อาจเป็นตัวอย่าง: FirstName - …

3
ต้องเพิ่มหลายเลเยอร์อย่างรวดเร็วจากหลาย ๆ โฟลเดอร์ไปยังโครงการ QGIS
ฉันดาวน์โหลดไฟล์ซิปภาพหลายภาพ (เนื้อหาของแต่ละไฟล์คือ jp2, jpg, jpw, xml, htm และ. dbf, .prj, .sbn, .sbx, .shp, .shx) และต้องการเพิ่มภาพนี้อย่างรวดเร็ว โครงการทำงานของฉันใน QGIS 2.6.1 ฉันพยายามหลีกเลี่ยงการนำทางและเพิ่มแต่ละไฟล์แยกกัน เนื่องจากแต่ละไฟล์อยู่ในโฟลเดอร์ที่แตกต่างกันฉันจึงไม่สามารถหาวิธีเพิ่มหลายไฟล์พร้อมกันได้


1
การเพิ่มช่องค้นหาลงในตัวอย่าง Leaflet.js
ลองพิจารณาตัวอย่างในการเชื่อมโยงต่อไปนี้สำหรับFolium : การสร้างภาพการจ้างงานสหรัฐต่อเขต ผลลัพธ์ดูเหมือนสิ่งที่คุณเห็นด้านล่าง: ฉันต้องการเพิ่มช่องค้นหาลงในกล่องเพื่อให้สามารถค้นหาแยกตามเมืองและมีการขยายการแสดงภาพประกอบเพลงและ / หรือจัดกึ่งกลางภาพ ฉันจะเพิ่มช่องค้นหาลงในช่องค้นหาได้อย่างไร ฉันสามารถเพิ่มฟังก์ชั่นนี้ในไฟล์ HTML ได้ไหม?
12 leaflet  search 

1
วิธีการมองเห็นค่าการวัดตาม linestrings ใน QGIS
ฉันมีรูปทรงเรขาคณิตของ LineStringM ค่าการวัดแสดงถึงความลาดชัน (หรือการไล่ระดับสีของกระแสน้ำ) ที่แต่ละจุดในเรขาคณิต ฉันชอบตัวเลือกการจัดแต่งทรงผมที่แข็งแกร่งของ QGIS แต่ฉันไม่สามารถหาวิธีที่จะทำให้ค่าการวัดแต่ละค่าไปตามการเคลื่อนไหวของฉัน เป็นการดีที่ฉันจะมีสีฟ้าสำหรับการไล่ระดับสีช้าและสีแดงสำหรับการไล่ระดับสีที่สูงชันมาก เพื่อช่วยให้เข้าใจสิ่งที่ฉันพยายามทำให้สำเร็จสมมติว่าเราได้ใช้การอ้างอิงเชิงเส้นเพื่อเข้ารหัสความยาวของ LinestringM ที่ผ่านมาจนถึงค่าการวัดของแต่ละจุด ที่ด้านบนสุดคุณจะมี 1.0 และที่ด้านล่างคุณจะได้ 0.0 ฉันได้เพิ่มภาพสิ่งที่ฉันหวังว่าจะทำให้สำเร็จด้านล่าง ฉันทำสิ่งนี้ใน Paint.NET ดังนั้นมันจึงเป็นแค่เรื่องจำลอง เชื่อมโยงโดยตรงกับภาพ คุณจะทำสิ่งนี้ให้สำเร็จใน QGIS ได้อย่างไร?
12 qgis  postgis  style 

1
การตรวจจับด้านหน้าของภาพ sst & Chlorophyll
ฉันกำลังทำงานกับภาพถ่ายดาวเทียมที่มีอุณหภูมิผิวน้ำทะเลและกำลังมองหาการไล่ระดับสีในโอเพนซอร์สบนพื้นฐานของอุณหภูมิ มีเครื่องมือใด ๆ เช่นเครื่องมือตรวจจับด้านหน้า Cayula และ Cornillon ของ ArcGIS [1]ที่อาจช่วยได้หรือไม่ วิธีหนึ่งที่แนะนำให้ฉันคือการใช้ตัวกรองผ่านสูงและเส้นขอบ แต่ในทั้งสองกรณีฉันไม่สามารถวาดเส้นบนด้านหน้าอุณหภูมิที่เฉพาะเจาะจง ในตัวกรอง High Pass นั้นกำลังตรวจจับขอบทั้งหมดที่ฉันไม่ได้สนใจ ฉันค้นหาเครื่องมือใน QGIS (หรือโอเพนซอร์ซ) ที่: ระบุการไล่ระดับสี (ด้านหน้า) ตามอุณหภูมิ วาดเส้นและ สร้าง shapefile ตามคำขอของผู้วิจารณ์: เครื่องมือตรวจจับด้านหน้าของ Cayula Cornillon ตรวจจับ SST ด้านหน้าจากข้อมูล SST ดาวเทียมโดยอัตโนมัติ เอกสารต้นฉบับมีการเผยแพร่ที่นี่: Cayula, JF, & Cornillon, P. (1992) อัลกอริทึมการตรวจจับขอบสำหรับภาพ SST วารสารเทคโนโลยีบรรยากาศและมหาสมุทร, 9 (1), 67-80 นี่คือชุดข้อมูลตัวอย่าง: https://www.dropbox.com/s/rtxhln299szonb1/may25.csv?dl=0

3
การเปลี่ยนการตั้งค่าซูมล้อเลื่อนของเมาส์ใน QGIS?
ฉันมีปัญหากับการตั้งค่าการซูมล้อเลื่อนของเมาส์บนแทร็กแพดของ macbook การซูมเกิดขึ้นเร็วเกินไปสำหรับความแม่นยำในทุกระดับ ฉันบันทึกความคิดเห็นนี้ในบันทึกของ dev: 2004-08-14 [gsherman] 0.4.0devel9 เพิ่มการซูมล้อเม้าส์ การเลื่อนล้อไปข้างหน้าซูมเข้าด้วย 2 เท่า ฉันจะเปลี่ยนการตั้งค่าเพื่อให้การซูมเกิดขึ้นด้วยปัจจัย 1 หรือ. 5 ได้อย่างไร ฉันใช้ QGIS 2.6 ไบรตัน
12 qgis  zoom 

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