Hướng dẫn open raster in python - mở raster trong python

Wur Geoscripting

Tuần 3, Bài 10: Xử lý dữ liệu raster với Python

Jan Verbesselt, Jorge Mendes de Jesus, Aldo Bergsma, Dainius Masiliūnas, David Swinkels, Judith Verstegen, Corné Vreugdenhil-2022-01-17

Nội dung chính ShowShow

  • Wur Geoscripting
  • Tuần 3, Bài 10: Xử lý dữ liệu raster với Python
  • Jan Verbesselt, Jorge Mendes de Jesus, Aldo Bergsma, Dainius Masiliūnas, David Swinkels, Judith Verstegen, Corné Vreugdenhil-2022-01-17
  • Nội dung chính Show
  • Giới thiệu
  • Ngày nay, các mục tiêu học tập
  • Thiết lập môi trường Python
  • Thông qua dịch vụ bảo hiểm web
  • Từ một tập tin với gdal
  • Từ một tệp với rasterio
  • Điện toán mô hình chiều cao tán
  • Điện toán chiều cao của các tòa nhà
  • Viết dữ liệu raster vào một tệp
  • Trực quan hóa dữ liệu raster
  • Dữ liệu raster trong Python là gì?
  • Phân tích dữ liệu raster là gì?

Jan Verbesselt, Jorge Mendes de Jesus, Aldo Bergsma, Dainius Masiliūnas, David Swinkels, Judith Verstegen, Corné Vreugdenhil-2022-01-17

Nội dung chính Show

  • Giới thiệu
  • Ngày nay, các mục tiêu học tập
  • Thiết lập môi trường Python
  • Thông qua dịch vụ bảo hiểm web
  • Từ một tập tin với gdal

Nội dung chính Show

  • Giới thiệu
  • Ngày nay, các mục tiêu học tập
  • Thiết lập môi trường Python
  • Thông qua dịch vụ bảo hiểm web

Giới thiệu

Ngày nay, các mục tiêu học tập

cd ~/Documents/
mkdir PythonRaster #or give the directory a name to your liking
cd ./PythonRaster
mkdir data
mkdir output

Thiết lập môi trường Python

Thông qua dịch vụ bảo hiểm web

Từ một tập tin với gdal

Ngày nay, các mục tiêu học tập

Thiết lập môi trường Python

Thông qua dịch vụ bảo hiểm web

from owslib.wcs import WebCoverageService

# Access the WCS by proving the url and optional arguments (here version)
wcs = WebCoverageService('http://geodata.nationaalgeoregister.nl/ahn2/wcs?service=WCS', version='1.0.0')
# Print to check the contents of the WCS
print(list(wcs.contents))

Từ một tập tin với gdal

Từ một tệp với rasterio

# Get all operations and print the name of each of them
print([op.name for op in wcs.operations])

Điện toán mô hình chiều cao tán

Điện toán chiều cao của các tòa nhà

# Take the 0.5m-resolution rough raster as example
cvg = wcs.contents['ahn2_05m_ruw']
# print supported reference systems, the bounding box defined in WGS 84 coordinates, and supported file formats
print(cvg.supportedCRS)
print(cvg.boundingBoxWGS84)
print(cvg.supportedFormats)

Viết dữ liệu raster vào một tệp: What is the coordinate reference system of the 0.5m rough raster? Is it the same for the other three rasters?

Trực quan hóa dữ liệu raster

Dữ liệu raster trong Python là gì?

Phân tích dữ liệu raster là gì?

Thiết lập môi trường Python

Thông qua dịch vụ bảo hiểm web

Hướng dẫn open raster in python - mở raster trong python

Từ một tập tin với gdal

Từ một tệp với rasterio

Điện toán mô hình chiều cao tán

Điện toán chiều cao của các tòa nhà: Why do we set ds to None at the end of your script? What may happen if you do not do that?

API GDAL Python không phải là mô -đun Python được ghi chép tốt nhất. Do đó, Rasterio được giải thích như một mô -đun xử lý dữ liệu raster thay thế.

Từ một tệp với rasterio

Rasterio đọc và ghi nhiều định dạng raster dựa trên GDAL, cung cấp các chức năng xử lý raster dựa trên các mảng numpy và Geojson, và tích hợp matplotlib trong mô -đun rasterio.plot để trực quan hóa. Rasterio xử lý nhiều ban nhạc, mặt nạ, phản hồi và lấy mẫu lại.

Phần còn lại của bài học dưới đây là một tuyến đường hoàn chỉnh để xử lý rasterdataset. Chúng tôi sẽ sử dụng DEMS từ WCS cho khu vực nghiên cứu của chúng tôi, xử lý nó với rasterio, tính toán thông tin mới (CHM), phủ nó với dữ liệu vector đại diện cho các tòa nhà và trực quan hóa nó.

Chúng ta hãy đọc trong dữ liệu raster mà chúng ta vừa lưu trữ từ WCS với Rasterio và vẽ nó bằng rasterio.plot:

name: raster
dependencies:
  - python
  - numpy
  - matplotlib
  - spyder
  - owslib
  - gdal
  - geopandas
0

Câu 3: Có phải bản đồ của Colormap ‘Gist_NCAR, là một lựa chọn tốt cho mô hình bề mặt kỹ thuật số? Tại sao tại sao không? Nếu không, hãy cố gắng tìm một cái phù hợp hơn.: Is the colormap ‘gist_ncar’ cartographically a good choice for a digital surface model? Why/Why not? If not, try to find a more fitting one. : Is the colormap ‘gist_ncar’ cartographically a good choice for a digital surface model? Why/Why not? If not, try to find a more fitting one.

Siêu dữ liệu hiển thị trình điều khiển (cách biết của GDAL cách hoạt động với định dạng tệp cụ thể), kiểu dữ liệu, giá trị NODATA, chiều rộng của raster về số lượng ô, chiều cao của raster về số lượng ô, số lượng dải raster trong bộ dữ liệu, phối hợp Hệ thống tham chiếu và giá trị chuyển đổi.

Ở phần cuối, các lớp raster trong rasterio được lưu trữ dưới dạng mảng numpy, xuất hiện khi dữ liệu được đọc bằng phương pháp

name: raster
channels:
  - conda-forge
dependencies:
  - rasterio
  - rasterstats
  - affine
0:
name: raster
dependencies:
  - python
  - numpy
  - matplotlib
  - spyder
  - owslib
  - gdal
  - geopandas
2

Điện toán mô hình chiều cao tán

Một mô hình chiều cao tán (CHM) cho thấy một dấu hiệu về chiều cao của cây. Nó có thể được tạo ra bằng cách trừ một mô hình địa hình kỹ thuật số từ mô hình bề mặt kỹ thuật số. Trong raster kết quả, mỗi giá trị ô biểu thị độ cao của cây trên địa hình bề mặt bên dưới. Rasterio dựa vào Numpy để thực hiện các hoạt động Raster Point.

name: raster
dependencies:
  - python
  - numpy
  - matplotlib
  - spyder
  - owslib
  - gdal
  - geopandas
0

Câu 4: Đâu là tán cây cao nhất trong khu vực nghiên cứu? Đó có phải là những gì bạn mong đợi?: Where is the canopy the highest in the study area? Is that what you expected? : Where is the canopy the highest in the study area? Is that what you expected?

Mặc dù chúng tôi đã áp dụng các khái niệm về mô hình chiều cao tán, nhưng khu vực chúng tôi chọn không chỉ chứa thảm thực vật trên đỉnh bề mặt mà còn cả các tòa nhà. Chiều cao của thảm thực vật và các tòa nhà do đó hiện đang được kết hợp trong raster CHM của chúng tôi.

Điện toán chiều cao của các tòa nhà

Hãy để chúng tôi xác định chiều cao của các tòa nhà. Bước đầu tiên là tải xuống dữ liệu xây dựng từ dịch vụ tính năng Web Bag mà chúng tôi đã sử dụng trong hướng dẫn Vector.

name: raster
dependencies:
  - python
  - numpy
  - matplotlib
  - spyder
  - owslib
  - gdal
  - geopandas
1

Câu 5: Điều gì xảy ra trong dòng BB BB = ‘,, Tham gia (MAP (STR, BBOX))? Tra cứu cách lập bản đồ hoạt động nếu bạn không biết.: What happens in the line “bb = ‘,’.join(map(str, bbox))”? Look up how mapping works if you do not know. : What happens in the line “bb = ‘,’.join(map(str, bbox))”? Look up how mapping works if you do not know.

Bước tiếp theo là thực hiện số liệu thống kê khu vực để có được giá trị chiều cao trung bình trên mỗi đa giác xây dựng. Chúng tôi sẽ làm điều này với các rasterstats mô -đun, sử dụng các tệp geodataFrames và .tif cho tác vụ này. Nó xuất hiện một Geojson.

name: raster
dependencies:
  - python
  - numpy
  - matplotlib
  - spyder
  - owslib
  - gdal
  - geopandas
2

Bạn có thể nhận được một tin nhắn cảnh báo từ Rasterstats; Bạn có thể bỏ qua điều này.

Trực quan hóa nhanh cho chúng ta thấy độ cao xuất phát từ dữ liệu raster trên bản đồ:

name: raster
dependencies:
  - python
  - numpy
  - matplotlib
  - spyder
  - owslib
  - gdal
  - geopandas
3

Câu 6: Tại sao chúng ta muốn có một thang đo bằng nhau theo hướng x và y cho con số này?: Why do we want an equal scale in the x and y direction for this figure? : Why do we want an equal scale in the x and y direction for this figure?

Viết dữ liệu raster vào một tệp

Để lưu trữ mảng Numpy dưới dạng tệp raster, Rasterio cần siêu dữ liệu đi kèm, như bạn đã thấy trước đây. Có thể sử dụng siêu dữ liệu của một raster hiện có hoặc để tạo nó từ đầu.

Để tạo siêu dữ liệu từ đầu, CRS có thể được xác định với hàm từ rasterio và chuyển đổi với affine. Affine là một mô -đun Python tạo điều kiện cho các phép biến đổi affine, tức là & nbsp; tỷ lệ, xoay, phản chiếu hoặc sai lệch hình ảnh/raster/mảng.

Rasterio có thể viết hầu hết các định dạng raster từ GDAL. Các nhà phát triển khuyên bạn nên sử dụng trình điều khiển địa lý để viết vì đây là định dạng được thử nghiệm tốt nhất và được hỗ trợ tốt nhất.

name: raster
dependencies:
  - python
  - numpy
  - matplotlib
  - spyder
  - owslib
  - gdal
  - geopandas
4

Trực quan hóa dữ liệu raster

Dữ liệu raster có thể được hiển thị bằng cách chuyển các mảng numpy cho matplotlib trực tiếp hoặc thứ hai thông qua một phương thức trong rasterio truy cập matplotlib cho bạn. Sử dụng matplotlib trực tiếp cho phép linh hoạt hơn, chẳng hạn như điều chỉnh huyền thoại, trục và nhãn, và phù hợp hơn cho các mục đích chuyên nghiệp. Việc trực quan hóa thông qua Rasterio yêu cầu ít mã hơn và có thể đưa ra ý tưởng nhanh về dữ liệu raster của bạn. Chúng tôi sẽ hiển thị cả hai cách tiếp cận. Hãy để chúng tôi thực hiện trực quan hóa DSM và DTM với matplotlib:

name: raster
dependencies:
  - python
  - numpy
  - matplotlib
  - spyder
  - owslib
  - gdal
  - geopandas
5

Nếu bạn không thích colormap màu cam của matplotlib, có thể chọn một colormap khác.

Cách tiếp cận thứ hai với Rasterio chỉ yêu cầu một dòng mã để tạo ra một cốt truyện. Bằng cách tạo các ô con, các số liệu có thể được kết hợp (cũng có thể được thực hiện với matplotlib trực tiếp).

name: raster
dependencies:
  - python
  - numpy
  - matplotlib
  - spyder
  - owslib
  - gdal
  - geopandas
6

Rasterio cũng trực quan hóa biểu đồ đơn giản bằng cách gọi các chức năng của matplotlib.

name: raster
dependencies:
  - python
  - numpy
  - matplotlib
  - spyder
  - owslib
  - gdal
  - geopandas
7

Câu 7: Điều gì được biểu diễn trên trục X và Y? Các nhãn trục mặc định là DN (x) và tần số (y); Nếu bạn thay đổi chúng, bạn sẽ chọn nhãn nào để phản ánh tốt hơn nội dung của các lô?: What is represented on the x and y axis? The default axis labels are DN (x) and Frequency (y); if you were to change them, what labels would you pick to better reflect the content of the plots? : What is represented on the x and y axis? The default axis labels are DN (x) and Frequency (y); if you were to change them, what labels would you pick to better reflect the content of the plots?

  • Hướng dẫn làm việc với Rasters ở Python với rasterio
  • Hướng dẫn làm việc với Raster trong Python với GDAL (cho Python 2)
  • Hình ảnh vệ tinh Landsat
  • Hình ảnh vệ tinh Landsat được lấy lại
  • Hình ảnh vệ tinh Sentinel

Dữ liệu raster trong Python là gì?

Dữ liệu raster hoặc lưới lưới được lưu trữ dưới dạng một lưới các giá trị được hiển thị trên bản đồ dưới dạng pixel. Mỗi giá trị pixel đại diện cho một khu vực trên bề mặt trái đất. Một tệp raster bao gồm lưới các ô thông thường, tất cả đều có cùng kích thước.a grid of values which are rendered on a map as pixels. Each pixel value represents an area on the Earth's surface. A raster file is composed of regular grid of cells, all of which are the same size.a grid of values which are rendered on a map as pixels. Each pixel value represents an area on the Earth's surface. A raster file is composed of regular grid of cells, all of which are the same size.

Phân tích dữ liệu raster là gì?

Phân tích dữ liệu raster dựa trên các ô và rasters.● Phân tích dữ liệu raster có thể được thực hiện ở cấp độ của từng tế bào hoặc các nhóm ô hoặc tế bào trong toàn bộ raster.● Một số hoạt động dữ liệu raster sử dụng một raster duy nhất;Những người khác sử dụng hai hoặc nhiều rasters.based on cells and rasters. ● Raster data analysis can be performed at the level of individual cells, or groups of cells, or cells within an entire raster. ● Some raster data operations use a single raster; others use two or more rasters.based on cells and rasters. ● Raster data analysis can be performed at the level of individual cells, or groups of cells, or cells within an entire raster. ● Some raster data operations use a single raster; others use two or more rasters.

Làm thế nào để Python xử lý dữ liệu raster?

Xử lý dữ liệu raster với Python và GDAL...

Trích xuất tệp.Tải xuống dữ liệu cho bài học này từ liên kết này.....

Mở một tập tin raster trong Python với GDAL.Với GDAL, bạn có thể đọc và viết một số định dạng raster khác nhau trong Python.....

Mở tệp raster dưới dạng một mảng số.....

Tiện ích dòng lệnh GDAL ..

Ba loại dữ liệu raster là gì?

Có ba loại dữ liệu raster có thể được lưu trữ trong cơ sở dữ liệu địa lý: bộ dữ liệu raster, danh mục raster và raster là thuộc tính.Các bộ dữ liệu raster là hình ảnh đơn được lưu trữ trong cơ sở dữ liệu.raster datasets, raster catalogs, and raster as attributes. Raster datasets are single images that are stored in the database.raster datasets, raster catalogs, and raster as attributes. Raster datasets are single images that are stored in the database.