30
2020
06

使用basemap加载shp文件绘制地图

下载安装 pyproj和basemap
import matplotlib.pyplot as plt
from mpl_toolkits.basemap import Basemap
plt.figure(figsize=(12, 8))
plt.subplots_adjust(left=0.08, bottom=0.08, right=0.95, top=0.95, wspace=0.3, hspace=0.2)
m = Basemap(llcrnrlon=92, llcrnrlat=32, urcrnrlon=109, urcrnrlat=43)
m.readshapefile('../shp/县级线图', 'gs')
plt.savefig('../data/县级线图.png')
plt.show()
10
2020
06

python批量shp文件转json文件

任务说明:需要将shp文件转换为json坐标数据文件,然后加载到地图中,使用python中的pyshp批量完成

第一步:安装pyshp

pip install pyshp

第二步:编写代码

import os
import codecs
import shutil
import shapefile


def shp2json(fn_in, fn_out):
    shps = shapefile.Reader(fn_in)
    # print(shps.shapeRecord())
    i_len = len(shps.shapes())
    print(shps.shpLength)
    print('len:%s' % i_len)

    for i_index in range(i_len):
        fn_out_temp = fn_out
        if i_len > 1:
            fn_out_temp = fn_out[:-5] + '_' + str(i_index + 1) + '.json'
        if os.path.exists(fn_out_temp):
            print('find:%s' % fn_out_temp)

        s = '{"data":[\n%s\n]}'
        s_data = ''
        r = shps.shape(i_index)
        print('shapeTypeName:%s' % r.shapeTypeName)
        ls_p = r.points
        print('point count:%s' % len(ls_p))
        i = -1
        for p in ls_p:
            i += 1
            # print(p[0])

            if i > 0:
                s_data += ',\n'
            s_data += '[%s,%s]' % (p[0], p[1])

        s = s % s_data

        f = open(fn_out_temp, 'w')
        f.write(s)
        f.close()
        print('save:%s' % fn_out_temp)
10
2020
06

python调用ArcGIS批量生成缓冲区(多边形等距离放大)

任务说明:需要对地图文件进行要素转面,绘制缓冲区,最后面转线,需要处理的文件有一百多个,手工处理费时费力,写一个脚本,批量自动转换

import os
import time
import arcpy
from arcpy import env

readme = '''批量绘制三级防御圈v1.0.1'''
'''
运行环境ArcGis10.7,python版本2.7
'''


# 要素转面
def l2a(fn_in, fn_out):
    if os.path.exists(('%s.shp' % fn_out).decode('utf-8')):
        print('find:%s.shp' % fn_out)
        return

    if not fn_in.endswith('.shp'):
        fn_in += '.shp'
    arcpy.FeatureToPolygon_management(fn_in, fn_out, "", "NO_ATTRIBUTES", "")
02
2020
06

关于这两天网站卡的说明

最近有朋友反馈网站访问速度非常卡,检查后发现访问圈小猫的链接暴增导致带宽被沾满,现已把该链接改为站外地址

TIM截图20200602093757.png