此脚本稍作修改 可以批量nc转tif
可以根据提供的经纬度范围 提取指定区域进行转换
我是提取的中国区域,可以自行开启多线程 加快处理速度
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Date : 2021-02-14 09:37:54
# @Author : LiangYujing (532268865@qq.com)
# @Version : $1.0 可自行设置读取的区域范围
import numpy as np
import netCDF4 as nc
from osgeo import gdal, osr
import glob
import re
import collections
import os
import threading
import queue
def mkdir(path):
isExists = os.path.exists(path)
if not isExists:
try:
os.makedirs(path)
print(path + '创建成功')
except FileExistsError:
print('目录已存在')
else:
print('目录已存在')
def get_winsize(ullon, ullat, lrlon, lrlat, lonres, latres):
# 使用 给定的左上角和右下角的经纬度坐标,获取窗口的行数和列数
cols = (lrlon - ullon) / lonres
rows = (lrlat - ullat) / -latres
return map(int, (cols, rows))
def getXYoff(ullon, ullat, geotransform):
inv_gt = gdal.InvGeoTransform(geotransform)
offsets = gdal.ApplyGeoTransform(inv_gt, ullon, ullat)
xoff, yoff = map(int, offsets)
return xoff, yoff
def read_nc(filepath):
nc_obj = nc.Dataset