我试图使用从filterBounds中提取的geometry函数在ImageCollection上使用geometry,但不会出现任何更改。我不明白为什么它不能工作,因为我将几何传递到filterBounds。
import geemap
import ee
Map = geemap.Map()
Map
# retreives geometry for colorado
co = ee.FeatureCollection('TIGER/2018/States').filter("NAME == 'Colorado'").geometry()
# clips image to colorado geometry
lf_veg_dataset = ee.ImageCollection('LANDFIRE/Vegetation/EVT/v1_4_0').filterBounds(co);
# selects dataset to be mapped
lf_veg = lf_veg_dataset.select('EVT')
# sets image variables
lf_veg_vis = {'min': 3001, 'max': 3999, 'opacity': 1.0}
# adds image layers to map
Map.addLayer(lf_veg, lf_veg_vis, 'Veg')发布于 2021-03-08 17:54:00
filterBounds()传递输入集合的元素,这些元素具有与几何图形相交的几何图形--参见此处:https://gis.stackexchange.com/questions/247955/clipping-vs-filtering-images-with-a-polygon-google-earth-engine。在您的例子中,这意味着过滤器返回一个IC,它覆盖除AK和HI之外的所有状态。您只需要将输出裁剪到您感兴趣的区域:
import geemap
import ee
Map = geemap.Map()
# retreives geometry for colorado
co = ee.FeatureCollection('TIGER/2018/States').filterMetadata('NAME', 'equals', 'Colorado').geometry()
# clips image to colorado geometry
lf_veg_dataset = ee.ImageCollection('LANDFIRE/Vegetation/EVT/v1_4_0').filterBounds(co)
# selects dataset to be mapped
lf_veg = lf_veg_dataset.select('EVT')
# Clip to bounds of geometry
lf_veg_img = lf_veg.map(lambda image: image.clip(co))
# sets image variables
lf_veg_vis = {'min': 3001, 'max': 3999, 'opacity': 1.0}
# adds image layers to map
Map.addLayer(lf_veg_img, lf_veg_vis, 'Veg')
Maphttps://stackoverflow.com/questions/66374322
复制相似问题