【GEE】5、遥感影像预处理【GEE栅格预处理】

1简介

在本模块中,我们将讨论以下概念:

  1. 了解常用于遥感影像的数据校正类型。
  2. 如何直观地比较同一数据集中不同预处理级别的空间数据。
  3. 如何在 Google Earth Engine for Landsat 8 表面反射率图像中执行云遮蔽和云遮蔽评估。

2背景

什么是预处理?
您将在 Google 地球引擎 (GEE) 中找到的大部分数据都经过了一定程度的预处理。这涉及几种不同的质量控制方法,以确保栅格集合内的最高准确性和一致性。根据收集的不同,可能有各种可用的预处理级别,了解差异以将遥感数据成功整合到生态研究中非常重要。在 GEE 中提供数据之前,出版商一致解决了图像产品的三个常见错误来源:大气(即空气化学)、地形(即高程)和几何(即像素一致性)。


大气校正
随着太阳能从地球表面反弹并返回到我们在太空中的传感器,大气在挡路方面做得很好。这以散射和吸收的形式发生(更多信息,请参见模块 3)。识别和校正这些影响对于准确表示和解释真实的表面条件非常重要,例如树种叶子色素或城市和农业像素之间的差异。


地形和地形校正
坡度、坡向和高程的照明效应对收集和处理遥感数据提出了额外的挑战。已经开发了多种校正方法,包括使用数字高程模型来预测有问题的地形。如果您的研究是在高海拔地区或地形陡峭的地区进行的,您会很欣慰地知道,地形效果的预处理已由专家负责(尽管出于谨慎和谨慎的考虑,确实存在手动方法)。


几何校正
此过程确保光栅图像的对齐是系统的,并且随着时间的推移以及相对于其他图像的对齐。对于 Landsat,地理配准和正射校正过程是通过独立的地面控制点和先前创建的数字高程模型完成的。对于像 Landsat 这样的档案数据集,确保像素一次又一次、年复一年地排列是最重要的。否则,遥感科学家和生态学家将几乎没有能力进行多时相分析。


重要的是要记住,这些质量保证方法都不是 100% 万无一失的!遵循“了解您的数据”的座右铭,并从质量和数量上仔细检查您的图像。我们将在模块后面展示几个例子。
 

3使用 Landsat 8 在 Google Earth Engine 中进行预处理

在 Google 地球引擎中提供数据之前拥有(免费!)专门支持和幕后工作,这是一个令人难以置信的优势。但是,您可能仍然发现有必要操作您感兴趣的数据集以促进特定的研究应用。在本模块中,我们将使用 Landsat 8 数据,下图详细介绍了不同处理级别的几个用例。
 

Young et al, 2017的决策工作流程显示了不同级别 Landsat 数据预处理的建议用例。

3.1预处理级别示例。

为了定性地了解不同预处理级别之间的差异,我们可以查看 2018 年夏末美国俄勒冈州南部的几张真彩色图像。在此时间范围内,我们的标准大气干扰因来自加利福尼亚北部的卡尔大火。为了评估我们的初始图像,我们将加载“原始”Landsat 8 集合。原始数据(也称为“传感器辐射”)尚未针对任何形式的潜在影响进行校正,并且通常不用于生态研究。然而,为即将到来的水平建立基线是有帮助的。运行下面的脚本以生成类似于下面的图像。

注意:除了以下预处理级别外,Landsat 数据还分为两个质量级别,第 1 层和第 2 层。第 1 层是更高质量的选项。单击此处了解有关层级之间差异的更多信息。

// Define simple cloud mask, based in values from the 'pixel_qa' band.
// Essentially, values of 322 = land and 324 = water.
var qa = sr.select('pixel_qa');
var mask = qa.eq(322).or(qa.eq(324));
var sr_cm = sr.updateMask(mask);// Add your new map for comparison to the cloudy image.
Map.addLayer(sr_cm, srvis, 'single_scene_masked');

来自俄勒冈州南部的原始 Landsat 8 图像。我们的图像以 Mt McLoughlin (2,893 m) 为中心,东面是 Upper Klamath Lake。如果缩小图像,则可以看到梅德福(西)和克拉马斯福尔斯(东)这两个城市。

3.2大气层顶(TOA)

下一级预处理采用我们的“原始”数据,并对太阳活动的影响进行校正,包括太阳辐照度、地球-太阳距离和太阳仰角。对于研究人员来说,大气层顶 (TOA) 通常适用于评估单一日期、单一场景的影像(即相对较小研究区域内的土地覆盖分类)。这是由于不同程度的太阳效应取决于收集的日期、时间和纬度。将以下代码附加到您的脚本中,生成的图像将与下图类似。

// Define how your cloudMask function should work.
var cloudMask = function(image) {// var mask = image.select('pixel_qa').eq(322).or(image.select('pixel_qa').eq(324));var mask = image.select('pixel_qa').eq(322);return image.mask(mask);
};// This time we'll look at a more ecologically-focused example, using NDVI.
var collection = ee.ImageCollection("LANDSAT/LC08/C01/T1_SR")
.filterDate('2018-06-01','2018-09-30')
.filter(ee.Filter.calendarRange(140, 270)) // roughly, our potential growing season
.filterMetadata('WRS_PATH', 'equals', 27)
.filterMetadata('WRS_ROW', 'equals', 26)
.map(cloudMask)
.map(function NDVI(i){return i.addBands(i.normalizedDifference(['B5','B4']).rename('NDVI'))  // generates NDVI band
});var median = collection.median();// Red = lower values and darker green = higher values
var collectionVis = {bands: 'NDVI', min: 0.5, max: 0.95, palette: ['red','yellow','green','003300']};Map.addLayer(median, collectionVis, 'NDVI');

加载 TOA 集合后,由于对太阳效应的影响进行了一些校正,部分图像看起来更清晰。但是,似乎还有工作要做!

3.3表面反射率 (SR)

这些数据已经接受了最高级别的预处理,以试图最好地代表地面上的实际情况,其中一定量的太阳能反弹(反射)到空中和星载传感器。然而,即使是表面反射率产品也会受到低太阳角度、过多云层以及北纬 65 度以上的覆盖位置的不利影响(Young 等人,2017 年)。尽管如此,还是建议对多个日期(例如变化检测)或大地理范围(例如算法预测)的分析使用 Landsat 表面反射率数据。将最后一段代码添加到您的脚本中,以在您的地图查看器窗格中查看下面的图像。

// Finally, source an image from Tier 1 Landsat 8 surface reflection.
var sr = ee.Image('LANDSAT/LC08/C01/T1_SR/LC08_045031_20180811');// Define the true-color vis params.
var srvis = {bands: ['B4','B3','B2'], min: 0, max: 3000, gamma: 1.4};// Add the surface reflectance image to your map.
Map.addLayer(sr, srvis, 'sr');

应用大气校正似乎大大提高了我们的图像清晰度,尤其是在上克拉马斯湖和 Mt McGloughlin 以西的农业区。

3.4 Landsat 影像对比的完整代码

这些示例的代码来自一个特定的 Landsat 图像,但您现在拥有一个框架来调查任何感兴趣的区域(即您的研究区域)以比较不同级别的预处理。

// Center our map on southern Oregon, USA.
Map.setCenter(-122.3158, 42.4494, 12);// Import Tier 1 Raw Landsat 8 scene.
var raw = ee.Image('LANDSAT/LC08/C01/T1/LC08_045031_20180811');// Define the true-color vis params.
var rawvis = {bands: ['B4','B3','B2'], min: 0.0, max: 30000.0, gamma: 1};// Add the raw image to your map.
Map.addLayer(raw, rawvis, 'raw');// To begin your comparison, bring in an image from Tier 1 Landsat 8 Top of Atmosphere.
var toa = ee.Image('LANDSAT/LC08/C01/T1_TOA/LC08_045031_20180811');// Define the true-color vis params.
var toavis = {bands: ['B4','B3','B2'], min: 0.0, max: 0.4};// Add the TOA image to your map.
Map.addLayer(toa, toavis, 'toa');// Finally, source an image from Tier 1 Landsat 8 surface reflection.
var sr = ee.Image('LANDSAT/LC08/C01/T1_SR/LC08_045031_20180811');// Define the true-color vis params.
var srvis = {bands: ['B4','B3','B2'], min: 0, max: 3000, gamma: 1.4};// Add the TOA image to your map.
Map.addLayer(sr, srvis, 'sr');

3.5云遮蔽

正如我们所发现的,当我们得到表面反射率产品时,大气、地形和几何校正的预处理工作已经完成。在 Google Earth Engine 中可用之前,Landsat 数据处理中未包括的一个非常重要的步骤是消除近地天气现象。这通常以云的形式出现。云在热带(即茂密的雨林)和水体上尤其普遍。在本节中,我们将看看后者位于明尼苏达州东北部和安大略省西南部的 Quetico-Superior 地区,由于大面积的云层覆盖,部分地由数百个小到中型湖泊。


夏天的云层聚集在克蒂科省立公园的让湖上空。图片来源:泰伊舒尔克。

3.5.1单图像掩蔽:第 1 部分

让我们从加载我们知道是多云的图像开始。在世界的这个地区有很多选择,但这张八月下旬的图片向我们展示了多种形式的云。还有一点需要考虑的是,云层会在下面的土地上投下阴影,这进一步扩大了我们最终必须移除的地理范围。启动一个新脚本,运行下面的代码以生成如下图所示的图像。

// Load an initial image to test view a cloudy image.
var sr = ee.Image('LANDSAT/LC08/C01/T1_SR/LC08_027026_20180829');// Define visparams for true-color image.
var srvis = {bands: ['B4', 'B3', 'B2'], min: 0, max: 3000, gamma: 1.4};// Add your cloudy image to the map.
Map.addLayer(sr, srvis, 'single_scene');
Map.setCenter(-91.8859, 48.8936, 8.81);

Quetico-Superior 国家上空多云的图像。

3.5.2单图像掩蔽:第 2 部分

现在来处理我们的云问题。Landsat 提供了一个 pixel_qa 波段,简而言之,它根据先前量化的特征(例如云和雾霾的可能性)分配不同的值。您会发现构建云遮罩的代码更复杂,但这是一种从图像中删除那些讨厌的白色斑点的简单、保守的方法。将以下代码附加到现有脚本并重新运行以查看类似于下图的图像。请记住取消选中图层控件中的“single_scene”!

// Define simple cloud mask, based in values from the 'pixel_qa' band.
// Essentially, values of 322 = land and 324 = water.
var qa = sr.select('pixel_qa');
var mask = qa.eq(322).or(qa.eq(324));
var sr_cm = sr.updateMask(mask);// Add your new map for comparison to the cloudy image.
Map.addLayer(sr_cm, srvis, 'single_scene_masked');

成功移除云和云阴影,但生成的图像不会留下很多可用像素。

3.5.3跨多个日期屏蔽

在带有云层的单个 Landsat 场景中,我们失去了相当多的地理覆盖范围。但是还有另一种方法!我们还可以在多个日期范围内应用掩码。为此,我们需要创建一个函数,我们将在模块 9中详细介绍。现在,使用下面的函数(和其余代码)继续您的脚本。将代码附加到现有脚本中。

虽然 Google Earth Engine 中确实有来自 Landsat 的预制 NDVI 图像集合,但这些数据集仅在 2017 年之前可用。因此,我们还将计算 NDVI 并将其添加到我们的图像集合中。这将使我们能够为 2018 年整个生长季节的每个像素生成一个中值,从而测量研究区域的植被健康状况。重新运行您的代码,生成的图像应如下所示。

// Define how your cloudMask function should work.
var cloudMask = function(image) {// var mask = image.select('pixel_qa').eq(322).or(image.select('pixel_qa').eq(324));var mask = image.select('pixel_qa').eq(322);return image.mask(mask);
};// This time we'll look at a more ecologically-focused example, using NDVI.
var collection = ee.ImageCollection("LANDSAT/LC08/C01/T1_SR")
.filterDate('2018-06-01','2018-09-30')
.filter(ee.Filter.calendarRange(140, 270)) // roughly, our potential growing season
.filterMetadata('WRS_PATH', 'equals', 27)
.filterMetadata('WRS_ROW', 'equals', 26)
.map(cloudMask)
.map(function NDVI(i){return i.addBands(i.normalizedDifference(['B5','B4']).rename('NDVI'))  // generates NDVI band
});var median = collection.median();// Red = lower values and darker green = higher values
var collectionVis = {bands: 'NDVI', min: 0.5, max: 0.95, palette: ['red','yellow','green','003300']};Map.addLayer(median, collectionVis, 'NDVI');

可视化 2018 年整个生长季节的 NDVI 中值。随意切换不同的背景层。您的图像可能与此处显示的图像不完全相同。

3.5.4可视化图像计数

我们的 NDVI 图像看起来不错。但我们对这些价值观有多大信心?具体来说,重要的是评估实际上有多少图像构成了我们的中值。我们可以通过可视化在每个像素位置使用多少图像的总和来快速检查我们得到的 NDVI 中值是否在整个研究区域具有代表性。将以下代码附加到您的脚本中,然后单击“运行”。您应该会看到类似于下图的图像。

对于计数层,如果我们在 NDVI 值中发现空间异常,则有多种选择。我们可以扩大我们的季节性日期范围或选择包含多年的数据。最终,我们可能会接受失败,并认为天气太阴天无用,并决定探索不同的数据集——这是完全可以接受的!

// Create counts band.
var counts = collection.select('NDVI').count();// Find our potential maximum count by getting the size of the initial image collection.
print(collection.size());// In this palette, red = lower values and blue = higher values.
var countVis = {min: 0, max: 6, palette: ['b2182b','ef8a62','fddbc7', 'd1e5f0','67a9cf','2166ac']};Map.addLayer(counts, countVis, 'counts');

可视化用于计算每个像素中值的图像数量。较深的红色值较低,较深的蓝色值较高。

3.5.5生成和导出直方图

要了解计数值的定量分布,我们可以构建计数数据的直方图。如果我们的研究区域如此多云以至于平均值仅代表一两个值,我们可能需要重新考虑我们的源数据或收集年份。将此最终代码块添加到脚本中,您将能够在控制台选项卡中看到直方图。您将制作自己的几何形状(如果您需要复习如何执行此操作,请参阅模块 1 )。您的直方图可能会根据您的形状略有不同,但它足以包含图像,它应该类似于下图中的分布。

// Draw your own rectangle and try to cover most of the Landsat scene and 
// then we'll make a histogram of the distribution. Because the scene area 
// is so large  GEE requires us to perform some aggregating. But this will 
// give us a general sense of our distribution.
var histogram = ui.Chart.image.histogram(counts, geometry, 120);// Display the histogram.
print(histogram);

使用直方图函数量化来自计数层的值分布的数量。

4结论

在本单元中,我们回顾了应用于遥感图像的一些常见校正,这些校正有助于生产您将在 Google 地球引擎中找到的高质量产品。我们还介绍了一个用于可视化这些差异的简单框架,并了解了处理水平的变化如何影响俄勒冈州南部烟雾缭绕的夏季所产生的图像。最后,我们构建了一个工作流脚本,使用 Google Earth Engine 从生长季节图像中去除云层,生成平均植被指数值,并评估使用图像的分布。

5完整的云屏蔽代码

// Load an initial image to test view a cloudy image.
var sr = ee.Image('LANDSAT/LC08/C01/T1_SR/LC08_027026_20180829');// Define visparams for true-color image.
var srvis = {bands: ['B4', 'B3', 'B2'], min: 0, max: 3000, gamma: 1.4};// Add your cloudy image to the map.
Map.addLayer(sr, srvis, 'single_scene')
Map.setCenter(-91.8859, 48.8936, 8.81);// Define simple cloud mask, based in values from the 'pixel_qa' band.
// Essentially, values of 322 = land and 324 = water.
var qa = sr.select('pixel_qa');
var mask = qa.eq(322).or(qa.eq(324));
var sr_cm = sr.updateMask(mask);// Add your new map for comparison to the cloudy image.
Map.addLayer(sr_cm, srvis, 'single_scene_masked');// Define how your cloudMask function should work.
var cloudMask = function(image) {// var mask = image.select('pixel_qa').eq(322).or(image.select('pixel_qa').eq(324));var mask = image.select('pixel_qa').eq(322);return image.mask(mask);
};// This time we'll look at a more ecologically-focused example, using NDVI.
var collection = ee.ImageCollection("LANDSAT/LC08/C01/T1_SR")
.filterDate('2018-06-01','2018-09-30')
.filter(ee.Filter.calendarRange(140, 270)) // roughly, our potential growing season
.filterMetadata('WRS_PATH', 'equals', 27)
.filterMetadata('WRS_ROW', 'equals', 26)
.map(cloudMask)
.map(function NDVI(i){return i.addBands(i.normalizedDifference(['B5','B4']).rename('NDVI'))  // generates NDVI band
});var median = collection.median();// Red = lower values and darker green = higher values.
var collectionVis = {bands: 'NDVI', min: 0.5, max: 0.95, palette: ['red','yellow','green','003300']};Map.addLayer(median, collectionVis, 'NDVI');// Create counts band.
var counts = collection.select('NDVI').count();// Find our potential maximum count by getting the size of the initial image collection.
print(collection.size());// In this palette, red = lower values and blue = higher values.
var countVis = {min: 0, max: 6, palette: ['b2182b','ef8a62','fddbc7', 'd1e5f0','67a9cf','2166ac']};Map.addLayer(counts, countVis, 'counts');// Draw your own rectangle and try to cover most of the Landsat scene and 
// then we'll make a histogram of the distribution. Because the scene area 
// is so large  GEE requires us to perform some aggregating. But this will 
// give us a general sense of our distribution.
var histogram = ui.Chart.image.histogram(counts, geometry, 120);// Display the histogram.
print(histogram);

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/182152.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【性能测试】数据库索引问题定位/分析+ 架构优化+ SQL优化+ 代码优化(详全)

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 索引问题定位与分…

MapReduce:大数据处理的范式

一、介绍 在当今的数字时代,生成和收集的数据量正以前所未有的速度增长。这种数据的爆炸式增长催生了大数据领域,传统的数据处理方法往往不足。MapReduce是一个编程模型和相关框架,已成为应对大数据处理挑战的强大解决方案。本文探讨了MapRed…

文本内容转换成语音播放的工具:Speech Mac

Speech Mac版是一款适用于Mac电脑的语音合成工具。它将macOS语音合成器的所有功能整合到一个易于使用的界面中。通过Speech Mac版,用户可以选择40多种声音和语言,方便地将文本转换为语音。用户可以将文本拖放或粘贴到Speech中,并随时更改语音…

TCP/IP--七层通信

文章目录 TCP/IP--七层通信先来看一下会话层以上的处理再来看一下传输层以下的处理 TCP/IP–七层通信 下面举例说明7层网络模型的功能。假设使用主机A的用户A要给使用主机B的用户B发送一封电子邮件。 在七层OSI模型中,如何模块化通信传输? 先来看一下七…

基础课23——设计客服机器人

根据调查数据显示,使用纯机器人完全替代客服的情况并不常见,人机结合模式的使用更为普遍。在这两种模式中,不满意用户的占比都非常低,不到1%。然而,在满意用户方面,人机结合模式的用户满意度明显高于其他模…

专访虚拟人科技:如何利用 3DCAT 实时云渲染打造元宇宙空间

自古以来,人们对理想世界的探索从未停止,而最近元宇宙的热潮加速了这一步伐,带来了许多新的应用。作为元宇宙的关键入口,虚拟现实(VR)将成为连接虚拟和现实的桥梁。苹果发布的VISION PRO头戴设备将人们对VR…

响应式特性

前言 持续学习总结输出中,今天分享的是响应式特性 1.什么是响应式? 简单理解就是数据变,视图对应变。 数据的响应式处理→ 响应式:数据变化,视图自动更新 聚焦于数据 → 数据驱动视图 使用 Vue 开发,我们主要关注…

干货分享 | 3D WEB轻量化引擎HOOPS Communicator如何读取复杂大模型文件?

HOOPS Communicator是一款简单而强大的工业级高性能3D Web可视化开发包,其主要应用于Web领域,主要加载其专有的SCS、SC、SCZ格式文件;HOOPS还拥有另一个桌面端开发包HOOPS Visualize,主要加载HSF、HMF轻量化格式文件。 两者虽然同…

【PyQt学习篇 · ⑨】:QWidget -控件交互

文章目录 是否可用是否显示/隐藏是否编辑是否为活跃窗口关闭综合案例信息提示状态提示工具提示“这是什么”提示 焦点控制单个控件角度父控件角度 是否可用 setEnabled(bool):该函数用于设置QWidget控件的可用性,参数bool为True表示该控件为可用状态&…

shopee、亚马逊卖家如何安全给自己店铺测评?稳定测评环境是关键

大家都知道通过测评可以提升产品的转化率,提升产品的销量,那么做跨境平台的卖家如何安全的给自己店铺测评呢? 无论是亚马逊、拼多多Temu、shopee、Lazada、wish、速卖通、敦煌网、Wayfair、雅虎、eBay、Newegg、乐天、美客多、阿里国际、沃尔…

unity打AB包,AssetBundle预制体与图集(一)

第一步:打AB包 1、先创建一个AB包的按钮,如图 新建一个脚本 public class BulidBundle : Editor {[MenuItem("TOOL/BuildBundle")]public static void BuildAndroidBundle(){} }创建目录 public static void BuildAndroidBundle(){// 设置…

NowCoder | 链表中倒数第k个结点

NowCoder | 链表中倒数第k个结点 OJ链接 思路:定义两个快慢指针,让快指针先提前走k个节点,然后再让慢结点和快结点一起走,当快指针 NULL时,慢指针就是倒数第k个节点 代码如下: struct ListNode* FindK…

卡尔曼家族从零解剖-(04)贝叶斯滤波→细节讨论,逻辑梳理,批量优化

讲解关于slam一系列文章汇总链接:史上最全slam从零开始,针对于本栏目讲解的 卡尔曼家族从零解剖 链接 :卡尔曼家族从零解剖-(00)目录最新无死角讲解:https://blog.csdn.net/weixin_43013761/article/details/133846882 文末正下方中心提供了本人 联系…

Web3游戏的十字路口:沿用传统IP还是另起炉灶?

人们经常问我对 Web3 游戏有什么看法。因此,我想以书面形式概述一下我目前的想法。 让我先澄清一下:我不是专家。这不是一篇深入探讨游戏世界精细指标如 MAU 或 D14 等的全面分析。请把这看作是我根据个人交流和研究,这反映我在游戏领域关注…

电脑监控软件丨2023全网最详细解析

电脑监控软件是一个比较敏感的话题,因为很多员工会觉得电脑监控侵犯了自己的隐私,电脑上企业会觉得安装软件只不过是为了保护自己的核心利益。 对于此,我们要辩证的看待。 今天我们从企业的角度出发,谈谈电脑监控软件的话题。 必…

Linux CentOS7.9安装OpenJDK17

Linux CentOS7.9安装OpenJDK17 一、OpenJDK下载 清华大学开源软件镜像站 国内的站点,下载速度贼快 二、上传解压 文件上传到服务器后,解压命令: tar -zxvf jdk-xxxx-linux-x64.tar.gz三、配置环境 export JAVA_HOME/home/local/java/j…

京东app地推拉新和京喜大赢家网推app拉新申请渠道 附全套攻略

京东app地推拉新和京喜大赢家网推拉新可以通过“聚量推客”申请 聚量推客是什么呢?一手官签服务商直营app拉新平台 京东app地推拉新项目和京喜大赢家网推拉新项目有什么区别呢? 京东app只能地推作业,京喜大赢家推广支持网推推广操作也更简…

K7系列FPGA进行FLASH读写1——CCLK控制(STARTUPE2原语)

最近的工作涉及对 FPGA 进行远程更新,也就是通过远程通信接口将 .bin 文件送到 FPGA,然后写入 FLASH,这样当 FPGA 重新上电后就可以执行更新后的程序了。因此第一步工作就是进行 FLASH 的读写控制。 然而如果尝试配置 FLASH 管脚时&#xff0…

【MySql】MySql表的增删查改

目录 1.新增 1.1单行数据 全列插入 2.2 多行数据 指定列插入 2.查询 2.1 全列查询 2.2 指定列查询 2.3查询字段为表达式 2.4 别名 2.5 去重:DISTINCT 2.6 排序:ORDER BY 2.7 条件查询:WHERE 2.8 分页查询:LIMIT 3.修…

Nginx篇---第二篇

系列文章目录 文章目录 系列文章目录一、请列举Nginx和Apache 之间的不同点二、在Nginx中,如何使用未定义的服务器名称来阻止处理请求?三、请解释Nginx服务器上的Master和Worker进程分别是什么?一、请列举Nginx和Apache 之间的不同点 二、在Nginx中,如何使用未定义的服务器…