使用python平均每日降水pcraster地图堆栈10年的数据

时间:2016-03-07 16:59:37

标签: python raster

我在pcraster地图堆栈类型中有3652个地图用于每日降水值

pptn0000.001
pptn0000.002
...
pptn0003.652

我知道有一个pcrcalc命令,但我没有例子对这种类型的地图进行数学运算。 我如何在python中平均这些地图并将一个栅格地图作为输出? 感谢

1 个答案:

答案 0 :(得分:1)

嗯,我刚才这样做是为了得到一个气候降水'来自TRMM使命(17年,1998年至2014年)。   Python可以使用pcraster库直接读取栅格地图。例如:

    import os
    import fnmatch
    import subprocess
    from os import listdir
    from pcraster import *

    PrecDaily = '/home/someData/precipitation/pptn'
    OutSave = '/home/someData/precipitation/pptn/meanMap'
    TypeFile = 'pptn????.???'

    os.chdir(PrecDaily)
    PrecDailyFiles = []
    for iListFile in sorted(os.listdir('.')): 
        if fnmatch.fnmatch(iListFile, TypeFile):
            PrecDailyFiles.append(iListFile)
    n=len(PrecDailyFiles)

    FirstRasterMap = readmap(PrecDailyFiles[0])
    SUM = FirstRasterMap
    for iMeanRaster in xrange(1, n):
        PCRasterMap = readmap(PrecDailyFiles[iMeanRaster])
        SUM = SUM + PCRasterMap
    MEAN = SUM/n

    os.chdir(OutSave)
    report(MEAN, 'pptn_mean.map')