全球气温数据集(.nc数据的打开方法)

1.https://crudata.uea.ac.uk/cru/data/temperature/#datdow

HadCRUT4是一个全球温度数据集,提供全球网格化温度异常以及半球和整个地球的平均温度异常。CRUTEM4和HadSST3分别是该整体数据集的陆地和海洋组成部分。

这些数据集由气候研究单位(东英吉利大学)与哈德利中心(英国气象局)共同开发,除了由哈德利中心独家开发的海面温度(SST)数据集。这些数据集将以大致每月的间隔更新到未来。作为月度和年度值的半球和全球平均值可作为单独的文件提供。

 

这里提供的网格化数据采用netCDF格式,受RPanoply等开源软件以及MatlabIDL等商业软件包的广泛支持。CRUTEM4数据也可通过我们的Google地球界面获取。Hadley Center下载数据页面也提供了文本(ASCII)格式文件(请按照上表中的链接) 

 

2.https://crudata.uea.ac.uk/cru/data/crutem/ge/

CRUTEM是一个数据集,来自地球各大洲气象站记录的陆地附近的气温。它自20世纪80年代初以来由气候研究部门开发和维护,资金主要由美国能源部提供。大部分工作的首席科学家是Phil Jones教授,尽管许多同事也做出了贡献。近年来,Met Office Hadley Center(MOHC)也参与其中,尤其是定期更新CRUTEM(当前版本CRUTEM4)的操作版本。CRUTEM已与MOHC的海面温度数据集相结合,以提供地球表面温度的近全球数据集,称为HadCRUT。例如,当前版本HadCRUT4结合了CRUTEM4和HadSST3。这些数据集已被广泛用于评估人为气候变化的可能性。

3.如何读取.nc文件

https://www.esrl.noaa.gov/psd/data/gridded/tools.html#ncBrowse

非常详细的介绍如何打开.nc数据

我尝试了一下panoply,操作很简单和使用人性化的读取和分析.nc文件的软件

https://www.giss.nasa.gov/tools/panoply/download/

 

 

### Python 函数使用教程 #### 1. 定义函数 在 Python 中,定义一个函数需要使用 `def` 关键字。函数名后面跟随括号和冒号,接着是从下一行开始缩进的函数体。 ```python def my_function(): print("Hello from a function") ``` 此代码创建了一个名为 `my_function` 的简单函数[^2]。 #### 2. 参数传递 Python 支持多种方式来向函数传入参数: - **位置参数**:按照顺序依次匹配形参。 ```python def greet(name, message): print(f"{message}, {name}!") greet('Alice', 'Good morning') ``` - **关键字参数**:通过指定名称的方式提供实参,允许改变调用时的实际参数顺序。 ```python greet(message='Good evening', name='Bob') ``` - **默认值参数**:如果未给定某个特定参数,则采用预先设定好的默认值。 ```python def say_hello(to="everyone"): print(f"Hello {to}") say_hello() ``` - **可变长度参数**:支持不定数量的位置参数或关键字参数。 对于任意多个非关键词参数,可以使用星号前缀的形式收集到元组中;而对于任意多的关键字参数则可以用双星号接收成字典形式。 ```python def make_pizza(*toppings): """打印顾客点的所有配料""" print("\nMaking pizza with the following toppings:") for topping in toppings: print("- " + topping) make_pizza('pepperoni') def build_profile(first, last, **user_info): profile = {} profile['first_name'] = first profile['last_name'] = last for key, value in user_info.items(): profile[key] = value return profile build_profile('albert', 'einstein', location='princeton', field='physics') ``` #### 3. 返回值 函数可以通过 `return` 语句返回处理后的数据给调用者。如果没有显式的 `return` 或仅执行了不带表达式的 `return` ,那么该函数会隐含地返回 None 值。 ```python def add(a, b): result = a + b return result sum_value = add(5,7) print(sum_value) # 输出 12 ``` #### 4. 局部变量与全局变量 局部变量是在函数内部声明并使用的变量,在离开作用域之后就会被销毁。而全局变量则是指在整个程序范围内都有效的变量。 当希望修改外部环境中的对象(如列表、字典),可以在函数体内直接操作这些容器类型的元素而不必担心它们会被丢弃掉。 但是要注意的是,默认情况下无法在一个函数里重新赋值给外面已存在的同名变量除非先加上 global 关键词声明它为全局变量。 ```python global_var = "I'm Global" def test_scope(): local_var = "I'm Local" print(local_var) test_scope() try: print(local_var) # 这将会引发 NameError 错误因为local_var只存在于test_scope这个环境中 except Exception as e: print(e) def modify_global(): global global_var global_var += ", modified inside function." modify_global() print(global_var) ``` #### 5. Lambda 表达式 Lambda 是一种简洁的方式来创建匿名的小型函数。这种语法非常适合用于那些只需要一次性的短小功能实现场景。 ```python double = lambda x : x * 2 multiply = lambda x,y:x*y print(double(5)) # 结果为 10 print(multiply(6,7)) # 结果为 42 ``` #### 6. 高阶函数 高阶函数是指能够接受其他函数作为输入参数或者把另一个函数当作输出结果的函数。常见的内置高阶函数有 map(), filter(), reduce() 等等。 map() 接受两个参数:一个是函数,另一个是要映射的数据序列。它会对每一个项目应用所提供的转换逻辑并将得到的新集合返回出来。 filter() 同样也带有这两个部分——筛选条件以及待过滤的对象集。不过这里所给出的操作应该是布尔判断性质的东西以便决定哪些成员应该保留下来形成最终的结果数组。 reduce() 则来自 functools 库,需单独导入才能正常使用。它的职责在于累积计算一系列数值之间的关系直至得出单一的答案为止。 ```python from functools import reduce numbers = [1, 2, 3] squared_numbers = list(map(lambda n:n*n , numbers)) even_numbers = list(filter(lambda n:(n%2==0), squared_numbers)) product_of_all_elements = reduce((lambda x, y: x * y), even_numbers) print(squared_numbers) # [1, 4, 9] print(even_numbers) # [4] print(product_of_all_elements)# 4 ``` #### 7. 递归函数 递归指的是函数在其自身的定义过程中直接或间接地调用了自己的一种编程技巧。为了防止无限循环的发生,通常会在每次迭代之前设置好终止条件。 下面是一个经典的例子展示了如何利用递归来解决斐波那契数列问题: ```python def fibonacci(n): if n <= 0: return "Input should be positive integer only!" elif n == 1 or n == 2 : return 1 else: return fibonacci(n-1)+fibonacci(n-2) for i in range(1,11): print(f"Fib({i})={fibonacci(i)}",end=', ') # Fib(1)=1, Fib(2)=1, Fib(3)=2, Fib(4)=3, Fib(5)=5, Fib(6)=8, Fib(7)=13, Fib(8)=21, Fib(9)=34, Fib(10)=55, ``` 此外还有二分查找算法也是典型的运用到了递归思想的应用案例之一.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值