深圳網(wǎng)站建設(shè)smawto百度競價開戶哪家好
1簡介
在本模塊中,我們將討論以下概念:
- 如何將您自己的數(shù)據(jù)集引入 GEE。
- 如何將來自遙感數(shù)據(jù)的值與您自己的數(shù)據(jù)相關(guān)聯(lián)。
- 如何從 GEE 導(dǎo)出特征。
2背景
了解動物對環(huán)境的反應(yīng)對于了解如何管理這些物種至關(guān)重要。雖然動物被迫做出選擇以滿足其基本需求,但它們的選擇很可能也受到當(dāng)?shù)靥鞖鈼l件等動態(tài)因素的影響。除了直接觀察之外,很難將動物行為與天氣條件聯(lián)系起來。在這個單元中,我們將從美洲獅收集的 GPS 項圈數(shù)據(jù)與通過 GEE 訪問的 Daymet 氣候數(shù)據(jù)集的每日溫度估計值集成。
這將要求我們將自己的數(shù)據(jù)引入 GEE,將天氣值連接到點位置,并將這些增值數(shù)據(jù)從 GEE 中帶回以進(jìn)行進(jìn)一步分析。在加利福尼亞州洛杉磯的頂級旅游目的地之一附近拍攝的山獅的相機(jī)陷阱照片。照片:地球島雜志
?
2.1?GPS定位數(shù)據(jù)
Mahoney 等人?
Movebank.com 上的交互圖示例,可讓您搜索有關(guān)動物運動的數(shù)據(jù)。
?
2.2?Daymet 天氣數(shù)據(jù)
Daymet 數(shù)據(jù)以 1 公里 x 1 公里的空間分辨率提供每天的數(shù)據(jù),是美洲獅與景觀相互作用的時間和空間尺度的重要資源??偣灿衅邆€測量值。這使我們能夠檢查天氣的多個方面,以評估它如何影響行為。Daymet 數(shù)據(jù)集提供了每日天氣參數(shù)的網(wǎng)格估計。每天有 7 個地表天氣參數(shù)可用,空間分辨率為 1 公里 x 1 公里,空間范圍為北美。ORNL DAAC 可以通過各種工具和格式訪問 Daymet 數(shù)據(jù)集,從而提供豐富的每日地表氣象資源。資料來源:?Daymet/NASA
與 GEE 中的 Daymet 圖像關(guān)聯(lián)的元數(shù)據(jù)。
?
如果您有興趣了解有關(guān)全球可用氣候數(shù)據(jù)的更多信息,請查看 單元6。
3將您自己的數(shù)據(jù)帶入 Earth Engine
在本練習(xí)中,我們將討論如何將您自己的數(shù)據(jù)移動到 GEE、從數(shù)據(jù)集中提取值以及從 GEE 中導(dǎo)出這些值。將數(shù)據(jù)帶入 GEE 的過程一直在迅速變化,與大多數(shù)事情一樣,最好直接轉(zhuǎn)到文檔以查看最新更新。該信息可以在這里找到。
3.1清理數(shù)據(jù)
動物運動數(shù)據(jù)作為 csv 文件下載。要將它們帶入 GEE,我們需要將它們轉(zhuǎn)換為 shapefile。雖然有很多方法可以將 csv 文件轉(zhuǎn)換為 shapefile,但我們將使用 R。下面的代碼包含進(jìn)行此轉(zhuǎn)換所需的所有內(nèi)容??梢栽诖颂幷业接嘘P(guān)如何在 R 中將 csv 文件轉(zhuǎn)換為 shapefile 的詳細(xì)信息。
代碼的一些復(fù)雜性來自重命名列以刪除“.”。為了符合 GEE 對命名約定的要求,這是必要的。雖然此特定細(xì)節(jié)不在文檔中,但它在幫助論壇上的帖子中有所描述。
您不需要運行此代碼,它供您將來參考
# Load necessary libraries
library(sp)
library(rgdal)
library(dplyr)# read in CSV of data
baseDir <- "The folder your csv is held in"
data <- read.csv(paste0( baseDir, "/Site fidelity in cougars and coyotes, Utah_Idaho USA (data from Mahoney et al. 2016).csv"))# convert to spatial points data frame
# remove all NA values from lat and long columns
names(data)
noNAs <- data[complete.cases(data[ , 4:5]),]
# filter to select animal of interest
glimpse(noNAs)
cougarF53 <- noNAs %>%filter(individual.local.identifier == "F53") %>%dplyr::select("event.id", "timestamp", "location.long","location.lat")# Unique GEE issue
# GEE does not accept column names with dots So we will rename our columsn
colnames(cougarF53) <- c("id", "timestamp", "lon", "lat")
# check the time line of data collection so we can match those dates in GEE
timeframe <- sort(cougarF53$timestamp)print(paste0("The first time stamp is ", timeframe[1], " the last collection is ", timeframe[length(timeframe)] ))# Create a spatial feature with the sp package
# only keep unique id as data
cougarF53Spatial <- sp::SpatialPointsDataFrame(coords = cougarF53[,3:4], data = cougarF53[,1])
# set coordinate reference system to WGS84, using the proj4str
crs(cougarF53Spatial) <- "+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs "# Export as shapefile
# write a shapefile
writeOGR(cougarF53Spatial, baseDir, "/cougarF53Locations", driver="ESRI Shapefile")
我們寫出了 shapefile,每行只有一個列,一個唯一的 id。我們這樣做是因為我們計劃在 GEE 之外進(jìn)行大部分分析,因此無需加載所有額外數(shù)據(jù)。唯一 ID 將允許我們將來自 GEE 的增值數(shù)據(jù)與原始數(shù)據(jù)集連接起來。
3.2引入資產(chǎn)
-
坐標(biāo)參考系統(tǒng):首先,重要的是要注意 GEE 使用的投影是WGS 1984?EPSG: 4326。因此,您想要帶入 GEE 的所有數(shù)據(jù)都需要相同的坐標(biāo)參考系統(tǒng)。請記住 WGS1984 是一個地理坐標(biāo)系。您不希望數(shù)據(jù)上有投影坐標(biāo)系。
-
上傳 shapefile:在上面的 R 代碼中,我們將數(shù)據(jù)的 csv 文件轉(zhuǎn)換為 shapefile,并定義坐標(biāo)參考系統(tǒng) (CRS) 以匹配 GEE 的預(yù)期 (WGS 1984)。當(dāng)您將功能加載到 Google 地球引擎中時,您將添加與您的 GEE 帳戶相關(guān)聯(lián)的個人資產(chǎn)。
?
?
您將能夠在任務(wù)窗格中監(jiān)控上傳進(jìn)度。
?
?
上傳后,您可以通過代碼編輯器左側(cè)的資產(chǎn)窗格編輯資產(chǎn)。這允許您設(shè)置共享參數(shù)。對于此示例,任何人都可以讀取資產(chǎn)。這意味著運行代碼的任何人都將能夠使用數(shù)據(jù)集,即使他們不擁有它或沒有下載它。
?
共享個人資產(chǎn)的示例。
?
上傳 shapefile 的過程可能需要一段時間,因此我們提供了一個腳本鏈接,而不是讓您完成該過程,該腳本已經(jīng)加載了本課程所需的數(shù)據(jù)。帶有預(yù)加載數(shù)據(jù)集的代碼。請將此腳本用作本課剩余部分的起點。
運行完此內(nèi)容后,我們建議您加載自己的 shapefile。這可以是您的數(shù)據(jù),或者如果您想要快速簡便的數(shù)據(jù),請嘗試使用Natural Earth Data中的 shapefile 。這是一個用于各種地圖比例的地理數(shù)據(jù)的絕佳站點。上面的鏈接將帶您進(jìn)入的 1:110m 物理向量非常通用,因此加載速度比數(shù)據(jù)更豐富的層快得多。
每項資產(chǎn)都具有與您在 Google 云端硬盤上可能擁有的其他功能類似的共享偏好。
import
允許您將新獲取的資產(chǎn)添加到腳本中。這與將 imageCollection 導(dǎo)入腳本非常相似。
share
允許您定義誰可以查看和編輯資產(chǎn)。
delete
使用它來清理空間,但請記住,一去不復(fù)返了。
加載資產(chǎn)后,通過雙擊資產(chǎn)面板中的資產(chǎn)名稱或?qū)⑹髽?biāo)懸停在名稱上時按下出現(xiàn)在功能右側(cè)的小箭頭圖標(biāo),將其導(dǎo)入腳本。將功能重命名為具有描述性的名稱。然后在地圖上將其可視化,以確保該功能看起來符合您的預(yù)期。
在預(yù)加載的腳本中,您可以看到我們已經(jīng)完成了這些步驟。我們還添加了一個打印語句來訪問數(shù)據(jù)結(jié)構(gòu)。
-
- // Imported the data and not add it to the map and print.
- Map.addLayer(cougarF53, {}, "cougar presence data");
- print(cougarF53, "cougar data");
? 您可以使用檢查器工具查看與新資產(chǎn)關(guān)聯(lián)的屬性數(shù)據(jù)。
將這些點可視化后,制作一個包含我們感興趣區(qū)域的幾何特征。我們將使用幾何特征來過濾我們的氣候數(shù)據(jù)。
您可以通過選擇方形幾何特征并繪制一個包含這些點的框來完成此操作。?
在這些點周圍繪制幾何特征以過濾氣候數(shù)據(jù)。
?
3.2.1上傳柵格
引入柵格的過程與我們剛剛使用 shapefile 進(jìn)行的過程相同。圖像集合(柵格集)是更復(fù)雜的數(shù)據(jù)類型,還有一些其他要求,您可以在此處閱讀。
3.3定義天氣變量
在本課中,我們使用 Google Earth Engine 作為將遙感數(shù)據(jù)(即我們的柵格)與我們的點位置相關(guān)聯(lián)的方法。雖然這個過程在概念上是直截了當(dāng)?shù)?#xff0c;但它確實需要一些工作才能完成。加載我們的點后,下一步是導(dǎo)入 Daymet 天氣變量。
3.3.1調(diào)用氣候資料日
我們使用的是 NASA 派生的數(shù)據(jù)集 Daymet V3,因為它具有 1 公里的空間分辨率,并且它可以測量美洲獅所經(jīng)歷的環(huán)境條件。我們將通過調(diào)用數(shù)據(jù)集的唯一 ID 并將其過濾到我們的邊界框幾何圖形來導(dǎo)入它。
// Call in image and filter.
var Daymet = ee.ImageCollection("NASA/ORNL/DAYMET_V3")
.filterDate("2014-01-01", "2017-08-01")
.filterBounds(geometry)
.select('tmin')
.map(function(image){return image.clip(geometry)});print(Daymet,"Daymet");
Map.addLayer(Daymet, {}, "Daymet");
?
打印語句中 Daymet 數(shù)據(jù)結(jié)構(gòu)的視圖。
?
從打印語句中,我們可以看到這是一個包含 267 張圖像的圖像集合(盡管您的圖像總數(shù)可能會隨著數(shù)據(jù)集的變化而變化)。每幅圖像都有七個與特定天氣測量相關(guān)的波段。現(xiàn)在兩個數(shù)據(jù)集都已加載,我們將把美洲獅的發(fā)生數(shù)據(jù)與天氣數(shù)據(jù)相關(guān)聯(lián)。
3.4提取值
加載我們的點和圖像后,我們可以調(diào)用一個函數(shù),根據(jù)美洲獅的已知位置從底層?xùn)鸥裰刑崛≈怠N覀儗⑹褂迷?code>ee.Image.sampleRegions函數(shù)來執(zhí)行此操作。在 Docs 選項卡下搜索ee.Image.sampleRegions()
函數(shù)以熟悉它所需的參數(shù)。
ee.Image.sampleRegions()
是一個圖像的函數(shù),所以如果我們試圖在 Daymet 上調(diào)用它,ImageCollection
我們會得到一個錯誤。為了解決這個問題,我們將把 Daymet 圖像集合轉(zhuǎn)換為多波段圖像。每天的七次測量中的每一次都將成為我們多波段圖像中的一個特定波段。這個過程最終將對我們有所幫助,因為每個波段都是由收集日期和顯示的變量定義的。我們可以使用這些信息來確定哪些數(shù)據(jù)與美洲獅在特定日期的位置有關(guān)。
重要提示:在圖像集合中有許多圖像,我們將創(chuàng)建具有大量波段的單個圖像。因為 GEE 非常擅長數(shù)據(jù)操作,所以它可以處理這種類型的請求。
// Convert to a multiband image and clip.
var DaymetImage = Daymet.toBands().filterBounds(geometry);print(DaymetImage, "DaymetImage");
?
顯示從圖像集合轉(zhuǎn)換為多波段圖像的結(jié)果的打印語句。
現(xiàn)在我們有了一個多波段圖像,我們可以使用該sampleRegions
函數(shù)。您需要考慮此函數(shù)的三個參數(shù)。
Collection
采樣數(shù)據(jù)將與之關(guān)聯(lián)的矢量數(shù)據(jù)集。
Properties
定義將保留矢量數(shù)據(jù)集的哪些列。在這種情況下,我們希望保留“id”列,因為我們將使用它來將此數(shù)據(jù)集連接回 GEE 之外的原始數(shù)據(jù)。
Scale
:這是指數(shù)據(jù)集的空間尺度(像元大小)。比例應(yīng)始終與柵格數(shù)據(jù)的分辨率相匹配。如果您不確定柵格的分辨率是多少,請使用搜索欄搜索數(shù)據(jù)集,該信息將出現(xiàn)在文檔中。
// Call the sample regions function.
var samples = DaymetImage.sampleRegions({collection: cougarF53,properties: ['id'],scale: 1000 });
print(samples,'samples');
?
從打印語句中,我們可以看到我們的點位置現(xiàn)在具有與之關(guān)聯(lián)的天氣測量值。同樣,您的結(jié)果可能看起來略有不同。
?
3.5 導(dǎo)出
3.5.1將點導(dǎo)出為 Shapefile
我們有一系列與美洲獅 57 已知位置相關(guān)的每日天氣數(shù)據(jù)。雖然我們可以在 GEE 中更多地使用這些數(shù)據(jù),但很容易將它們導(dǎo)入 R 或 Excel。有幾個選項可以定義導(dǎo)出數(shù)據(jù)的最終位置。一般來說,將數(shù)據(jù)保存到 Google Drive 帳戶是一個安全的選擇。我們將使用字典(用大括號表示)來定義export.table.toDrive()
函數(shù)的參數(shù)。
shapefile 字段限制:一個 shapefile 只能包含 255 個字段;這些數(shù)據(jù)有 1869 個。因此,我們將數(shù)據(jù)導(dǎo)出為 csv 文件。
// Export value added data to your Google Drive.
Export.table.toDrive({collection: samples,description:'cougarDaymetToDriveExample',fileFormat: 'csv'
});
當(dāng)您導(dǎo)出某些內(nèi)容時,您的任務(wù)窗格將亮起。您需要通過選擇運行按鈕單獨運行任務(wù)。

export
運行具有函數(shù)的腳本后的任務(wù)欄示例。
?
當(dāng)您選擇運行按鈕時,將出現(xiàn)以下彈出窗口。這允許您編輯導(dǎo)出的詳細(xì)信息。
?
從 GEE 導(dǎo)出特征時出現(xiàn)的用戶定義參數(shù)示例。
?
3.5.2導(dǎo)出柵格
在處理所有這些空間數(shù)據(jù)時,您可能已經(jīng)意識到,在美洲獅上收集數(shù)據(jù)的時間段內(nèi)顯示中值的柵格可能是非常有用的信息。有關(guān)使用柵格的更多信息,請參閱5
為此,我們將對median()
Daymet 圖像集合應(yīng)用一個 reducer 函數(shù),為每個單元格中的每個參數(shù)生成一個中值。就像表格數(shù)據(jù)一樣,我們將把這個多波段圖像導(dǎo)出到 Google Drive。一旦我們使用該函數(shù)將圖像集合轉(zhuǎn)換為圖像median()
,我們就可以將其剪輯到geometry
特征對象中。此要素將導(dǎo)出為多波段柵格。
// Apply a median reducer to the dataset.
var Daymet1 = Daymet.median().clip(geometry);print(Daymet1);// Export the image to drive.
Export.image.toDrive({image: Daymet1,description: 'MedianValueForStudyArea',scale: 1000,region: geometry,maxPixels: 1e9
});
有很多選項。最重要的選項之一是max.pixels
設(shè)置。一般來說,GEE 不允許您導(dǎo)出超過 10^9 像素的柵格。使用該max.pixels
參數(shù),您可以將其提高到每張圖像大約 10^12 像素。如果您為大于 10^12 像素的區(qū)域?qū)С鰯?shù)據(jù),您將需要創(chuàng)造性地了解如何從 GEE 中獲取信息。有時這涉及將圖像分割成更小的部分,或者在 GEE 之外重新評估如此大的圖像的有用性。
4結(jié)論
雖然 Google 地球引擎可用于行星尺度分析,但它也是一種有效的資源,可用于使用您自己的數(shù)據(jù)快速訪問和分析大量信息。本模塊中介紹的方法是為您自己的數(shù)據(jù)集增加價值的好方法。在此示例中,我們使用了天氣數(shù)據(jù),但這絕不是唯一的選擇!您可以將您的數(shù)據(jù)連接到 Google 地球引擎中的許多其他數(shù)據(jù)集。由您決定什么是重要的以及為什么重要。
4.1 完整代碼
// Imported the data and not add it to the map and print.
Map.addLayer(cougarF53, {}, "cougar presence data");
print(cougarF53, "cougar data");// Call in image and filter.
var Daymet = ee.ImageCollection("NASA/ORNL/DAYMET_V3")
.filterDate("2014-01-01", "2017-08-01")
.filterBounds(geometry)
.select('tmin')
.map(function(image){return image.clip(geometry)});print(Daymet,"Daymet");
Map.addLayer(Daymet, {}, "Daymet");// Convert to a multiband image and clip.
var DaymetImage = Daymet.toBands().clip(geometry);print(DaymetImage, "DaymetImage");// Call the sample regions function.
var samples = DaymetImage.sampleRegions({collection: cougarF53,properties: ['id'],scale: 1000 });
print(samples,'samples');// Export value added data to your Google Drive.
Export.table.toDrive({collection: samples,description:'cougarDaymetToDriveExample',fileFormat: 'csv'
});// Apply a median reducer to the dataset.
var Daymet1 = Daymet.median().clip(geometry);
print(Daymet1);// Export the image to drive.
Export.image.toDrive({image: Daymet1,description: 'MedianValueForStudyArea',scale: 1000,region: geometry,maxPixels: 1e9
});