-
Notifications
You must be signed in to change notification settings - Fork 299
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[HELP] Using eo-learn for the classification of land surface types of Ukraine #674
Comments
Hi @fuckingsore |
Hi, thank you. |
Seems like you are trying to run some outdated code |
Thanks, that's what I thought |
Good evening. |
You can train a model on Slovenian data and apply it to Ukraine, yes however since the model will be trained on the Slovenian surface, it will very likely perform worse on Ukraine than a model trained on Ukrainian surface. It mostly depends on how similar the two regions are, for instance a model trained on Slovenia will perform poorly in Egypt (lots of bare land) or Norway (lots of snow and sea). If you are lacking good quality data in Ukraine it might still be worth a try. In the past we also tried mixing high-accuracy (in terms of label) Slovenian data and lower accuracy data from a different country (where only some regions had good labels for instance). |
I don't understand what I need to change in order to run a trained model on Slovenian data to classify the territory of Ukraine. Tell me what needs to be changed in this example and how, please. |
Hi @fuckingsore
For more information, you can follow along the blog posts on medium: |
So I need to change geojson from step 1? but how to change it correctly so that it fits the code further? |
Once the AOI is set and the eopatches are downloaded, it doesn't matter where the eopatches are coming from, from the code point of view it should all fit together regardless. At the same time, the notebook is just an example tutorial on how to use the library and how to construct a pipeline for land use classification, it is not meant to be an out-of-the-box solution for all kinds of problems, so it is expected of the users to make changes of their own and use it as a base to build their own project. My suggestion would be to try to understand how it all fits together and read the documentation and the blog posts for details. We cannot solve the whole problem for you, but we are happy to help with details and specific problems. However, please keep in mind to provide specific details about the problem you are facing, comments like above are too vague and hard to pinpoint the exact issues you are dealing with. |
Why there is this error and how fix it? Draw the RGB imagefig, axs = plt.subplots(nrows=5, ncols=5, figsize=(20, 20)) time_id = np.where(feature_importances == np.max(feature_importances))[0][0] for i in tqdm(range(len(patchIDs))): |
Before I used another geojson, eopatches were downloaded successfully and in first part of this notebook rgb picture was painted |
The first error states you are trying to access temporal slice 11, but the size of the temporal array is 2, perhaps manually set the the second issue is probably related to some problem which occurred in between. You are accessing the What is the temporal range you are using? |
I used temporal range 2022-06-01, 2022-06-30 |
Well, that explains it. You are using 1 month of data with Sentinel-2 imagery, there aren't always that many satellite images available in such a short time span, especially with cloud filtering applied. The classification process in the notebook expects a full year worth of data, so try to change as little as possible aside from the AOI and year of the time period if you don't wish to run into unexpected problems |
For starters I would suggest focusing on a small AOI in Ukraine and 1 year of data, so you can create a working prototype of the project. Perhaps you could use a shorter period than 1 year, but definitely more than just a few months. |
I have one more question. If I understand correctly, you collect data per pixel for almost a year. This is so that the result is not affected by the time of year. Can I train a model based on just one snapshot, i.e. split the time series into separate data and train on that? Is it realistic to implement and how to implement it correctly? |
the area that you are splitting seems to span 2 UTM zones, so the one on the right is plotted with the wrong UTM zone. Probably the notebook you are using to plot assumes a single UTM vector file, so if you want a proper plot, you should convert to some common CRS (like WGS84) just for plotting.
Correct, or rather to take the full year info into account, so we're not affected by missing data, bad images, or some temporary change on the land.
You are using the words "one snapshot" and "time series" together, which probably doesn't make sense. If you use just one snapshot, there will be no time series, just a single image. But sure, you can still do classification based on a single image, but as I mentioned, that image has to be nearly perfect (no clouds, cloud shadows, haze, artifacts, etc... ), in those areas the classification will likely fail |
Thank you, guys!) |
Hi guys!
I am doing research work for my university and I have a task to create a module for the classification of land surface types of Ukraine based on the analysis of aerial and space images with the help of your library - eo-learn. I have to train the model in Slovenia and then test it in Ukraine. Or immediately develop a model based on the geodata of Ukraine.
I am new to AI and your library. Please tell me how to correctly perform this problem using your library. Maybe there is a detailed instruction or an example?
I will be very grateful for the help and a detailed answer.
The text was updated successfully, but these errors were encountered: