Hơn

Tải xuống và xử lý tệp raster bằng Python?

Tải xuống và xử lý tệp raster bằng Python?


Tôi còn khá mới đối với python và đang tìm kiếm hướng dẫn cho một câu hỏi có thể nghe có vẻ tầm thường đối với nhiều người.

Có cách nào để sử dụng 'wget' trong tập lệnh python để tải xuống tệp raster từ máy chủ và xử lý chúng trong cùng một tập lệnh không?


Python có tích hợp urllib2, mở một đối tượng giống con trỏ tệp từ tài nguyên IP (HTTP, HTTPS, FTP).

import urllib2, os # Xem http://data.van Vancouver.ca/datacatalogue/2009facetsGridSID.htm rast_url = 'ftp://webftp.van Vancouver.ca/opendata/2009sid/J01.zip' infp = urllib2.urlopen (rast_url)

Sau đó, bạn có thể chuyển và ghi các byte cục bộ (tức là tải xuống):

# Mở tệp mới để ghi, cùng tên tệp với nguồn rast_fname = os.path.basename (rast_url) outfp = open (rast_fname, 'wb') # Truyền dữ liệu… quá trình này có thể mất một lúc… outfp.write (infp.read ( )) outfp.close () print ('Tệp của bạn ở' + os.path.join (os.getcwd (), rast_fname))

Bây giờ bạn có thể làm bất cứ điều gì bạn muốn với tệp.


Một số cách để thực hiện điều này. Bạn có thể sử dụng mô-đun quy trình con để gọi wget - xem http://docs.python.org/library/subprocess.html

nhập quy trình con

retcode = subprocess.call (["wget", args])

Hoặc bạn có thể sử dụng python để tải xuống tệp trực tiếp bằng mô-đun urllib (hoặc urllib2) - http://docs.python.org/library/urllib.html. Có các ví dụ trong tài liệu.


Trong câu trả lời trước này là một phương thức sử dụng lời gọi tới hệ thống os.system.

os.system ('wget% s'% (fullurl))

Xem video: Fix Landsat 7 Scan Line Error using Landsat Toolbox in ArcMap