[GRASS-dev] OSGeo-SoC 2016 application

Yang, Bo (yangb2) yangb2 at mail.uc.edu
Wed Mar 16 21:38:43 PDT 2016

Dear Soeren and Luca,

First, let me introduce myself again to Soeren. My name is Bo Yang, a Ph. D. student in the Department of Geography, University of Cincinnati, OH, USA.  I have a bachelor degree in Mathematics and MS in Computer Science. I am really interested in OSGeo-SoC2016. It would be a great opportunity if I can make contributions as well as learn to become an open-source developer.

Currently I have an idea based on my MA thesis project: Spatio-temporal fusion of multi-scale data with in a cokriging framework.
This project extends traditional cokriging method for blending spatial data sets with different temporal sampling frequency and spatial resolution (density). It can be used for both raster data and vector data, effectively fill in data gaps due to severe weather condition, instrument malfunction, or other reasons, filtering out data noise, and generate reliable results at both high spatial resolution and high temporal frequency with associated uncertainty estimates.

Soeren, I noticed you are the author of r.series.interp. I discussed a little with Luca, I agree this project is highly related to the package. So I am writing to ask if you are interest in mentoring this project. Currently I have the preliminary python code for the raster fusion attached(ImageFusion_SoC.py). It was written during my master degree, so it is sort of rough and haven't been re-constructed to OOP yet. But it runs well for fusion MODIS and Landsat data. 

I attached an fusion example for NDVI[0] images.  The program is able to blend Landsat TM/ETM+ NDVI image (30m) with MODIS NDVI image (250m)[1]. The NDVI can be calculated from the combination of the red band (Band 3 of Landsat TM or ETM+ multispectral imagery, or Band 1 of MODIS multispectral imagery) and near infrared band (Band 4 of Landsat TM or ETM+ multispectral imagery, or Band 2 of MODIS multispectral imagery). MODIS data has been resampled to 270m to co-registered with Landsat pixels. 

I selected a relatively cloud free period (07/19/2002-07/29/2002) to demonstrate the fusion process, the study region is Lake Tahoe region, NV, USA. Both Landsat and MODIS NDVI images need to be converted to ASCII file, source data can be found here[2]. Text files start with "A" are daily MODIS NDVI images and "lt5ndvi_0716" is the Landsat TM data. The goal of this example is to fuse daily MODIS NDVI images with a Landsat NDVI images (30m) to generate images at 30 m spatial resolution for everyday, using spatio-temporal cokriging method. Namely, I intend to use a single high resolutions Landsat NDVI images to sharpen daily time series MODIS images. Also the program is able to fill in the missing value. I artificially generated a missing data region in each input MODIS image and we can see the result fill in the missing data region very well. One good application of this algorithm is to fill in the gaps in the Landsat ETM+ images after 2002 due to the sensor's malfunction. 

The fusion module is attached, it need an input exponential/Gaussian model parameter which was calculated via semi-variogram fitting module. I did export the parameters in the attached text file for this case so the fusion module can be run independently. To run the program quickly, just put attached text file and source data[2] in the working folder and apply it to line22 of the fusion module. Of course other MODIS data can be used for this program if converted to ASCII files. There are two fusion methods, first one (line 330: fusion_with_covariable) is used for the MODIS data, which can sharpening and fill-in the missing data values. Second one is cokriging which incorporated the fine Landsat image as co-variable, it can achieve much better sharpening result as well as fill-in missing data values. Both method generated the gap filled result at 30m spatial resolution.

Please let me know if you have and comments or suggestions. Luca, thank you for sending me the compile method and programming manual. I normally used windows OS, and Eclipse + Pydev as primary IDE. I am going to look into the manual and GRASS codes. Any more advice would be greatly appreciated.

Best regards,
Bo Yang

[0] https://en.wikipedia.org/wiki/Normalized_Difference_Vegetation_Index
[1] https://lpdaac.usgs.gov/dataset_discovery/modis/modis_products_table/mod09gq
[2] https://drive.google.com/folderview?id=0B25sQdmthpGJS0JOdEh5cDd4S1k&usp=sharing

-----Original Message-----
From: Luca Delucchi [mailto:lucadeluge at gmail.com] 
Sent: Wednesday, March 16, 2016 11:18 AM
To: Yang, Bo (yangb2) <yangb2 at mail.uc.edu>; Sören Gebbert <soerengebbert at googlemail.com>
Cc: grass-dev at lists.osgeo.org
Subject: Re: [GRASS-dev] OSGeo-SoC 2016 application

On 16 March 2016 at 04:49, Yang, Bo (yangb2) <yangb2 at mail.uc.edu> wrote:
> Hi Luca,

Hi Bo Yang,

> Thank you for the reply and info. It is great if you could co-mentor this project. I would be more interest in implementing my spatio-temporal fusion algorithm as an open source plug-in. Actually, I already have the preliminary python code for the raster fusion, including modules of spatio-temporal semi-variogram calculating, exponential/Gaussian fitting, spatio-temporal fusion, uncertainty estimation and etc. Currently it runs well for fusing MODIS and Landsat data. But it is just a preliminary program, I think a lot more works need to be done to make it professional and could incorporated into GRASS framework.

Could we see and test the code? I'm interesting to test it with MODIS data...

> I've read the link you sent to me. I think it is a good point to add it to r.series.interp, which I noticed author is Sören Gebbert. Should I ask Sören if he is interested to be a potential mentor? Furthermore, could you advise what should I do now to get start for the programming environmental as well as prepare the proposal?

Yes, I think you should ask Soeren, he knows a lot about this topic.
You have to compile GRASS [0], do you have a Windows or Unix OS?
After this you can start to read more about GRASS programming [1]

> Best,
> Bo Yang

[0] https://grasswiki.osgeo.org/wiki/Compile_and_Install
[1] https://grass.osgeo.org/programming7/


-------------- next part --------------
A non-text attachment was scrubbed...
Name: ImageFusion_SoC.py
Type: application/octet-stream
Size: 23953 bytes
Desc: ImageFusion_SoC.py
URL: <http://lists.osgeo.org/pipermail/grass-dev/attachments/20160317/aceb550c/attachment-0001.obj>
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: Fitted1.txt
URL: <http://lists.osgeo.org/pipermail/grass-dev/attachments/20160317/aceb550c/attachment-0001.txt>

More information about the grass-dev mailing list