Tìm kiếm nền tảng GIS tùy biến cao? [đóng cửa]


9

Tôi đã được đào tạo về GIS bằng ArcGIS (Máy tính để bàn và máy trạm) và đã nghiên cứu với nó với (rất) những cái nhìn ngắn ở MapInfo và uDig. Trong thời gian đó, tôi hài lòng với chương trình vì tôi đã sử dụng các cơ sở dữ liệu tương đối nhỏ và không thực hiện nhiều nhiệm vụ lặp lại và ArcGIS có rất nhiều công cụ tuyệt vời để phân tích dữ liệu khoa học.

Hai năm nay, kể từ khi tốt nghiệp, tôi đã làm việc trong một công ty với quy mô hoàn toàn khác. Tôi xử lý các cơ sở dữ liệu khổng lồ, thực hiện các nhiệm vụ tương đối "đơn giản" hơn, nhưng hơn nữa chúng bao gồm các nhiệm vụ lặp đi lặp lại (tôi thực hiện một loạt các nhiệm vụ đơn giản mỗi tuần một lần cho toàn bộ cơ sở dữ liệu). Trong thời gian này, tôi đã sử dụng AutoCAD (rất nhiều dữ liệu của chúng tôi được rút ra bằng AutoCAD) và đã đánh giá cao nó rất nhiều - Ưu điểm lớn nhất là sử dụng ngôn ngữ Lập trình LISP và sử dụng các biến hệ thống mà bạn có thể kiểm soát toàn bộ rất nhiều cài đặt - cho dù nó liên quan đến việc tùy chỉnh giá trị mặc định cho công cụ, loại bỏ việc sử dụng các hộp thoại trong chương trình hoặc các tùy chọn để kịch bản mở tự động và thao tác bản vẽ.

Có bất kỳ nền tảng GIS nào ngoài đó, miễn phí hay không, có mức độ tùy biến cao này, hoặc tôi có cam chịu với công việc thủ công nản lòng không?

Tôi thích các nền tảng có giao diện người dùng tốt cùng với các tùy chọn tập lệnh, nhưng đó không phải là điều bắt buộc.


6
có những nhiệm vụ trong ArcGIS có thể được tạo kịch bản và có thể tự động hóa, những nhiệm vụ khác chắc chắn là không và một phạm vi ở giữa. Dito cho tất cả các nền tảng khác. Nếu bạn có thể đưa ra ví dụ về các loại lao động thủ công bạn muốn tránh, có thể có một số câu trả lời hữu ích cụ thể.
matt wilkie

@PolyGeo bạn có biết đây là câu hỏi 7 năm mà bạn cần chỉnh sửa không?
Nicklas Avén

@ NicklasAvén Tôi chắc chắn không yêu cầu nó phải được chỉnh sửa. Tôi chỉ đơn giản là đã bình chọn cho nó được đóng lại để nó không được xem là một câu hỏi được coi là phù hợp để hoạt động như một mô hình cho một câu hỏi tương tự sẽ được hỏi ngày hôm nay. Để thử và giải quyết một số lý do tại sao tôi nghĩ đó là trường hợp tôi đã tự mình thực hiện một số chỉnh sửa. Liệu các câu hỏi cũ như vậy có nên được đóng lại hay không được thảo luận tại meta.stackexchange.com/a/194117/215590
PolyGeo

Câu trả lời:


5

Tôi không đủ kinh nghiệm để đưa ra câu trả lời từ rất nhiều khía cạnh, nhưng ... tôi đã làm những điều đầu tiên của mình về GIS trong ArcView 3.x viết ở Avenue. Tôi thực sự thích tốc độ và khả năng. Sau đó, tôi chưa bao giờ hiểu được niềm vui khi chờ ArcGIS bắt đầu, tìm kiếm công cụ phù hợp và sau đó tìm công cụ tôi cần, cần ArcInfo.

Tình yêu mới của tôi là PostGIS. Nó là rất nhiều hơn một cơ sở dữ liệu để lưu trữ. Chức năng tích hợp cho phép thực hiện tất cả các xử lý và phân tích mà tôi đã sử dụng cho đến nay. Trong hầu hết các trường hợp, nó nhanh hơn rất nhiều so với các sản phẩm Arc.

Trong thế giới nguồn mở, bạn sẽ không nhận được một giải pháp cho mọi thứ nhưng có các dự án và phần mềm đáp ứng mọi nhu cầu của bạn.

Như tôi đã nói, tôi xử lý và phân tích trong PostGIS. Tôi có thể lưu trữ các truy vấn sql trong các tệp văn bản để sử dụng lại (giống như bất kỳ công cụ nào trong phần mềm khác nhưng minh bạch hơn nhiều). Bạn có thể viết các hàm bằng nhiều ngôn ngữ khác nhau như plpgsql (một ngôn ngữ PostgreQuery đặc biệt) Python, pLR, C và nhiều ngôn ngữ khác.

Đối với GIS máy tính để bàn, tôi sử dụng chủ yếu là QGIS. Những gì không có trong cốt lõi của QGIS là trong các phần mở rộng. Nếu điều đó là không đủ, bạn có thể viết phần mở rộng của riêng mình bằng Python và tôi cũng nghĩ là C ++)

Nếu bạn đã quen với uDig thì tất nhiên đó là một sự thay thế.

Nếu bạn muốn thực hiện một số ánh xạ web, bạn có thể thử MapServer. Mapserver đã giành được điểm chuẩn lớn trong hội nghị FOSS4G năm nay trong việc phục vụ WMS. Esri không muốn tham gia trong năm nay. Năm ngoái họ đã đăng ký tham gia nhưng chưa bao giờ làm. Năm nay họ thậm chí không đăng ký.

GeoServer là một lựa chọn khác để phục vụ bản đồ web. Nó rất thân thiện với người dùng và phục vụ rất nhiều định dạng khác nhau. Nó cũng xử lý WFS-T để bạn có thể chỉnh sửa dữ liệu bản đồ và gửi các chỉnh sửa trở lại máy chủ.

Nếu bạn muốn một máy chủ WFS-T gọn nhẹ và rất nhanh, bạn nên xem qua Tiny-OWS

Vâng, danh sách này có thể là phần mềm có thẩm quyền cùng với việc xây dựng một bộ phần mềm rất mạnh và tất nhiên có thể tùy chỉnh.

Tôi có nghĩa là nó có thể tùy biến nhiều hơn. Bạn có quyền truy cập vào tất cả các mã nguồn. Và với số tiền bạn tiết kiệm được khi không trả phí hàng năm cho Esri, bạn có thể lấy một số chương trình miễn phí và học lập trình hoặc thuê một lập trình viên. Bạn sẽ nhận được rất nhiều mã hóa trong các dự án đó với chi phí cho giấy phép ArcGIS Server.


12

Tôi không đông y vơi bạn.

Tôi nghĩ rằng trợ giúp / diễn đàn / blog / vids / vv của ArcGIS đưa ra một viễn cảnh tuyệt vời về những gì bạn có thể đạt được với loạt sản phẩm ArcGIS.

Bạn không bị giới hạn đối với Python để thao tác dữ liệu không gian của bạn. Bạn vẫn có thể sử dụng VBA tại 931 và 10 để truy cập thư viện ArcObjects hoặc bạn có thể tiến thêm một bước và sử dụng .NET để làm tất cả mọi thứ, và điều này một lần nữa được ghi lại.

Tôi cũng nghĩ rằng các phím tắt cho ArcGIS Desktop rất tuyệt và bạn có thể tạo các phím tắt của riêng mình thông qua hộp thoại Tùy chỉnh nếu cần.

Nếu bạn không muốn học cách viết mã, thì còn có ModelBuilder , đây là một cách tuyệt vời để tự động hóa các tác vụ tẻ nhạt / quy trình công việc chung, đặc biệt là xử lý địa lý .

Tôi đang bị thiên vị, nhưng tôi có kinh nghiệm với các sản phẩm khác.

Tôi biết rằng Python không có khả năng cung cấp các giao diện dễ điều chỉnh để trình bày cho người dùng, nhưng như tôi đã đề cập, với VBA / .NET, bạn có thể kết hợp các biểu mẫu giàu nội dung để cung cấp giao diện tùy chỉnh cho người dùng thực hiện những gì họ cần làm

  • Với .NET, bạn có thể tạo kịch bản chống lại MXD (ví dụ: Lặp qua thư mục MXD và mở từng MXD, thực hiện một số nội dung, sau đó chuyển sang MXD tiếp theo
  • Thao tác các giá trị mặc định trong dữ liệu không gian của bạn cũng có thể đạt được với ArcObjects.

Kỹ năng lập trình của tôi rất tốt, nhưng tôi không phải là đối thủ của một lập trình viên có học thức (nhưng tôi đang trở nên tốt hơn mỗi ngày). Điều đó đúng với Python / VBA. Thật không may, VBA đang đi xuống nhanh chóng (nhờ Microsoft), tôi chỉ nói rằng từ kinh nghiệm của tôi, đó là một sự xấu hổ, vì nó đơn giản và một mặt mạnh mẽ. Nhưng với tốc độ ESRI đang phát hành các bản cập nhật (với lời hứa 10.1 sẽ không hỗ trợ VBA), tôi không thấy bất kỳ lý do nào để đầu tư thời gian vào việc học để phát triển bằng VBA.
jonatr

Và như đối với VB.net / ArcObjects. Tôi đã quên đề cập đến nó vì tôi cảm thấy (từ rất ít kinh nghiệm C # tôi có) rằng nó không dành cho nhà phân tích GIS trung bình (có một số kinh nghiệm lập trình và có thể quản lý VBA / Python cơ bản) mà là trải nghiệm mọi lúc- lập trình viên chuyên nghiệp cam kết. Dường như với tôi, bằng cách biến VB.net thành ngôn ngữ ưa thích, ESRI đang từ bỏ toàn bộ các công ty nhỏ và các nhà phân tích đã sử dụng để tùy chỉnh những thứ nhỏ cho quan điểm cá nhân.
jonatr

Vấn đề cơ bản mà tôi gặp phải với VB.net là tôi không may dành thời gian để học nó từ đầu (Đó là khóa học kéo dài một năm) và thay vào đó tôi không thể tìm thấy bất kỳ tài liệu tham khảo trực tuyến nào về cách làm việc với ArcGIS và VB.net. Theo như tôi biết ngoài một vài mã ngoài kia, ESRI đã không có bất kỳ cuốn sách nào về vấn đề này (những thứ như tìm hiểu về arcobjects nhưng với c #). Nếu bạn biết rõ hơn, hãy chia sẻ.
jonatr

2
Đó là một câu hỏi hay, riêng biệt dành cho gis.stackexchange.com: "1. Mỗi lần tôi mở symobolgy và vào cửa sổ Fill Color để điều chỉnh màu tôi cần Nó mở trong CMYK và tôi cần Thay đổi nó thành RGB." Có thể có một cách không lập trình để giải quyết vấn đề đó.
Jay Cummins

1
re: câu hỏi số 2 đã đề cập ở trên của bạn. Vấn đề đó có vẻ khó hiểu với tôi, nhưng tôi không làm gì nhiều với arcgis / python nên có thể người khác sẽ bình luận. Tôi sẽ khuyên bạn nên chia câu hỏi này thành một câu hỏi khác cho gis.stackexchange.com (nó sẽ giúp các nhà phân tích GIS nản lòng trong tương lai, những người cần lặp lại, phóng to, xuất khẩu để tìm câu trả lời của họ).
Jay Cummins

4

"... Cửa sổ Fill Color để điều chỉnh màu tôi cần Nó mở trong CMYK và tôi cần Thay đổi nó thành RGB"

  1. Thật buồn cười, tôi đã học được cách làm điều này vào tuần trước.

    • mở ArcMap -> thêm một lớp -> chuyển sang màu pallete
    • Thay đổi CYMK thành RGB
    • Lưu tài liệu vào Normal.mxt trong tài liệu & cài đặt của bạn (trong thư mục ESRI)
    • Đóng và mở lại ArcMap -> Sẽ luôn được mặc định là RGB kể từ bây giờ.
  2. DS Map Book có thể là một giải pháp cho bạn? Hoặc nếu bạn trên v10, D ata Driven Pages ? Như tôi đã nói, kịch bản .NET / VBA có thể làm điều này, tôi không quá nóng về Python để cung cấp giải pháp Python

"làm quen với arcobjects" nhưng đối với c #

Tôi đồng ý với bạn ở đây. Tôi biết ESRI biết điều này nhưng không chắc họ có gì trong đường ống không. Liên kết này có thể giúp ích khi bắt đầu, nếu bạn có nền tảng về VBA. Tôi vẫn sẽ lập luận rằng GTK AO vẫn là một bài đọc hợp lệ và những bài học kinh nghiệm vẫn sẽ áp dụng cho .NET (và bạn có thể xem qua cuốn sách trong một tuần @ 1-2hrs mỗi ngày).

Tôi đã / là một fan hâm mộ lớn của VBA ...


Cảm ơn. Tôi đã "phủi bụi" khỏi bản sao GTKAO CỦA TÔI sáng nay và nhận thấy đã đến lúc phải quay lại với nó vì tôi đã cải thiện kể từ lần cuối cùng tôi đọc nó. Có lẽ sau đó tôi sẽ có nhiều cơ sở hơn để tìm hiểu và giải quyết VB.Net.
jonatr

Một phần vấn đề của tôi là thuyết phục bộ phận máy tính của công ty tôi cần Visual Studio (GIS không phổ biến lắm - họ không xem chúng tôi là nhà phát triển và vì vậy tôi phải chiến đấu để có được những thứ cơ bản). DS MapBook là một lý do khác để chiến đấu với máy tính và đó là lý do tại sao tôi tập trung vào Python và VBA cho đến bây giờ - chúng được tích hợp sẵn và tôi không cần phải chiến đấu với chúng. Dù sao, cảm ơn vì lời khuyên về vấn đề CMYK / RGB, tôi sẽ thử.
jonatr

@jonatr - Có một phiên bản Visual Studio miễn phí - Tôi nghĩ nó có tên là "Express". Nó có thể sẽ làm mọi thứ bạn cần. Phiên bản chuyên nghiệp chủ yếu chỉ có nhiều công cụ hơn cho các nhà phát triển chuyên nghiệp.

Tôi đồng ý, Visual Studio Express thường đủ lớn để có được những gì bạn muốn làm. Dù sao đây cũng là một nơi tốt để bắt đầu học và id cũng đề xuất liên kết này: msdn.microsoft.com/en-au/beginner/default.aspx
Simon

3

Trên nền tảng ArcGIS, nếu bạn không cam chịu với công việc thủ công, thì bạn sẽ phải chịu một số công việc lập trình (không tệ cho tôi vì tôi thích điều đó)!

Tôi không biết cách nào trong 9.3.x để ghi đè các giá trị mặc định trong cơ sở dữ liệu địa lý mà không cần dùng đến các công cụ tùy chỉnh. Đây là những gì tôi làm, đặc biệt nếu đó là một tập hợp các thao tác chỉnh sửa lặp đi lặp lại.

Trong ArcGIS 10, người dùng có thể tạo mẫu Tạo tính năng và đặt giá trị mặc định cho từng mẫu ban đầu, các mẫu là ký hiệu cho lớp tính năng, nhưng bạn có thể sao chép / từ xa / sửa đổi mẫu tạo tính năng khi cần ). Tôi chưa chuyển sang ArcGIS 10, nhưng đây là một trong những tính năng mà các biên tập viên GIS của chúng tôi đang mong đợi.

Tôi chưa bao giờ cần phải xóa một phím tắt, vì vậy tôi không chắc liệu bạn có thể làm điều đó trong bất kỳ phiên bản ArcGIS nào không. Bạn chắc chắn có thể thêm chúng (máy gia tốc). Tôi không chắc nếu bạn có thể ghi đè chúng; nếu bạn có thể, có thể ghi đè chúng bằng lệnh giả không làm gì cả.

Như Simon đã đề cập, bạn có thể sử dụng ArcObjects / .NET và hoạt động trên nhiều MXD. Mặc dù tôi thấy rằng ArcObjects rất kén chọn khi MXD chứa các kết nối dữ liệu bị hỏng hoặc bất kỳ lớp dịch vụ nào khác nhau. Trong ArcGIS 10, bạn sẽ có Arcpy.micking trong Python giúp xử lý kịch bản chống lại MXD / LYR trong Python. Nó vẫn còn một chút lỗi, nhưng nó có thể phù hợp với bạn tùy thuộc vào những gì bạn có trong MXD.


Chào. Khi tôi viết một bài trả lời rất dài cho Simon, tôi không muốn sao chép nó (nó ở trên), nhưng tôi đánh giá cao nếu bạn sẽ bình luận (nếu bạn có bất cứ điều gì để bình luận). Cảm ơn vi đa trả lơi.
jonatr

3

Mặc dù tôi thực sự thích ArcGIS, tôi phải thừa nhận rằng khả năng tạo các tệp đồng hồ được cung cấp trong máy trạm ArcInfo bị thiếu rất nhiều trong máy tính để bàn. Nhiều người đã quen thuộc với khả năng ghi lại các macro của Excel. Có vẻ như ESRI có thể có khả năng tương tự - ngay cả sau 10.0 khi VBA đã nghỉ hưu. Ví dụ, Neooffice có khả năng ghi lại các macro python .

ArcGIS Engine có khả năng tùy biến cao. Nó cho phép bạn tạo ra các công cụ tập trung nhỏ làm một việc và làm tốt. Nó bao gồm các dự án mẫu cho Visual Studio, bao gồm phiên bản Express miễn phí (?), Có thể được sử dụng để xây dựng các ứng dụng xem bản đồ trọng lượng nhẹ mà không cần mã hóa. Tuy nhiên, để có được những lợi ích đầy đủ của ArcGIS Engine, bạn sẽ cần đầu tư thời gian vào việc học ngôn ngữ lập trình .NET.


1
nó không liền mạch hoặc hoàn chỉnh như một tệp đồng hồ, nhưng tab Kết quả chứa lịch sử xử lý địa lý của bạn, có thể được kéo xuống thả vào Trình tạo mô hình hoặc xuất sang đoạn trích python. Tôi sử dụng điều này như một loại lịch sử siêu dữ liệu được cải thiện cho các bộ dữ liệu.
matt wilkie

Ngoài ra, có một lịch sử của các công cụ gp như tệp xml ở đây% AppData% \ Roaming \ ESRI \ Desktop10.0 \ ArcToolbox \ History, tệp xml có một số vấn đề với nó sẽ được giải quyết tại 10.1. nhưng nó có thể là một lựa chọn thú vị cho bạn
gotchula

1

Đây là thực tế của việc làm cho bộ công cụ điều khiển cơ sở dữ liệu chứ không phải theo cách khác. Bạn có vẻ như bạn đang ở vị trí mà bạn cần một cấu trúc cơ sở dữ liệu bao gồm, một cấu trúc mà bạn có thể lấy được báo cáo, tạo cập nhật, xuất bản bản đồ, v.v. có hoặc không có phần GIS. Giải phóng dữ liệu khỏi công cụ sẽ cung cấp cho bạn khả năng sử dụng một công cụ phù hợp theo lựa chọn của bạn. Đó là lý do tại sao chúng tôi có Tiêu chuẩn mở. Từ đó bạn có thể sử dụng ứng dụng phục vụ tốt nhất cho mục đích bạn có trong đầu. Tôi vừa có cuộc trò chuyện sáng nay rằng nếu bạn tình cờ biểu thị dữ liệu trong Cột thì nó không biến nó thành Bảng tính Excel.

Một người trả lời khác đã thảo luận về giới hạn của Python, đây không phải là như vậy. Có lẽ có nhiều điều bạn có thể làm với python do các thư viện rộng lớn sau đó hầu hết mọi ngôn ngữ khác và giao diện không quá khó. Điều hạn chế là việc triển khai Python của ESRI trong ArcGIS. Đừng nhầm lẫn giữa hai.


1

Bạn có thể muốn xem MapWindow như một sự thay thế miễn phí .... đọc Shapefiles, v.v., nhưng bạn cần biết cách lập trình trong C #. Nhưng sau đó bạn có toàn quyền kiểm soát mọi thứ ...

http://www.mapwindow.org/


Vấn đề là nắm bắt kiến ​​thức trong C #, vì nó không tầm thường và rất tốn thời gian. Nhưng cảm ơn, tôi sẽ ghi nhớ nó.
jonatr
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.