Submind YouTube summaries
Thumbnail for Data Skills Tutorial: Exploring NEON Airborne Remote Sensing Data in Google Earth Engine

Data Skills Tutorial: Exploring NEON Airborne Remote Sensing Data in Google Earth Engine

Watch on YouTube

Video summary

Bu videoyu izleyerek Google Earth Engine (GEE) platformunda NEON Havacılı Uzak Algılama verilerine nasıl erişilebileceğini ve görselleştirilip karşılaştırılabileceğini öğreniyoruz. İlk olarak, GEE veri kataloğundaki NEON veri setlerinin yapısını inceleyerek başlıyoruz; burada Lidar türevli dijital yükseklik modelleri, RGB kamera görüntüleri, kanop nitrojen içeriği ve iki farklı yansıtma verisi gibi altı ana kategori bulunmaktadır. Özellikle yüzey çift yönlü (bidirectional) ve tek yönlü (directional) yansıtma veri setlerine odaklanarak, bu verilerin 426 spektral bant içerdiğini ve görünür ışık ile kısa dalga kızılötesi bölgeyi kapsadığını görüyoruz. Veri kataloğundaki detaylı dokümantasyon sayfaları, atmosferik düzeltme girdileri ve çıktıları gibi kalite kontrol bandlarını da barındırırken, kullanıcılar örnek kod bloklarını doğrudan editöre taşıyarak hızlıca başlangıç yapma imkanı bulurlar. Veri işleme sürecine geçildiğinde, GEE kod editöründe NEON veri setlerini nasıl içe aktarıp haritalayacağımız adım adım gösterilmektedir. Verilerin her yılın üçte ikisinde toplanması ve bazı yıllarda atmosferik düzeltmelerin tam olarak uygulanmamış olması gibi kısıtlamalar nedeniyle, öncelikle `aggregate array` fonksiyonu kullanılarak mevcut görüntü koleksiyonlarının listelenmesi önerilir. Bu liste sayesinde kullanıcılar yıl bazlı veri boşluklarını veya site kodları (örneğin CLBJ) ile ilgili bilgileri kontrol edebilirler. Ardından belirli bir tarih aralığı ve site adı üzerinden filtreleme yapılarak tekil bir görüntü seçilmesi, ardından bu görüntünün 439 adet özelliği içeren JSON yapısı incelenerek DOI'ye erişim ve atıf kılavuzlarına ulaşılması sağlanır. Son olarak, toplanan yansıtma verilerinin görsel analizi için renk bantlarını seçip gerçek renkli görüntüler oluşturulması ve farklı yıllardaki veri kalitesini karşılaştırma teknikleri detaylandırılır. Örneğin, 2021'den alınan tek yönlü yansıtma verisi ile 2022'den alınmış çift yönlü (BRDF düzeltmeli) veri yan yana getirildiğinde, BRDF düzeltmesinin güneş konumu ve kamera açısı değişmelerinden kaynaklanan parlaklık farklılıklarını ortadan kaldırarak görüntünün daha homojen hale getirdiği net bir şekilde gözlemlenir. Video boyunca hem gerçek renk hem de yanlış renkli (false color) görselleştirmeler, histogram yayılımı ayarları ve şeffaflık değerleri değiştirilerek verinin farklı spektral bölgeleri nasıl incelenebileceği gösterilirken, izleyiciler NEON havacılık veri setlerini GEE üzerinde etkin bir şekilde keşfetme ve analiz etme becerisi kazanmış olur.
Read the full video transcript
In this video, we'll explore how to access and visualize NEON remote sensing data sets in Google Earth Engine. First, we'll take a look at the NEON data sets in the Earth Engine data catalog, and then we'll move over to the GEE code editor where we can write a simple script to read in, map, and compare reflectance data at a NEON site. Before writing any code, it's helpful to explore the data set documentation in the Earth Engine data catalog. First, open the Earth Engine data catalog, which is developers.google.com/earth-engine/datasets. And then, to find the NEON data sets, you can either search at the top search bar, which pulls up all the NEON data sets, or you can navigate to the publisher catalog, and then this is organized alphabetically, so you can scroll down to the NEON page here, the National Ecological Observatory Network. Here you can see there are six data sets contained in the NEON publisher catalog, and these include lidar derived data sets such as the digital elevation model and canopy height model, RGB camera imagery, canopy nitrogen content, which is derived from reflectance data, and then two reflectance data sets including the surface bidirectional reflectance data set and the surface directional reflectance data set. Let's take a deeper look at the bidirectional reflectance data. And when you scroll down, you can see a number of tabs that describe the data set including the description, which describes how the data set is collected and what it entails, including links to documentation, an intro tutorial series, and then data visualization app, which allows for interactive viewing of the AOP data. There's a detailed band description tab, which describes NEON's 426 spectral bands for this data set, which range from the visible to the shortwave infrared portion of the spectrum. And below those 426 bands are a number of QA-related bands, including atcor, or the atmospheric correction inputs and outputs, as well as a weather quality indicator and acquisition date layer. There are also tabs describing the image properties, terms of use, and citations with a link to the NEON citation guideline page. If you scroll down on in this explore with Earth Engine tab, you can open a sample code directly in the code editor, and that will uh immediately pull in some data and plot it for you. We're going to go through that more step-by-step in the next part of this video, so I won't click on this here, but just know that this is available for your use. Now we'll switch over to the GEE code editor, which can be found in the URL code.earthengine.google.com. In the code editor, if you're not sure where to find an image collection, you can search for it at the top. So, I will search for NEON, and you'll see the raster data sets here, and you can directly import the image collections as follows. So, this is the directional reflectance image collection. We'll call it reflectance 001, or ref1001. And if we click on this path here, we can si- find the information that we saw in the data set page, including the description, band, image properties, and so forth. And we can also see the collection snippet here, which we can copy and use that in our script. So, I've already read in the image collection up here, but I'll show you how to read in the directional reflectance collection here. So, we'll call it 001. And then if I just paste that path that I had copied, that's reading in the data set. So, the first thing that we always recommend people do when working with NEON data is to see what data are available. So, data are collected at AOP sites approximately three out of every five years. So, there may not be data at your site for every year. Um and also data with different corrections, for example, the bidirectional correction has not been applied to all previous years. So, it's important to see what data are available first. So, to do that, we'll use something called aggregate array to basically just print out a list of all the images in this collection. So, let's go ahead and list available images in the directional reflectance collection. And to do that, we'll make a new variable called reflectance 001 images. And then we can use our image collection and this tool called aggregate array on the system index. So, if you're not sure what something does, you can always use the documentation and then see what that does. For For example, when you run it on an image collection. So, here we can see this function aggregates over given property of the objects in a collection, calculating a list of all the values of the selected property. So, the property we're running uh we're aggregating over is the system index, [clears throat] which is essentially the image names. And we can go ahead and print that to the console. And we can see it's generated a list of 193 elements. And these are the image names, which follow the convention year {underscore} site, where this is the four-digit NEON site code, and then {underscore} visit. Going back to the properties, you can see the NEON site is described here, and you can get a list of all the NEON site codes by clicking on this link. So, now that we've seen what images are available, we can see there's data from 2013 all the way to 2021. Um let's look at a site of interest. In this case, we'll look at the CLBJ, or Lyndon B. Johnson site, and we'll pull in an individual image from that site in 2021. So, to do that, we can filter. And we can use options such as filter date to filter by the date. In this case, we'll filter from 2021 January 1st to 2021 December 31st. And in most cases, there's only one site per year. Occasionally, we'll have uh we'll fly the same site twice in a year. Um but if you select the entire year, you should be able to encompass the site uh for that year. Then you can also filter by metadata. Um and for that, you can filter by the site name. And we'll search for site OBG. And then finally, if you collect select first, it will select the first image. So, if you did have two images in a a given year, it would select the first, and if you only had one image, it would only select that one. But this ensures that you get an image and not an image collection. So, now that we've read in that site, let's take a look at the image properties for this site. So, let's call this props. And to do that, we can use that variable we just defined above. And then use the two dictionary option. And then let's go ahead and display that. So, you can also print out what you're printing out beforehand. So, let's call this site OBG 2021 reflectance properties. And we can copy in that variable. So, let's go ahead and look at those properties. We can see that there are 439 properties. We expand here, we can see that some of these are straightforward such as the domain, NEON site, that's that site code, and the site name, whether the data are provisional or released. And so, this gets into NEON's versioning control system, which relies on a release process that that happens every year in January. So, these data have been released in January 2026. Um you can also see recommended citation. So, if you expand to the JSON, you can actually just copy this to get the citation for the data. There's also a digital object identifier or DOI. So, if you click on that, it will link you to the root uh page for this data set and um the associated release tag and DOI here. And then in this page is additional documentation including algorithm theoretical basis documents, quick start guides, and so forth. So, we do recommend that you take a look at the the landing page for the data product. And then um most of the properties uh by number are these wavelength full width half max properties for each band, which describe the center wavelength and the bandwidth for each. And so, you can see here NEON data ranges from 380 nm to about 2500 nm, uh which ranges from the visible to the shortwave infrared portion of the spectrum. So, now that we've explored some of the properties, let's go ahead and make a plot of our reflectance data. So, to do that, first we need to create a visualization parameter dictionary. So, we'll just we'll call that reflectance RGB viz. And here um since we have so many bands, we do need to specify which bands we want to be visualized. And to visualize the red, green, and blue combination to get a more true color image, we can use bands 53, 35, and 19. We can also specify the minimum and maximum value to display. So, I'll just go from 0 to 1,000. You can see that there's a scale factor of 10,000, so 0 to 1,000 represents uh 0 to 10% of the reflectance. Now that we've specified our visualization parameters, we can create um a map layer here. So, add the RGB true color reflectance image to the map. So, for that we can use map.addLayer and add our reflectance image. Next is the visualization parameter dictionary. And then finally, we can add a title. And then now that we've added the layer, we also need to center on our data set so that it zooms to the correct place. And we can add a zoom level. In this case, I'll add 11. So, let's go ahead and run this again. And it looks like I made a little typo here. I forgot the 001. And if you do have errors, that will show up in the console on the right-hand side, and it tells you which line failed, so you can go in and troubleshoot. So, let's run again now that I fixed that. So, here we can see the site CLBJ in the map panel. And if we expand this layers option here and click on the settings, we can do things like change the bands that we're visualizing. So, instead of a true color image, you can modify these to look at a false color image, for example, looking at the shortwave infrared or infrared portions. You can also change the histogram stretch. So, for example, if I select three sigma, this shows three standard deviations of the the reflectance values and apply this, you can see it changes the visualization here a little bit. Lastly, you can also adjust opacity and the gamma value here. You can also change the opacity with this slider panel to the right up here. So, now that we've looked at the directional reflectance, we can also take a quick look at a bidirectional reflectance data set. So, to do that, I'm just going to copy some of the code that we've already written and make a few modifications. So, the bidirectional reflectance data set is the 002 revision. And then, we can also copy this here and use the same visualization parameters that we used before. So, here we're plotting the bidirectional. Um sorry, we also have to select the correct image from 2022. So, here we'll change this to 002 and the date to 2022. And then again, to plot it, just change what we're plotting and call it bidirectional reflectance. So, this is all things we've done before. First, we're just reading in the reflectance 002 image collection. We're selecting the bidirectional data from 2022 at this site CLBJ. and then we're using the same function map.addLayer to plot it with the same visualization parameters that we used before. We don't have to re- copy this line of centering the object because it's already applied in this script. So here we can see now we have two layers added to the map from 2021 and 2022. We can zoom in a little bit. And then as I showed before you can change the opacity of a layer to kind of see the differences between these two or you can deselect or select as follows. And so right off the bat you can see that compared to the 2021 data the 2022 data is a lot smoother and that's because the BRDF correction has been applied. And so this BRDF correction or BRDF effect essentially means that objects look differently when viewed from different angles and illuminated from different directions. So the BRDF correction or the bidirectional reflectance distribution function smooths out the images so the objects have the same brightness regardless of the sun's position or the camera angle. In this video we explored how to access NEON airborne data sets in Earth Engine, inspect data set metadata, create a true color visualization of reflectance data, and then compare directional and bidirectional reflectance data. On your own you could explore the other NEON data sets uh again searching for the paths as follows and then exploring the properties. Thank you.