怎么从“sd_197901.tif”分别获取“sd”、“197901”
时间: 2023-10-13 19:06:20 浏览: 52
要从字符串“sd_197901.tif”中分别获取“sd”和“197901”,可以使用字符串分割函数和字符串切片的方法。具体来说,可以使用 Python 中的 split 方法,以下划线“_”作为分隔符,将字符串分割成两个部分,并且使用点号“.”作为分隔符,将第二部分进一步分割成两个部分,然后分别获取这三个部分即可。
示例代码如下:
```
s = "sd_197901.tif"
parts1 = s.split("_")
part1 = parts1[0] # 获取 "sd"
parts2 = parts1[1].split(".")
part2 = parts2[0] # 获取 "197901"
```
在以上代码中,我们首先将字符串“sd_197901.tif”使用 split 方法以下划线“_”作为分隔符分割成了两个部分,存储在 parts1 变量中。然后,我们使用下标操作符 [] 获取了第一个部分,即变量 part1 存储了“sd”。
接着,我们将 parts1 变量的第二部分(即“197901.tif”)使用 split 方法以点号“.”作为分隔符进一步分割成了两个部分,存储在 parts2 变量中。然后,我们使用下标操作符 [] 获取了第一个部分,即变量 part2 存储了“197901”。
最后,我们就可以使用这两个变量来进行后续的操作了。
相关问题
(2)请完成逐旬 NDVI 最大值合成,输出36个旬 NDVI 文件。命名规则:如1月上中下三旬分别为:2019011_ ndvi . tif ;2019012_ ndvi . tif :2019013_ ndvi . tif (40分)
为了完成逐旬 NDVI 最大值合成,需要有每旬的 NDVI 文件。假设已经有了36个旬的 NDVI 文件,可以按照以下步骤进行合成:
1. 安装 GDAL 工具,使用以下命令确认是否已经安装:
```
gdalinfo --version
```
2. 打开命令行终端,进入存放 NDVI 文件的文件夹。
3. 使用以下命令合成每个旬的 NDVI 最大值:
```
gdal_calc.py -A 2019011_ndvi.tif -B 2019012_ndvi.tif -C 2019013_ndvi.tif --outfile=2019011_max.tif --calc="maximum(A,B,C)"
```
其中,`-A`、`-B`、`-C` 分别指代当前旬的三个 NDVI 文件,`--outfile` 指定输出文件名,`--calc` 指定计算方式,这里是取三个文件的最大值。
4. 重复上述步骤,对每个旬的 NDVI 文件进行合成,得到36个旬 NDVI 最大值文件。
5. 按照题目要求,将文件命名为 `yyyymmX_ndvi.tif` 的形式,其中 `yyyymm` 表示年月,`X` 表示旬数(1-3)。
例如,1月上旬 NDVI 最大值文件应命名为:`2019011_ndvi.tif`。
注意,以上命令仅适用于 GDAL 2.x 版本,若使用 GDAL 3.x 版本,需要将 `-A`、`-B`、`-C` 改为 `-i`、`-j`、`-k`。
5.已知alist=['jn_20170525_22.tif', 'jn_20200424_1.tif', 'jn_20200424_2.tif'], 编写函数,使得该函数接收参数alist后得到的返回值为['2017', '2020', '2020']
可以使用正则表达式来匹配列表中的每个字符串,提取出其中的年份。具体实现如下:
```python
import re
def extract_year(alist):
pattern = re.compile(r'\d{4}') # 匹配四位数字
year_list = []
for s in alist:
match = pattern.search(s)
if match:
year_list.append(match.group()) # 将匹配到的年份加入列表中
return year_list
```
使用示例:
```python
alist = ['jn_20170525_22.tif', 'jn_20200424_1.tif', 'jn_20200424_2.tif']
year_list = extract_year(alist)
print(year_list) # 输出 ['2017', '2020', '2020']
```