#!/usr/bin/env python # coding: utf-8 # In[1]: get_ipython().run_cell_magic('time', '', '%matplotlib inline\nfrom new_import import *\n') # In[2]: get_ipython().run_cell_magic('time', '', '# Dask gateway\ncluster, client = notebook_utils.initialize_dask(use_gateway=True, workers=(1,4))\ndc = datacube.Datacube()\n\n# Configure s3 access\nconfigure_s3_access(aws_unsigned=False, requester_pays=True, client=client)\n\nclient\n') # In[3]: ## cấu hình thời gian lấy ảnh và tọa độ date_range = ('2022-09-01', '2023-10-01') longtitude_range = (105.86575, 105.94120) latitude_range = (9.65070, 9.69850) # In[4]: ## truy vấn ảnh vệ tinh sen2 data = load_data(dc, date_range, longtitude_range, latitude_range) notebook_utils.heading(notebook_utils.xarray_object_size(data)) display(data) # In[5]: get_ipython().run_cell_magic('time', '', '# Tiến hành loại bỏ các vị trí bị mây ảnh hưởng\nresult = mask_clean(data)\nprogress(result)\n') # In[6]: # Tiến hành tính toán NDVI ds1 = calculate_indices(result, index='NDVI', satellite_mission='s2') ndvi = ds1["NDVI"] display(ndvi) # In[17]: get_ipython().run_cell_magic('time', '', "## tính ndvi theo tháng\naverage_ndvi = ndvi.resample(time='1M').mean().persist()\nprogress(average_ndvi)\n") # In[18]: # compute average_ndvi average_ndvi = average_ndvi.compute() # In[9]: # cấu hình vh vv file name_vh = "ThuanHoa/ThuanHoa_VH.tif" name_vv = "ThuanHoa/ThuanHoa_VV.tif" # load dữ liệu sen1 bbox = [105.5, 9.2, 106.4, 10.0] time_range = '2022-09-01/2023-10-01' dsvh, dsvv = load_sen1(bbox, time_range) # In[10]: from sklearn.preprocessing import PolynomialFeatures from sklearn.linear_model import LinearRegression from sklearn.ensemble import RandomForestRegressor # In[11]: mask = ~np.isnan(average_ndvi) X_train = np.stack([dsvh.values[mask], dsvv.values[mask]], axis=1) y_train = average_ndvi.values[mask] # In[12]: model = LinearRegression() model.fit(X_train, y_train) # In[13]: X_pred = np.stack([dsvh.values[~mask], dsvv.values[~mask]], axis=1) average_ndvi.values[~mask] = model.predict(X_pred) # In[14]: average_ndvi_filled = xr.DataArray(average_ndvi, dims=average_ndvi.dims) # In[16]: plt.imshow(average_ndvi_filled.isel(time=1)) # In[19]: plt.imshow(average_ndvi.isel(time=1)) # In[ ]: