[GRASS-dev] OSGeo-SoC 2016 application

Hello,

My name is Bo Yang, a Ph. D. student in the Department of Geography, University of Cincinnati. I have a bachelor degree in Mathematics and MS in Computer Science. I am proficient in Python, C/C++, R and have utilized QGIS and GRASS a lot in my study and research project. 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.

For years I have worked with raster processing algorithms and computation efficiency, for example, coding (python) to process large volume of remote sensing data, therefore I am interested in the existing idea:

GRASS: Additional segmentation algorithms for i.segment.

In addition, 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.

It would be greatly appreciated if someone interested in my idea and could guide me how to get start and prepare the proposal. Thanks for your time and I am looking forward to hearing from you.

Best regards,

Bo Yang

On 15 March 2016 at 03:54, Yang, Bo (yangb2) <yangb2@mail.uc.edu> wrote:

Hello,

Hi Bo Yang,

In addition, 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.

It would be greatly appreciated if someone interested in my idea and could
guide me how to get start and prepare the proposal. Thanks for your time and
I am looking forward to hearing from you.

This is really interesting, In GRASS GIS Temporal Framework [0][1]
already exists a module for raster gapfilling [2], it uses the module
r.series.interp [3]. The idea could be to add a new method in
r.series.interp and a new vector module something like v.series.interp
and after you could add the new functionality to GRASS GIS Temporal
Framework.

I could co-mentor this proposal, maybe Soeren could be a good mentor
for this proposal....

Best regards,

Bo Yang

[0] https://grass.osgeo.org/grass71/manuals/temporalintro.html
[1] https://grasswiki.osgeo.org/wiki/Temporal_data_processing
[2] https://grass.osgeo.org/grass71/manuals/t.rast.gapfill.html
[3] https://grass.osgeo.org/grass71/manuals/r.series.interp.html

--
ciao
Luca

http://gis.cri.fmach.it/delucchi/
www.lucadelu.org

Dear Bo,

On 15/03/16 03:54, Yang, Bo (yangb2) wrote:

Hello,

My name is Bo Yang, a Ph. D. student in the Department of Geography,
University of Cincinnati. I have a bachelor degree in Mathematics and
MS in Computer Science. I am proficient in Python, C/C++, R and have
utilized QGIS and GRASS a lot in my study and research project. 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.

For years I have worked with raster processing algorithms and
computation efficiency, for example, coding (python) to process large
volume of remote sensing data, therefore I am interested in the existing
idea:

GRASS: Additional segmentation algorithms for i.segment.

In our previous exchange via private mail, I already sent you the necessary pointers for this subject. Markus Metz and I are willing to mentor a student on this. I think it would be a marvelous addition to GRASS' image treatment toolbox.

Don't hesitate to post on this list if you have any other questions concerning this subject.

I think you will have to chose quite quickly which one of your two subjects you wish to pursue, as the deadline for applications will arrive fast, and it is probably better to concentrate on one subject and do that well. There have been cases, however, of students proposing more than one subject.

Best wishes,
Moritz

Dear Moritz,

Thank you for the reply. Yes, I agree that I should focus on one subject and get start preparing the proposal based on it. After a quick research for both subjects. I would like to choose pursuing my latter idea about spatio-temporal image fusion algorithm. For one thing, It is my novel algorithm and I have the confidence and motivation to make it available for using. For another, I code in python more skillful than in C/C++ language. I will contact Luca Delucchi for the possibility of developing that project.
Thank you again for guiding me earlier. Any more advice would be greatly appreciated.

Best regards,
Bo Yang

-----Original Message-----
From: Moritz Lennert [mailto:mlennert@club.worldonline.be]
Sent: Tuesday, March 15, 2016 8:10 AM
To: Yang, Bo (yangb2) <yangb2@mail.uc.edu>; grass-dev@lists.osgeo.org
Subject: Re: [GRASS-dev] OSGeo-SoC 2016 application

Dear Bo,

On 15/03/16 03:54, Yang, Bo (yangb2) wrote:

Hello,

My name is Bo Yang, a Ph. D. student in the Department of Geography,
University of Cincinnati. I have a bachelor degree in Mathematics and
MS in Computer Science. I am proficient in Python, C/C++, R and have
utilized QGIS and GRASS a lot in my study and research project. 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.

For years I have worked with raster processing algorithms and
computation efficiency, for example, coding (python) to process large
volume of remote sensing data, therefore I am interested in the
existing
idea:

GRASS: Additional segmentation algorithms for i.segment.

In our previous exchange via private mail, I already sent you the necessary pointers for this subject. Markus Metz and I are willing to mentor a student on this. I think it would be a marvelous addition to GRASS' image treatment toolbox.

Don't hesitate to post on this list if you have any other questions concerning this subject.

I think you will have to chose quite quickly which one of your two subjects you wish to pursue, as the deadline for applications will arrive fast, and it is probably better to concentrate on one subject and do that well. There have been cases, however, of students proposing more than one subject.

Best wishes,
Moritz

Hi Luca,

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.
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?

Best,
Bo Yang

-----Original Message-----
From: Luca Delucchi [mailto:lucadeluge@gmail.com]
Sent: Tuesday, March 15, 2016 5:28 AM
To: Yang, Bo (yangb2) <yangb2@mail.uc.edu>
Cc: grass-dev@lists.osgeo.org
Subject: Re: [GRASS-dev] OSGeo-SoC 2016 application

On 15 March 2016 at 03:54, Yang, Bo (yangb2) <yangb2@mail.uc.edu> wrote:

Hello,

Hi Bo Yang,

In addition, 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.

It would be greatly appreciated if someone interested in my idea and
could guide me how to get start and prepare the proposal. Thanks for
your time and I am looking forward to hearing from you.

This is really interesting, In GRASS GIS Temporal Framework [0][1] already exists a module for raster gapfilling [2], it uses the module r.series.interp [3]. The idea could be to add a new method in r.series.interp and a new vector module something like v.series.interp and after you could add the new functionality to GRASS GIS Temporal Framework.

I could co-mentor this proposal, maybe Soeren could be a good mentor for this proposal....

Best regards,

Bo Yang

[0] https://grass.osgeo.org/grass71/manuals/temporalintro.html
[1] https://grasswiki.osgeo.org/wiki/Temporal_data_processing
[2] https://grass.osgeo.org/grass71/manuals/t.rast.gapfill.html
[3] https://grass.osgeo.org/grass71/manuals/r.series.interp.html

--
ciao
Luca

http://gis.cri.fmach.it/delucchi/
www.lucadelu.org

On 16 March 2016 at 04:49, Yang, Bo (yangb2) <yangb2@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/

--
ciao
Luca

http://gis.cri.fmach.it/delucchi/
www.lucadelu.org

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@gmail.com]
Sent: Wednesday, March 16, 2016 11:18 AM
To: Yang, Bo (yangb2) <yangb2@mail.uc.edu>; Sören Gebbert <soerengebbert@googlemail.com>
Cc: grass-dev@lists.osgeo.org
Subject: Re: [GRASS-dev] OSGeo-SoC 2016 application

On 16 March 2016 at 04:49, Yang, Bo (yangb2) <yangb2@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/

--
ciao
Luca

http://gis.cri.fmach.it/delucchi/
www.lucadelu.org

(attachments)

ImageFusion_SoC.py (23.4 KB)
Fitted1.txt (173 Bytes)

Dear Luca,

Last weekend I've tried using my computer checking out the source codes and compiled the GRASS in the windows OS environment [0]. In addition, I've studied both t.rast.gapfill and r.series.interp modules. I think that it would be possible to add an interpolation method because it currently supports only linear interpolation. I think it would be a good idea to add Kriging/cokriging to the interpolation methods since it is a wide used rater interpolation algorithm. Although Kriging/cokriging computational time is significantly longer than the traditional linear method, it completes the gap filling process within a reasonable period with much better fusion results, especially for some heterogeneous region. If you think it is OK, I can prepare the proposal follow this direction (it is due this Friday).

However, I've got the reply from Soeren (see below). He said he can't mentor the project due to too busy this year. Do you have any other person in mind to recommend as mentor? Or are you available for mentoring this project? Please advise.
Thank you for being patient and helping me.

Best wishes,
Bo Yang

[0] https://trac.osgeo.org/grass/wiki/CompileOnWindows

-----Original Message-----
From: Sören Gebbert [mailto:soeren.gebbert@thuenen.de]
Sent: Monday, March 21, 2016 10:36 AM
To: Yang, Bo (yangb2) <yangb2@mail.uc.edu>
Subject: Re: FW: [GRASS-dev] OSGeo-SoC 2016 application

Dear Bo,
sorry for my late response.

Your project sounds very interesting indeed. However, i am really sorry to tell you that i have no time this year to mentor a GSoC2016 project. I have to work on so many different projects right now, that i am not able to spend time on GSoC2016.

Best regards
Soeren

Dear Soeren,

I hope this email finds you well.
I apologize for the multiple emails, I am forwarding this email in
case you didn't see the earlier one I sent to "soerengebbert@googlemail.com ".
Thank you and have a good day.

Best regards,
Bo yang

-----Original Message-----
From: Yang, Bo (yangb2)
Sent: Thursday, March 17, 2016 12:39 AM
To: 'Luca Delucchi' <lucadeluge@gmail.com>; Sören Gebbert
<soerengebbert@googlemail.com>
Cc: grass-dev@lists.osgeo.org
Subject: RE: [GRASS-dev] OSGeo-SoC 2016 application

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/m
od09gq
[2]
https://drive.google.com/folderview?id=0B25sQdmthpGJS0JOdEh5cDd4S1k&us
p=sharing

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

On 16 March 2016 at 04:49, Yang, Bo (yangb2) <yangb2@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/

--
ciao
Luca

http://gis.cri.fmach.it/delucchi/
www.lucadelu.org

On 23 March 2016 at 05:04, Yang, Bo (yangb2) <yangb2@mail.uc.edu> wrote:

Dear Luca,

Dear Bo,

Last weekend I've tried using my computer checking out the source codes and compiled the GRASS in the windows OS environment [0]. In addition, I've studied both t.rast.gapfill and r.series.interp modules. I think that it would be possible to add an interpolation method because it currently supports only linear interpolation. I think it would be a good idea to add Kriging/cokriging to the interpolation methods since it is a wide used rater interpolation algorithm. Although Kriging/cokriging computational time is significantly longer than the traditional linear method, it completes the gap filling process within a reasonable period with much better fusion results, especially for some heterogeneous region. If you think it is OK, I can prepare the proposal follow this direction (it is due this Friday).

I think you should start the proposal, because there is no so much time

However, I've got the reply from Soeren (see below). He said he can't mentor the project due to too busy this year. Do you have any other person in mind to recommend as mentor? Or are you available for mentoring this project? Please advise.
Thank you for being patient and helping me.

I have no enough C skills to be the first mentor, I could be the
co-mentor (for testing, helping you with t.rast.gapfill and adding
tests). Is someone else interested to be mentor?

Best wishes,
Bo Yang

--
ciao
Luca

http://gis.cri.fmach.it/delucchi/
www.lucadelu.org

Le Wed, 23 Mar 2016 09:09:06 +0100,
Luca Delucchi <lucadeluge@gmail.com> a écrit :

On 23 March 2016 at 05:04, Yang, Bo (yangb2) <yangb2@mail.uc.edu>
wrote:
> Dear Luca,
>

Dear Bo,

> Last weekend I've tried using my computer checking out the source
> codes and compiled the GRASS in the windows OS environment [0]. In
> addition, I've studied both t.rast.gapfill and r.series.interp
> modules. I think that it would be possible to add an interpolation
> method because it currently supports only linear interpolation. I
> think it would be a good idea to add Kriging/cokriging to the
> interpolation methods since it is a wide used rater interpolation
> algorithm. Although Kriging/cokriging computational time is
> significantly longer than the traditional linear method, it
> completes the gap filling process within a reasonable period with
> much better fusion results, especially for some heterogeneous
> region. If you think it is OK, I can prepare the proposal follow
> this direction (it is due this Friday).

I think you should start the proposal, because there is no so much
time

> However, I've got the reply from Soeren (see below). He said he
> can't mentor the project due to too busy this year. Do you have any
> other person in mind to recommend as mentor? Or are you available
> for mentoring this project? Please advise. Thank you for being
> patient and helping me.

I have no enough C skills to be the first mentor, I could be the
co-mentor (for testing, helping you with t.rast.gapfill and adding
tests). Is someone else interested to be mentor?

As mentioned privately, I'm only available, like you, as co-mentor for
testing and applied advice, not so much on the coding side.

In light of the absence of mentors, you might want to reconsider the
choice of topics. For i.segment, Markus Metz is willing to deal with
the C-side and I mentor for the rest.

Moritz

Dear Moritz,

Thank you for the reply, and thanks you and Markus could be the mentor of the i.segment project! There are only two days left for submitting the proposal, take into consideration I think I need to switch to the topic of i.segment project now. For my cokriging fusion topic I think I could do it after this summer in the future work.
I've read the source code and Eric's wiki of GSoC 2012 [0]. I think I will prepare the proposal following the direction of adding new algorithms to segment an image into objects-- more than region-growing algorithm. Moritz, you mentioned segmentation algorithm: mean-shift, split-window and watershed. I think some unsupervised classification algorithms would also be possible such as: dynamic thresholding and markov random field (MRF). If you think it is OK, I will start the preparing the draft of proposal from now on, and I think I could have the first version send back to you by tomorrow (Thursday). If you have any suggestions and comments please let me know.
Thanks again to both you and Luca for your guidance and patient.

Best wishes,
Bo Yang

[0] https://grasswiki.osgeo.org/wiki/GRASS_GSoC_2012_Image_Segmentation

-----Original Message-----
From: Moritz Lennert [mailto:mlennert@club.worldonline.be]
Sent: Wednesday, March 23, 2016 10:12 AM
To: Yang, Bo (yangb2) <yangb2@mail.uc.edu>
Cc: Luca Delucchi <lucadeluge@gmail.com>; grass-dev@lists.osgeo.org; Markus Metz <markus.metz.giswork@gmail.com>
Subject: Re: [GRASS-dev] FW: FW: OSGeo-SoC 2016 application

Le Wed, 23 Mar 2016 09:09:06 +0100,
Luca Delucchi <lucadeluge@gmail.com> a écrit :

On 23 March 2016 at 05:04, Yang, Bo (yangb2) <yangb2@mail.uc.edu>
wrote:
> Dear Luca,
>

Dear Bo,

> Last weekend I've tried using my computer checking out the source
> codes and compiled the GRASS in the windows OS environment [0]. In
> addition, I've studied both t.rast.gapfill and r.series.interp
> modules. I think that it would be possible to add an interpolation
> method because it currently supports only linear interpolation. I
> think it would be a good idea to add Kriging/cokriging to the
> interpolation methods since it is a wide used rater interpolation
> algorithm. Although Kriging/cokriging computational time is
> significantly longer than the traditional linear method, it
> completes the gap filling process within a reasonable period with
> much better fusion results, especially for some heterogeneous
> region. If you think it is OK, I can prepare the proposal follow
> this direction (it is due this Friday).

I think you should start the proposal, because there is no so much
time

> However, I've got the reply from Soeren (see below). He said he
> can't mentor the project due to too busy this year. Do you have any
> other person in mind to recommend as mentor? Or are you available
> for mentoring this project? Please advise. Thank you for being
> patient and helping me.

I have no enough C skills to be the first mentor, I could be the
co-mentor (for testing, helping you with t.rast.gapfill and adding
tests). Is someone else interested to be mentor?

As mentioned privately, I'm only available, like you, as co-mentor for testing and applied advice, not so much on the coding side.

In light of the absence of mentors, you might want to reconsider the choice of topics. For i.segment, Markus Metz is willing to deal with the C-side and I mentor for the rest.

Moritz

Dear Bo,

On 24/03/16 06:26, Yang, Bo (yangb2) wrote:

Dear Moritz,

Thank you for the reply, and thanks you and Markus could be the
mentor of the i.segment project! There are only two days left for
submitting the proposal, take into consideration I think I need to
switch to the topic of i.segment project now.

Thank you for the flexibility !

For my cokriging fusion
topic I think I could do it after this summer in the future work.

Great !

I've read the source code and Eric's wiki of GSoC 2012 [0]. I think I
will prepare the proposal following the direction of adding new
algorithms to segment an image into objects-- more than
region-growing algorithm. Moritz, you mentioned segmentation
algorithm: mean-shift, split-window and watershed.

Yes, as the general logistics of the i.segment module is in place, adding new segmentation algorithms should not be too hard, so adding several should be possible during this GSoC.

I think some
unsupervised classification algorithms would also be possible such
as: dynamic thresholding and markov random field (MRF).

Unsupervised classification could be an interesting addition.

However, I would think KISS. So, concentrate on the segmentation. You can add classification in the the project as a possible extension, in case you finish early with the segmentation.

In any case, classification should be a separate module. The idea is to have each module do one thing. Currently classification is proposed by v.class.ml and v.class.mlR (but the latter is a very simple hack I did for teaching - I'm currently busy rewriting it), but they are supervised.

For classification segment characterization is also important. Currently we have two Python-based modules for that v.class and i.segment.stats. One option might be to think about more efficient approaches and more variables for that.

If you think
it is OK, I will start the preparing the draft of proposal from now
on, and I think I could have the first version send back to you by
tomorrow (Thursday).

Perfect. Markus and I are in Europe so don't forget about time zones when thinking about when to send us your draft...

If you have any suggestions and comments please
let me know.

Markus can give you more details about the actual implementation. I think in your proposal you should show that you have a general idea of how i.segment works, and you should review different segmentation techniques, possibly with relevant literature references. You might also want to have a look at Orfeo Toolbox and their implementation of some of the segmentation algorithms.

In general, it would be nice to add at least one or two top-down methods as this would allow top-down hierarchical segmentation, while the current region growing approach only allows bottom-up hierarchical segmentation.

Final note just to make sure that this is clear: please be aware that there are other GRASS-related proposals and that we do not know how many slots we will get for GRASS. There is thus no guarantee that your proposal will be chosen.

Best wishes,
Moritz

Dear Moritz,

Please find the attachment for my first draft of the proposal. GoogleDoc: https://docs.google.com/document/d/1Qanh7sUdJZfiusTVIBHmlbC6NY9kKFVR18OL3icreoM/edit?usp=sharing

Thanks for your advices, such as Orfeo Toolbox, those are really helpful for further understanding the segmentation algorithms.

However, I find few literature about the split-window algorithm, So for the time being I put mean-shift and watershed as my highest priority algorithm to be implemented.

Please let me know if you and/or Markus have any suggestions. I didn’t strictly follow the proposal template[1] because there is no methods part. I restructure the proposal and included all the required information in the template. If needed I can revise it to exactly follow template’s format. The proposal is due tomorrow afternoon for me (3pm EST) so I think I still have enough time to refine it.

Yes, I fully understand there is no guarantee that the proposal will be accepted, and I am totally fine with it. Thanks for pointing it out. Be engaging in the GSoC process is more valuable for me since I’ve learning about groups of people that extend beyond just GSoC. I will try my best.

Best regards,

Bo Yang

[1] https://wiki.osgeo.org/wiki/Google_Summer_of_Code_Recommendations_for_Students#Application_questions_we.27ll_ask_you

(attachments)

GSoC2016_Proposal_Yang0324.pdf (212 KB)

Dear Bo,

Thanks for the document. I have to give classes now, but will try to read while the students work :wink:

Apparently, I was not concentrating while writing some of my mails: split-window is not a segmentation algorithm. Sorry about that. I meant general (top-down) image splitting algorithms, such as quad-tree, etc.

BTW, maybe there was a misunderstanding: you spoke about dynamic thresholding and markov random field (MRF) for classification. I'm no expert on these, but AFAIK, they are also used for segmentation. So, while my remark concerning classification remains true, don't hesitate to integrate these algorithms into the segmentation part, if you want to.

Moritz

On 25/03/16 06:21, Yang, Bo (yangb2) wrote:

Dear Moritz,

Please find the attachment for my first draft of the proposal.
GoogleDoc:
https://docs.google.com/document/d/1Qanh7sUdJZfiusTVIBHmlbC6NY9kKFVR18OL3icreoM/edit?usp=sharing

Thanks for your advices, such as Orfeo Toolbox, those are really helpful
for further understanding the segmentation algorithms.

However, I find few literature about the split-window algorithm, So for
the time being I put mean-shift and watershed as my highest priority
algorithm to be implemented.

Please let me know if you and/or Markus have any suggestions. I didn't
strictly follow the proposal template[1] because there is no methods
part. I restructure the proposal and included all the required
information in the template. If needed I can revise it to exactly follow
template's format. The proposal is due tomorrow afternoon for me (3pm
EST) so I think I still have enough time to refine it.

Yes, I fully understand there is no guarantee that the proposal will be
accepted, and I am totally fine with it. Thanks for pointing it out. Be
engaging in the GSoC process is more valuable for me since I've learning
about groups of people that extend beyond just GSoC. I will try my best.

Best regards,

Bo Yang

[1]
https://wiki.osgeo.org/wiki/Google_Summer_of_Code_Recommendations_for_Students#Application_questions_we.27ll_ask_you

-----Original Message-----
From: Moritz Lennert [mailto:mlennert@club.worldonline.be]
Sent: Thursday, March 24, 2016 7:52 AM
To: Yang, Bo (yangb2) <yangb2@mail.uc.edu>; Luca Delucchi
<lucadeluge@gmail.com>
Cc: grass-dev@lists.osgeo.org; Markus Metz <markus.metz.giswork@gmail.com>
Subject: Re: [GRASS-dev] FW: FW: OSGeo-SoC 2016 application

Dear Bo,

On 24/03/16 06:26, Yang, Bo (yangb2) wrote:

> Dear Moritz,

>

> Thank you for the reply, and thanks you and Markus could be the mentor

> of the i.segment project! There are only two days left for submitting

> the proposal, take into consideration I think I need to switch to the

> topic of i.segment project now.

Thank you for the flexibility !

> For my cokriging fusion

> topic I think I could do it after this summer in the future work.

Great !

> I've read the source code and Eric's wiki of GSoC 2012 [0]. I think I

> will prepare the proposal following the direction of adding new

> algorithms to segment an image into objects-- more than region-growing

> algorithm. Moritz, you mentioned segmentation

> algorithm: mean-shift, split-window and watershed.

Yes, as the general logistics of the i.segment module is in place,
adding new segmentation algorithms should not be too hard, so adding
several should be possible during this GSoC.

> I think some

> unsupervised classification algorithms would also be possible such

> as: dynamic thresholding and markov random field (MRF).

Unsupervised classification could be an interesting addition.

However, I would think KISS. So, concentrate on the segmentation. You
can add classification in the the project as a possible extension, in
case you finish early with the segmentation.

In any case, classification should be a separate module. The idea is to
have each module do one thing. Currently classification is proposed by
v.class.ml and v.class.mlR (but the latter is a very simple hack I did
for teaching - I'm currently busy rewriting it), but they are supervised.

For classification segment characterization is also important. Currently
we have two Python-based modules for that v.class and i.segment.stats.

One option might be to think about more efficient approaches and more
variables for that.

> If you think

> it is OK, I will start the preparing the draft of proposal from now

> on, and I think I could have the first version send back to you by

> tomorrow (Thursday).

Perfect. Markus and I are in Europe so don't forget about time zones
when thinking about when to send us your draft...

> If you have any suggestions and comments please let me know.

Markus can give you more details about the actual implementation. I
think in your proposal you should show that you have a general idea of
how i.segment works, and you should review different segmentation
techniques, possibly with relevant literature references. You might also
want to have a look at Orfeo Toolbox and their implementation of some of
the segmentation algorithms.

In general, it would be nice to add at least one or two top-down methods
as this would allow top-down hierarchical segmentation, while the
current region growing approach only allows bottom-up hierarchical
segmentation.

Final note just to make sure that this is clear: please be aware that
there are other GRASS-related proposals and that we do not know how many
slots we will get for GRASS. There is thus no guarantee that your
proposal will be chosen.

Best wishes,

Moritz

Bo,

I've read through your application. It is quite long, so I think you can shorten the overview of the different algorithms a bit.

Maybe I was, again, unclear in my previous mails, but I would qualify mean-shift and watershed as top-down algorithms. If your not comfortable with these notions (of top-down/bottom-up), better not to include them in the proposal.

Other than that, it seems fine to me.

Some elements you could add to make it stronger:

- The specific question of how to handle large data. i.segment uses binary search trees. Have you already worked with those ? As you say that you "coded to process large volume" data, could you provide one or two examples including information about your approaches ?
- Possible difficulties and how you plan on solving them (including other obligations you might have during that time, vacation plans, etc).
- Have you ever worked in a *nix environment ? Even though GRASS runs on Windows, it does come from a *nix environment and understanding that helps...

I won't be available for most of (my) afternoon. I'll try to have a quick look at my mail around 18h (CET), i.e. 2 hours before deadline, but can't absolutely guarantee it.

Maybe MarkusM has something to add ?

Moritz

On 25/03/16 06:21, Yang, Bo (yangb2) wrote:

Dear Moritz,

Please find the attachment for my first draft of the proposal.
GoogleDoc:
https://docs.google.com/document/d/1Qanh7sUdJZfiusTVIBHmlbC6NY9kKFVR18OL3icreoM/edit?usp=sharing

Thanks for your advices, such as Orfeo Toolbox, those are really helpful
for further understanding the segmentation algorithms.

However, I find few literature about the split-window algorithm, So for
the time being I put mean-shift and watershed as my highest priority
algorithm to be implemented.

Please let me know if you and/or Markus have any suggestions. I didn't
strictly follow the proposal template[1] because there is no methods
part. I restructure the proposal and included all the required
information in the template. If needed I can revise it to exactly follow
template's format. The proposal is due tomorrow afternoon for me (3pm
EST) so I think I still have enough time to refine it.

Yes, I fully understand there is no guarantee that the proposal will be
accepted, and I am totally fine with it. Thanks for pointing it out. Be
engaging in the GSoC process is more valuable for me since I've learning
about groups of people that extend beyond just GSoC. I will try my best.

Best regards,

Bo Yang

[1]
https://wiki.osgeo.org/wiki/Google_Summer_of_Code_Recommendations_for_Students#Application_questions_we.27ll_ask_you

-----Original Message-----
From: Moritz Lennert [mailto:mlennert@club.worldonline.be]
Sent: Thursday, March 24, 2016 7:52 AM
To: Yang, Bo (yangb2) <yangb2@mail.uc.edu>; Luca Delucchi
<lucadeluge@gmail.com>
Cc: grass-dev@lists.osgeo.org; Markus Metz <markus.metz.giswork@gmail.com>
Subject: Re: [GRASS-dev] FW: FW: OSGeo-SoC 2016 application

Dear Bo,

On 24/03/16 06:26, Yang, Bo (yangb2) wrote:

> Dear Moritz,

>

> Thank you for the reply, and thanks you and Markus could be the mentor

> of the i.segment project! There are only two days left for submitting

> the proposal, take into consideration I think I need to switch to the

> topic of i.segment project now.

Thank you for the flexibility !

> For my cokriging fusion

> topic I think I could do it after this summer in the future work.

Great !

> I've read the source code and Eric's wiki of GSoC 2012 [0]. I think I

> will prepare the proposal following the direction of adding new

> algorithms to segment an image into objects-- more than region-growing

> algorithm. Moritz, you mentioned segmentation

> algorithm: mean-shift, split-window and watershed.

Yes, as the general logistics of the i.segment module is in place,
adding new segmentation algorithms should not be too hard, so adding
several should be possible during this GSoC.

> I think some

> unsupervised classification algorithms would also be possible such

> as: dynamic thresholding and markov random field (MRF).

Unsupervised classification could be an interesting addition.

However, I would think KISS. So, concentrate on the segmentation. You
can add classification in the the project as a possible extension, in
case you finish early with the segmentation.

In any case, classification should be a separate module. The idea is to
have each module do one thing. Currently classification is proposed by
v.class.ml and v.class.mlR (but the latter is a very simple hack I did
for teaching - I'm currently busy rewriting it), but they are supervised.

For classification segment characterization is also important. Currently
we have two Python-based modules for that v.class and i.segment.stats.

One option might be to think about more efficient approaches and more
variables for that.

> If you think

> it is OK, I will start the preparing the draft of proposal from now

> on, and I think I could have the first version send back to you by

> tomorrow (Thursday).

Perfect. Markus and I are in Europe so don't forget about time zones
when thinking about when to send us your draft...

> If you have any suggestions and comments please let me know.

Markus can give you more details about the actual implementation. I
think in your proposal you should show that you have a general idea of
how i.segment works, and you should review different segmentation
techniques, possibly with relevant literature references. You might also
want to have a look at Orfeo Toolbox and their implementation of some of
the segmentation algorithms.

In general, it would be nice to add at least one or two top-down methods
as this would allow top-down hierarchical segmentation, while the
current region growing approach only allows bottom-up hierarchical
segmentation.

Final note just to make sure that this is clear: please be aware that
there are other GRASS-related proposals and that we do not know how many
slots we will get for GRASS. There is thus no guarantee that your
proposal will be chosen.

Best wishes,

Moritz

Dear Moritz,

Thanks for the suggestions. Below is my reactions accordingly.
1. I have eliminated some parts of the algorithm review and add a part of "Possible difficulties and solution", which stated the working plan, obligations and possible continue work after the GSoC. Please see attached pdf file for detail and let me you if you have any comments. After all, I have no other obligations and am completely free to work on the project during this summer. I will definitely dedicate to the work for first 8 weeks, if the progress is satisfied I would take 1 week break. Otherwise I will be working on this project full time as of now.
2. Yes I have tried using Ubuntu10 as my daily drive previously, and have used MAC OS (I assume it is Unix based) a lot when I was doing an internship for IOS APP development at Ihandysoft.inc 4 years ago. Currently I use windows mostly and use Cygwin instead of Linux when I need to compile some cross-platform program.
3. Yes I worked with BST before during the course work when pursuing master degree. It has more efficient time complexity for search, insert and delete operations (O(logN) for all three operations). I attached an BST class I wrote before for the coursework.
Currently I am engaging a lot of research of processing big volumn remote sensing data, for example, a single full scene of Landsat 7 could more as large as 5000 by 5000 pixels, if include temporal dimension it would be much larger. My previous work include the spatio-temporal cokriging fusion algorithm did a lot of optimizations for processing time-series data, main program are in python code and the optimizations including:
Moving window algorithm to process the large volume data,
Using auto-delete elements method to reconstruct the covariance matrix to adapt matrix to the extendable moving window.
Incorporate CUDA module to implement the parallel process.
Using the Sparse matrix, tapering matrix to speed up solving the covariance matrix.
Pre-mark the full scene of image to speed up the missing data filling process.
I attached my main fusion code which included all the optimization I mentioned above (except CUDA module, it is in another version). Some parts might need further explanation and I would be glad to discuss with you more detail later.

Best,
Bo Yang

-----Original Message-----
From: Moritz Lennert [mailto:mlennert@club.worldonline.be]
Sent: Friday, March 25, 2016 8:24 AM
To: Yang, Bo (yangb2) <yangb2@mail.uc.edu>
Cc: grass-dev@lists.osgeo.org; Markus Metz <markus.metz.giswork@gmail.com>
Subject: Re: [GRASS-dev] FW: FW: OSGeo-SoC 2016 application

Bo,

I've read through your application. It is quite long, so I think you can shorten the overview of the different algorithms a bit.

Maybe I was, again, unclear in my previous mails, but I would qualify mean-shift and watershed as top-down algorithms. If your not comfortable with these notions (of top-down/bottom-up), better not to include them in the proposal.

Other than that, it seems fine to me.

Some elements you could add to make it stronger:

- The specific question of how to handle large data. i.segment uses binary search trees. Have you already worked with those ? As you say that you "coded to process large volume" data, could you provide one or two examples including information about your approaches ?
- Possible difficulties and how you plan on solving them (including other obligations you might have during that time, vacation plans, etc).
- Have you ever worked in a *nix environment ? Even though GRASS runs on Windows, it does come from a *nix environment and understanding that helps...

I won't be available for most of (my) afternoon. I'll try to have a quick look at my mail around 18h (CET), i.e. 2 hours before deadline, but can't absolutely guarantee it.

Maybe MarkusM has something to add ?

Moritz

On 25/03/16 06:21, Yang, Bo (yangb2) wrote:

Dear Moritz,

Please find the attachment for my first draft of the proposal.
GoogleDoc:
https://docs.google.com/document/d/1Qanh7sUdJZfiusTVIBHmlbC6NY9kKFVR18
OL3icreoM/edit?usp=sharing

Thanks for your advices, such as Orfeo Toolbox, those are really
helpful for further understanding the segmentation algorithms.

However, I find few literature about the split-window algorithm, So
for the time being I put mean-shift and watershed as my highest
priority algorithm to be implemented.

Please let me know if you and/or Markus have any suggestions. I didn't
strictly follow the proposal template[1] because there is no methods
part. I restructure the proposal and included all the required
information in the template. If needed I can revise it to exactly
follow template's format. The proposal is due tomorrow afternoon for
me (3pm
EST) so I think I still have enough time to refine it.

Yes, I fully understand there is no guarantee that the proposal will
be accepted, and I am totally fine with it. Thanks for pointing it
out. Be engaging in the GSoC process is more valuable for me since
I've learning about groups of people that extend beyond just GSoC. I will try my best.

Best regards,

Bo Yang

[1]
https://wiki.osgeo.org/wiki/Google_Summer_of_Code_Recommendations_for_
Students#Application_questions_we.27ll_ask_you

-----Original Message-----
From: Moritz Lennert [mailto:mlennert@club.worldonline.be]
Sent: Thursday, March 24, 2016 7:52 AM
To: Yang, Bo (yangb2) <yangb2@mail.uc.edu>; Luca Delucchi
<lucadeluge@gmail.com>
Cc: grass-dev@lists.osgeo.org; Markus Metz
<markus.metz.giswork@gmail.com>
Subject: Re: [GRASS-dev] FW: FW: OSGeo-SoC 2016 application

Dear Bo,

On 24/03/16 06:26, Yang, Bo (yangb2) wrote:

> Dear Moritz,

>

> Thank you for the reply, and thanks you and Markus could be the
mentor

> of the i.segment project! There are only two days left for
submitting

> the proposal, take into consideration I think I need to switch to
the

> topic of i.segment project now.

Thank you for the flexibility !

> For my cokriging fusion

> topic I think I could do it after this summer in the future work.

Great !

> I've read the source code and Eric's wiki of GSoC 2012 [0]. I think
I

> will prepare the proposal following the direction of adding new

> algorithms to segment an image into objects-- more than
region-growing

> algorithm. Moritz, you mentioned segmentation

> algorithm: mean-shift, split-window and watershed.

Yes, as the general logistics of the i.segment module is in place,
adding new segmentation algorithms should not be too hard, so adding
several should be possible during this GSoC.

> I think some

> unsupervised classification algorithms would also be possible such

> as: dynamic thresholding and markov random field (MRF).

Unsupervised classification could be an interesting addition.

However, I would think KISS. So, concentrate on the segmentation. You
can add classification in the the project as a possible extension, in
case you finish early with the segmentation.

In any case, classification should be a separate module. The idea is
to have each module do one thing. Currently classification is proposed
by v.class.ml and v.class.mlR (but the latter is a very simple hack I
did for teaching - I'm currently busy rewriting it), but they are supervised.

For classification segment characterization is also important.
Currently we have two Python-based modules for that v.class and i.segment.stats.

One option might be to think about more efficient approaches and more
variables for that.

> If you think

> it is OK, I will start the preparing the draft of proposal from now

> on, and I think I could have the first version send back to you by

> tomorrow (Thursday).

Perfect. Markus and I are in Europe so don't forget about time zones
when thinking about when to send us your draft...

> If you have any suggestions and comments please let me know.

Markus can give you more details about the actual implementation. I
think in your proposal you should show that you have a general idea of
how i.segment works, and you should review different segmentation
techniques, possibly with relevant literature references. You might
also want to have a look at Orfeo Toolbox and their implementation of
some of the segmentation algorithms.

In general, it would be nice to add at least one or two top-down
methods as this would allow top-down hierarchical segmentation, while
the current region growing approach only allows bottom-up hierarchical
segmentation.

Final note just to make sure that this is clear: please be aware that
there are other GRASS-related proposals and that we do not know how
many slots we will get for GRASS. There is thus no guarantee that your
proposal will be chosen.

Best wishes,

Moritz

(attachments)

GSoC2016_Proposal_Yang0325.pdf (106 KB)
ImageFusion_SoC.py (23.4 KB)
BST.cpp (1.71 KB)

Dear Moritz,

I have submitted the proposal. Please find attachment for the final version.
Ps: I kept the statement of top-down and bottom-up algorithm structure because it make perfect sense to me to imagine the algorithm procedure from image to pixels or from pixels to image.
Thank you for being patient and helping me improve. I wholeheartedly appreciate everything and hope I could have the opportunity working with you and Markus this summer.

Best wishes,
Bo Yang

-----Original Message-----
From: Moritz Lennert [mailto:mlennert@club.worldonline.be]
Sent: Friday, March 25, 2016 8:24 AM
To: Yang, Bo (yangb2) <yangb2@mail.uc.edu>
Cc: grass-dev@lists.osgeo.org; Markus Metz <markus.metz.giswork@gmail.com>
Subject: Re: [GRASS-dev] FW: FW: OSGeo-SoC 2016 application

Bo,

I've read through your application. It is quite long, so I think you can shorten the overview of the different algorithms a bit.

Maybe I was, again, unclear in my previous mails, but I would qualify mean-shift and watershed as top-down algorithms. If your not comfortable with these notions (of top-down/bottom-up), better not to include them in the proposal.

Other than that, it seems fine to me.

Some elements you could add to make it stronger:

- The specific question of how to handle large data. i.segment uses binary search trees. Have you already worked with those ? As you say that you "coded to process large volume" data, could you provide one or two examples including information about your approaches ?
- Possible difficulties and how you plan on solving them (including other obligations you might have during that time, vacation plans, etc).
- Have you ever worked in a *nix environment ? Even though GRASS runs on Windows, it does come from a *nix environment and understanding that helps...

I won't be available for most of (my) afternoon. I'll try to have a quick look at my mail around 18h (CET), i.e. 2 hours before deadline, but can't absolutely guarantee it.

Maybe MarkusM has something to add ?

Moritz

On 25/03/16 06:21, Yang, Bo (yangb2) wrote:

Dear Moritz,

Please find the attachment for my first draft of the proposal.
GoogleDoc:
https://docs.google.com/document/d/1Qanh7sUdJZfiusTVIBHmlbC6NY9kKFVR18
OL3icreoM/edit?usp=sharing

Thanks for your advices, such as Orfeo Toolbox, those are really
helpful for further understanding the segmentation algorithms.

However, I find few literature about the split-window algorithm, So
for the time being I put mean-shift and watershed as my highest
priority algorithm to be implemented.

Please let me know if you and/or Markus have any suggestions. I didn't
strictly follow the proposal template[1] because there is no methods
part. I restructure the proposal and included all the required
information in the template. If needed I can revise it to exactly
follow template's format. The proposal is due tomorrow afternoon for
me (3pm
EST) so I think I still have enough time to refine it.

Yes, I fully understand there is no guarantee that the proposal will
be accepted, and I am totally fine with it. Thanks for pointing it
out. Be engaging in the GSoC process is more valuable for me since
I've learning about groups of people that extend beyond just GSoC. I will try my best.

Best regards,

Bo Yang

[1]
https://wiki.osgeo.org/wiki/Google_Summer_of_Code_Recommendations_for_
Students#Application_questions_we.27ll_ask_you

-----Original Message-----
From: Moritz Lennert [mailto:mlennert@club.worldonline.be]
Sent: Thursday, March 24, 2016 7:52 AM
To: Yang, Bo (yangb2) <yangb2@mail.uc.edu>; Luca Delucchi
<lucadeluge@gmail.com>
Cc: grass-dev@lists.osgeo.org; Markus Metz
<markus.metz.giswork@gmail.com>
Subject: Re: [GRASS-dev] FW: FW: OSGeo-SoC 2016 application

Dear Bo,

On 24/03/16 06:26, Yang, Bo (yangb2) wrote:

> Dear Moritz,

>

> Thank you for the reply, and thanks you and Markus could be the
mentor

> of the i.segment project! There are only two days left for
submitting

> the proposal, take into consideration I think I need to switch to
the

> topic of i.segment project now.

Thank you for the flexibility !

> For my cokriging fusion

> topic I think I could do it after this summer in the future work.

Great !

> I've read the source code and Eric's wiki of GSoC 2012 [0]. I think
I

> will prepare the proposal following the direction of adding new

> algorithms to segment an image into objects-- more than
region-growing

> algorithm. Moritz, you mentioned segmentation

> algorithm: mean-shift, split-window and watershed.

Yes, as the general logistics of the i.segment module is in place,
adding new segmentation algorithms should not be too hard, so adding
several should be possible during this GSoC.

> I think some

> unsupervised classification algorithms would also be possible such

> as: dynamic thresholding and markov random field (MRF).

Unsupervised classification could be an interesting addition.

However, I would think KISS. So, concentrate on the segmentation. You
can add classification in the the project as a possible extension, in
case you finish early with the segmentation.

In any case, classification should be a separate module. The idea is
to have each module do one thing. Currently classification is proposed
by v.class.ml and v.class.mlR (but the latter is a very simple hack I
did for teaching - I'm currently busy rewriting it), but they are supervised.

For classification segment characterization is also important.
Currently we have two Python-based modules for that v.class and i.segment.stats.

One option might be to think about more efficient approaches and more
variables for that.

> If you think

> it is OK, I will start the preparing the draft of proposal from now

> on, and I think I could have the first version send back to you by

> tomorrow (Thursday).

Perfect. Markus and I are in Europe so don't forget about time zones
when thinking about when to send us your draft...

> If you have any suggestions and comments please let me know.

Markus can give you more details about the actual implementation. I
think in your proposal you should show that you have a general idea of
how i.segment works, and you should review different segmentation
techniques, possibly with relevant literature references. You might
also want to have a look at Orfeo Toolbox and their implementation of
some of the segmentation algorithms.

In general, it would be nice to add at least one or two top-down
methods as this would allow top-down hierarchical segmentation, while
the current region growing approach only allows bottom-up hierarchical
segmentation.

Final note just to make sure that this is clear: please be aware that
there are other GRASS-related proposals and that we do not know how
many slots we will get for GRASS. There is thus no guarantee that your
proposal will be chosen.

Best wishes,

Moritz

(attachments)

GSoC2016_Proposal_Yang0325.pdf (108 KB)