sepal-contrib / fcdm Goto Github PK
View Code? Open in Web Editor NEWMapping all kind of canopy disturbances (natural or human induced) within (semi-)evergreen forests
License: MIT License
Mapping all kind of canopy disturbances (natural or human induced) within (semi-)evergreen forests
License: MIT License
FCDM tool did not pick the date selection
use a custom assetselect to provide custom assets
when downloading an image
Landsat products to perform the analysis have been deprecated:
dataset": {"toa": "LANDSAT/LE07/C01/T1_TOA", "sr": "LANDSAT/LE07/C01/T1_SR"}
dataset": {"toa": "LANDSAT/LC08/C01/T1_TOA", "sr": "LANDSAT/LC08/C01/T1_SR"}
The module will work however if the analysis and reference period falls below the following thresholds:
{
"landsat 4": {"toa": "1993-02-14", "sr": "1993-02-14"},
"landsat 5": {"toa": "2011-05-24", "sr": "2011-05-24"},
"landsat 7": {"toa": "2021-12-30", "sr": "2021-12-30"},
"landsat 8": {"toa": "2021-12-29", "sr": "2021-12-29"},
"sentinel 2": {"toa": "2023-07-10", "sr": "2023-07-10"},
}
Some aspects to take into account:
this will require:
The kernel_adjustment method is used a lot in the code but I cannot really understand when it's necessary. Several configuration exists :
would it change anything to the end result if I adapt the kernel for everyone ? (even if there is no comparaison between 2 collections)
my objective is to optimise the writting of the functions and I try to remove as many if as I can
In your script the S2 data are only treated from L1934 and have a slightly different data preparation process.
Is it formally impossible to merge it with the other satellites ? (maybe by adding some normalization steps)
In your code every second
or base
map is displayed (so for the landsat family option, it's 5*2 maps) but with visibility set to false.
The only one that are always displayed are the final
NBR_difference_capped
NBR_Imagecollection_second_normalized_min
(yearday
and NBR
bands) L2049NBR_Imagecollection_base_normalized_min
(yearday
and NBR
bands) L2004On javascript side, a map with visiblity to false is in fact not requested from the server. It's not the same with the geemap
lib (that provide the binding beween ipyleaflet
and the GEE API).
How much relevant are the extra map ?
Can I decide to only display and/or download the 5 main one ?
from Andreas :
So, regarding the DDR filtering: I tried the same study site with different settings but got exactly the same output (and it looks not filtered).
transfering an email from @Andi1974:
I just wanted to let you know that I realized that using the FCDM tool in SEPAL (here I used S2 Data and a forest mask with a coastline - see screenshot from an area in Papua) leads to (wrong) cloud buffering along the coastline. I checked the same area with the same settings with FCDM-optical 2.4.1 in GEE and it did not show this effect.
I can not picking the date seletion in the FCDM
because it's simply too long
I f I read the code L845 I have the feeling the the output map is a binary map -1, 0 because you multiply the result of the where by -1.
But according to the comment :
"Capping at 0 and -1 (positive values are set to 0; values <= -1 are set to -1"
Who should I trust ?
In the script when the masking_2
method is applied (Masking Step 2: Masking of sensor errors and non-forest areas) you sometime use a negative buffer of -500 on the image geometry (like in L947) and sometime you don't (like in L1957.
From what I understand this is a difference between landsat and sentinel sensor but can you explain me why ?
In the current implementation the dates are stored in the following format: YYYYMMDD as pure integer.
It's convinient to human read this information but not very convenient for display as dates will rapidly be split appart.
In BFAST and CUSUM we use instead the following :
YYYY.year_fraction which is way much easier to interpret on a QGIS map.
example:
20120613 become 2012.51
What do you think ?
The roadless map asset is available under the name : "users/ClassifLandsat072015/Roadless36y/AnnualChange_1982_2018"
I tested it in the code editor of EE and the asset is actually not public as specified L912.
So the question is simple, can I use it ?
when fully zoomed out it's impossible to see the actual disturbances
in the same line as was proposed in pysmm_module with sepal-contrib/sepal_pysmm@3a34087 and sepal-contrib/sepal_pysmm@ec719ac, allow users to interrupt this process...
after a task is tasked in GEE, users have to receive a text file to manually download the files later
fully describe the fcdm optical product and the application usage
In the script (L848) you created a function capping_fires
that is never called. Can you explain what was its purpose and tell me if I can safely remove it ?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.