Bạn đang gặp khó khăn trong việc lọc dữ liệu theo nhiều khoảng thời gian khác nhau trong Google Earth Engine? Bài viết này sẽ cung cấp cho bạn một hướng dẫn toàn diện về cách sử dụng các bộ lọc thời gian mạnh mẽ của Google Earth Engine để phân tích dữ liệu theo mùa vụ, năm hoặc thậm chí là ngày trong tuần. Chúng ta sẽ khám phá cách sử dụng hàm `ee.Filter.calendarRange()` và các phương pháp khác để đạt được kết quả mong muốn. Tìm hiểu ngay để nâng cao kỹ năng phân tích dữ liệu không gian địa lý của bạn!
Việc lọc dữ liệu theo khoảng thời gian là một bước quan trọng trong nhiều dự án phân tích dữ liệu không gian địa lý. Điều này cho phép bạn tập trung vào các giai đoạn cụ thể để:
Với khả năng lọc dữ liệu hiệu quả, bạn có thể khai thác tối đa tiềm năng của Google Earth Engine và đưa ra những kết luận chính xác dựa trên dữ liệu.
Hàm `ee.Filter.calendarRange()` là một công cụ mạnh mẽ cho phép bạn lọc dữ liệu dựa trên các thành phần lịch như tháng, ngày trong năm, ngày trong tháng và ngày trong tuần. Cú pháp cơ bản của hàm như sau:
ee.Filter.calendarRange(start, end, field)
Ví dụ, để lọc một tập hợp ảnh Sentinel-2 để chỉ bao gồm các ảnh chụp trong các tháng 6, 7 và 8, bạn có thể sử dụng đoạn mã sau:
var ic = ee.ImageCollection('COPERNICUS/S2_SR')
.filterBounds(ee.Geometry.Point([-122.196, 41.411]));
var imagesInSummerMonths = ic.filter(ee.Filter.calendarRange(6, 8, 'month'));
print('Số lượng ảnh trong các tháng 6-8:', imagesInSummerMonths.size());
Đoạn mã này sẽ trả về một tập hợp ảnh chỉ chứa các ảnh được chụp trong các tháng mùa hè.
Mặc dù `ee.Filter.calendarRange()` có thể được sử dụng để lọc theo năm, nhưng việc sử dụng `ee.Filter.date()` thường hiệu quả hơn cho mục đích này. Tuy nhiên, trong một số trường hợp nhất định, bạn có thể cần sử dụng `ee.Filter.calendarRange()` để lọc theo một khoảng thời gian giữa các năm. Ví dụ, để lọc dữ liệu từ năm 2020 đến năm 2021, bạn có thể sử dụng:
var imagesInYears = ic.filter(ee.Filter.calendarRange(2020, 2021, 'year'));
print('Số lượng ảnh từ năm 2020-2021:', imagesInYears.size());
Trong nhiều trường hợp, bạn cần kết hợp nhiều bộ lọc để thu hẹp phạm vi dữ liệu của mình. Google Earth Engine cung cấp các công cụ để kết hợp các bộ lọc khác nhau để đạt được kết quả mong muốn.
Để kết hợp hai hoặc nhiều bộ lọc sao cho tất cả các điều kiện phải đúng, bạn có thể sử dụng hàm `ee.Filter.and()`. Ví dụ, để lọc các ảnh Sentinel-2 được chụp trong tháng 7 năm 2021 với độ che phủ mây dưới 10%, bạn có thể sử dụng đoạn mã sau:
var dateFilter = ee.Filter.date('2021-07-01', '2021-08-01');
var cloudFilter = ee.Filter.lt('CLOUDY_PIXEL_PERCENTAGE', 10);
var combinedFilter = ee.Filter.and(dateFilter, cloudFilter);
var filteredCollection = ic.filter(combinedFilter);
print('Số lượng ảnh trong tháng 7/2021 với độ che phủ mây < 10%:', filteredCollection.size());
Trong trường hợp bạn muốn lọc dữ liệu dựa trên một trong nhiều điều kiện, bạn có thể sử dụng hàm `ee.Filter.or()`. Ví dụ, nếu bạn muốn lọc dữ liệu từ tháng 6 hoặc tháng 7 của nhiều năm, bạn có thể sử dụng:
var filterSummer = ee.Filter.Or(
ee.Filter.date('2004-06-01', '2004-10-01'),
ee.Filter.date('2005-06-01', '2005-10-01'),
ee.Filter.date('2006-06-01', '2006-10-01'),
ee.Filter.date('2007-06-01', '2007-10-01')
);
Ngoài `ee.Filter.calendarRange()`, Google Earth Engine còn cung cấp một số phương pháp khác để lọc dữ liệu theo ngày:
Việc **lọc dữ liệu theo khoảng thời gian trong Google Earth Engine** là một kỹ năng quan trọng để phân tích dữ liệu không gian địa lý hiệu quả. Bằng cách sử dụng `ee.Filter.calendarRange()` và các phương pháp khác, bạn có thể dễ dàng tập trung vào các giai đoạn cụ thể và khai thác tối đa tiềm năng của nền tảng này. Hãy thử nghiệm với các ví dụ trong bài viết này và áp dụng chúng vào các dự án của bạn để nâng cao khả năng phân tích dữ liệu của bạn!
Bài viết liên quan