Primary competition visual

GeoAI Agricultural Plastic Cover Mapping with Satellite Imagery by ITU

Helping Italy
1 000 CHF
Challenge completed ~1 year ago
Prediction
365 joined
78 active
Starti
Jun 12, 24
Closei
Nov 11, 24
Reveali
Nov 11, 24
User avatar
MICADEE
LAHASCOM
Date range specifications
Data · 28 Oct 2024, 08:06 · 17

@Zindi @participants Can anyone help with Date range specification for each country on this challenge ?

For example:

# Check for images in the Kenya image collection

kenya_ic = ee.ImageCollection("users/pengyuhao/FAO/GEO-AI_2024/Kenya_IC")

# Filter for the specified date range

images = kenya_ic.filterDate('2024-05-01', '2024-05-16')

# Get the number of images found

num_images = images.size().getInfo()

print(f"Number of images available for Kenya from 2024-05-01 to 2024-05-16: {num_images}")

Number of images available for Kenya from 2024-05-01 to 2024-05-16: 0

Discussion 17 answers
User avatar
MICADEE
LAHASCOM

I think i can see that in data description now.

28 Oct 2024, 10:44
Upvotes 0
User avatar
Koleshjr
Multimedia university of kenya

How have you fixed it?

User avatar
MICADEE
LAHASCOM

# Set date ranges based on location

if loc == 'Kenya':

start_date = '2024-05-01'

end_date = '2024-05-16'

elif loc == 'VNM':

start_date = '2024-04-16'

end_date = '2024-04-30'

elif loc == 'Spain':

start_date = '2024-04-16'

end_date = '2024-04-30'

else:

raise ValueError(f"Unknown location: {loc}")

After quoting these two statements on the competition page.

1. We will provide the example GEE JS scripts in code editor to generate 15-day composited Sentinel-2 time series data in the three test regions (Spain, Kenya and Vietimn)

2. Features in the training samples are prepared with images on 20240416 for VNM and Spain and on 20240501 for Kenya.

User avatar
Koleshjr
Multimedia university of kenya

but in your initial code you still had the dates for kenya as:

images = kenya_ic.filterDate('2024-05-01', '2024-05-16')??

and in your new code it still the same

I believe all images in the image collection are from 2023. I could be wrong, but that's what I noticed. I also couldn't get any image using filterDate(). Maybe I'm doing something wrong. What I did eventually was to filter the metadata string for the date I was looking for. Not sure why the competition statement says 2024, but after combing through the csv data and checking against satellite imagery, I'm almost certain the data, including the training csvs, are all from 2023.

User avatar
Koleshjr
Multimedia university of kenya

True because I am pretty sure I have used the correct dates as Micadee has shown and what the competition data page says but I get empty results everytime

User avatar
Koleshjr
Multimedia university of kenya

and what does this mean?

If you are in the top 10 at the end of the challenge and receive the request for code email you must include the following:

  1. The bi-weekly spatial distribution of the agricultural plastic covers in all the three test regions during 2023

The sample GEE gives biweekly images for all locations. I think after building the model, we have to predict on all the images provided and visualise that in some way. What I don't understand is do we predict on the same locations in the training (and/or test) data, or do we generate some spatial grid distrubuted over the test regions. It is rather ambiguous, and would be great to get some clarity on what's expected.

User avatar
MICADEE
LAHASCOM

Exactly. I really followed this same message when I was setting the time range as well.

User avatar
MICADEE
LAHASCOM

@da_ @koleshjr I think in all, we still need a clarification from the organisers on this.

User avatar
MICADEE
LAHASCOM

@koleshjr Yeah . You're right. Seems my code wasn't working then.

User avatar
MICADEE
LAHASCOM

**

User avatar
MICADEE
LAHASCOM

I will also try 2023-01-01 to

I will also try 2023-01-01 torespectively date in this statement below:tement below:

**Features in the training samples are prepared with images on 20240416 for VNM and Spain and on 20240501 for Kenya.**

User avatar
Koleshjr
Multimedia university of kenya

Okay maybe let's try to figure this ourselves:

image_count = kenya_ic.size().getInfo()

print(f"Number of images in the collection: {image_count}")

Number of images in the collection: 24

Seems like there are 24 images in the Kenyan collection

If we print the keys in the collection:

collection_info = kenya_ic.getInfo()

print("Collection Info:")

print(collection_info.keys())

we get:

dict_keys(['type', 'bands', 'version', 'id', 'features'])

Seems there are no dates? so what should we filter with?

User avatar
MICADEE
LAHASCOM

@koleshjr Yes, images are present, the exact date range to use is the main issue here. Even when i used date range 2023-01-01 to 2024-05-01 just to experiment on this ( say for Kenya ), i saw a lot of images under sentinel-2, sentinel-1, landsat-8, landsat-9 respectively e,g, 195 images, 29 images, 8 images, 28 images but i considered these too many to deal with as i am not even sure of the date range used. I just hope @zindi can chip in on this issue in order to get this done in time.

Here is how I extract using the dates.

Kenya_ic.filterMetadata('system:index', 'contains', '2023-05-01'). This is for JS, but I reckon it should apply to python too.

The example GEE files don't have date attributes so I filter with the Metadata instead.

While on this, has anyone else noticed there could be potential labeling errors. Without knowing for sure what time range the training dataset comes from, it's hard to say definitely if the labeling errors I've seen are all real. Also, there seem to be samples from the training set that were sampled where there are clouds. Moreso, the samples in the training set were extracted at 10m resolution while the example gee files were extracted at 20m resolution. I could be overthinking about all of this, but with my observations so far, I'm not sure how to consolidate and proceed. I really hope @zindi clarifies sometime soon.