Tổ chức tệp để chia sẻ mã python ArcGIS


13

Cấu trúc tổ chức tốt nhất để chia sẻ mã python ArcGIS và các công cụ xử lý địa lý là gì? Hoặc thậm chí, là chia sẻ mã và các công cụ chia sẻ câu hỏi riêng biệt?

Esri có Phương thức phân phối cấu trúc công cụ , được xuất bản cho Arcgis 9.3 và 10.0:

phân phối ví dụ cấu trúc thư mục công cụ

Tuy nhiên, trong những nơi khác mọi người đang nói những thứ như Also do avoid distributing your code the way its done in Arc Scripts or Code Galleriescó lợi cho python bản địa distutils . Esri dường như không có bài viết về công cụ phân phối tương ứng cho 10.1 ( ref ), cho vay một số trọng số cho đối số phản biện.

GIS.se nói gì?

Cập nhật: mặc dù có lẽ đã quá muộn, nhưng phần lớn của câu hỏi này là về các cách thực hành tốt nhất cho cấu trúc tệp và thư mục trước khi các công cụ được sử dụng để chia sẻ (arcgis trực tuyến, google drive, dropbox, github, bitbucket, v.v.) chơi.

Update2: và sẽ không có ai lên tiếng cho phương pháp tiếp cận trẻ em mồ côi rõ ràng?


Bạn đã bao giờ đưa ra một giải pháp khả thi cho việc này chưa?
traggatmot

@traggatmot không tôi không có. Hôm nay tôi sẽ kiểm tra trang Github của Esri cho dự án python-with-toolboxes với nhiều ngôi sao và / hoặc lịch sử đóng góp tích cực nhất (nhấn mạnh vào lần thứ 2 vì Q này là về chia sẻ và tái sử dụng)
matt wilkie

Câu trả lời:


10

Tại 10.1 và 10.2, các Thư mục Toolshare mà bạn đã minh họa dường như không còn được ghi lại.

Tôi nghi ngờ điều này là do khuyến nghị hiện tại sẽ là sử dụng Gói Geoprocessing thay vì Toolshare Folders:

Các gói xử lý địa lý được tạo từ một hoặc nhiều kết quả trong cửa sổ Kết quả. Tất cả dữ liệu và công cụ được sử dụng để tạo kết quả được bao gồm trong gói. Bạn có thể thêm các tệp bổ sung vào gói, chẳng hạn như tài liệu văn bản, trình chiếu và tệp ZIP được nén. Đồng nghiệp của bạn giải nén gói để bắt đầu sử dụng ngay nội dung của nó.

Về mặt tổ chức, cách tốt nhất là cách tôi lưu trữ các hộp công cụ và bất kỳ mã Python nào họ sử dụng nằm trong cùng một cấu trúc thư mục vẫn có thể được sử dụng để hỗ trợ phân phối chúng, ví dụ như cấu trúc Thư mục Toolshare.


... mà tôi cho rằng có nghĩa là câu trả lời cho "cấu trúc tổ chức là gì" có thể được phát hiện bằng cách giải nén thủ công tệp gói xử lý địa lý và kiểm tra các bộ phận bên trong.
matt wilkie

Tôi chưa thử đổi tên thành * .zip và giải nén * .gpk nhưng tôi hiểu là bạn có thể làm điều đó. Tôi nghi ngờ nó sẽ trông rất khủng khiếp giống như một thư mục toolshare.
PolyGeo

5

Tôi đã và đang sử dụng Google Drive để chia sẻ các tập lệnh Python và các công cụ tập lệnh giữa các đồng nghiệp. Tất cả các tập lệnh được lưu trữ trong một thư mục dùng chung cùng với hộp công cụ ArcGIS, chứa tất cả các công cụ tập lệnh (và mô hình) được liên kết. Có một số lợi ích cho phương pháp này: 1) Mọi người đều sử dụng các phiên bản tập lệnh giống nhau, 2) Bạn có thể đặt các đặc quyền chỉ viết hoặc đọc và 3) Cộng tác, ví dụ, qua các nơi làm việc, trường đại học và quốc gia khác nhau dễ dàng hơn với Google Lái xe hơn là cố gắng thiết lập quyền truy cập của người dùng trên máy chủ mà bạn có thể hoặc không thể quản trị.


1
+1 và điều tương tự có thể được nói cho Dropbox
om_henners

Vì vậy, bạn lưu trữ tất cả các tập lệnh và hộp công cụ của bạn ở cùng cấp thư mục, đúng không?
RyanKDalton

@RyanDalton Để đơn giản, tôi thường lưu trữ các thư mục sâu ở cùng cấp độ với các hộp công cụ. Mặc dù, Gdrive cũng hỗ trợ cấu trúc tệp phức tạp.
Aaron

2
Bất cứ ai thấy quy trình công việc này hấp dẫn chắc chắn nên xem phần mềm kiểm soát phiên bản Git và trang web chia sẻ kho lưu trữ phổ biến của nó, GitHub. Nó cung cấp cho bạn tất cả những điều trên - tập lệnh chính, đặc quyền được xác định và khả năng truy cập rộng - với khả năng theo dõi tất cả các thay đổi được thực hiện cho tập lệnh (bao gồm ngày và tác giả), thử nghiệm các tính năng mới trong khi bảo tồn phiên bản sản xuất, quản lý nhiều phiên bản chỉnh sửa cùng một lúc các tệp, v.v ... Việc sử dụng phức tạp hơn, nhưng tôi thấy nó vô cùng hữu ích.
Matt Parker

Google Drive, Dropbox, Git + Github, Mercurial + Bitbucketbạn bè đều là những tuyến đường tuyệt vời để chia sẻ tệp và mã, nhưng đó không phải là câu hỏi thường gặp. Tôi đang theo các thực tiễn tốt nhất cho cấu trúc tệp và thư mục trước khi các công cụ được sử dụng để chia sẻ phát huy tác dụng.
matt wilkie

1

Tài liệu ArcGIS Pro của Esri Mở rộng xử lý địa lý thông qua các mô-đun Python cho thấy cách cấu trúc một dự án thân thiện với Distutils, bao gồm xây dựng trình cài đặt nhị phân Windows và Linux.

(Lưu ý: đây là để chia sẻ tập lệnh và công cụ, đây không phải là mô hình tốt để chia sẻ tập lệnh và bản đồ và dữ liệu dưới dạng một gói.)

Bố trí dự án nguồn:

Cây Src

Trở thành cái này trên hệ thống của người dùng cuối, bên dưới C:\Path\to\ArcGIS\Desktop\python

Cây thư mục đích

Họ không đề cập đến pip nhưng từ việc nghiên cứu các ví dụ tôi không hiểu tại sao nó không hoạt động. Ví dụ: để chỉnh sửa cộng tác và / hoặc bộ công cụ thay đổi thường xuyên, hãy cài đặt bằng pip install --editable X:\path\to\src,pip install --editable http://github.com/project/path/to/master

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.