我希望根據今天的日期堆疊某些 GeoTiff,因為這將每天運行,因此需要堆疊適當的層。
#get current date
from datetime import datetime
datetime.today().strftime('%Y%m%d')
from osgeo import gdal
outvrt = '/vsimem/stacked.vrt' #/vsimem is special in-memory virtual "directory"
outtif = 'C:\Program Files\GeoServer\data_dir\data\RSS_WH/stacked.tif'
import glob
tifs = glob.glob('C:\Program Files\GeoServer\data_dir\data\RSS_WH/*.tif')
outds = gdal.BuildVRT(outvrt, tifs, separate=True)
outds = gdal.Translate(outtif, outds)
如您所見,目前,它的結尾只有 *.tif,這意味著檔案夾中的所有 tif 檔案都將堆疊在一起。但是,我需要將當前日期插入到路徑中,以便包含例如 12082021 及其前后內容的所有內容(因為圖層因前綴和后綴而異,并且日期是唯一可靠的常量。
uj5u.com熱心網友回復:
這是對您擁有的代碼的直接修改。
首先,確保您將當前日期分配給一個變數,而不是僅僅將其列印出來:
today = datetime.today().strftime('%Y%m%d')
然后將其包含在 glob 命令的搜索字串中(如果您希望匹配檔案名中的日期,請確保在任一側放一個星號):
tifs = glob.glob('C:\Program Files\GeoServer\data_dir\data\RSS_WH/*' today '*.tif')
或者,等效地:
tifs = glob.glob('C:\Program Files\GeoServer\data_dir\data\RSS_WH/*{}*.tif'.format(today))
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/382555.html
