Vegetation change detection based on time series analysis by Apache Spark and RasterFrame

Spatial big data has a large scale and complex, therefore, it cannot be

collected, managed, and analyzed by traditional data analytic software

shortly. These platforms in many situations are restricted to vectors data.

However, the raster data generated by the sensors on the enormous

number of satellites now needs to be processed in parallel on the cluster

environment. The article introduces the satellite image data analyzing

method using the RasterFrames library on the Apache Spark platform.

The RasterFrames library examines raster data for Python, Scala, and

SQL, bringing the power of Spark DataFrames to access to Earth

Observation, cloud computing, and data science. In the experimental part,

the NDVI and the change in the average value of NDVI in the time series

are calculated to demonstrate the vegetation mantle changes in Phu Tho

province. These results are the reference data source in the assessment of

weather, climate, and environmental changes in the study area during

that time.

Vegetation change detection based on time series analysis by Apache Spark and RasterFrame trang 1

Trang 1

Vegetation change detection based on time series analysis by Apache Spark and RasterFrame trang 2

Trang 2

Vegetation change detection based on time series analysis by Apache Spark and RasterFrame trang 3

Trang 3

Vegetation change detection based on time series analysis by Apache Spark and RasterFrame trang 4

Trang 4

Vegetation change detection based on time series analysis by Apache Spark and RasterFrame trang 5

Trang 5

Vegetation change detection based on time series analysis by Apache Spark and RasterFrame trang 6

Trang 6

Vegetation change detection based on time series analysis by Apache Spark and RasterFrame trang 7

Trang 7

Vegetation change detection based on time series analysis by Apache Spark and RasterFrame trang 8

Trang 8

Vegetation change detection based on time series analysis by Apache Spark and RasterFrame trang 9

Trang 9

Vegetation change detection based on time series analysis by Apache Spark and RasterFrame trang 10

Trang 10

Tải về để xem bản đầy đủ

pdf 11 trang xuanhieu 10100
Bạn đang xem 10 trang mẫu của tài liệu "Vegetation change detection based on time series analysis by Apache Spark and RasterFrame", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

Tóm tắt nội dung tài liệu: Vegetation change detection based on time series analysis by Apache Spark and RasterFrame

Vegetation change detection based on time series analysis by Apache Spark and RasterFrame
 xử 
lý bằng các công cụ Apache Spark. Sự phát triển 
của DataFrame đã được tiếp tục với Spark SQL, 
đưa DataFrames vào tính toán phân tán dữ liệu 
không gian lớn. Thông qua một số cải tiến mới, 
Spark SQL cho phép các nhà khoa học dữ liệu làm 
việc với DataFrames quá lớn so với bộ nhớ của 
một máy tính. Các DataFrames này có thể thao tác 
qua SQL tiêu chuẩn, cũng như các ngôn ngữ lập 
trình Python, R, Java, Scala (Hình 1). 
2.2. RasterFrames 
RasterFrames là một dự án của Eclipse 
Foundation LocationTech, kết hợp phân tích dữ 
liệu quan sát Trái đất, điện toán đám mây và khoa 
học dữ liệu dựa trên DataFrame. 
RasterFrames kết hợp truy cập dữ liệu quan 
sát Trái đất, điện toán đám mây và khoa học dữ 
liệu dựa trên nền tảng DataFrames. Cung cấp khả 
năng truy cập và hiển thị dữ liệu raster qua 
DataFrames, thực hiện các truy vấn không gian 
thời gian, các phép toán đại số trên dữ liệu raster 
và khả năng tương thích với các thuật toán Spark 
ML. Bằng cách sử dụng DataFrames như một mô 
hình tính toán thống nhất, RasterFrames cho phép 
các nhà phân tích, các nhà khoa học dữ liệu, các 
chuyên gia về khoa học không gian dễ dàng làm 
việc với dữ liệu quan sát Trái đất trong cấu trúc dữ 
liệu DataFrames quen thuộc (Hình 2). Ngoài ra do 
RasterFrames được xây dựng trên nền tảng 
Apache Spark, các giải pháp được thử nghiệm trên 
máy tính từ khai phá dữ liệu đến xử lý các tập dữ 
liệu lớn có thể dễ dàng được giới hạn tỷ lệ để chạy 
trên tài nguyên tính toán phân cụm và đám mây.
Hình 1. Xử lý dữ liệu không gian trên nền tảng Apache Spark. 
Hình 2. Các thành phần cấu thành nên RasterFrames. 
46 Nguyễn Thị Mai Dung, Vũ Thị Hoài Thu/Tạp chí Khoa học Kỹ thuật Mỏ - Địa chất 62(1), 42 - 52 
Thông qua Spark DataSource, RasterFrames 
có thể đọc các định dạng raster khác nhau - bao 
gồm GeoTIFF, JP2000, MRF và HDF - và từ một 
loạt các dịch vụ, như HTTP, FTP, HDFS, S3 và 
WASB. Nó cũng hỗ trợ đọc các định dạng vector 
GeoJSON và WKT / WKB. RasterFrame có thể thực 
hiện các phép lọc, chuyển đổi, tổng quát hóa, tái 
chia mẫu và phân loại thông qua hơn 200 hàm 
raster và vector. 
Là một phần của dự án LocationTech, 
RasterFrames được xây dựng dựa trên nền tảng 
vững chắc được cung cấp bởi GeoMesa (phép toán 
không gian), GeoTrellis (phép toán raster), JTS 
(mô hình hình học) và SFCurve (lập chỉ mục không 
gian thời gian), tích hợp các khía cạnh khác nhau 
của các dự án này thành một thể thống nhất, phân 
tích dữ liệu dựa trên DataFrame. Hình 2 mô tả các 
thành phần cấu thành nên RasterFrames. 
RasterFrames giới thiệu một kiểu dữ liệu 
riêng mới được gọi là tile cho Spark SQL. Mỗi ô tile 
chứa 2 ma trận 2 chiều gồm các giá trị “cell” (pixel) 
với thông tin giải thích số lượng các ô đó. Một 
“RasterFrames” là một Spark DataFrame với một 
hay nhiều cột kiểu tile (Hình 3). Một cột tile 
thường biểu thị một kênh ảnh độc lập của dữ liệu 
ảnh viễn thám tương ứng với một dải sóng trong 
dải quang phổ, được phân tách thành từng mảng 
có kích thước nhất định. RasterFrames cũng hỗ 
trợ để làm việc với dữ liệu vectơ với định dạng 
GeoJSON. Ngoài các cột tile, còn quản lý thêm các 
cột geometry (giới hạn hoặc phạm vi/đường bao) 
xác định vị trí của dữ liệu, thông tin về hệ thống 
tọa độ (crs) và cột timestamp biểu thị thời gian thu 
nhận dữ liệu. Các cột này được sử dụng trong câu 
lệnh WHERE khi thực hiện truy vấn trên ảnh. 
Dữ liệu raster có thể được đọc từ một số 
nguồn. Thông qua API Spark SQL DataSource, 
RasterFrames có thể được xây dựng từ các tập 
hợp GeoTIFFs, GeoTrellis Layers và danh mục các 
dữ liệu thực nghiệm từ bộ dữ liệu Landsat 8 và 
MODIS trên Amazon Web Services (AWS) Public 
Data Set (PDS) (Hình 4). 
2.3. Dữ liệu và vùng thực nghiệm 
Dữ liệu đầu vào sử dụng trong nghiên cứu là 
ảnh vệ tinh MODIS Nadir BRDF-Adjusted Surface 
Reflectance Data Product 500m với định dạng dữ 
liệu GeoTIFFs được lấy từ nguồn Amazon Web 
Services PDS. 
Hình 3. Kiểu dữ liệu Tile sử dụng trong RasterFrame. 
Hình 4. Các nguồn dữ liệu raster sử dụng trong RasterFrames. 
 Nguyễn Thị Mai Dung, Vũ Thị Hoài Thu/Tạp chí Khoa học Kỹ thuật Mỏ - Địa chất 62(1), 42 - 52 47 
Dữ liệu ảnh MODIS được thu nhận trong 
khoảng thời từ tháng 01/1/2013 đến tháng 
31/12/2015 cho khu vực tỉnh Phú Thọ (Hình 5). 
Số lượng ảnh cung cấp bởi Amazone Web 
Services PDS là 2 cảnh ảnh trong một ngày và 
thuộc tính của ảnh sẽ được thể hiện dưới dạng 
lược đồ: 
col_name data_type 
product_id string 
acquisition_date timestamp 
gid string 
b01 string 
b01qa string 
b02 string 
. . 
b07qa String 
Hình 5. Khu vực nghiên cứu. 
Hình 6. Lưu đồ giải thuật chi tiết phân tích chuỗi thời gian của NDVI. 
48 Nguyễn Thị Mai Dung, Vũ Thị Hoài Thu/Tạp chí Khoa học Kỹ thuật Mỏ - Địa chất 62(1), 42 - 52 
3. Phương pháp phân tích chuỗi thời gian 
3.1. Phân tích chuỗi thời gian giá trị NDVI 
Hình 6 mô tả lưu đồ giải thuật xử lý và phân 
tích chuỗi thời gian giá trị NDVI trên tập dữ liệu 
đầu vào. Phương pháp này có thể tóm tắt ở các 
bước chính như sau: 
1. Sử dụng RasterFrames kết nối đến nguồn 
dữ liệu từ dịch vụ đám mây Amazon. 
2. Xác định vùng dữ liệu vùng quan tâm và 
thời gian thu thập của dữ liệu ảnh. 
3. Thực hiện các tính toán giá trị trên các 
DataFrames. 
4. Thực hiện các phân tích theo từng chuỗi 
thời gian. 
5. Biểu diễn các kết quả phân tích trên các 
biểu đồ. 
3.2. Cài đặt chương trình 
Ở phần này của bài báo trình bày cài đặt giải 
thuật phân tích chuỗi thời gian với ngôn ngữ 
Python, các bước chính của phương pháp được cài 
đặt như sau: 
- Kết nối đến nguồn dữ liệu Amazon 
path='RG_PhuTho_offset1km_1.geojson' 
PT_vector=spark.read.geojson(path) 
cat=spark.read.format('aws-pds-modis-
catalog').load().repartition(50) 
PT_cat = cat\ 
.filter( 
(cat.granule_id =='h27v06')& 
(cat.acquisition_date >= lit('2013-01-01'))& 
(cat.acquisition_date < lit('2013-12-01')) 
)\ 
.crossJoin(PT_vector) 
- Xác định vùng dữ liệu và thời gian thu nhận ảnh 
raster_cols = ['B01', 'B02',] # red and near-
infrared để tính toán NDVI 
PT_rf = spark.read.raster( 
PT_cat.select(['acquisition_date', 'granule_id'] 
+ raster_cols + PT_vector.columns), 
catalog_col_names=['B01', 'B02']) \ 
.withColumn('PT_native', 
st_reproject('geo_simp', lit('EPSG:4326'), 
rf_crs('B01'))) \ 
.filter(st_intersects('PT_native', 
rf_geometry('B01')))\ 
- Tính toán NDVI 
rf_PT_tile = PT_rf\ 
.withColumn('dims', rf_dimensions('B01')) \ 
.withColumn('PT_tile', 
rf_rasterize('PT_native', 
rf_geometry('B01'),'OBJECTID', 'dims.cols', 
'dims.rows')) \ 
.persist() 
rf_ndvi = rf_PT_tile \ 
.withColumn('ndvi', 
rf_normalized_difference('B02', 'B01')) \ 
.withColumn('ndvi_masked', rf_mask('ndvi', 
'PT_tile')) 
- Phân tích chuỗi thời gian 
time_series = rf_ndvi\ 
.groupby( 
year('acquisition_date').alias('year'), 
weekofyear('acquisition_date').alias('week'))\ 
.agg(rf_agg_mean('ndvi_masked').alias('ndvi')) 
- Biểu diễn kết quả phân tích 
ts_pd = time_series.toPandas() 
ts_pd.sort_values(['year', 'week'], 
inplace=True) 
plt.figure(figsize=(20,8)) 
plt.plot(ts_pd['year_week'], ts_pd['ndvi'],'go-
') 
4. Kết quả thực nghiệm 
Chỉ số thực vật NDVI và sự thay đổi giá trị 
trung bình của NDVI trong một khoảng thời gian 
nhất định được tính toán để chỉ ra sự biến đổi lớp 
phủ thực vật tại khu vực tỉnh Phú Thọ. 
NDVI thường sử dụng để theo dõi hạn hán, dự 
đoán sản xuất nông nghiệp, hỗ trợ dự đoán các 
khu vực cháy rừng và lập bản đồ sự xâm lấn sa 
mạc. NDVI để theo dõi thảm thực vật toàn cầu vì 
nó giúp làm cân bằng cho việc thay đổi điều kiện 
chiếu sáng, độ dốc bề mặt, hướng và các yếu tố 
ngoại lai khác (Lillesand 2004). Chỉ số NDVI được 
tính toán theo tỷ số giữa kênh sóng đỏ (Red) và 
kênh cận hồng ngoại (NIR). 
𝑁𝐷𝑉𝐼 =
𝐵𝑎𝑛𝑑 (𝑁𝐼𝑅) − 𝐵𝑎𝑛𝑑 (𝑅𝑒𝑑)
𝐵𝑎𝑛𝑑 (𝑁𝐼𝑅) + 𝐵𝑎𝑛𝑑 (𝑅𝑒𝑑)
Quá trình xử lý dữ liệu thay vì được thực hiện 
trên từng dữ liệu raster độc lập, RasterFrames 
cung cấp khả năng xử lý trên một tập hợp các dữ 
 Nguyễn Thị Mai Dung, Vũ Thị Hoài Thu/Tạp chí Khoa học Kỹ thuật Mỏ - Địa chất 62(1), 42 - 52 49 
liệu raster. Tập hợp này là một danh sách các URL 
tham chiếu đến các tệp raster cũng có thể là Spark 
DataFrame, Pandas DataFrame, tệp CSV hoặc 
chuỗi CSV. 
Thực nghiệm kết hợp dữ liệu ranh giới khu 
vực nghiên cứu với danh mục các tệp raster và chỉ 
xử lý trên các kênh ảnh dùng để tính toán chỉ số 
NDVI (Hình 7). 
Chỉ số thực vật NDVI trong khoảng thời gian 
từ 1/1/2013 đến 30/12/2015 được tính toán cho 
toàn bộ dữ liệu. Hình 8 thể hiện giá trị của tháng 
12/2013 được tính toán, kết xuất từ chương trình 
Hình 7. Tập hợp các dữ liệu raster sử dụng trong tính toán chỉ số NDVI (Kênh sóng Đỏ và cận hồng ngoại) 
của ảnh MODIS. 
Hình 8. NIDV tại 12/2013 và bản đồ hiện trạng. 
50 Nguyễn Thị Mai Dung, Vũ Thị Hoài Thu/Tạp chí Khoa học Kỹ thuật Mỏ - Địa chất 62(1), 42 - 52 
và bản đồ hiện trạng lớp phủ thực vật năm 2013 
của tỉnh Phú Thọ. Kết quả cho thấy độ chính xác 
của phương pháp tính toán đề xuất. Khu vực trên 
ảnh có giá trị NDVI cao (>0.6) tương ứng với vùng 
lớp phủ rừng (mầu vàng) trên bản đồ lớp phủ. 
Tiếp theo, phân tích theo chuỗi thời gian được 
thiết lập bằng cách sử dụng giá trị NDVI trung bình 
theo tuần trong khoảng thời gian này tại khu vực 
tỉnh Phú Thọ bằng việc sử dụng các hàm tính toán 
dựa trên nhóm và thời gian được tích hợp sẵn trên 
Pyspark và hàm tập hợp của RasterFrames để 
thực hiện việc tính toán. Hình 9 biểu diễn giá trị 
biến động NDVI theo tuần trong các năm 2013 và 
2015. Kết quả cho thấy độ biến động ở 2 năm là
 khá đồng đều. Giá trị NDVI trung bình có xu 
hướng giảm mạnh từ khoảng tháng 11÷3 năm sau 
chứng tỏ thực vật đang trút lá có thể do thời điểm 
này là mùa khô. Từ tháng 4÷10 giá trị NDVI trung 
bình tăng chứng tỏ thực vật đang dần phát triển 
ổn định do thời điểm này là mùa mưa không bị 
hạn hán, cháy rừng, nhiều ánh nắng mặt trời giúp 
thực vật quang hợp tốt. 
5. Kết luận 
Phương pháp xử lý và phân tích dữ liệu ảnh 
vệ tinh dựa trên nền tảng Apache Spark kết hợp 
với thư viện xử lý dữ liệu không gian 
RasterFrames. Dữ liệu đầu vào là tập các ảnh
Hình 9. Đồ thị biểu diễn xu hướng trong chuỗi thời gian NDVI (1/2013-12/2013 và 1/2015- 12/2015). 
 Nguyễn Thị Mai Dung, Vũ Thị Hoài Thu/Tạp chí Khoa học Kỹ thuật Mỏ - Địa chất 62(1), 42 - 52 51 
vệ tinh MODIS được thu nhận trong khoảng thời 
gian từ tháng 1/2013 đến tháng 12/2015 khu vực 
tỉnh Phú Thọ. Chỉ số NDVI theo chuỗi thời gian 
được tính toán và phân tích để đánh giá sự biến 
đổi của lớp phủ thực vât tại khu vực nghiên cứu. 
Phương pháp đề xuất cho thấy khả năng mở 
rộng để có thể xử lý lượng dữ liệu lớn và kết nối từ 
nguồn dữ liệu phong phú. Các kết quả thực 
nghiệm được thực hiện trên một máy tính, tuy 
nhiên có thể mở rộng thành 1 cụm tính toán dựa 
trên nền tảng Apache Spark. Kết quả bài báo đã 
góp phần khẳng định vai trò của các nền tảng công 
nghệ dữ liệu lớn, điện toán đám mây, khoa học dữ 
liệu trong các bài toán liên quan đến quản lý, giám 
sát tài nguyên thiên nhiên và môi trường. Thực 
hiện các phân tích đa thời gian phức tạp hơn để có 
những đánh giá chi tiết và mở rộng nguồn dữ liệu 
ảnh đầu vào là một trong những hướng nghiên 
cứu tiếp theo. 
Lời cảm ơn 
Kết quả nghiên cứu này là một trong những 
nội nghiên cứu của đề tài “Xử lý ảnh vệ tinh trên 
nền tảng dữ liệu lớn ”, Mã số T19-29. 
Nhóm nghiên cứu xin chân thành cảm ơn Đề 
tài đã hỗ trợ cho nghiên cứu này. 
Những đóng góp của tác giả 
Nội dung khoa học của bài báo có sự đóng góp 
của tất cả các tác giả, cụ thể: 
Nguyễn Thị Mai Dung: đề xuất phương pháp, 
chỉnh sửa bản thảo bài báo; Vũ Thị Hoài Thu: cài 
đặt chương trình, viết bản thảo bài báo. 
Tài liệu tham khảo 
Aji, A., Sun, X., Vo, H., Liu, Q., Lee, R., Zhang, X., Saltz, 
J. and Wang, F., (2013). Demonstration of 
Hadoop-GIS: a spatial data warehousing 
system over MapReduce. In Proceedings of the 
21st ACM SIGSPATIAL International Conference 
on Advances in Geographic Information Systems 
(pp. 528-531). ACM. 
Boyi Shangguan, Peng Yue, Zhaoyan Wu and 
Liangcun Jiang, (2017). Big spatial data 
processing with Apache Spark. In Agro-
Geoinformatics, 2017. IEEE. 
Eldawy, A. and Mokbel, M. F., (2015). 
SpatialHadoop: A MapReduce framework for 
spatial data. In Data Engineering (ICDE), 2015 
IEEE 31st International Conference on (pp. 
1352- 1363). IEEE. 
Databricks. Apache Spark – What is Spark. 
 . 
Fei Xiao, (2017). A Big Spatial Data Processing 
Framework Applying to National Geographic 
Conditions Monitoring. The International 
Archives of the Photogrammetry, Remote 
Sensing and Spatial Information Sciences, 
Volume XLII-3, 2018 ISPRS TC III Mid-term 
Symposium “Developments, Technologies and 
Applications in Remote Sensing”, 7-10 May, 
Beijing, China. 
Huang, Z., Chen, Y., Wan, L., and Peng, X., (2017). 
GeoSpark SQL: An Effective Framework 
Enabling Spatial Queries on Spark. In ISPRS 
International Journal of Geo- Information, 6(9), 
285. 
Hughes, J. N., Annex, A., Eichelberger, C. N., Fox, A., 
Hulbert, A. and Ronquest, M., (2015). Geomesa: 
a distributed architecture for spatio-temporal 
fusion. In SPIE Defense+ Security (pp. 94730F-
94730F). International Society for Optics and 
Photonics. 
Kini, A., and R., (2014). Emanuele. Geotrellis: 
Adding geospatial capabilities to spark. In 
Spark Summit. 
Lu, J. and Guting, R. H., (2012). Parallel secondo: 
boosting database engines with hadoop. In 
Parallel and Distributed Systems (ICPADS), 
(2012) IEEE 18th International Conference on 
(pp. 738-743). IEEE. 
MODIS on AWS https://docs.opendata.aws/ 
modis -pds/readme.html. 
Nishimura, S., Das, S., Agrawal, D. and El Abbadi, 
A., (2011), June. Md-hbase: A scalable multi-
dimensional data infrastructure for location 
aware services. In Mobile Data Management 
(MDM), 2011 12th IEEE International 
Conference on (Vol. 1, pp. 7-16). IEEE. 
Ram Sriharsha, https://github.com/harsha2010 
/magellan. 
RasterFrames.  
Stefan Hagedorn, Philipp Götze, Kai-Uwe Sattler, 
52 Nguyễn Thị Mai Dung, Vũ Thị Hoài Thu/Tạp chí Khoa học Kỹ thuật Mỏ - Địa chất 62(1), 42 - 52 
(2017). Big Spatial Data Processing 
Frameworks: Feature and Performance 
Evaluation. In 20th International Conference on 
Extending Database Technology (EDBT). 
Thomas Lillesand, Ralph W., (2004). Kiefer, 
Jonathan Chipman. Remote sensing and image 
interpretation. Wiley. 
You, S., Zhang, J. and Gruenwald, L., (2015). Large-
scale spatial join query processing in cloud. In 
Data Engineering Workshops (ICDEW), 2015 
31st IEEE International Conference on (pp. 34-
41). IEEE. 
Yu, J., Wu, J. and Sarwat, M., (2015). Geospark: A 
cluster computing framework for processing 
large-scale spatial data. In Proceedings of the 
23rd SIGSPATIAL International Conference on 
Advances in Geographic Information Systems 
(p.70). ACM.

File đính kèm:

  • pdfvegetation_change_detection_based_on_time_series_analysis_by.pdf