ฉันจะพัฒนาทักษะการเขียนโปรแกรม GIS ของฉันได้อย่างไร


30

ฉันต้องการพัฒนาทักษะการเขียนโปรแกรม GIS ของฉันฉันจะเริ่มจากตรงไหน? ผู้คนพูดว่าเรียนรู้ C ++ หรือ Python แต่ฉันจะเรียนรู้สิ่งนี้ได้ที่ไหนในบริบททางภูมิศาสตร์ การสอนหรือสิ่งใดก็ตามจะมีประโยชน์มากเช่นเดียวกับข้อมูลเกี่ยวกับภาษา / โปรแกรมที่จะใช้


2
คุณมีความรู้การเขียนโปรแกรมหรือยัง อย่างน้อยคุณควรรู้พื้นฐานก่อนที่จะลองด้วยตัวคุณเองในแวดวง GIS ที่ไม่สำคัญนัก
underdark

เริ่มต้นด้วยงูหลาม arcgis ... มันใช้งานง่าย ตัวอย่างจำนวนมากที่มีอยู่

ฉันเป็นโปรแกรมเมอร์และฉันรู้จักเดลฟาย & D2k ฉันต้องการศึกษาการเขียนโปรแกรม GIS ว่าเป็นไปได้ทางออนไลน์อย่างไร โปรดช่วย

นี่ไม่ใช่คำตอบ หากคุณต้องการถามคำถามให้ถามคำถาม หากคุณต้องการติดตามคำถามนี้ให้ทำเครื่องหมายว่าเป็นรายการโปรดแล้วกลับมาตรวจสอบอีกครั้ง
Branco

คำตอบ:


18

มีโพสต์บล็อกหนึ่งรายการจากMichalis Avraamที่อธิบายถึงทักษะที่จำเป็นในการประสบความสำเร็จในอาชีพ GISซึ่งฉันคิดว่าเขียนได้ดี คุณอาจพบคำแนะนำที่ดีมากมาย

อัปเดต: น่าเสียดายที่ลิงค์ส่วนบนนั้นตาย แต่สามารถพบหัวข้อที่คล้ายกันได้ในบทความวิจัยหนึ่งฉบับระบุความต้องการทักษะสำหรับตำแหน่ง GIS: การวิเคราะห์เนื้อหาของโฆษณาตำแหน่งงาน


1
ลิงก์ Michalis Avraam ด้านบนหักหรือไม่
Umar Yusuf

@UmarYusuf thaks เพื่อแจ้งการเชื่อมโยงที่ตายแล้ว ฉันอัปเดตหนึ่งลิงก์ที่มีหัวเรื่องที่คล้ายกัน
Mario Miler

นี่คือ URL ไปยังโพสต์บล็อกจาก Michalis Avraam - dusk.geo.orst.edu/gis/PPTs/essential_skills.pdf
birdybird03

13

ฉันชอบ Python ของ Chris Garrard สำหรับวัสดุหลักสูตรการประมวลผลทางภูมิศาสตร์ http://www.gis.usu.edu/~chrisg/python/2009/ โดยส่วนตัวแล้วฉันพบว่าการใช้โปรแกรม OGR / GDAL เป็นโปรแกรมที่ขาดไม่ได้

สำหรับการค้นหาสิ่งที่ดีที่สุดสำหรับคุณให้พิจารณาซอฟต์แวร์หรือ geostack ที่คุณต้องการให้เป็นผู้เชี่ยวชาญมากที่สุด (เช่น ArcGIS, QGIS, PostGIS-GeoServer-OpenLayers) จากนั้นเลือกภาษาโปรแกรมที่รองรับการเลือกของคุณได้ดีที่สุด จะสามารถค้นพบได้โดยการตรวจสอบภาษาของ API ที่เกี่ยวข้องหรือแบบฝึกหัดการปรับแต่งอื่น ๆ มีทรัพยากรการเรียนรู้การเขียนโปรแกรมออนไลน์จำนวนมากอยู่และการค้นหาเว็บชุดซอฟต์แวร์ที่คุณต้องการ + ภาษา + "การสอน" จะทำให้คุณได้เรียนรู้

ฉันยังเชื่อใน "การเรียนรู้ด้วยการทำ" ยกตัวอย่างเช่นทำแผนที่ง่าย ๆ ด้วย Javascript และ Google Maps และลองเพิ่มรูปทรงเรขาคณิตสไตล์ส่วนติดต่อผู้ใช้และการวิเคราะห์ที่น่าสนใจ ทำงานเพื่อดูว่าอะไรเป็นไปได้และอะไรที่ไม่ ในขณะที่คุณสร้างคุณจะต้องใช้เครื่องมือที่ซับซ้อนมากขึ้นสำหรับการปรับแต่งและสิ่งนี้จะชี้ไปที่พลาสตอร์มภาษาและห้องสมุดที่เกี่ยวข้อง


10

อย่าเริ่มต้นด้วย C ++ และ GIS โดยไม่ต้องเรียนรู้การพัฒนาซอฟต์แวร์ก่อน มันมากเกินไป

Python เป็นจุดเริ่มต้นที่ดีไม่ว่าคุณจะใช้แพลตฟอร์ม GIS ใดในภายหลัง มีหนังสือเว็บไซต์และอุปกรณ์การฝึกอบรมมากมายและมีวิทยาลัยจำนวนมากที่ใช้ python เป็นบทนำก่อนที่จะเริ่มใช้ภาษาโปรแกรมหนักเช่น c ++ และ java

ทรัพยากรไพ ธ อนที่ฉันชอบ - ด้านนอกของไซต์นี้คือShow Me Do , Think Python , Stack Overflowและรายชื่อผู้รับจดหมายของซอฟต์แวร์ที่ฉันใช้ (ส่วนใหญ่เป็น GDAL และ ArcGIS)


7

ฉันสามารถเรียนรู้ Python โดยนั่งลงกับสำเนา Learning Python โดย Lutz & Ascher (O'Reilly Press) ที่ทำงานของฉันใช้ผลิตภัณฑ์ ESRI เพื่อรับการเชื่อมต่อกับ ArcGIS ฉันสร้างหลายรุ่นโดยใช้ Model Builder ของ ESRI และส่งออกไปยัง Python จากนั้นก็เป็นเพียงเรื่องของการดูสคริปต์ไพ ธ อนที่ส่งออกขุดผ่านหนังสือและใช้ระบบความช่วยเหลือออนไลน์ของ ESRI สำหรับหัวข้อการประมวลผลทางภูมิศาสตร์เพื่อให้ได้แนวคิดที่ดีกว่าเกี่ยวกับวิธีการที่ไพ ธ อนและ ArcGIS ทำงานร่วมกัน


3

มีวิทยาลัย / มหาวิทยาลัยน้อยมากที่เปิดสอนหลักสูตรการเขียนโปรแกรมที่เกี่ยวข้องกับ GIS ฉันขอแนะนำหลักสูตรประกาศนียบัตร GIS ของ Elmhurst College ซึ่งมีสอง (2) หลักสูตรเหล่านี้เป็นส่วนหนึ่งของ GIS Cert ของพวกเขา โปรแกรมทั้งสองที่เกี่ยวข้องกับการเขียนโปรแกรม:

  1. การเขียนโปรแกรม ISG 100 GIS พร้อม ArcObjects
  2. ISG 200 การนำฐานข้อมูลทางภูมิศาสตร์ไปใช้

    http://public.elmhurst.edu/adult/gis

โปรแกรมทั้งหมดออนไลน์และมีเซิร์ฟเวอร์ GIS เฉพาะ พวกเขาสอน Python เป็นหลัก


2

การเขียนโปรแกรมใน GIS เป็นหนึ่งในชุดทักษะที่ระบุไว้ใน The Geospatial Technology Competency Model (GTCM) ซึ่งเพิ่งออกมาและมีชุดทักษะเพิ่มเติมบางอย่างที่อาจเป็นแหล่งอ้างอิงขั้นสุดท้ายสำหรับสิ่งนี้: http://www.careeronestop.org/ competencymodel / blockModel.aspx? tier_id = 4 & block_id = 708 & GEO = Y


และแนะนำให้ GeoTools เป็นชุดเครื่องมือ - ไม่ใช่ว่าเรารู้สึกพอใจในตัวเองหรืออะไรก็ตาม :-)
Ian Turton

2

คำตอบนั้นขึ้นอยู่กับระบบที่คุณใช้และระบบปฏิบัติการที่ทำงานอยู่ ฉันมักจะเขียนโปรแกรม Manifold บน Windows หรือแอพบนเว็บด้วย Manifold ที่แบ็กเอนด์ดังนั้นฉันจึงสามารถเลือกได้จากภาษา. NET C # เป็นตัวเลือกส่วนบุคคลของฉันเพราะตัวอย่างและแบบฝึกหัดส่วนใหญ่ที่คุณจะพบบนเว็บจะเป็น C # (อย่างน้อยสำหรับ. NET)

เมื่อคุณเพิ่งเริ่มออกมาManifoldอาจไม่ใช่ทางเลือกที่แย่ คุณสามารถรับได้ต่ำกว่า $ 300 และพัฒนาโดยใช้ Visual Studio รุ่น 'Express' ฟรี

หากคุณสามารถเจาะจงมากขึ้นเราอาจช่วยคุณได้มากกว่านี้


1

ESRI Virtual Campus เสนอหลักสูตรเบื้องต้นสั้น ๆ เกี่ยวกับการใช้ Python สำหรับการเขียนสคริปต์ใน ArcGIS ฉันคิดว่าหนึ่งในนั้นฟรี การเข้ามาเป็นวิธีที่ดีในการดูว่านี่คือสิ่งที่คุณพร้อมจะดำดิ่งลงไปหรือไม่


1

ทำงานผ่าน ArcMap เพื่อเรียนรู้พื้นฐานของการจัดการวัตถุเชิงพื้นที่ เมื่อคุณพอใจกับการดำเนินการพยายามสร้างกระบวนการด้วย ModelBuilder ตัวสร้างแบบจำลองนั้นเทียบเท่ากับเลโก้ในโลกของ ESRI มันทำให้คุณสามารถสร้างรหัสไพ ธ อนได้ รหัสนี้จะง่ายขึ้น แต่จะใช้งานได้

WingIDE เป็นเครื่องมือที่ทำให้จัดการสคริปต์ python ได้ง่ายเช่นเดียวกับสภาพแวดล้อมที่คาดเดาได้เพื่อทดลองใช้สคริปต์ของคุณ เปิดสคริปต์ตัวสร้างโมเดลใน IDE ที่คุณเลือกและเล่นกับมัน

เป็นภาษาการเขียนโปรแกรมไป Python เป็นผลไม้แขวนต่ำ มันจะนำคุณไปสู่ระดับที่ง่ายขึ้น :-)


0

ฉันประหลาดใจที่PyQGIS Developer Cookbookยังไม่มี ฉันพบว่ามันขาดไม่ได้ในการจับคู่ทักษะ GIS เก่าของฉันและทักษะ Python ใหม่ของฉันโดยเฉพาะอย่างยิ่งไม่ต้องเข้าถึง ArcGIS ในตอนนี้ หากคุณเป็นผู้ที่มุ่งเน้น ArcGIS มากกว่านั้นมีทรัพยากรมากขึ้นสำหรับคุณ

มีรายการโปรแกรมการฝึกอบรม Pythonใน StackOverflow โดยส่วนตัวแล้วฉันชอบCheckioมากกว่า

นอกจากว่าคุณมีพื้นฐานที่แข็งแกร่งในภาษาอื่น (C # สำหรับ ArcGIS, C ++ สำหรับ opensource GIS) ให้เริ่มด้วย Python และเรียนรู้ภาษาอื่น ๆ ในภายหลัง ฟังก์ชั่นที่เกี่ยวข้องกับ GIS ส่วนใหญ่ควรมีไวยากรณ์และการใช้งานที่คล้ายกันใน Python และภาษาเหล่านั้นดังนั้นการเรียนรู้ด้วยความรู้ก่อนหน้าของ Python ไม่ควรยากขนาดนั้น

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