Re: [GRASS-user] i.atcorr with Sentinel2

2018-01-24 Thread Stefan Blumentrath
So, now there are two updated patches attached to: 
https://trac.osgeo.org/grass/ticket/3482
One for changes in create_iwave.py and one to add S2B curves.

Big thanks to all (and esp. Markus M) who put effort into checking, fixing, 
guiding  and helping us with S-2 in i.atcorr!
Very much appreciated!

Hope the latest changes are OK, so I can update S2A too.

Cheers
Stefan

From: grass-user [mailto:grass-user-boun...@lists.osgeo.org] On Behalf Of 
Stefan Blumentrath
Sent: onsdag 24. januar 2018 09.55
To: Žofie Cimburová 
Cc: GRASS user list 
Subject: Re: [GRASS-user] i.atcorr with Sentinel2

Hi Zofie,

Markus M found some issues in my version of create_iwave.py.
I am fixing them right now!

Cheers
Stefan

From: Žofie Cimburová [mailto:zoficimbur...@gmail.com]
Sent: onsdag 24. januar 2018 09.32
To: Stefan Blumentrath 
mailto:stefan.blumentr...@nina.no>>
Cc: Markus Metz 
mailto:markus.metz.gisw...@gmail.com>>; GRASS 
user list mailto:grass-user@lists.osgeo.org>>
Subject: Re: [GRASS-user] i.atcorr with Sentinel2

On Wed, Jan 24, 2018 at 12:35 AM, Stefan Blumentrath 
mailto:stefan.blumentr...@nina.no>> wrote:
Hi again,

So, I did not prioritize tests for the time being and added a first attempt for 
a diff to https://trac.osgeo.org/grass/ticket/3482
I would be happy if someone could review…
i.atcorr compiles fine with the changes, works for S2B and gives non-NULL 
results.

Zofie can you test with proper S2B data?

Hi, I tested with one scene of S2B data and all bands, and the results look 
good. (Not sure how to test if they're 100 % correct, but they at least seem to 
make sense.)
Best,
Zofie

Cheers
Stefan

From: Markus Metz 
[mailto:markus.metz.gisw...@gmail.com]
Sent: tirsdag 23. januar 2018 15.31
To: Stefan Blumentrath 
mailto:stefan.blumentr...@nina.no>>
Cc: Markus Neteler mailto:nete...@osgeo.org>>; GRASS user 
list mailto:grass-user@lists.osgeo.org>>

Subject: Re: [GRASS-user] i.atcorr with Sentinel2



On Tue, Jan 23, 2018 at 3:24 PM, Stefan Blumentrath 
mailto:stefan.blumentr...@nina.no>> wrote:
>
> OK, sounds doable for me ;-).
> Will look at it tonight. Most of the other changes for Sentinel-2B are 
> already in place (I hope).

Great!

> Not sure if I manage to add python tests as well, looks like current tests 
> are more manual?
Apparently results differ between operating systems, therefore tests won't work 
well, unless you test if the output is all NULL, in which case a fatal error 
should be produced anyway.
Markus M
>
> Cheers
> Stefan
> 
> Von: Markus Metz 
> [markus.metz.gisw...@gmail.com]
> Gesendet: Dienstag, 23. Januar 2018 14:50
> An: Stefan Blumentrath
> Cc: Markus Neteler; GRASS user list
> Betreff: Re: [GRASS-user] i.atcorr with Sentinel2
>
> On Tue, Jan 23, 2018 at 2:19 PM, Stefan Blumentrath 
> mailto:stefan.blumentr...@nina.no>>>
>  wrote:
> >
> > OK, will give it a try.
> >
> The first part is more important because it 1) fixes the interpolation to 2.5 
> nm steps, and 2) helps iwave.cpp to load the response values.
> >
> > For the second part I am not sure if I properly understood where min - max 
> > wavelength for each band should be printed to.
> >
> > Do you mean to replace
> >
> > # convert limits from nanometers to micrometers
> >
> > lowerlimit = wavelengths[0]/1000
> >
> > upperlimit = wavelengths[-1]/1000
> >
> >
> >
> > Or just as a screen output?
>
> Just a screen output to help update the manual
> >
> > You did not mean band value limits, right?
>
> No, e.g. in the manual is
>
> Sentinel2A Coastal blue band B1 (430nm - 457nm)
>
> and this range could be printed out to screen based on the actual response. 
> This range can then be copied to the manual, making life a bit easier for the 
> person updating the manual.
> >
> > Not sure I am of help/useful for fixing create_iwave.py, but I`ll do my 
> > best.
>
> Your help is welcome!
>
> Markus M
>
> >
> > Cheers
> >
> > Stefan
> >
> >
> >
> >
> >
> > From: Markus Metz 
> > [mailto:markus.metz.gisw...@gmail.com>]
> > Sent: tirsdag 23. januar 2018 13.02
> > To: Stefan Blumentrath 
> > mailto:stefan.blumentr...@nina.no>>>
> > Cc: Markus Neteler 
> > mailto:nete...@osgeo.org>>>;
> >  GRASS user list 
> > mailto:grass-user@lists.osgeo.org>>>
> >
> >
> > Subject: Re: [GRASS-user] i.atcorr with Sentinel2
> >
> >
> >
> >
> >
> > On Tue, Jan 23, 2018 at 12:25 PM, Stefan Blumentrath 
> > mailto:stefan.blumentr...@nina.no>>>
> >  wrote:
> > >
> > > No problem. Any chance I 

Re: [GRASS-user] i.atcorr with Sentinel2

2018-01-24 Thread Nikos Alexandris

* Markus Metz  [2018-01-23 13:02:27 +0100]:


On Tue, Jan 23, 2018 at 12:25 PM, Stefan Blumentrath <
stefan.blumentr...@nina.no> wrote:


No problem. Any chance I can contribute to maintenance of create_iwave.py?

What needs to be done? Take your latest changes into account?


nodata handling should be changed. In read_input(), missing values should
be set to zero. Then for each band, leading and trailing zeros would be set
to -1. This helps interpolate_band() to get the correct subrange.

For each band, create_iwave.py should print out the band name and the
wavelength as min - max. Care must be taken when finding reasonable min and
max wavelengths: find the max response, then go back while response >
threshold to find the min wavelength. Go forward while response > threshold
to find the max wavelength. As threshold I suggest 0.1 to eliminate noise
in the response values.

Markus M



Thanks Markus for this one (too).  Back in Bonn 2016, I tried to clear
up some of it.  Not exactly the way it had/has to be done as I
understand now.

Nikos





If you think it makes sense I will try to create a patch for adding S2B

to i.atcorr (would be a nice exercise and does not seem too complex)? Will
open a ticket and start working on it unless you tell me different.




Cheers

Stefan







From: grass-user [mailto:grass-user-boun...@lists.osgeo.org] On Behalf Of

Markus Metz

Sent: tirsdag 23. januar 2018 12.03
To: Markus Neteler 
Cc: GRASS user list 
Subject: Re: [GRASS-user] i.atcorr with Sentinel2





On Tue, Jan 23, 2018 at 11:51 AM, Markus Neteler <
nete...@osgeo.org> wrote:

>
> On Tue, Jan 23, 2018 at 11:09 AM, Žofie Cimburová
> <
zoficimbur...@gmail.com> wrote:

> > Forgot to cc the list.
> >
> > The CSV and the cpp template:
> >
https://www.dropbox.com/sh/9cnhsl59kvmx4o1/AABwnEVHdxfW_PqrB5Xcpczda?dl=0

>
> Great! Would you mind to also convert the S2A table? AFAIK it got
> updated due to recalibration compared to what we currently have.

please wait a bit with creating the cpp template, create_iwave.py needs

some maintenance


Markus M



>
> markusN
> ___
> grass-user mailing list
> grass-user@lists.osgeo.org
> https://lists.osgeo.org/mailman/listinfo/grass-user



___
grass-user mailing list
grass-user@lists.osgeo.org
https://lists.osgeo.org/mailman/listinfo/grass-user



--
Nikos Alexandris | Remote Sensing & Geomatics
GPG Key Fingerprint 6F9D4506F3CA28380974D31A9053534B693C4FB3 


signature.asc
Description: PGP signature
___
grass-user mailing list
grass-user@lists.osgeo.org
https://lists.osgeo.org/mailman/listinfo/grass-user

Re: [GRASS-user] i.atcorr with Sentinel2

2018-01-24 Thread Stefan Blumentrath
Hi Zofie,

Markus M found some issues in my version of create_iwave.py.
I am fixing them right now!

Cheers
Stefan

From: Žofie Cimburová [mailto:zoficimbur...@gmail.com]
Sent: onsdag 24. januar 2018 09.32
To: Stefan Blumentrath 
Cc: Markus Metz ; GRASS user list 

Subject: Re: [GRASS-user] i.atcorr with Sentinel2

On Wed, Jan 24, 2018 at 12:35 AM, Stefan Blumentrath 
mailto:stefan.blumentr...@nina.no>> wrote:
Hi again,

So, I did not prioritize tests for the time being and added a first attempt for 
a diff to https://trac.osgeo.org/grass/ticket/3482
I would be happy if someone could review…
i.atcorr compiles fine with the changes, works for S2B and gives non-NULL 
results.

Zofie can you test with proper S2B data?

Hi, I tested with one scene of S2B data and all bands, and the results look 
good. (Not sure how to test if they're 100 % correct, but they at least seem to 
make sense.)
Best,
Zofie

Cheers
Stefan

From: Markus Metz 
[mailto:markus.metz.gisw...@gmail.com]
Sent: tirsdag 23. januar 2018 15.31
To: Stefan Blumentrath 
mailto:stefan.blumentr...@nina.no>>
Cc: Markus Neteler mailto:nete...@osgeo.org>>; GRASS user 
list mailto:grass-user@lists.osgeo.org>>

Subject: Re: [GRASS-user] i.atcorr with Sentinel2



On Tue, Jan 23, 2018 at 3:24 PM, Stefan Blumentrath 
mailto:stefan.blumentr...@nina.no>> wrote:
>
> OK, sounds doable for me ;-).
> Will look at it tonight. Most of the other changes for Sentinel-2B are 
> already in place (I hope).

Great!

> Not sure if I manage to add python tests as well, looks like current tests 
> are more manual?
Apparently results differ between operating systems, therefore tests won't work 
well, unless you test if the output is all NULL, in which case a fatal error 
should be produced anyway.
Markus M
>
> Cheers
> Stefan
> 
> Von: Markus Metz 
> [markus.metz.gisw...@gmail.com]
> Gesendet: Dienstag, 23. Januar 2018 14:50
> An: Stefan Blumentrath
> Cc: Markus Neteler; GRASS user list
> Betreff: Re: [GRASS-user] i.atcorr with Sentinel2
>
> On Tue, Jan 23, 2018 at 2:19 PM, Stefan Blumentrath 
> mailto:stefan.blumentr...@nina.no>>>
>  wrote:
> >
> > OK, will give it a try.
> >
> The first part is more important because it 1) fixes the interpolation to 2.5 
> nm steps, and 2) helps iwave.cpp to load the response values.
> >
> > For the second part I am not sure if I properly understood where min - max 
> > wavelength for each band should be printed to.
> >
> > Do you mean to replace
> >
> > # convert limits from nanometers to micrometers
> >
> > lowerlimit = wavelengths[0]/1000
> >
> > upperlimit = wavelengths[-1]/1000
> >
> >
> >
> > Or just as a screen output?
>
> Just a screen output to help update the manual
> >
> > You did not mean band value limits, right?
>
> No, e.g. in the manual is
>
> Sentinel2A Coastal blue band B1 (430nm - 457nm)
>
> and this range could be printed out to screen based on the actual response. 
> This range can then be copied to the manual, making life a bit easier for the 
> person updating the manual.
> >
> > Not sure I am of help/useful for fixing create_iwave.py, but I`ll do my 
> > best.
>
> Your help is welcome!
>
> Markus M
>
> >
> > Cheers
> >
> > Stefan
> >
> >
> >
> >
> >
> > From: Markus Metz 
> > [mailto:markus.metz.gisw...@gmail.com>]
> > Sent: tirsdag 23. januar 2018 13.02
> > To: Stefan Blumentrath 
> > mailto:stefan.blumentr...@nina.no>>>
> > Cc: Markus Neteler 
> > mailto:nete...@osgeo.org>>>;
> >  GRASS user list 
> > mailto:grass-user@lists.osgeo.org>>>
> >
> >
> > Subject: Re: [GRASS-user] i.atcorr with Sentinel2
> >
> >
> >
> >
> >
> > On Tue, Jan 23, 2018 at 12:25 PM, Stefan Blumentrath 
> > mailto:stefan.blumentr...@nina.no>>>
> >  wrote:
> > >
> > > No problem. Any chance I can contribute to maintenance of create_iwave.py?
> > >
> > > What needs to be done? Take your latest changes into account?
> >
> > nodata handling should be changed. In read_input(), missing values should 
> > be set to zero. Then for each band, leading and trailing zeros would be set 
> > to -1. This helps interpolate_band() to get the correct subrange.
> >
> > For each band, create_iwave.py should print out the band name and the 
> > wavelength as min - max. Care must be taken when finding reasonable min and 
> > max wavelengths: find the max response, then go back while response > 
> > threshold to find the min wavelength. Go forward while response > threshold 
> > to find the max wavelength. As

Re: [GRASS-user] i.atcorr with Sentinel2

2018-01-24 Thread Žofie Cimburová
On Wed, Jan 24, 2018 at 12:35 AM, Stefan Blumentrath <
stefan.blumentr...@nina.no> wrote:

> Hi again,
>
>
>
> So, I did not prioritize tests for the time being and added a first
> attempt for a diff to https://trac.osgeo.org/grass/ticket/3482
>
> I would be happy if someone could review…
>
> i.atcorr compiles fine with the changes, works for S2B and gives non-NULL
> results.
>
>
>
> Zofie can you test with proper S2B data?
>

Hi, I tested with one scene of S2B data and all bands, and the results look
good. (Not sure how to test if they're 100 % correct, but they at least
seem to make sense.)
Best,
Zofie


> Cheers
>
> Stefan
>
>
>
> *From:* Markus Metz [mailto:markus.metz.gisw...@gmail.com]
> *Sent:* tirsdag 23. januar 2018 15.31
> *To:* Stefan Blumentrath 
> *Cc:* Markus Neteler ; GRASS user list <
> grass-user@lists.osgeo.org>
>
> *Subject:* Re: [GRASS-user] i.atcorr with Sentinel2
>
>
>
>
>
> On Tue, Jan 23, 2018 at 3:24 PM, Stefan Blumentrath <
> stefan.blumentr...@nina.no> wrote:
> >
> > OK, sounds doable for me ;-).
> > Will look at it tonight. Most of the other changes for Sentinel-2B are
> already in place (I hope).
>
> Great!
>
> > Not sure if I manage to add python tests as well, looks like current
> tests are more manual?
>
> Apparently results differ between operating systems, therefore tests won't
> work well, unless you test if the output is all NULL, in which case a fatal
> error should be produced anyway.
>
> Markus M
>
> >
> > Cheers
> > Stefan
> > 
> > Von: Markus Metz [markus.metz.gisw...@gmail.com]
> > Gesendet: Dienstag, 23. Januar 2018 14:50
> > An: Stefan Blumentrath
> > Cc: Markus Neteler; GRASS user list
> > Betreff: Re: [GRASS-user] i.atcorr with Sentinel2
> >
> > On Tue, Jan 23, 2018 at 2:19 PM, Stefan Blumentrath <
> stefan.blumentr...@nina.no> wrote:
> > >
> > > OK, will give it a try.
> > >
> > The first part is more important because it 1) fixes the interpolation
> to 2.5 nm steps, and 2) helps iwave.cpp to load the response values.
> > >
> > > For the second part I am not sure if I properly understood where min -
> max wavelength for each band should be printed to.
> > >
> > > Do you mean to replace
> > >
> > > # convert limits from nanometers to micrometers
> > >
> > > lowerlimit = wavelengths[0]/1000
> > >
> > > upperlimit = wavelengths[-1]/1000
> > >
> > >
> > >
> > > Or just as a screen output?
> >
> > Just a screen output to help update the manual
> > >
> > > You did not mean band value limits, right?
> >
> > No, e.g. in the manual is
> >
> > Sentinel2A Coastal blue band B1 (430nm - 457nm)
> >
> > and this range could be printed out to screen based on the actual
> response. This range can then be copied to the manual, making life a bit
> easier for the person updating the manual.
> > >
> > > Not sure I am of help/useful for fixing create_iwave.py, but I`ll do
> my best.
> >
> > Your help is welcome!
> >
> > Markus M
> >
> > >
> > > Cheers
> > >
> > > Stefan
> > >
> > >
> > >
> > >
> > >
> > > From: Markus Metz [mailto:markus.metz.gisw...@gmail.com markus.metz.gisw...@gmail.com>]
> > > Sent: tirsdag 23. januar 2018 13.02
> > > To: Stefan Blumentrath  stefan.blumentr...@nina.no>>
> > > Cc: Markus Neteler mailto:nete...@osgeo.org>>;
> GRASS user list mailto:grass-user@lists.osgeo.
> org>>
> > >
> > >
> > > Subject: Re: [GRASS-user] i.atcorr with Sentinel2
> > >
> > >
> > >
> > >
> > >
> > > On Tue, Jan 23, 2018 at 12:25 PM, Stefan Blumentrath <
> stefan.blumentr...@nina.no> wrote:
> > > >
> > > > No problem. Any chance I can contribute to maintenance of
> create_iwave.py?
> > > >
> > > > What needs to be done? Take your latest changes into account?
> > >
> > > nodata handling should be changed. In read_input(), missing values
> should be set to zero. Then for each band, leading and trailing zeros would
> be set to -1. This helps interpolate_band() to get the correct subrange.
> > >
> > > For each band, create_iwave.py should print out the band name and the
> wavelength as min - max. Care must be taken when finding reasonable min and
> max wavelengths: find the max response, then go back while response >
> threshold to find the min wavelength. Go forward while response > threshold
> to find the max wavelength. As threshold I suggest 0.1 to eliminate noise
> in the response values.
> > >
> > > Markus M
> > >
> > > >
> > > >
> > > >
> > > > If you think it makes sense I will try to create a patch for adding
> S2B to i.atcorr (would be a nice exercise and does not seem too complex)?
> Will open a ticket and start working on it unless you tell me different.
> > > >
> > > >
> > > >
> > > > Cheers
> > > >
> > > > Stefan
> > > >
> > > >
> > > >
> > > >
> > > >
> > > >
> > > >
> > > > From: grass-user [mailto:grass-user-boun...@lists.osgeo.org grass-user-boun...@lists.osgeo.org>] On Behalf Of Markus Metz
> > > > Sent: tirsdag 23. januar 2018 12.03
> > > > To: M