コード例 #1
0
ファイル: match_test.py プロジェクト: spacefan/geonumpy
def match_multi_test():
    shandong = gio.read_shp('../data/shape/shandong.shp')
    shandong = shandong.to_crs(3857)
    info = gutil.shp2box(shandong, (2048, 1536), 0.05)
    fs = glob('../data/modis/*.hdf')
    rasters = [gio.read_hdf(i, 0) for i in fs]
    rst = gmt.match_multi(rasters, info, 0)
    plt.imshow(rst)
    plt.show()
コード例 #2
0
ファイル: draw_test.py プロジェクト: llsshh1985/geonumpy
def draw_class():
    # ===== look up table =====
    lut = np.array([[0  ,0  ,0  ],
                    [168,168,0  ],
                    [20 ,119,73 ],
                    [169,208,95 ],
                    [56 ,168,0  ],
                    [126,206,244],
                    [0  ,86 ,154],
                    [112,168,0  ],
                    [147,47 ,20 ],
                    [202,202,202],
                    [0  ,255,197],
                    [255,255,255]], dtype=np.uint8)

    # ===== read shape file and make a paper =====
    liaoning = gio.read_shp('../data/shape/shandong.shp')
    liaoning = liaoning.to_crs(3857)
    box = gutil.shp2box(liaoning, (3600, 2400), 0.15, 1)
    paper = gnp.frombox(*box, dtype=np.uint8)

    # ===== match the class tif into paper
    fs = glob('../data/class/*.tif')
    idx = gmt.build_index(fs)
    gmt.match_idx(idx, paper, out='in', order=0)

    msk = paper * 0
    gdraw.draw_polygon(msk, liaoning, 255, 0)
    paper[msk==0] = 11

    body = [('图例', 'simhei', 72),
            ('rect', 1,  '农田'),
            ('rect', 2,  '森林'),
            ('rect', 3,  '草地'),
            ('rect', 4,  '灌丛'),
            ('rect', 5,  '湿地'),
            ('rect', 6,  '水体'),
            ('rect', 7,  '苔原'),
            ('rect', 8,  '隔水层'),
            ('rect', 9,  '裸地'),
            ('rect', 10, '冰雪')]
    # 底图,位置,内容,空隙,矩形尺寸及线宽,字体字号颜色,外边框宽度
    gdraw.draw_style(paper, 60, -60, body, mar=(20, 30),
        recsize=(120,60,0), font=('simsun', 60, 0), color=0, box=0)

    gdraw.draw_unit(paper, -120, -60, 0.3, 30, ('times', 48), 0, 'km', 3, anc='r')

    gdraw.draw_text(paper, '山东省土地利用类型', 80, 60, 0, ('simkai', 128))

    gdraw.draw_N(paper, -240, 240, ('simhei', 100), 2, 100, 0)

    gdraw.draw_polygon(paper, liaoning, 0, 2)
    
    gdraw.draw_bound(paper, 5, 5, -5, -5, 0, 2, clear=None)
        
    return paper.lookup(lut)
コード例 #3
0
ファイル: match_test.py プロジェクト: llsshh1985/geonumpy
def match_multi_test():
    shandong = gio.read_shp('../data/shape/shandong.shp')
    shandong = shandong.to_crs(3857)
    info = gutil.shp2box(shandong, (2048, 1536), 0.05, 1)
    paper = gnp.frombox(*info, dtype=np.int16)
    fs = glob('../data/modis/*.hdf')
    rasters = [gio.read_hdf(i, 0) for i in fs]
    gmt.match_multi(rasters, paper, out='in')
    plt.imshow(paper)
    plt.show()
コード例 #4
0
ファイル: match_test.py プロジェクト: llsshh1985/geonumpy
def match_one_test():
    shandong = gio.read_shp('../data/shape/shandong.shp')
    shandong = shandong.to_crs(3857)
    info = gutil.shp2box(shandong, (2048, 1536), 0.05, 1)
    paper = gnp.frombox(*info, dtype=np.int16)
    path = '../data/modis/MOD09Q1.A2019017.h27v05.006.2019030120430.hdf'
    raster = gio.read_hdf(path, 0)
    gmt.match_one(raster, paper, out='in')
    plt.imshow(paper)
    plt.show()
コード例 #5
0
ファイル: match_test.py プロジェクト: spacefan/geonumpy
def match_idx_test():
    shandong = gio.read_shp('../data/shape/shandong.shp')
    shandong = shandong.to_crs(3857)
    info = gutil.shp2box(shandong, (2048, 768 * 2), 0.05)

    fs = glob('../data/modis/*.hdf')
    idx = gmt.build_index(fs)

    rst = gmt.match_idx(idx, info, chan=[0])
    plt.imshow(rst)
    plt.show()
コード例 #6
0
ファイル: draw_test.py プロジェクト: llsshh1985/geonumpy
def draw_simple():
    shandong = gio.read_shp('../data/shape/shandong.shp')
    shandong = shandong.to_crs(3857)
    box = gutil.shp2box(shandong, (3600, 2400), 0.1, 1)
    paper = gnp.frombox(*box, dtype=np.uint8)
    paper[:] = 255
    gdraw.draw_polygon(paper, shandong, 0, 2)
    gdraw.draw_ruler(paper, 80, 50, -80, -50, 1, 4326, ('times', 32), 0, 2, 5)
    gdraw.draw_lab(paper, shandong, 'name', 0, ('simhei', 32), 'ct')
    gdraw.draw_unit(paper, -180, -100, 0.3, 30, ('times', 48), 0, 'km', 3, anc='r')
    gdraw.draw_text(paper, '山东省', 180, 120, 0, ('simkai', 128))
    gdraw.draw_N(paper, -240, 240, ('simhei', 100), 2, 100, 0)
    return paper
コード例 #7
0
ファイル: match_test.py プロジェクト: llsshh1985/geonumpy
def match_idx_test():
    shandong = gio.read_shp('../data/shape/shandong.shp')
    shandong = shandong.to_crs(3857)
    info = gutil.shp2box(shandong, (2048, 768 * 2), 0.05, 1)
    paper = gnp.frombox(*info, dtype=np.int16)

    fs = glob('../data/modis/*.hdf')
    idx = gmt.build_index(fs)

    gmt.match_idx(idx, paper, out='in', chan=[0])

    plt.imshow(paper)
    plt.show()
コード例 #8
0
ファイル: draw_test.py プロジェクト: llsshh1985/geonumpy
def draw_grade():
    shandong = gio.read_shp('../data/shape/shandong.shp')
    shandong = shandong.to_crs(3857)
    box = gutil.shp2box(shandong, (3600, 2400), 0.1, 1)
    paper = gnp.frombox(*box, dtype=np.uint8)
    
    areas = shandong.area
    grade_lut = np.array([3]*60 + [2]*30 + [1]*10, dtype=np.uint8)
    vs = (areas-areas.min())/(areas.max()-areas.min())*99
    grade = grade_lut[vs.astype(int)]
    print(grade)
    
    gdraw.draw_polygon(paper, shandong, grade, 0)
    gdraw.draw_polygon(paper, shandong, 4, 2)
    
    gdraw.draw_ruler(paper, 80, 50, -80, -50, 1, 4326, ('times', 32), 4, 2, 5)
    gdraw.draw_lab(paper, shandong, 'name', 4, ('simhei', 32), 'ct')
    gdraw.draw_unit(paper, -180, -100, 0.3, 30, ('times', 48), 4, 'km', 3, anc='r')
    gdraw.draw_text(paper, '山东省', 180, 120, 4, ('simkai', 128))
    gdraw.draw_N(paper, -240, 240, ('simhei', 100), 2, 100, 4)

    body = [('图例', 'simhei', 72),
            ('rect', 1,  '特大城市'),
            ('rect', 2,  '中型城市'),
            ('rect', 3,  '一般城市')]
    # 底图,位置,内容,空隙,矩形尺寸及线宽,字体字号颜色,外边框宽度
    gdraw.draw_style(paper, 150, -90, body, mar=(20, 30),
        recsize=(120,60,2), font=('simsun', 60, 4), color=4, box=0)
    
    lut = np.array([[255,255,255],
                    [255,200,100],
                    [255,255,128],
                    [255,255,200],
                    [0  ,0  ,0  ]], dtype=np.uint8)
                    
    return paper.lookup(lut)
コード例 #9
0
    app = wx.App()
    frame = wx.Frame(None, title='Canvas')
    canvas = Canvas(frame, autofit=False, ingrade=True, up=True)
    
    line = mark2shp({'type':'polygon', 'color':(255,0,0), 'lstyle':'o', 'fill':True,
                     'body':[[(0,0),(1000,1000),(2000,0), (0,0)],
                             [(0,0),(100,100),(200,0),(0,0)],
                             [(100,400),(300,100),(300,600),(100,400)]]})
    layer = Layer()
    layer.color = (0,0,0)
    layer.lw = 1

    import json
    import geonumpy.io as gio
    shp = gio.read_shp('C:/Users/54631/Documents/projects/huangqu/demo/shape/province.shp')
    feats = json.loads(shp.to_json())['features']
    for i in feats:
        shp = json2shp(i['geometry'])
        layer.body.append(shp)
    canvas.marks.append(layer)
    
    '''
    image = Image()
    image.img = camera()
    image.pos = (0,0)
    canvas.images.append(image)
    '''
    '''
    image = Image()
    image.img = astronaut()
コード例 #10
0
ファイル: geoio_test.py プロジェクト: spacefan/geonumpy
import geonumpy.io as gio
import matplotlib.pyplot as plt

if __name__ == '__main__':
    gdf = gio.read_shp('../data/shape/shandong.shp')
    print(gdf)
    gdf.plot()
    plt.show()

    print('read modis hdf data:')
    modis = gio.read_hdf(
        '../data/modis/MOD09Q1.A2019017.h28v05.006.2019030120612.hdf', 0)
    print(modis.shape, '\n', modis.crs, '\n', modis.mat)
    plt.imshow(modis, cmap='gray')
    plt.show()

    print('\nread landsat tif data:')
    landsat = gio.read_tif(
        '../data/landsat/LC08_L1TP_122033_20190506_20190506_01_RT_B5.TIF')
    print(modis.shape, '\n', modis.crs, '\n', modis.mat)
    plt.imshow(landsat, cmap='gray')
    plt.show()

    print('\nsave modis as tif')
    gio.write_tif(
        modis, '../data/modis/MOD09Q1.A2019017.h25v05.006.2019030120448.tif')

    box = gio.read_tif_box(
        '../data/landsat/LC08_L1TP_122033_20190506_20190506_01_RT_B5.TIF')
    print(box)
コード例 #11
0
ファイル: io_plgs.py プロジェクト: Image-Py/gistool
 def run(self, para=None):
     a = gio.read_shp(para['path'], encoding='gbk')
     fp, fn = osp.split(para['path'])
     fn, fe = osp.splitext(fn)
     IPy.show_table(a, fn)
コード例 #12
0
ファイル: io_plgs.py プロジェクト: Image-Py/gistool
    #process
    def run(self, para=None):
        a = gio.read_shp(para['path'], encoding='gbk')
        fp, fn = osp.split(para['path'])
        fn, fe = osp.splitext(fn)
        IPy.show_table(a, fn)


def show_shp(data, title):
    IPy.show_table(data, title)


ViewerManager.add('shp', show_shp)

write_shp = lambda path, data: gio.write_shp(data, path)
read_shp = lambda path: gio.read_shp(path)

ReaderManager.add('shp', read_shp, tag='tab')
WriterManager.add('shp', write_shp, tag='tab')


class OpenShp(tableio.Reader):
    title = 'Shapefile Open'
    filt = ['shp']


class WriteShp(tableio.Writer):
    title = 'Shapefile Write'
    filt = ['shp']