网站建设资讯

NEWS

网站建设资讯

pythonroi函数 python函数ord

gee怎么得到年平均温度

主要分析步骤:

成都创新互联专注于企业成都全网营销推广、网站重做改版、安远网站定制设计、自适应品牌网站建设、HTML5商城开发、集团公司官网建设、外贸网站制作、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为安远等各大城市提供网站开发制作服务。

加载区域范围

加载区域范围日均温数据集ERA5

定义日均温提取分析函数

提取数据

结果可视化

二、python代码

1、分析区域

python代码如下

region_bj = '../boudary/huangtu_plateau.shp'

region = geemap.shp_to_ee(region_bj)

roi = region.geometry()

Map = geemap.Map()

Map.addLayer(ee.Image().paint(roi, 0, 2), {'palette':'darkred'}, 'plateau')

Map.centerObject(roi)

Map

1

2

3

4

5

6

7

8

1

2

3

4

5

6

7

8

2、定义函数、设置属性及数据分析

python代码如下:

######### 1-定义函数 #########

# 计算区域的平均温度,设置属性

def meanTempCal(image):

mt_2m = image.reduceRegion(**{

'reducer':ee.Reducer.mean(),

'geometry':roi,

'bestEffort':True

})

# 转换为摄氏度

mt_cel = ee.Number(mt_2m.get('mean_2m_air_temperature'))\

.subtract(273.15)

# 增加新的属性

return image.set({'mean_air_temp':mt_cel})

######### 2-加载数据集并进行提取分析 #########

# 获取日平均温度,进行相应时间段、区域范围筛选

era5_mt = ee.ImageCollection('ECMWF/ERA5/DAILY') \

.filterDate('2010-01-01', '2020-12-31') \

.filterBounds(roi)

mean_airTemp = era5_mt.map(meanTempCal).aggregate_array('mean_air_temp').getInfo()

dates = era5_mt.reduceColumns(ee.Reducer.toList(), ["system:index"]).get('list').getInfo()

######### 3-结果制图 #########

import matplotlib.pyplot as plt

plt.plot(dates, mean_airTemp)

plt.title('mean daily air temprature')

plt.xlabel('dates')

plt.ylabel('Temprature(℃)')

plt.show()

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

结果如下:

在这里插入图片描述

三、小结

通过ERA日均数据集,利用GEE分析了10年来区域日均温度的变化,可以明显看出日均温度的周期性变化特征

下一步可进一步进行数据的分析,比如可利用R语言进行周期性、趋势性特征的统计分析,生成时间序列的变化图

python中round函数的用法

round函数python:

这个函数相当于调去里面的一个函数,有一个数组,从中里面调取一个数据。简单的说,round是使用四舍五入对小数进行位数控制的函数,round(a,b),a参数是小数,b是小数点后保留的位数。实际使用需要考虑的python2和python3版本的差异与小数精度的问题。

ound函数的使用用法

根据Excel的帮助得知,round函数就是返回一个数值,该数值是按照指定的小数位数进行四舍五入运算的结果。

round函数的语法是:ROUND(number,num_digits),即:Round(数值,保留的小数位数)

Number:需要进行四舍五入的数字。

Num_digits:指定的位数,按此位数进行四舍五入。

其中,如果num_digits大于0,则四舍五入到指定的小数位。

如果num_digits等于0,则四舍五入到最接近的整数。

如果num_digits小于0,则在小数点左侧进行四舍五入。

目标跟踪(3)MultiTracker : 基于 OpenCV (C++/Python) 的多目标跟踪

在这篇文章中,我们将介绍如何使用通过 MultiTracker 类实现的 OpenCV 的多对象跟踪 API。我们将共享C++ 和 Python 代码。

大多数计算机视觉和机器学习的初学者都学习对象检测。如果您是初学者,您可能会想为什么我们需要对象跟踪。我们不能只检测每一帧中的对象吗?

让我们来探究一下跟踪是有用的几个原因。

首先,当在视频帧中检测到多个对象(例如人)时,跟踪有助于跨帧建立对象的身份。

其次,在某些情况下,对象检测可能会失败,但仍可能跟踪对象,因为跟踪考虑了对象在前一帧中的位置和外观。

第三,一些跟踪算法非常快,因为它们做的是局部搜索,而不是全局搜索。因此,我们可以通过每n帧进行目标检测,并在中间帧中跟踪目标,从而为我们的系统获得很高的帧率。

那么,为什么不在第一次检测后无限期地跟踪对象呢?跟踪算法有时可能会丢失它正在跟踪的对象。例如,当对象的运动太大时,跟踪算法可能跟不上。许多现实世界的应用程序同时使用检测和跟踪。

在本教程中,我们只关注跟踪部分。我们想要跟踪的对象将通过拖动它们周围的包围框来指定。

OpenCV 中的 MultiTracker 类提供了多目标跟踪的实现。它是一个简单的实现,因为它独立处理跟踪对象,而不对跟踪对象进行任何优化。

让我们逐步查看代码,了解如何使用 OpenCV 的多目标跟踪 API。

2.1 第 1 步:创建单一对象跟踪器

多目标跟踪器只是单目标跟踪器的集合。我们首先定义一个函数,该函数接受一个跟踪器类型作为输入,并创建一个跟踪器对象。OpenCV有8种不同的跟踪器类型:BOOSTING, MIL, KCF,TLD, MEDIANFLOW, GOTURN, MOSSE, CSRT。

如果您想使用 GOTURN 跟踪器,请务必阅读这篇文章并下载 caffe 模型。

在下面的代码中,给定跟踪器类的名称,我们返回跟踪器对象。这将在稍后用于多目标跟踪器。

Python

C++

2.2 第 2 步:读取视频的第一帧

多目标跟踪器需要两个输入

给定这些信息,跟踪器在所有后续帧中跟踪这些指定对象的位置。 在下面的代码中,我们首先使用 VideoCapture 类加载视频并读取第一帧。这将在稍后用于初始化 MultiTracker。

Python

C++

2.3 第 3 步:在第一帧中定位对象

接下来,我们需要在第一帧中定位我们想要跟踪的对象。该位置只是一个边界框。 OpenCV 提供了一个名为 selectROI 的函数,该函数会弹出一个 GUI 来选择边界框(也称为感兴趣区域 (ROI))。 在 C++ 版本中,selectROI 允许您获取多个边界框,但在 Python 版本中,它只返回一个边界框。所以,在 Python 版本中,我们需要一个循环来获取多个边界框。 对于每个对象,我们还选择一种随机颜色来显示边界框。 代码如下所示。

Python

C++

getRandomColors 函数相当简单

2.4 第 3 步:初始化 MultiTracker

到目前为止,我们已经读取了第一帧并获得了对象周围的边界框。这就是我们初始化多目标跟踪器所需的所有信息。

我们首先创建一个 MultiTracker 对象,并向其中添加与边界框一样多的单个对象跟踪器。在此示例中,我们使用 CSRT 单对象跟踪器,但您可以通过将下面的 trackerType 变量更改为本文开头提到的 8 个跟踪器之一来尝试其他跟踪器类型。 CSRT 跟踪器不是最快的,但在我们尝试的许多情况下它产生了最好的结果。

您还可以使用包裹在同一个 MultiTracker 中的不同跟踪器,但当然,这没什么意义。

MultiTracker 类只是这些单个对象跟踪器的包装器。正如我们从上一篇文章中知道的那样,单个对象跟踪器是使用第一帧初始化的,并且边界框指示我们想要跟踪的对象的位置。 MultiTracker 将此信息传递给它在内部包装的单个对象跟踪器。

Python

C++

2.5 第 4 步:更新 MultiTracker 并显示结果

最后,我们的 MultiTracker 已准备就绪,我们可以在新帧中跟踪多个对象。我们使用 MultiTracker 类的 update 方法来定位新框架中的对象。每个跟踪对象的每个边界框都使用不同的颜色绘制。

Python

C++

C++

Python


当前文章:pythonroi函数 python函数ord
分享网址:http://njwzjz.com/article/doecopd.html