0x01.安装nodejs
# i. 下载安装包 # ii. 加入环境变量
0x02.安装mongodb
# i. 下载安装包 # ii. 加入环境变量 # iii. 手动创建 D:\data\db mongod --dbpath D:\data\db
0x01.安装nodejs
# i. 下载安装包 # ii. 加入环境变量
0x02.安装mongodb
# i. 下载安装包 # ii. 加入环境变量 # iii. 手动创建 D:\data\db mongod --dbpath D:\data\db
sudo apt-get update sudo apt-get upgrade sudo apt-get install build-essential libsqlite3-dev sqlite3 bzip2 libbz2-dev wget https://www.python.org/ftp/python/3.8.7/Python-3.8.7.tgz # 手动下载地址 https://www.python.org/downloads/ tar zxvf Python-3.8.7.tgz cd Python-3.8.7 sudo ./configure sudo make sudo make install
namespace JsonToObject { class Program { static void Main(string[] args) { // 原始字符串 {"c1":1,"c2":"2","c3":3} string json = "{\"c1\":1,\"c2\":\"2\",\"c3\":3}"; // json字符串中的属性比object中多 Obj1 obj1 = JsonConvert.DeserializeObject<Obj1>(json); Console.WriteLine(JsonConvert.SerializeObject(obj1)); // json字符串中的属性和object中一致 Obj2 obj2 = JsonConvert.DeserializeObject<Obj2>(json); Console.WriteLine(JsonConvert.SerializeObject(obj2)); // json字符串中的属性比object中少 Obj3 obj3 = JsonConvert.DeserializeObject<Obj3>(json); Console.WriteLine(JsonConvert.SerializeObject(obj3)); // json字符串中的属性与object中大小写不一致且类型不一致 Obj4 obj4 = JsonConvert.DeserializeObject<Obj4>(json); Console.WriteLine(JsonConvert.SerializeObject(obj4));
CREATE TABLE `mytest` ( `text` varchar(255) DEFAULT '' COMMENT '内容', `create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间' ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
using Newtonsoft.Json; // ... string json = "[{...}]"; DataTable dt = JsonConvert.DeserializeObject<DataTable>(json);
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()
任务说明:需要将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)
任务说明:需要对地图文件进行要素转面,绘制缓冲区,最后面转线,需要处理的文件有一百多个,手工处理费时费力,写一个脚本,批量自动转换
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", "")