===============================================
Thêm tập ảnh
Đầu tiên, các bạn tìm tập ảnh bạn muốn sử dụng trên thanh tìm kiếm
Sau đó bạn copy dòng code của tập ảnh hoặc click Import.
Tập ảnh mới được khai báo thành biến ImageCollection.
Chúng ta có thể đổi tên biến theo ý muốn, mình sẽ đổi thành L8_collection.
Mình sẽ dùng hàm Map.addLayer
và Map.setCenter
để hiển thị tập ảnh lên cửa sổ bản đồ.
Map.addLayer(L8_collection, { min:0.05, max: 0.8, bands: 'B6,B5,B4' }, 'Landsat Collection');
Map.setCenter(100.56, 13.94, 7);
Tập ảnh gồm nhiều ảnh, nhưng không phải tất cả đều được hiện lên. Khi chúng ta sử dụng hàm Map.addLayer
để đưa một tập ảnh vào cửa sổ bản đồ, theo mặc định thì chỉ các pixel mới nhất sẽ được hiển thị.
Nếu bạn thêm vào dòng lệnh print/in, bạn có thể xác định có bao nhiêu ảnh ở trong tập hợp.
//Get the number of images
print(L8_collection);
Tuy nhiên, vì tập ảnh của chúng ta tương đối lớn, chúng ta sẽ nhận được báo lỗi trên Console. Vì thế, chúng ta sẽ lọc tập ảnh theo khu vực chúng ta cần nghiên cứu.
Comment out (//) lên trước lệnh print
. Chúng ta sẽ trở lại sau.
// print(L8_collection);
Lọc tập ảnh theo đối tượng hình học chúng ta vẽ
Phía góc trên bên trái của cửa sổ bản đồ/map window, có một số nút chức năng bạn có thể sử dụng để vẽ các đối tượng hình học. Chúng ta click vào biểu tượng vùng/ polygon hay ô vuông/square.
Công cụ này cho phép bạn vẽ một đối tượng hình học thể hiện vùng nghiên cứu của mình. Click vào cửa sổ bản đồ để tạo một vùng hay ô vuông xung quanh khu vực nghiên cứu của bạn.
Sau khi bạn có một vùng/ô vuông kín, sẽ xuất hiện một bản ghi trên code editor về vùng/ô vuông vừa được tạo ra. Một biến tên geometry được khai báo.
Ta có thể Click vào từ geometry, thay geometry bằng StudyArea.
(Click vào biểu tượng đầu mũi tên cạnh dòng var StudyArea để xem thông tin của đối tượng hình học chúng ta vừa tạo ra.)
Bạn có thể làm hiện code vừa tạo bằng cách click vào box/hộp màu xanh lam cạnh dòng Import.
Bây giờ chúng ta đã sẵn sàng để lọc tập ảnh L8_collection bằng hàm filterBounds.
// Filter to scenes that intersect your boundary
var L8_StudyArea = L8_collection.filterBounds(StudyArea);
Thay đổi biến trong câu lệnh Map.addlayer
thành L8_StudyArea (như dòng lệnh phía sau đây). Đưa nó xuống dưới dòng lệnh tạo biến L8_StudyArea.
Map.addLayer(L8_StudyArea, {min:0.05, max: 0.8, bands: 'B6, B5, B4'}, 'Landsat 8 in study region');
Thay đổi dòng lệnh Map.setCenter
thành map.centerObject
và cập nhật các tham số đầu vào. Câu lệnh này sẽ giúp dịch chuyển trung tâm của cửa sổ bản đồ về đối tượng hình học chúng ta vừa tạo.
Map.centerObject(StudyArea,7);
Click Run. Bây giờ tập ảnh sẽ lọc và chỉ chọn những ảnh giao với vùng/ô vuông mà bạn đã tạo.
Bây giờ chúng ta có thể chạy lệnh print để in chi tiết của tập ảnh mới
print(L8_StudyArea);
Khi lệnh hoàn thành, kết quả có 744 thành phần/elements trong tập ảnh của tôi (Số lượng ảnh của bạn có thể khác phụ thuộc vào kích thước của đối tượng hình học mà bạn đã số hóa)
Chúng ta cũng có thể sử dụng phương pháp định kích thước của tập ảnh để xác định bao nhiêu ảnh sẽ có trong tập ảnh của bạn
// 2nd method to get the number of images
var count = L8_StudyArea.size();
print('Count of L8_StudyArea: ', count);
Link script đầy đủ:
https://code.earthengine.google.com/?scriptPath=users%2Fnkthanh2812%2FOpenGIS%3AGEE2_SpatialFilter
Thanks for your blog, nice to read. Do not stop.
Thank you Mark! OpenGIS hope sharing many blog and ideas useful for everyone.