wayground logo

Free Printable Worksheets

NEW

Font size

S
M
L
XL
Worksheets

GeoAI_Python

Total questions: 66

Worksheet time: 33mins

Name
Class
Date
1.

What does this line create? var l8 = ee.ImageCollection("LANDSAT/LC08/C02/T1_TOA")

a)

A single Landsat 8 image

b)

A Landsat 8 ImageCollection (TOA reflectance)

c)

A vector FeatureCollection

d)

A DEM raster

2.

What is the main purpose of .filterBounds(point)?

a)

Filters images by cloud cover only

b)

Filters images that intersect the given geometry

c)

Clips images to a region

d)

Converts images to vectors

3.

What does .filterDate('2015-01-01', '2015-12-31') do?

a)

Takes only January images

b)

Filters by acquisition time of day

c)

Keeps images captured within the year 2015

d)

Sorts images by date

4.

After .sort('CLOUD_COVER').first(), what image is selected?

a)

The most recent image

b)

The least cloudy image (lowest CLOUD_COVER)

c)

The cloudiest image

d)

The median cloud-cover image

5.

In Landsat 8, which band is NIR in your script?

a)

B4

b)

B5

c)

B3

d)

B2

6.

In Landsat 8, which band is Red in your script?

a)

B4

b)

B5

c)

B6

d)

B1

7.

Which formula matches your NDVI calculation?

a)

(RedNIR)/(Red+NIR)(\text{Red} - \text{NIR}) / (\text{Red} + \text{NIR})

b)

(NIR+Red)/(NIRRed)(\text{NIR} + \text{Red}) / (\text{NIR} - \text{Red})

c)

(NIRRed)/(NIR+Red)(\text{NIR} - \text{Red}) / (\text{NIR} + \text{Red})

d)

(GreenRed)/(Green+Red)(\text{Green} - \text{Red}) / (\text{Green} + \text{Red})

8.

What is the typical range of NDVI values?

a)

0 to 100

b)

−100 to 100

c)

−1 to +1

d)

0 to 1 only

9.

What does .rename('NDVI') do?

a)

Changes pixel values

b)

Changes the band name to "NDVI"

c)

Converts NDVI to integer

d)

Removes all other bands

10.

What does Map.centerObject(image2015, 9) do?

a)

Exports the image at zoom 9

b)

Centers the map view on the image footprint at zoom level 9

c)

Clips the image to zoom 9

d)

Reduces resolution to 9 meters

11.

palette:['red', 'yellow', 'green']

a)

Water → Soil → Urban

b)

Low NDVI → Medium NDVI → High NDVI

c)

High NDVI → Low NDVI → No Data

d)

Cloud → Shadow → Snow

12.

What does this line compute? var image_diff = ndvi2015.subtract(ndvi2020)

a)

NDVI2020 − NDVI2015

b)

NDVI2015 − NDVI2020

c)

Average NDVI of both years

d)

Ratio of NDVI2015 and NDVI2020

13.

If image_diff is positive, what does it generally imply?

a)

NDVI increased from 2015 to 2020

b)

NDVI decreased from 2015 to 2020

c)

Cloud cover increased

d)

Resolution improved

14.

If image_diff is negative, what does it generally imply?

a)

NDVI increased from 2015 to 2020

b)

NDVI decreased from 2015 to 2020

c)

NDVI became zero

d)

The image is invalid

15.

In your code, this threshold value is: var threshhold = 0.1

a)

A 10% cloud mask

b)

A change threshold for NDVI difference magnitude

c)

A map zoom factor

d)

A reflectance scaling factor

16.

What is wrong with this “change mask” logic? image_diff.lte(threshhold).or(image_diff.gte(threshhold))

a)

It detects only negative changes

b)

It detects only positive changes

c)

It becomes true for almost all pixels (not a real threshold filter)

d)

It converts NDVI to cloud mask

17.

Which is a correct way to detect “absolute NDVI change >= 0.1”?

a)

image_diff.lte(0.1)

b)

image_diff.gte(0.1)

c)

image_diff.abs().gte(0.1)

d)

image_diff.divide(0.1)

18.

What does ee.Image.pixelArea() represent?

a)

Pixel brightness

b)

Area of each pixel in square meters (m²)

c)

Area in square kilometers (km²)

d)

Slope of each pixel

19.

What does reduceRegion({reducer: ee.Reducer.sum(), ...}) return?

a)

A new ImageCollection

b)

A FeatureCollection

c)

A dictionary of summed values for the band(s)

d)

A map layer style object

20.

If pixel areas are in m², what division correctly converts to km²?

a)

Divide by 1e2

b)

Divide by 1e3

c)

Divide by 1e6

d)

Divide by 1e9

21.

What dataset is used to load Kerala boundary?

a)

USDOS/LSIB_SIMPLE/2017

b)

FAO/GAUL/2015/level2

c)

TIGER/2018/States

d)

COPERNICUS/S2_SR_HARMONIZED

22.

What does .filter(ee.Filter.eq('ADM1_NAME', 'Kerala')) do?

a)

Selects features where the state name is Kerala

b)

Selects districts having Kerala in their name

c)

Filters Sentinel-2 images only

d)

Clips the raster to Kerala

23.

What is the purpose of Map.centerObject(study, 7)?

a)

Exports the map at zoom 7

b)

Centers the map view on Kerala boundary with zoom level 7

c)

Reduces resolution to 7 meters

d)

Applies 7-class classification

24.

Which Sentinel-2 band is used in the cloud masking function?

a)

B8

b)

SCL

c)

QA60

d)

B3

25.

In the SCL mask, which classes are kept as "good land pixels" in your code?

a)

1, 2, 3, 8

b)

4, 5, 6, 7

c)

8, 9, 10, 11

d)

0, 1, 2, 3

26.

What does image.updateMask(mask) do?

a)

Fills masked pixels with zero

b)

Hides pixels where mask is false (removes unwanted pixels)

c)

Changes pixel size

d)

Converts raster to vector

27.

Which ImageCollection is used for Sentinel-2 Surface Reflectance?

a)

COPERNICUS/S2

b)

COPERNICUS/S2_SR_HARMONIZED

c)

LANDSAT/LC08/C02/T1_TOA

d)

MODIS/006/MOD13Q1

28.

What time period is used for Sentinel-2 filtering?

a)

2024-01-01 to 2024-08-01

b)

2025-01-01 to 2025-08-01

c)

2025-08-01 to 2025-12-31

d)

2015-01-01 to 2020-12-31

29.

What does .filter(ee.Filter.lt('CLOUDY_PIXEL_PERCENTAGE', 10)) ensure?

a)

Keeps images with >10% cloud

b)

Keeps images with <10% cloud cover

c)

Keeps images with exactly 10% cloud

d)

Removes images without cloud metadata

30.

Why is .map(maskS2sr) used?

a)

To calculate NDWI for each image

b)

To apply a cloud mask across the collection

c)

To sort the collection by date

d)

To mosaic the collection

31.

What does .median() do here?

a)

Selects the single least cloudy image

b)

Creates a median composite from all filtered images

c)

Takes the mean NDWI directly

d)

Converts ImageCollection to FeatureCollection

32.

What is the purpose of .clip(study)?

a)

Resamples pixels to 10m

b)

Crops the raster output to Kerala boundary

c)

Filters districts inside Kerala

d)

Exports only the boundary

33.

Which bands are used in NDWI calculation? normalizedDifference(['B3', 'B8'])

a)

Red and NIR

b)

Green (B3) and NIR (B8)

c)

NIR and SWIR

d)

Blue and Green

34.

NDWI formula used in your code corresponds to:

a)

NIRRedNIR+Red\frac{\text{NIR} - \text{Red}}{\text{NIR} + \text{Red}}

b)

GreenNIRGreen+NIR\frac{\text{Green} - \text{NIR}}{\text{Green} + \text{NIR}}

c)

SWIRNIRSWIR+NIR\frac{\text{SWIR} - \text{NIR}}{\text{SWIR} + \text{NIR}}

d)

RedGreenRed+Green\frac{\text{Red} - \text{Green}}{\text{Red} + \text{Green}}

35.

What is returned by reduceRegions()?

a)

A single number

b)

A FeatureCollection with new statistics added per feature

c)

An ImageCollection

d)

A single raster image

36.

Which statistic is calculated for NDWI per district?

a)

Sum

b)

Mean

c)

Max

d)

Median

37.

What does Export.table.toDrive export?

a)

Raster NDWI as GeoTIFF

b)

Zonal statistics table (FeatureCollection) as CSV

c)

Map as PNG

d)

A shapefile of pixels

38.

What does var high_ndwi = ndwi.gt(0.3); represent?

a)

NDWI less than 0.3

b)

Pixels where NDWI is greater than 0.3 (high water likelihood)

c)

Cloud mask pixels

d)

District mean NDWI

39.

Why is high_ndwi.updateMask(high_ndwi) done?

a)

To convert boolean to float

b)

To display only pixels that satisfy the high NDWI condition

c)

To remove NDWI band

d)

To calculate zonal mean

40.

In your suitability classification, what class is assigned when NDWI0.3NDWI \ge 0.3 ?

a)

0

b)

1

c)

2

d)

3

41.

What does this line load? var s2 = ee.ImageCollection("COPERNICUS/S2_SR_HARMONIZED");

a)

Landsat 8 TOA collection

b)

Sentinel-2 Surface Reflectance (harmonized) ImageCollection

c)

Sentinel-1 SAR collection

d)

MODIS NDVI collection

42.

What is the purpose of Map.addLayer(ROI);?

a)

Exports ROI as shapefile

b)

Displays the ROI geometry on the map

c)

Converts ROI to raster

d)

Calculates ROI area

43.

What does Map.centerObject(ROI, 10); do?

a)

Clips ROI to zoom 10

b)

Centers the map on ROI at zoom level 10

c)

Sets image scale to 10m

d)

Buffers ROI by 10 units

44.

What does .filter(ee.Filter.bounds(ROI)) do?

a)

Keeps only images outside ROI

b)

Keeps images that intersect the ROI

c)

Clips images to ROI

d)

Removes images with missing ROI metadata

45.

What does .filter(ee.Filter.date('2024-01-01', '2024-12-10')) do?

a)

Keeps only December images

b)

Keeps images between Jan 1, 2024 and Dec 10, 2024

c)

Sorts images by date

d)

Converts date strings to timestamps only

46.

What does .filter(ee.Filter.lt('CLOUDY_PIXEL_PERCENTAGE', 1)) ensure?

a)

Images with cloud cover > 1%

b)

Images with cloud cover < 1%

c)

Removes all cloud pixels automatically

d)

Uses cloud mask band QA60 directly

47.

What does .select('B.*') select?

a)

Only band B8

b)

Only RGB bands

c)

All bands whose names start with "B" (B1, B2, B3, …)

d)

Only "B.*" metadata fields

48.

What is the output type of this line? var image = filtered.median().clip(ROI);

a)

FeatureCollection

b)

Single ee.Image (median composite clipped to ROI)

c)

ImageCollection

d)

Dictionary

49.

Why is .median() commonly used for Sentinel-2 composites?

a)

It selects the brightest pixel always

b)

It reduces noise/outliers (including residual clouds) better than single image selection

c)

It increases spatial resolution

d)

It converts SR to TOA

50.

What does Map.addLayer(image, imageVisParam, 'image_sent'); require to work?

a)

A defined imageVisParam object with valid band names and visualization parameters for the image

b)

An ROI layer added previously to the map

c)

A web map access token

d)

No parameters because it renders with defaults only

51.

What is achieved by this? var Class_name = builtup.merge(Forest).merge(waterbody).merge(others);

a)

Combines all training polygons/points into one FeatureCollection

b)

Converts raster classes into vector

c)

Merges all Sentinel images into one

d)

Creates a confusion matrix automatically

52.

What should be true about the training FeatureCollections (builtup/Forest/waterbody/others)?

a)

They must be rasters

b)

They must contain a property named Class (as used later)

c)

They must be exported to Drive first

d)

They must contain only one geometry type (points only)

53.

Which bands are used as predictor variables in classification?

a)

B1, B5, B6

b)

B2, B3, B4, B8, B11, B12

c)

Only B2, B3, B4

d)

Only B8 and B11

54.

Why is randomColumn('random') used?

a)

Adds random noise to image pixels

b)

Adds a random number to each feature for splitting datasets

c)

Randomizes band names

d)

Creates random ROIs

55.

What percentage of samples go into training using < 0.8?

a)

20%

b)

80%

c)

50%

d)

100%

56.

What does image.sampleRegions({...}) produce?

a)

A classified image

b)

A FeatureCollection of sampled pixel values + class labels

c)

A confusion matrix

d)

A geometry-only layer

57.

In trainingSample, what does properties: ['Class'] do?

a)

Renames the band to Class

b)

Copies the Class label from training features into the samples

c)

Filters only Class band from image

d)

Creates new class labels automatically

58.

What classifier algorithm is used here? ee.Classifier.smileCart()

a)

Random Forest

b)

CART (Decision Tree)

c)

SVM

d)

K-Means

59.

What does .train({features: trainingSample, classProperty: 'Class', inputProperties: bands}) do?

a)

Clips the training sample to ROI

b)

Fits the CART model using the selected bands to predict Class

c)

Converts training polygons into raster

d)

Calculates NDVI and NDWI

60.

What does image.classify(classifier) output?

a)

ImageCollection

b)

A classified image where each pixel has a predicted class value

c)

FeatureCollection of classes

d)

Dictionary of class names

61.

Why is this visualization used? {min: 0, max: 3, palette: [...]}

a)

Because NDVI ranges 0–3

b)

Because there are 4 class codes (0–3) being displayed with colors

c)

Because Sentinel-2 has 4 bands

d)

Because CART outputs probabilities only

62.

What is created by validationSample = image.sampleRegions({...})?

a)

Training samples

b)

Validation samples (pixel values extracted from validation features)

c)

Cloud mask samples

d)

Only geometry boundaries

63.

What does this do? var validated = validationSample.classify(classifier);

a)

Retrains the model

b)

Adds a classification prediction column to validation samples

c)

Converts validation samples into raster

d)

Removes Class labels

64.

What does this compute? validated.errorMatrix('Class', 'classification')

a)

NDWI class histogram

b)

Confusion matrix comparing true Class vs predicted classification

c)

Cloud percentage table

d)

Slope error matrix

65.

Overall Accuracy represents:

a)

Average NDVI of correct pixels

b)

Fraction of validation samples correctly classified

c)

Only producer accuracy for class 0

d)

Only consumer accuracy for class 3

66.

What does confusionMatrix.producersAccuracy() measure?

a)

Fraction of reference samples correctly classified for each class

b)

Fraction of predicted samples that are correct for each class

c)

Overall accuracy across all classes

d)

Kappa statistic value