掩膜
? 在遙感圖像處理中,"掩膜"是指一種用于隱藏或保留圖像特定部分的技術。掩膜通常是一個二進制圖像,其中的像素值為0或1,分別表示遮蔽或保留。
? 在去除云的情境中,掩膜通常用于隱藏圖像中被云覆蓋的部分,使得在分析中只考慮云影響較小或不受云覆蓋的區域。這通過將云檢測的結果與原始圖像相乘來實現,其中云檢測結果中的云部分對應的像素值為0,其他部分為1。這樣,相乘后,原始圖像中的云部分就被設置為0,即被遮蔽,而其他部分保留。
遙感分類系數指標
遙感分類系數是用于評估遙感圖像分類結果的指標,常見的包括:
- 生產者精度(Producer’s Accuracy): 正確分類為某一類別的樣本數與該類別所有樣本數的比值,衡量分類模型對某一類別的識別準確度。
- 用戶精度(User’s Accuracy): 正確分類為某一類別的樣本數與模型對該類別所有樣本的分類結果的比值,衡量分類模型的分類準確度。
- 總體精度(Overall Accuracy): 全部正確分類的樣本數與總樣本數的比值,是整體分類準確度的度量。
- Kappa系數(Kappa Coefficient): 用于考量分類結果與隨機分類之間的差異,是一種綜合考慮生產者精度和用戶精度的指標。
- 混淆矩陣(Confusion Matrix): 包含了模型對每個類別的分類情況,可用于詳細分析模型的分類性能。
通過混淆矩陣,可以計算出上述提到的生產者精度、用戶精度、總體精度等指標。具體而言,混淆矩陣的四個要素分別是:
- True Positive(TP):實際為正類別,模型預測為正類別。
- True Negative(TN):實際為負類別,模型預測為負類別。
- False Positive(FP):實際為負類別,模型預測為正類別。
- False Negative(FN):實際為正類別,模型預測為負類別。
常用數據(選Collection2 Tier1 的好數據)
JRC水體數據
GAIA不透水面數據
ESA土地利用分類數據
ERA5溫度和降水數據
Join
ee.Join.inner(primaryKey, secondaryKey, measureKey)
返回將主集合中的元素與次集合中的匹配元素配對的連接。每個結果都有一個包含主集合中元素的 "主 "屬性,以及一個包含次集合中匹配元素的 "次 "屬性。如果指定了 measureKey,則連接措施也會作為一個屬性附加到對象上。
Argument | Type | Details |
---|---|---|
primaryKey | String, default: “primary” | 用于保存主匹配的屬性名稱。 |
secondaryKey | String, default: “secondary” | 用于保存二級匹配的屬性名稱。 |
measureKey | String, default: null | 可選的屬性名稱,用于保存連接條件的度量值。 |
Join.apply(primary, secondary, condition)
用于將兩個集合(比如圖像集或特征集)根據特定條件進行連接
Argument | Type | Details |
---|---|---|
primary | FeatureCollection | 主要的集合,通常是你想要連接的主要數據集 |
secondary | FeatureCollection | 次要的集合,即你想要連接到主要集合的數據集 |
condition | Filter | 用于從兩個集合中選擇匹配項的連接條件。 |
Map
Map.centerObject(object, zoom,onComplete)
將地圖視圖居中于給定對象。
參數 | Type | 介紹 |
---|---|---|
object | Element|Geometry(幾何圖像) | 要居中的對象–幾何體、圖像或特征。 |
zoom | Number, optional | 縮放級別,從 0 到 24。如果未指定,則根據對象的邊界框計算。 |
onComplete | Function, optional | 重新定位成功后觸發的回調。傳遞此參數會導致 centerObject 操作異步運行。 |
Map.addLayer(eeObject, visParams, name, shown, opacity)
將給定的 EE 對象作為圖層添加到地圖中。返回新的地圖圖層。
參數 | 類型 | 介紹 |
---|---|---|
eeObject | 集合|特征|圖像|RawMapId | 要添加到地圖的對象。 |
visParams | 特征可視化參數|圖像可視化參數,可選 | 可視化參數。對于圖像和 ImageCollection,請參閱 ee.data.getMapId 以獲取有效參數。對于功能和功能集合,唯一支持的鍵是“color”,作為 CSS 3.0 顏色字符串或“RRGGBB”格式的十六進制字符串。當 eeObject 是地圖 ID 時被忽略。 |
name | 字符串,可選 | 圖層的名稱。默認為“N 層”。 |
shown | 布爾值,可選 | 指示該圖層是否應默認打開的標志。 |
opacity | 數量,可選 | 圖層的不透明度表示為 0 到 1 之間的數字。默認為 1。 |
visParams參數 :
image
(JSON string): 要呈現的圖像的 JSON 字符串表示,或者可以是 Image 對象。version
(number): 圖像的版本號,或者使用 “latest” 表示最新版本。bands
(comma-separated strings): 要映射到 RGB 的波段名稱,用逗號分隔。min
(comma-separated numbers): 映射到 00 的值,可以是單個值或每個波段一個值。max
(comma-separated numbers): 映射到 FF 的值,可以是單個值或每個波段一個值。gain
(comma-separated numbers): 映射到 00-FF 的增益,可以是單個值或每個波段一個值。bias
(comma-separated numbers): 映射到 00-FF 的偏移,可以是單個值或每個波段一個值。gamma
(comma-separated numbers): 伽馬校正因子,可以是單個值或每個波段一個值。palette
(comma-separated strings): CSS 樣式顏色字符串的列表,僅適用于單波段預覽。opacity
(number): 透明度,取值范圍在 0 到 1 之間。format
(string): 輸出圖像的格式,可以是 “jpg” 或 “png”。
Filter方法
ee.Filter(filter)
構造一個新的過濾器。此構造函數接受以下參數:
-
另一個過濾器。
-
一個過濾器列表(隱式 AND 合并)。
-
一個返回過濾器的計算對象。用戶不應創建這些對象;它們由生成器函數生成
Argument | Type | Details |
---|---|---|
filter | Filter|List, optional | 可選擇添加過濾器。 |
ee.Filter.inList(leftField, rightValue, rightField, leftValue)
對列表中的元數據進行篩選。 返回構建的篩選器。
Argument | Type | Details |
---|---|---|
leftField | String, optional | 左操作數的選擇符。如果指定了 leftValue,則不應指定。 |
rightValue | List, optional | 右操作數的值。如果指定了 rightField,則不應指定。 |
rightField | String, optional | 右操作數的選擇符。如果指定了 rightValue,則不應指定。 |
leftValue | List, optional | 左操作數的值。如果指定了 leftField,則不應指定。 |
ee.Filter.eq(name, value)
過濾到等于給定值的元數據。返回構造的過濾器。
用法 | 返回值 |
---|---|
ee.Filter.eq(name, value) | Filter |
參數 | 類型 | 介紹 |
---|---|---|
name | String | 要進行篩選的屬性名稱。 |
value | Object | 要比較的值。 |
ee.Filter.date(start, end) 時間篩選
按日期范圍篩選數據集。開始和結束可以是日期、數字(解釋為自 1970-01-01T00:00:00Z 起的毫秒)或字符串(如 “1996-01-01T08:00”)。基于 "system:time_start "屬性。返回構建的過濾器。
Argument | Type | Details |
---|---|---|
start | Date|Number|String | 開始日期(含)。 |
end | Date|Number|String, optional | 結束日期(不包括)。可選。如果未指定,則會創建一個從 "開始 "開始的 1 毫秒范圍。 |
ee.Filter.bounds(geometry, errorMargin) 位置篩選
創建一個過濾器,如果對象的幾何圖形與給定的幾何圖形相交,則通過該過濾器。返回構建的過濾器。
Argument | Type | Details |
---|---|---|
geometry | ComputedObject|FeatureCollection|Geometry | 要與之相交的幾何體、特征或集合。 |
errorMargin | ComputedObject|Number, optional | 可選的誤差范圍。如果是數字,則解釋為球面米。 |
ee.Filter.lt(name, value) 屬性篩選
過濾小于給定值的元數據。 返回構建的過濾器。
Argument | Type | Details |
---|---|---|
name | String | 要過濾的屬性名稱。 |
value | Object | 要與之比較的值。 |
1. Dictionary方法
.toDictionary()
以字典的形式從特性中提取屬性(properties)
.get()
通過Dictionary的鍵來獲取值
.keys()
獲取Dictionary中所有的鍵
.values()
獲取Dictionary中所有的值
.size()
獲取Dictionary中所含鍵值對的數量
.rename(from, to)
重命名Dictionary的鍵
參數 | Type | 介紹 |
---|---|---|
from | List[] | 要重命名的鍵的列表。 |
to | List[] | 來自 "參數中列出的鍵的新名稱列表。長度必須與 "from "列表相同。 |
.remove(selectors)
返回已刪除指定鍵的Dictionary。
參數 | Type | 介紹 |
---|---|---|
selectors | List | 要刪除的鍵名列表或鍵名正則表達式。 |
.contains(key)
判斷是否包含鍵,如果字典包含給定的鍵,則返回true。
參數 | Type | Details |
---|---|---|
key | String, default: null |
2. Feature常用函數
.Feature()
特征可由以下參數之一加上可選的屬性字典構建:
-
一個 ee.Geometry.GeoJSON 幾何圖形。
-
一個 GeoJSON 幾何圖形。
-
一個 GeoJSON 特征。
-
一個計算對象:如果指定了屬性,則重新解釋為幾何體;如果沒有指定,則解釋為地物。
參數 | Type | 介紹 |
---|---|---|
geometry | ComputedObject|Feature|Geometry|Object | 幾何體或特征。 |
properties | Object, optional | 元數據屬性字典。如果第一個參數是地物(而不是幾何體),則未使用此參數。 |
.select(propertySelectors, newProperties, retainGeometry)
通過名稱或與 RE2 兼容的 regex 從特征中選擇屬性,并對其進行重命名。
參數 | Type | 介紹 |
---|---|---|
propertySelectors | List | 指定要選擇的屬性的名稱或 regexes 的列表。 |
newProperties | List, default: null | 可選的輸出屬性新名稱。必須與所選屬性的數量一致。 |
retainGeometry | Boolean, default: true | 為假時,結果將為空幾何圖形。 |
.set(var_args)
設置元素的一個或多個元數據屬性。返回設置指定屬性的元素。
參數 | Type | 介紹 |
---|---|---|
var_args | VarArgs | 可以是屬性字典,也可以是屬性的 vararg 序列,例如 key1、value1、key2、value2、… |
.centroid(maxError, proj)
返回一個特征點,該特征點包含特征幾何體最高維度組件的中心點。低維組件將被忽略,因此包含兩個多邊形、三條線和一個點的幾何體的中心點等同于僅包含兩個多邊形的幾何體的中心點。
參數 | Type | 介紹 |
---|---|---|
maxError | ErrorMargin, default: null | 執行任何必要的重投時可容忍的最大誤差。 |
proj | Projection, default: null | 如果指定,結果將采用該投影。否則將采用 WGS84 投影。 |
.simplify(maxError, proj)
將地物的幾何形狀簡化到給定誤差范圍內。需要注意的是,除非 maxError 被明確指定為空,否則它不會尊重該算法的用戶所要求的誤差范圍。 這將覆蓋地球引擎傳播誤差范圍的默認策略,因此無論輸出所要求的幾何精度如何,輸入都將按照該算法參數中指定的誤差范圍進行請求。這樣,在渲染矢量地圖的所有縮放級別上都能獲得一致的渲染效果,但在較低的縮放級別上(即放大),幾何圖形不會被簡化,這可能會影響性能。
參數 | Type | 介紹 |
---|---|---|
maxError | ErrorMargin | 結果與輸入可能存在差異的最大誤差值。 |
proj | Projection, default: null | 如果指定,結果將采用該投影。否則將采用與輸入相同的投影。如果誤差幅度以投影單位表示,則誤差幅度將被解釋為該投影的單位 |
.bounds(maxError, proj)
官網文檔解釋:返回包含給定地物幾何邊界框的地物。
自己理解:返回圖像的外接矩形
參數 | Type | 介紹 |
---|---|---|
maxError | ErrorMargin, default: null | 執行任何必要的重投時可容忍的最大誤差。 |
proj | Projection, default: null | 如果指定,結果將采用該投影。否則將采用 WGS84 投影。 |
.convexHull(maxError, proj)
官網文檔解釋:返回幾何圖形被原始幾何圖形的凸殼替代后的特征。單個點的凸殼是點本身,相鄰點的凸殼是一條直線,其他所有點的凸殼是一個多邊形。需要注意的是,如果一個退化多邊形的所有頂點都在同一條直線上,那么該多邊形就會形成一條線段。
自己理解:返回圖像的外接多邊形
參數 | Type | 介紹 |
---|---|---|
maxError | ErrorMargin, default: null | 執行任何必要的重投時可容忍的最大誤差。 |
proj | Projection, default: null | 執行操作的投影。如果未指定,操作將在球面坐標系中執行,線性距離將以球面上的米為單位。 |
.buffer(distance, maxError, proj)
返回按給定距離緩沖的輸入值。如果距離為正值,幾何體將被擴展;如果距離為負值,幾何體將被收縮。
參數 | Type | 介紹 |
---|---|---|
distance | Float | 緩沖距離,可以是負值。如果沒有指定投影,單位為米。否則以投影坐標系為單位。 |
maxError | ErrorMargin, default: null | 在近似緩沖圓和執行任何必要的重投影時可容忍的最大誤差。如果未指定,默認為距離的 1%。 |
proj | Projection, default: null | 如果指定,緩沖將在該投影中執行,距離將解釋為該投影坐標系的單位。否則,距離將被解釋為米,緩沖將在球面坐標系中進行。 |
.union(right, maxError, proj) 合并
返回包含兩個地物幾何圖形結合的地物。
參數 | Type | 介紹 |
---|---|---|
right | Element | 包含作為操作右操作數的幾何圖形的特征。該對象的屬性將被忽略。 |
maxError | ErrorMargin, default: null | 執行任何必要的重投時可容忍的最大誤差。 |
proj | Projection, default: null | 執行操作的投影。如果未指定,操作將在球面坐標系中執行,線性距離將以球面上的米為單位。 |
.intersection(right, maxError, proj) 相交
返回包含兩個特征幾何形狀交集的特征,并帶有左側特征的屬性。
參數 | Type | 介紹 |
---|---|---|
right | Element | 包含作為操作右操作數的幾何圖形的特征。該對象的屬性將被忽略。 |
maxError | ErrorMargin, default: null | 執行任何必要的重投時可容忍的最大誤差。 |
proj | Projection, default: null | 執行操作的投影。如果未指定,操作將在球面坐標系中執行,線性距離將以球面上的米為單位。 |
.difference(right, maxError, proj) 相差
返回具有 "左 "特征屬性的特征,以及從 "左 "幾何圖形減去 "右 "幾何圖形后的幾何圖形。
參數 | Type | 介紹 |
---|---|---|
right | Element | 包含作為操作右操作數的幾何圖形的特征。該對象的屬性將被忽略。 |
maxError | ErrorMargin, default: null | 執行任何必要的重投時可容忍的最大誤差。 |
proj | Projection, default: null | 執行操作的投影。如果未指定,操作將在球面坐標系中執行,線性距離將以球面上的米為單位。 |
.distance(right, maxError, proj)
返回兩個特征點幾何形狀之間的最小距離。
Argument | Type | Details |
---|---|---|
right | Element | 包含作為操作右操作數的幾何體的特征。 |
maxError | ErrorMargin, default: null | 執行任何必要的重投時可容忍的最大誤差。 |
proj | Projection, default: null | 執行操作的投影。如果未指定,操作將在球面坐標系中執行,線性距離將以球面上的米為單位。 |
.geometry(maxError, proj, geodesics)
返回給定投影中給定地物的幾何圖形。
Argument | Type | Details |
---|---|---|
maxError | ErrorMargin, default: null | 執行任何必要的重投時可容忍的最大誤差。 |
proj | Projection, default: null | 如果指定,幾何體將使用該投影。如果未指定,幾何體將使用默認投影。 |
geodesics | Boolean, default: null | 如果為 “true”,幾何體將具有大地邊緣。如果為 false,則幾何體的邊緣將以指定投影中的直線形式出現。如果為空,邊緣解釋將與原始幾何體相同。如果未指定 proj,此參數將被忽略。 |
.get(property)
從特征中提取屬性
Argument | Type | Details |
---|---|---|
property | String | 要提取的屬性。 |
.area(maxError, proj)
返回該特征的默認幾何形狀的面積。點和線串的面積為0,多個幾何形狀的面積為其組成部分的面積之和(相交面積計算多次)。
參數 | Type | 介紹 |
---|---|---|
maxError | ErrorMargin, default: null | 執行任何必要的重投時可容忍的最大誤差。 |
proj | Projection, default: null | 如果指定,結果將使用該投影坐標系的單位。否則將以平方米為單位。 |
.perimeter(maxError, proj)
返回給定特征幾何體多邊形部分的周長。多個幾何體的周長是其各部分周長的總和。
參數 | Type | 介紹 |
---|---|---|
maxError | ErrorMargin, default: null | 執行任何必要的重投時可容忍的最大誤差。 |
proj | Projection, default: null | 如果指定,結果將使用該投影坐標系的單位。否則將以米為單位。 |
3. FeatureCollection常用函數
ee.FeatureCollection(args, column)
FeatureCollections 可由以下參數構建:
-
字符串:假定為集合名稱。
-
一個幾何體。
-
單個特征。
-
一個特征列表
-
一個 GeoJSON 地物集合
-
一個計算對象:重新解釋為一個集合。
Argument | Type | Details |
---|---|---|
args | ComputedObject|Feature|FeatureCollection|Geometry|List | 構造函數參數。 |
column | String, optional | 要使用的幾何列的名稱。僅在處理命名集合時有用。 |
.randomPoints(region, points, seed, maxError)
在球面上均勻隨機地生成指定區域內的點。
Argument | Type | Details |
---|---|---|
region | Geometry | 要生成積分的區域。 |
points | Integer, default: 1000 | 要生成的點數。 |
seed | Long, default: 0 | 隨機數生成器的種子。 |
maxError | ErrorMargin, optional | 執行任何必要的重投時可容忍的最大誤差。 |
.filterBounds(geometry)
根據與幾何體的交點過濾集合的快捷方式。這等同于 this.filter(ee.Filter.bounds(…))。返回過濾后的集合。
Argument | Type | Details |
---|---|---|
geometry | ComputedObject|FeatureCollection|Geometry | 要與之相交的幾何體、特征或集合。 |
.select(propertySelectors, newProperties, retainGeometry)
從集合中的每個特征中選擇屬性。也可以只使用字符串參數調用此函數;它們都將被解釋為屬性選擇器(varargs)。 返回包含所選屬性的特征集合。
Argument | Type | Details |
---|---|---|
propertySelectors | List | 指定要選擇的屬性的名稱或 regexes 的列表。 |
newProperties | List, optional | 輸出屬性的新名稱列表。必須與所選屬性的數量一致。 |
retainGeometry | Boolean, optional | 為假時,結果的幾何形狀為空。默認為 true。 |
.union(maxError)
將給定集合中的所有幾何圖形合并為一個,并返回一個集合,其中包含一個 ID 為 "union_result "的單一地物和一個幾何圖形。
Argument | Type | Details |
---|---|---|
maxError | ErrorMargin, default: null | 執行任何必要的重現時允許的最大誤差。如果未指定,則默認為輸出所要求的誤差范圍。 |
.merge(collection2)
將兩個集合合并為一個。第一個集合中的元素 ID 前綴為 “1”,第二個集合中的元素 ID 前綴為 “2”。
Argument | Type | Details |
---|---|---|
collection2 | FeatureCollection | 第二個要合并的系列。 |
.remap(lookupIn, lookupOut, columnName)
重映射集合中特定屬性的值。使用兩個并行列表,將其中一個列表中的值映射到另一個列表中的值。任何元素的值如果未在第一個列表中指定,就會從輸出集合中刪除。
Argument | Type | Details |
---|---|---|
lookupIn | List | 輸入的映射值。限于字符串和整數。 |
lookupOut | List | 輸出映射值。必須與 lookupIn 大小相同。 |
columnName | String | 要重新映射的屬性名稱。 |
.sort(property, ascending)
按指定屬性對集合排序。 返回排序后的集合。
Argument | Type | Details |
---|---|---|
property | String | 要排序的屬性。 |
ascending | Boolean, optional | 按升序還是降序排序。默認為 true(升序)。 |
.geometry(maxError)
提取并合并幾何圖形集合。要求集合中的所有幾何圖形共享投影和邊緣解釋。
Argument | Type | Details |
---|---|---|
maxError | ErrorMargin, optional | 合并幾何圖形時使用的誤差范圍。 |
.reduceToimage(properties, reducer)
通過對與每個像素相交的所有特征的選定屬性應用還原器,從特征集合創建圖像。
Argument | Type | Details |
---|---|---|
properties | List | 從每個特征中選取的屬性,并將其傳遞給還原器。 |
reducer | Reducer | 一個還原器,用于將每個相交特征的屬性合并為最終結果并存儲到像素中。 |
.map(algorithm, dropNulls)
將算法映射到集合上,并返回映射后的集合。
Argument | Type | Details |
---|---|---|
algorithm | Function | 映射圖像或集合特征的操作。接收圖像或特征并返回圖像或特征的 JavaScript 函數。該函數只調用一次,其結果將作為描述捕獲,因此不能執行命令式操作或依賴外部狀態。 |
dropNulls | Boolean, optional | 如果為 “true”,則允許映射算法返回空值,并且會放棄返回空值的元素。 |
.aggregate_min(property)
對集合中對象的給定屬性進行聚合,計算所選屬性值的最小值。
Argument | Type | Details |
---|---|---|
property | String | 從集合的每個元素中使用的屬性。 |
.aggregate_max(property)
對集合中對象的給定屬性進行聚合,計算所選屬性值的最大值。
Argument | Type | Details |
---|---|---|
property | String | 從集合的每個元素中使用的屬性。 |
.aggregate_mean(property)
對集合中對象的給定屬性進行聚合,計算所選屬性的平均值。
Argument | Type | Details |
---|---|---|
property | String | 從集合的每個元素中使用的屬性。 |
.aggregate_first(property)
對集合中對象的給定屬性進行聚合,計算集合中第一個對象的屬性值。
Argument | Type | Details |
---|---|---|
property | String | 從集合的每個元素中使用的屬性。 |
.aggregate_sum(property)
對集合中對象的給定屬性進行聚合,計算所選屬性值的總和。
Argument | Type | Details |
---|---|---|
property | String | 從集合的每個元素中使用的屬性。 |
.aggregate_histogram(property)
對集合中對象的給定屬性進行聚合,計算所選屬性的直方圖。
Argument | Type | Details |
---|---|---|
property | String | 從集合的每個元素中使用的屬性。 |
4. 柵格數據存儲原理
由Image和ImageCollection進行存儲,很多的image的集合就是一個ImageCollection,Image包括多個波段(Band),波段組合成影像,影像集合成為影像數據集。
4.1 Image方法
Image.clip(geometry)
將圖像剪切到幾何圖形或地物上,輸出波段與輸入波段完全對應,但幾何圖形未覆蓋的數據將被屏蔽。輸出圖像保留輸入圖像的元數據。使用 clipToCollection 將圖像剪輯到特征集合。返回剪切后的圖像。
Argument | Type | Details |
---|---|---|
geometry | Feature|Geometry|Object | 要剪切的幾何圖形或地物。 |
Image.gt(image2)
如果圖像 1 和圖像 2 中每對匹配的波段的第一個值大于第二個值,則返回 1。如果圖像 1 或圖像 2 中只有一個波段,則該波段將與另一幅圖像中的所有波段進行比對。如果圖像中的波段數相同,但名稱不相同,則按自然順序成對使用。輸出色帶以兩個輸入色帶中較長的一個命名,如果兩個輸入色帶長度相等,則按圖像 1 的順序排列。輸出像素的類型是布爾型。
Argument | Type | Details |
---|---|---|
image2 | Image | 取自右操作數波段的圖像。 |
Image.selfMask()
使用圖像值作為新的掩碼值,更新圖像所有現有掩碼不為零位置的掩碼。輸出圖像會保留輸入圖像的元數據和足跡。
Image.subtract(image2)
將圖像 1 和圖像 2 中每對匹配的波段的第二個值減去第一個值。如果圖像 1 或圖像 2 中只有一個波段,則將其與另一幅圖像中的所有波段進行對比。如果圖像中的波段數相同,但名稱不同,則按自然順序成對使用。輸出波段以兩個輸入波段中較長的一個命名,如果兩個輸入波段長度相等,則按圖像 1 的順序命名。輸出像素的類型是輸入類型的組合。
Argument | Type | Details |
---|---|---|
image2 | Image | 取自右操作數波段的圖像。 |
Image.bitwiseAnd(image2)
計算圖像 1 和圖像 2 中每對匹配波段的輸入值的位和。如果圖像 1 或圖像 2 中只有一個波段,則將其與另一張圖像中的所有波段進行比對。如果圖像中的波段數相同,但名稱不同,則按自然順序成對使用。輸出波段以兩個輸入波段中較長的一個命名,如果兩個輸入波段長度相等,則按圖像 1 的順序命名。輸出像素的類型是輸入類型的組合。
Argument | Type | Details |
---|---|---|
image2 | Image | 取自右操作數波段的圖像。 |
Image.copyProperties(source, properties, exclude)
將元數據屬性從一個元素復制到另一個元素。
Argument | Type | Details |
---|---|---|
source | Element, default: null | 從中復制屬性的對象。 |
properties | List, default: null | 要復制的屬性。如果省略,則復制所有普通(即非系統)屬性。 |
exclude | List, default: null | 復制所有屬性時要排除的屬性列表。如果 properties 為,則不得指定。 |
Image.updateMask(mask)
更新圖像掩碼中所有現有掩碼不為零的位置。輸出圖像保留輸入圖像的元數據和足跡。
Argument | Type | Details |
---|---|---|
mask | Image | 圖像的新掩碼,范圍為 [0, 1] 的浮點數(無效 = 0, 有效 = 1)。如果該圖像只有一個波段,它將用于輸入圖像的所有波段;否則,必須具有與輸入圖像相同的波段數。 |
ee.Image.constant(value)
生成一幅圖像,圖像各處都包含一個常量值。
Argument | Type | Details |
---|---|---|
value | Object | 常量圖像中像素的值。必須是數字、數組或數字或數組列表。 |
Image.normalizedDifference(bandNames)
計算兩個波段之間的歸一化差值。如果沒有指定要使用的波段,則使用前兩個波段。歸一化差值的計算公式為(第一-第二)/(第一+第二)。請注意,返回的圖像波段名稱是 “nd”,輸出圖像中不會保留輸入圖像屬性,而且任一輸入波段中的負像素值都會導致輸出像素被屏蔽。為避免屏蔽負輸入值,請使用 ee.Image.expression() 計算歸一化差值。
Argument | Type | Details |
---|---|---|
bandNames | List, default: null | 指定要使用的頻帶的名稱列表。如果未指定,則使用第一個和第二個波段。 |
Image.expression(expression, map)
對一幅圖像(可能涉及其他圖像)進行算術表達式求值。 主要輸入圖像的波段可使用內置函數 b(),即 b(0) 或 b(‘band_name’)。
表達式中的變量被解釋為附加圖像參數,必須在 opt_map 中提供。每個此類圖像的波段都可以像 image.band_name 或 image[0] 一樣訪問。
b() 和 image[] 都允許使用多個參數來指定多個波段,例如 b(1,‘name’,3)。調用不帶參數的 b() 或使用變量本身,都會返回圖像的所有波段。
如果表達式的結果是單個波段,則可以使用"="操作符為其賦名(例如:x = a + b)。
返回根據所提供表達式計算出的圖像。
Argument | Type | Details |
---|---|---|
expression | String | 要評估的表達式。 |
map | Dictionary, optional | 按名稱提供的輸入圖像地圖。 |
Image.addBands(srcImg, names, overwrite)
用于向圖像添加新波段的方法。
srcImg
: 要添加的源圖像或圖像集。names
: 要添加的波段的名稱,可以是字符串或字符串數組。每個名稱對應于srcImg
中的一個波段。overwrite
: 布爾值,表示如果已存在同名波段是否覆蓋。如果設置為true
,則覆蓋現有的同名波段;如果設置為false
,則不覆蓋。
Image.reduceRegion(reducer, geometry, scale, crs, crsTransform, bestEffort, maxPixels, tileScale)
用于在圖像上執行區域縮減操作的方法。
reducer
: 用于指定要執行的縮減操作,比如ee.Reducer.mean()
表示計算平均值。常見的統計操作包括mean()
、sum()
、min()
、max()
等。geometry
: 定義縮減操作的地理區域,可以是一個ee.Geometry
對象。scale
: 指定縮減的分辨率,以米為單位。crs
: 縮減操作的坐標參考系統(Coordinate Reference System)。crsTransform
: 縮減操作的坐標轉換參數,通常用于從圖像坐標到投影坐標的轉換。bestEffort
: 布爾值,表示是否盡最大努力執行縮減操作,即使在某些情況下無法完成全部操作。maxPixels
: 指定執行縮減操作的最大像元數。tileScale
: 控制圖像切片時的縮放比例,可用于提高處理速度。
Image.aside(func, var_args)
用于在圖像計算過程中插入調試語句,以便在調試或理解代碼時查看圖像計算的中間結果。
Argument | Type | Details |
---|---|---|
func | Function | 一個函數,該函數接受圖像作為參數并返回圖像。在這個函數中,你可以使用 print 等語句來輸出圖像信息。 |
var_args | VarArgs | 要傳遞給函數的額外參數。 |
Image.unmask(value, sameFootprint)
用于將圖像中的掩碼(mask)去除。掩碼是指圖像中某些像素被標記為無效或不適用的區域,通過 mask
或 updateMask
方法設置。
Argument | Type | Details |
---|---|---|
value | Image, default: null | 一個數值,用于替代掩碼區域的像素值。 |
sameFootprint | Boolean, default: true | 一個布爾值,指示是否將去除掩碼的圖像保持與原始圖像相同的地理范圍。 |
Image.stratifiedSample(numPoints, classBand, region, scale, projection, seed, classValues, classPoints, dropNulls, tileScale, geometries)
從圖像中提取分層隨機點樣本。為 "classBand "中發現的每個不同值提取指定數量的樣本。每個提取點返回一個包含 1 個特征的特征集合,每個特征在輸入圖像的每個波段中包含 1 個屬性。如果給定類別值的可用樣本少于指定數量,則會包含該類別的所有點。要求 classBand 包含整數值。
Argument | Type | Details |
---|---|---|
numPoints | Integer | 每個類的默認采樣點數。可以使用 "classValues "和 "classPoints "屬性對特定類別進行重設。 |
classBand | String, default: null | 用于分層的包含類別的波段名稱。如果未指定,則使用輸入圖像的第一個波段。 |
region | Geometry, default: null | 采樣區域。如果未指定,則使用輸入圖像的整個足跡作為采樣區域。 |
scale | Float, default: null | 要采樣的投影的標稱比例(以米為單位)。默認為輸入圖像第一個波段的比例。 |
projection | Projection, default: null | 采樣的投影。如果未指定,則使用輸入圖像第一個波段的投影。如果除了縮放比例外還指定了投影比例,則會按照指定的比例重新縮放。 |
seed | Integer, default: 0 | 用于子采樣的隨機化種子。 |
classValues | List, default: null | 要覆蓋 numPoints 參數的類值列表。必須與 classPoints 大小相同或為空。 |
classPoints | List, default: null | classValues(類別值)列表中每個類別的最大采樣像素數。必須與 classValues 大小相同或為空。 |
dropNulls | Boolean, default: true | 跳過任何遮擋帶的像素。 |
tileScale | Float, default: 1 | 縮放因子,用于減小聚合磁貼大小;使用較大的 tileScale(如 2 或 4)可能會導致計算耗盡默認內存。 |
geometries | Boolean, default: false | 如果為 “true”,結果將包括每個采樣像素的幾何圖形。否則,幾何圖形將被省略(節省內存)。 |
Image.blend(top)
在一張圖像上疊加另一張圖像。圖像將使用遮罩作為不透明度混合在一起。如果其中一幅圖像只有一個色帶,則會進行復制,以匹配另一幅圖像中的色帶數量。
Argument | Type | Details |
---|---|---|
top | Image | 是要與原始圖像混合的另一個圖像 |
Image.sampleRegions(collection, properties, scale, projection, tileScale, geometries)
用于從圖像中抽樣獲取指定區域(region)內的像元,并返回一個包含屬性信息的特征集合。
Argument | Type | Details |
---|---|---|
collection | FeatureCollection | 采樣區域。 |
properties | List, default: null | 要從每個輸入特征點復制的屬性列表。默認為所有非系統屬性。 |
scale | Float, default: null | 要采樣的投影的標稱比例(以米為單位)。如果未指定,則使用圖像第一個波段的比例。 |
projection | Projection, default: null | 采樣時的投影。如果未指定,則使用圖像第一個波段的投影。如果除比例外還指定了投影,則按指定比例重新縮放。 |
tileScale | Float, default: 1 | 縮放因子,用于減小聚合磁貼大小;使用較大的 tileScale(如 2 或 4)可能會導致計算耗盡默認內存。 |
geometries | Boolean, default: false | 如果為 “true”,結果將包括每個采樣像素的點幾何圖形。否則,幾何圖形將被省略(節省內存)。 |
4.2 ImageCollection方法
ee.ImageCollection(args)
ImageCollections 可以通過以下參數構建:
-
字符串:假定為集合的名稱、
-
圖像列表,或任何可用于構建圖像的參數。
-
單張圖片。
-
一個計算對象–重新解釋為一個集合。
Argument | Type | Details |
---|---|---|
args | ComputedObject|Image|List | 構造函數參數。 |
ImageCollection.mosaic()
使用遮罩合成圖像集中的所有圖像。(取最后的有效值)
ImageCollection.mean()
通過計算所有匹配波段堆棧中每個像素上所有值的平均值來減少圖像集合。波段按名稱匹配。
ImageCollection.median()
通過計算所有匹配波段堆棧中每個像素點所有值的中值來減少圖像集合。波段按名稱匹配。
ImageCollection.sort(property, ascending)
按指定屬性對集合排序。 返回排序后的集合。
Argument | Type | Details |
---|---|---|
property | String | 要排序的屬性。 |
ascending | Boolean, optional | 按升序還是降序排序。默認為 true(升序)。 |
ImageCollection.limit(max, property, ascending)
將集合限制為指定數量的元素,可選擇先按指定屬性排序。 返回限制后的集合。
Argument | Type | Details |
---|---|---|
max | Number | 限制收集的數量。 |
property | String, optional | 如果排序,則按屬性排序。 |
ascending | Boolean, optional | 按升序還是降序排序。默認為 true(升序)。 |
5. 一些常用的去云方法
5.1 Sentinel-2A遙感數據去云方法
Harmonized Sentinel-2 MSI: MultiSpectral Instrument, Level-2A
5.2 Sentinel-2C遙感數據去云方法1
Harmonized Sentinel-2 MSI: MultiSpectral Instrument, Level-1C
通過波段第10位和11位去云。
5.3 Sentinel-2C 遙感數據去云方法2
Harmonized Sentinel-2 MSI: MultiSpectral Instrument, Level-1C
Sentinel-2: Cloud Probability
波段聯合去云。
5.4 Sentinel-3遙感數據去云方法
Sentinel-3 OLCI EFR: Ocean and Land Color Instrument Earth Observation Full Resolution
主要是通過波段第25位和27位來解決問題,25是用來判斷數據是否有效,27是判斷是否是高亮地區。因為云是白色的所以是高亮,所以可以通過這種方式來去云,同時這種高亮也包括雪山,如果要同時去除云和雪山的話,可以采用這種方式。
5.5Landsat4/5/7/8_TOA_LC2_T1數據去云
主要通過QA_PIXEL第3位和第4位去云。
5.6 Landsat 8/9_SR_LC2_T1數據去云
主要通過QA_PIXEL第2,3,4位去云。
5.7 MOD09Q1_8Day 數據去云
主要通過State bits0-1和bits2去云。
6 數據輸出
數據輸出位置不同,功能不同
- Driver:為了將數據輸出,導出在本地進行數據分析;
- Asset:為了解決GEE數據單次運行計算超載,方便下次調用;
- Cloud Storage:為了深度學習調用等。
注意:對于Collection數據類型而言,我們需要先將Collection數據類型轉化成List數據類型(.toList),然后利用for循環逐一將每一個要素輸出(Image或者Feature),從而實現對Collection數據的輸出。
6.1 Export.image.toDrive(image, description, folder, fileNamePrefix, dimensions, region, scale, crs, crsTransform, maxPixels, shardSize, fileDimensions, skipEmptyTiles, fileFormat, formatOptions)
創建一個批處理任務,將圖像以光柵形式導出到驅動器。任務可從 "任務 "選項卡啟動。“crsTransform”、"scale "和 "dimensions "是互斥的。
Argument | Type | Details |
---|---|---|
image | Image | 要導出的圖像。 |
description | String, optional | 任務的可讀名稱。可包含字母、數字、-、_(無空格)。默認為 “myExportImageTask”。 |
folder | String, optional | 導出內容所在的 Google Drive 文件夾。注意:(a) 如果文件夾名存在于任何級別,輸出將寫入該文件夾;(b) 如果存在重復的文件夾名,輸出將寫入最近修改的文件夾;? 如果文件夾名不存在,將在根目錄下創建新文件夾;(d) 帶分隔符的文件夾名(如 “path/to/file”)將被解釋為字面字符串,而非系統路徑。默認為驅動器根目錄。 |
fileNamePrefix | String, optional | 文件名前綴。可包含字母、數字、-、_(無空格)。默認為描述。 |
dimensions | Number|String, optional | 導出圖像的尺寸。最大尺寸可以是單個正整數,也可以是 “WIDTHxHEIGHT”(其中 WIDTH 和 HEIGHT 均為正整數)。 |
region | Geometry.LinearRing|Geometry.Polygon|String, optional | 代表要導出區域的 LinearRing、Polygon 或坐標。可以指定為幾何對象或以字符串形式序列化的坐標。 |
scale | Number, optional | 分辨率,單位為米/像素。默認為 1000。 |
crs | String, optional | 導出圖像要使用的 CRS。 |
crsTransform | List, optional | 導出圖像的坐標轉換參數。需要定義 “crs”。 |
maxPixels | Number, optional | 限制導出的像素數。默認情況下,如果導出超過 1e8 像素,就會出現錯誤。通過明確設置該值,可以提高或降低該限制。 |
shardSize | Number, optional | 計算圖像的磁貼大小(像素)。默認為 256。 |
fileDimensions | List, optional | 如果圖像太大,無法放入單個文件,每個圖像文件的像素尺寸。可以指定一個數字來表示正方形,也可以指定一個包含兩個尺寸的數組來表示(寬、高)。需要注意的是,圖像仍將按照整個圖像的尺寸進行裁剪。必須是 shardSize 的倍數。 |
skipEmptyTiles | Boolean, optional | 如果為 “true”,則跳過寫入空(即完全屏蔽)圖像磁貼。默認為假。 |
fileFormat | String, optional | 導出圖像的字符串文件格式。目前只支持 "GeoTIFF "和 “TFRecord”,默認為 “GeoTIFF”。 |
formatOptions | ImageExportFormatConfig, optional | 用于格式化特定選項的字符串鍵字典。 |
6.2 Export.image.toAsset(image, description, assetId, pyramidingPolicy, dimensions, region, scale, crs, crsTransform, maxPixels, shardSize)
創建一個批處理任務,將圖像以光柵形式導出到地球引擎資產中。任務可從 "任務 "選項卡中啟動。
Argument | Type | Details |
---|---|---|
image | Image | 要導出的圖像。 |
description | String, optional | 任務的可讀名稱。默認為 “myExportImageTask”。 |
assetId | String, optional | 目標資產 ID。 |
pyramidingPolicy | Object, optional | 應用于圖像中每個波段的分層策略,以波段名稱為關鍵。值必須是:均值、樣本、最小值、最大值或模式之一。默認值為 “平均值”。可以使用特殊鍵".default "來更改所有波段的默認值。 |
dimensions | Number|String, optional | 導出圖像的尺寸。最大尺寸可以是單個正整數,也可以是 “WIDTHxHEIGHT”(其中 WIDTH 和 HEIGHT 均為正整數)。 |
region | Geometry.LinearRing|Geometry.Polygon|String, optional | 代表要導出區域的 LinearRing、Polygon 或坐標。可以指定為幾何對象或以字符串形式序列化的坐標。 |
scale | Number, optional | 分辨率,單位為米/像素。默認為 1000。 |
crs | String, optional | 導出圖像要使用的 CRS。 |
crsTransform | List, optional | 用于導出圖像的仿射變換。需要定義 “crs”。 |
maxPixels | Number, optional | 限制導出的像素數。默認情況下,如果導出超過 1e8 像素,就會出現錯誤。通過明確設置該值,可以提高或降低該限制。 |
shardSize | Number, optional | 計算圖像的磁貼大小(像素)。默認為 256。 |
crs
參數用于指定導出圖像時的坐標參考系統 (Coordinate Reference System)。在 Google Earth Engine 中,常見的坐標參考系統的標識是 EPSG(European Petroleum Survey Group)代碼。一些常見的 EPSG 代碼示例:
- WGS 84(地理坐標系):
'EPSG:4326'
- Web Mercator(投影坐標系):
'EPSG:3857'
- UTM Zone 33N(UTM投影坐標系):
'EPSG:32633'
具體選擇哪個坐標參考系統取決于你的應用場景和需要。如果你不確定應該選擇哪個坐標參考系統,通常可以根據你的地理區域和使用習慣來選擇。地理坐標系(如 WGS 84)適用于全球范圍,而投影坐標系(如 Web Mercator)適用于在線地圖等應用。
7 GEE植被指數計算
在GEE常見的計算指數的三種方式
- 利用Image.normalizedDifference(bandNames)函數
- 直接用加減乘除方法運算
- 利用expression計算
指數類型 | 計算公式 |
---|---|
NDVI 歸?化植被指數 | (NIR-Red)/(NIR+Red) |
FVC 植被覆蓋度 | (NDVI-NDVIsoil)/(NDVIveg-NDVI) |
EVI 增強植被指數 | 2.5 * (NIR-Red) / (NIR + 6 * Red-7.5 * Blue + 1) |
LAI 葉?積指數 | 3.618*EVI-0.118 |
BSI 裸?指數 | (SWIR+Red)-(NIR-Blue))/((SWIR+Red)+(NIR-Blue) |
LSWI 植被?分含量指數 | (NIR-SWIR)/(NIR+SWIR) |
MNDWI 修正的歸?化?體指數 | (Green-SWIR)/(Green+SWIR) |
SAVI ?壤調節植被指數 | (NIR-R)*(1+L)/(NIR+R+L)L=0.5 |
NDTI 歸?化差異耕作指數 | (SWIR1-SWIR2)/(SWIR1+SWIR2) |
IBI 城市建筑指數 | ![]() |
NIR 紋理特征 | 視情況而定,通常使用紋理濾波等方法進行計算 |
- NIR: 近紅外波段
- Red: 紅色波段
- Blue: 藍色波段
- SWIR: 短波紅外波段
- Green: 綠色波段
- L: 土壤調節參數(SAVI中的參數)
- NDVIsoil 是裸土區域的平均 NDVI 值。
- NDVIveg 是完全覆蓋植被區域的平均 NDVI 值。
8. 數據統計分析
通過Reducer.combine講數據合并到一塊,然后通過ui.Chart.image.方法將圖像顯示輸出。
Reducer.combine(reducer2, outputPrefix, sharedInputs)
用于將兩個縮減器(Reducer)合并成一個。這個方法通常用于同時執行多個縮減操作并生成一個合并的結果。
Argument | Type | Details |
---|---|---|
reducer2 | Reducer | 第二個縮減器,它將與第一個縮減器合并。 |
outputPrefix | String, default: “” | 用于區分合并結果的前綴,可以是字符串。 |
sharedInputs | Boolean, default: false | 一個布爾值,表示是否使用相同的輸入數據執行兩個縮減器。 |
ui.Chart.image.byRegion(image, regions, reducer, scale, xProperty)
用于創建圖表的方法,用于按區域對圖像進行統計并生成圖表。
Argument | Type | Details |
---|---|---|
image | Image | 要統計的圖像 |
regions | Feature|FeatureCollection|Geometry|List, optional | 區域集合,可以是 FeatureCollection 、Geometry 對象或 Feature 對象。 |
reducer | Reducer, optional | 縮減器(Reducer),用于指定要計算的統計量,例如均值、總和等。 |
scale | Number, optional | 空間分辨率(meter/pixel) |
xProperty | String, optional | 作為 X 軸的屬性,可以是字符串或指定圖表中 X 軸數據的圖像屬性。 |
Chart.setChartType(chartType)
用于設置圖表類型的方法。該方法用于更改圖表的顯示類型。
Argument | Type | Details |
---|---|---|
chartType | String | 要設置的圖表類型,可以是字符串。常見的圖表類型包括 'ScatterChart' 、'LineChart' 、'ColumnChart' 等。 |
Chart.setOptions(options)
用于設置圖表選項的方法。通過這個方法,你可以設置圖表的各種顯示選項,例如標題、坐標軸標簽、圖例等。
Argument | Type | Details |
---|---|---|
options | Object | 一個包含圖表選項的對象。可以包括各種屬性,具體取決于圖表的類型和需求。 |
options常用的屬性:
- title: 設置圖表的標題。
- hAxis: 設置水平軸選項。
- vAxis: 設置垂直軸選項。
- lineWidth: 設置線的寬度。
- pointSize: 設置點的大小。
- legend: 控制圖例的顯示。
- backgroundColor: 設置圖表的背景顏色。
- curveType: 設置曲線類型(例如,‘function’ 或 ‘none’)。
- colors: 設置系列的顏色。
9.數據填充
9.1 NPP數據柵格填充(MOD17A3HGF數據)
Net Primary Production (NPP): 凈初級生產力是指植物通過光合作用從大氣中吸收二氧化碳,將其轉化為植物體內的有機物質的速率。這個數據集測量了全球范圍內植被的凈初級生產力。
9.2 人口數據柵格填充(POP數據)
9.3MODIS數據插值詳解
MODIS(Moderate Resolution Imaging Spectroradiometer)是一種載荷在Terra和Aqua衛星上的遙感儀器,屬于美國宇航局(NASA)的地球觀測系統(EOS)項目。它被設計用于監測地球表面的大氣、陸地和海洋等方面的變化。
MODIS具有較高的空間分辨率和廣泛的波段覆蓋,使其成為全球氣象、氣候和環境研究中的重要工具。它能夠提供每天多次的全球覆蓋,獲取的數據包括植被指數、云覆蓋、地表溫度等信息。
Savitzky-Golay 濾波器(SG 濾波器)是一種平滑數據的技術,它利用多項式擬合來平滑信號。相較于簡單的線性插值,SG 濾波器在平滑時考慮了更多的局部信息,因此在某些情況下,它可能更適用于去除噪聲和提取趨勢。
10.土地分類
基于目視解譯的土地利用分類
主要流程的解釋:
設置研究區域:
- 通過提供的
table
獲取研究區域的邊界,并在地圖上標出。設置時間窗口:
- 定義了開始日期(
startDate
)和結束日期(endDate
),用于選擇Landsat 9影像數據的時間范圍。比例換算和云去除:
- 使用
applyScaleFactors
函數對遙感影像進行比例換算,然后使用rmL89Cloud
函數去除云影響。指數計算:
- 使用
addIndexs
函數計算了一些遙感指數,如NDVI(歸一化植被指數)、BSI(裸土指數)、LSWI(水體指數)和MNDWI(水體藍光差異指數)。獲取研究區時間窗口內數據:
- 通過篩選日期、研究區域和應用之前定義的函數,獲取Landsat 9影像,并計算得到的指數。最后,取這些影像的中值(
.median()
)以減少噪音,并將其裁剪到研究區域。可視化:
- 在地圖上添加了遙感影像的可視化圖層。
合并樣本:
- 將水體、建筑、林地、耕地和未利用地的樣本合并成一個樣本集合。
樣本采樣:
- 利用
sampleRegions
函數,對上述合并的樣本進行隨機采樣,并為每個樣本點添加了一個隨機數列。訓練和驗證樣本:
- 將樣本數據分為70%用于訓練,30%用于驗證。
設置分類器:
- 使用Random Forest分類器(
ee.Classifier.smileRandomForest(300)
)對訓練樣本進行訓練。影像分類:
- 利用訓練好的分類器對遙感影像進行分類,得到
Classified_RF
。顯示分類結果:
- 在地圖上添加了分類結果的圖層,使用了不同顏色表示不同類別。
精度驗證:
- 使用驗證樣本對分類結果進行精度驗證,計算混淆矩陣,然后輸出準確度、Kappa系數、用戶精度和生產者精度等指標。
!