กำลังดำเนินการพีชคณิตแผนที่แรสเตอร์ในเว็บโอเพ่นซอร์ส GIS?


9

พีชคณิตแผนที่สำหรับแรสเตอร์เป็นเรื่องง่ายด้วย ArcGIS Raster Calculator (หรือ QGIS) ฉันคิดว่ามันน่าจะง่ายกับเว็บเซิร์ฟเวอร์ GIS เช่น GeoServer และ MapServer รวมถึง OpenLayers เป็นต้น สิ่งที่ฉันต้องการบรรลุคือการทำสิ่งต่าง ๆ อย่างง่าย ๆ เช่นการแบ่งภาพสองภาพและสร้างภาพที่สามอัตราส่วนที่จะแสดงในหน้าเว็บ ฉันใช้เวลาหลายสัปดาห์เพื่อหาทางแก้ไขและมันกลับกลายเป็นเรื่องยาก (สำหรับฉัน)

ฉันได้ลองบางสิ่งรวมไปถึง:

  1. PostGIS raster ฉันคิดว่าพีชคณิตราสเตอร์ไม่ใช่ปัญหาที่นี่

    แต่แรสเตอร์ PostGIS นั้นค่อนข้างยากที่จะโหลดลงใน GeoServer มีคำถามมากมายที่ถามซ้ำ ๆ เกี่ยวกับวิธีโหลด pgraster ใน GeoServer ดูตัวอย่างวิธีนำเข้า GeoTIFF ผ่าน postGIS ไปยัง GeoServer ? , /gis/86006/publish-rasters-stored-in-postgresql-with-geoserverหรือไม่ ไม่ใช่คำตอบเดียวที่นี่ใน GIS.SE หรือเว็บไซต์ทางการของ GeoServer ให้รายการขั้นตอนทั้งหมดที่สามารถปฏิบัติตามได้ การโหลด pgraster ลงใน MapServer ได้รายงานความสำเร็จแล้ว แต่ด้วยประสิทธิภาพที่ช้ามาก ทั้งคู่ดูเหมือนว่าจะต้องมีการปูกระเบื้องและคำสั่งแบบหนึ่งซับเพื่ออิมพอร์ตแรสเตอร์ไปยังเซิร์ฟเวอร์ใดเซิร์ฟเวอร์หนึ่งดูเหมือนว่าไม่ดี

  2. GeoTIFF

    GeoTIFF นั้นง่ายต่อการโหลดลงใน GeoServer และ MapServer แต่เราจะทำอะไรกับมันได้บ้าง หากไม่มี PostGIS เช่น SQL ฉันก็หันไปค้นหาโดยใช้ WCS สั้น ๆ เพื่อทำพีชคณิตแผนที่ แต่ไม่ค่อยพบมากนัก WCS เป็นเส้นทางที่ทำงานได้สำหรับสิ่งนี้กับเซิร์ฟเวอร์ปัจจุบันหรือไม่?

  3. โปรแกรมมันเป็นวิธีที่ยาก

    ใช้ AJAX เพื่อโทรไปหน้า PHP หรือเขียน WPS โดยใช้ GeoServer เพื่อนำเข้ารูปภาพไปยัง PostGIS ทำพีชคณิตแผนที่แล้วแปลง pgraster ผลลัพธ์เป็นรูปแบบ (เช่น GeoTIFF) ที่สามารถโหลดและแสดงใน GeoServer / MapServer ได้อย่างง่ายดาย

  4. แน่นอนว่าเราสามารถเขียนโค้ดเพื่ออ่าน GeoTIFF ได้โดยตรงและทำพีชคณิตแผนที่โดยไม่รองรับ GIS

ไม่มีสิ่งใดในข้างต้นที่ดูเหมือนจะง่ายหรือสมเหตุสมผลสำหรับฉันเมื่อพิจารณาถึงความง่ายในการใช้พีชคณิตเดียวกันใน Desktop GIS

ฉันสงสัยว่ามีบางคนมีประสบการณ์ในการทำ Map Algebra ในสภาพแวดล้อม GIS บนเว็บหรือไม่และสามารถแนะนำเส้นทางที่ทำงานได้?

ฉันสนใจโซลูชันโอเพ่นซอร์ส (ด้วยเหตุผลทางการเมืองภายในองค์กรของฉัน) ฉันทราบว่าเซิร์ฟเวอร์ ArcGIS สามารถเรียกรหัสไพ ธ อนของ ArcGIS ได้ แต่เราไม่มีสิทธิ์ใช้งานและสภาพแวดล้อมที่นี่ไม่เอื้ออำนวยต่อการซื้อ


"มีวิธีที่สมเหตุสมผลหรือไม่" ... เป็นวลีที่พูดไม่ออก (เช่นเช่น "วิธีการ ... " ใช้งานได้ดี) ใส่ชื่อคำถามดังนั้นหากคุณสามารถคิดถึงวิธีที่ดีกว่าในการระบุ คำถามของคุณดีกว่าที่ฉันแนะนำให้ทำ นอกจากนี้ฉันพิจารณาคำว่า "ซอฟต์แวร์" เพื่อรวมการเขียนโปรแกรม API และไลบรารี่เช่น GDAL ดังนั้นโดยการตีความดังกล่าวการพลิกกลับการแก้ไขของฉันอาจไม่จำเป็น อย่างไรก็ตามทำสิ่งที่คุณต้องการถ้าคุณคิดว่ามันชัดเจนคำถามของคุณ
blah238

@ blah238 ขอบคุณสำหรับการแก้ไข :) ฉันอาจจะ verbose แต่ฉันคิดว่ามีวิธีที่จะ ... มันเป็นเพียงว่าพวกเขาดูเหมือนจะไม่มีเหตุผลเมื่อเทียบกับโลก ESRI / Desktop นอกจากนี้คุณยังถูกต้องที่ "ซอฟต์แวร์" สามารถรวม API ได้ ฉันต้องการเน้นว่าการเขียนโค้ดตั้งแต่เริ่มต้นเป็นตัวเลือกหากไม่มีสิ่งใดที่ง่ายต่อการบรรลุพีชคณิตแผนที่
tinlyx

คำตอบ:


4

การใช้ซอฟต์แวร์โอเพนซอร์ซเพียงอย่างเดียวคุณจะต้องเขียนโปรแกรมด้วยตัวเอง GDALเป็นพฤตินัยมาเปิดห้องสมุดแรสเตอร์ I / O เพื่อให้คุณอาจจะต้องใช้มันหรือหนึ่งในหลายห่อ คุณสามารถใช้ Python (เช่นrasterio + numpy / scipy ) หรือ node.js เช่นnode-gdal (แต่ระวังว่ามันเป็นแบบซิงโครนัส / การบล็อก) สำหรับการใช้งานจริงเป็นบริการเว็บฉันไม่แน่ใจว่าสิ่งที่จะเป็นวิธีที่ดีที่สุด แต่มีคำถามที่เกี่ยวข้องที่นี่: การเปรียบเทียบเซิร์ฟเวอร์ GIS โอเพนซอร์สที่แตกต่างกันอย่างไร

หากการเขียนโปรแกรมไม่ได้เป็นสิ่งที่คุณอาจจะดูที่FME เซิร์ฟเวอร์ มันเป็นผลิตภัณฑ์เชิงพาณิชย์ แต่อาจถูกกว่า ArcGIS Server มากและมีหม้อแปลงคำนวณแรสเตอร์ทุกประเภทดังนั้นฉันจะแปลกใจมากถ้าพวกเขาไม่สามารถทำสิ่งที่คุณต้องการได้ คุณจะไม่ต้องโหลดเชิงภาพลงในฐานข้อมูลที่จะสามารถอ่านได้จากเพียงใดเกี่ยวกับรูปแบบไฟล์แรสเตอร์

ส่วนของเซิร์ฟเวอร์จะอนุญาตให้คุณรันการแปลง (พื้นที่ทำงาน FME) บนเซิร์ฟเวอร์และใช้ API เช่นFME Server REST APIเพื่อเริ่มต้นการแปลงเหล่านั้นและเข้าถึงผลลัพธ์

ประโยชน์หลักคือคุณไม่จำเป็นต้องทำอะไรมากหากการเขียนโปรแกรมใด ๆ เพื่อให้บริการและทำงานได้เพียงแค่เขียนโค้ด front-end เล็กน้อยเพื่อทำงานกับ API


+1 ฉันยังคิดเกี่ยวกับ rasdaman ฉันเขียนโปรแกรมได้ แต่ไม่รู้สึกว่ามันถูกต้องหลายปีหลังจากพีชคณิตแผนที่
tinlyx

+1 เพื่อสนับสนุน python + gdal การทำพีชคณิตแรสเตอร์กับ numpy เป็นเรื่องง่าย นอกจากนี้หากคุณกำลังทำงานกับ rasters แบบข้อความ (เช่นไฟล์ .asc) คุณไม่จำเป็นต้องมี gdal (ซึ่งอาจเป็นความเจ็บปวดในการติดตั้งขึ้นอยู่กับ) โดยใช้ numpy.loadtxt (ข้ามแถวส่วนหัวพื้นที่เป็นตัวคั่น ฯลฯ )
user1269942

ด้วย rasdaman คุณมีความสามารถในการใช้ WCPS เพื่อทำการประมวลผลบนเซิร์ฟเวอร์แม้ว่าคุณอาจจะต้องทำสคริปต์บางอย่างเพื่อสร้างไวยากรณ์ WCPS เนื่องจากการทำด้วยมืออาจเป็นเรื่องที่ท้าทาย
nmtoken

2

สิ่งที่คุณกำลังมองหาคือเซิร์ฟเวอร์รูปภาพ ArcGIS สำหรับเซิร์ฟเวอร์มีส่วนขยายนี้:

ArcGIS Image Extension สำหรับเซิร์ฟเวอร์

ฉันไม่ทราบว่าเทียบเท่าโอเพนซอร์สใด ๆ


1
OP ขอวิธีการทำสิ่งนี้ในบริบทเว็บไม่ใช่สำหรับส่วนขยาย ArcGIS
John Powell

2
@ JohnBarçaส่วนขยายที่แนะนำคือ ArcGIS สำหรับเซิร์ฟเวอร์และใช้ในบริบทเว็บ
PolyGeo

@Pau ฉันลืมที่จะพูดว่าฉันเป็นชนิดของข้อ จำกัด ในการใช้โอเพนซอร์ส GIS แต่ขอบคุณสำหรับคำแนะนำ มันมีประโยชน์
tinlyx

1
@TingL คุณสามารถเริ่มมองหาทางเลือกของโอเพ่นซอร์สเซิร์ฟเวอร์ Arcgis
Pau

1

คุณสามารถทำได้ในเบราว์เซอร์ด้วย WebGL:

http://www.html5rocks.com/en/tutorials/webgl/webgl_fundamentals/

แต่มันจะต้องมีการเขียนโปรแกรมบางอย่างและเบราว์เซอร์ที่สอดคล้องกับ WebGL แต่มันควรจะเร็วเพราะมันจะใช้ GPU ในกรณีส่วนใหญ่


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