控制爱莎公主的走位,躲避来自火王子的攻击,w向上、s向下、a向左、d向右,加速按住shift键。看看谁的积分更高!
1.0版本上线!可以在手机和平板上玩哦。
美术制作:萱萱
人物设计:萱萱
故事情节:萱萱
程序设计:萱萱爸爸
控制爱莎公主的走位,躲避来自火王子的攻击,w向上、s向下、a向左、d向右,加速按住shift键。看看谁的积分更高!
1.0版本上线!可以在手机和平板上玩哦。
美术制作:萱萱
人物设计:萱萱
故事情节:萱萱
程序设计:萱萱爸爸
ArcGis提供了非常便捷的模型构建器,可以将简单的工具步骤组合起来,加入简单的代码后,就能组合形成能完成比较复杂任务的工具。
按照教程,一个初学者可能就能很快的利用cad道路网和地块信息来制作一张用地规划图。但大部分教程中不包含完善的道路网本身的批量化生成和制作。而我就更喜欢研究这类不在任何教程中出现的内容,这才能体现研究的价值。
这次展示的是我设计的利用ArcGis模型构建器设计的“三维日照分析”工具。在分析方面没有问题,但运行时间上还有很大空间。
上面提到的道路中线批量自动转路网(路口倒角)的工具,以后我将分享。
ArcGis地图服务是比较常用的一种在线地理信息共享发布的方式,一般通过网络浏览器进行访问,可以看到地图、查询等服务,但这些服务内容显然难以满足专业的规划设计工作者。
我编写的地图服务爬取代码,利用python的requests库对用户指定的ArcGis地图服务网站进行访问,可以将原始的EsriJson数据分门别类、统一下载。比较利用Qgis,更适合大批量成系统的数据获取工作。
请注意,爬取数据前应获得相应权限。
import json,requests,os,shutil
import pandas as pd
#???为需要爬取的网站
head={'Connection': 'keep-alive', 'Origin': 'http://???', 'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.119 Safari/537.36', 'Accept': '*/*', 'Referer': 'http://???', 'Accept-Encoding': 'gzip, deflate', 'Accept-Language': 'zh-CN,zh;q=0.9'}
alllisturl = '???/js/menu.js'
#地图网站访问url格式
querynumurl = 'http://???/arcgis/rest/services/?/?/MapServer/1/query?f=json&where=1=1&returnIdsOnly=true'
querydetailurl =' http://???/arcgis/rest/services/?/?/MapServer/1/query?f=json&objectIds=624,625,626,627,628,629,630,631&inSR&outSR&returnGeometry=true&outFields=*&returnM=true&returnZ=true'
def getname(a):
temp=[]
if type(a)==list:
for b in a:
temp += [getname(b)]
if type(a)==dict:
if 'nodes' in a.keys():
temp = [a['TEXT'],getname(a['nodes'])]
else:
temp = [a['TEXT'],a['UPDATE'],a['CODE']]
return(temp)
def getname_onlydata(a):
temp=[]
if type(a)==list:
for b in a:
temp += getname_onlydata(b)
if type(a)==dict:
if 'nodes' in a.keys():
temp = getname_onlydata(a['nodes'])
else:
temp = [[a['TEXT'],a['UPDATE'],a['CODE']]]
return(temp)
def clearfullname(lists):
out=[]
for i in lists:
if type(i[-1])==list:
for j in i[-1]:
if type(j)==list:
j1=i[:-1]+j
out.append(j1)
else:
out.append(i)
return(out)
def getlayers (url):
downlayers=[]
i=0
k=10
while k:
print('getting layers',i)
try:
link=url+'/{}'.format(str(i))
link1 = link+'?f=json'
a=requests.get(link1,headers=head).text
b=json.loads(a)
c=list(b.keys())
if len(c)>0:
i+=1
if 'subLayers' in c :
if b['subLayers'] == []:
downlayers.append([b['name'],link])
print(link1)
else:
k-=1
else :
k-=1
except:
k-=1
continue
return(downlayers)
def getdataids (link):
link1 = link+'/query?f=json&where=1%3D1&returnIdsOnly=true'
t = 3
datalist=[]
while t:
print('geting ids')
try:
a=requests.get(link1,headers=head).text
b=json.loads(a)
if 'objectIds' in list(b.keys()):
datalist = b['objectIds']
print(link1)
t=0
else:
t-=1
except:
t-=1
continue
return (datalist)
def getdatalen (link):
link1 = link+'/query?f=json&where=1%3D1&returnCountOnly=true'
t = 3
datalist=[]
while t:
print('geting datalen')
try:
a=requests.get(link1,headers=head).text
b=json.loads(a)
if 'count' in list(b.keys()):
datalist = b['count']
print(link1)
t=0
else:
t-=1
except:
t-=1
continue
return (datalist)
def downesrijson(url,datalist):
b=[]
for i in range(0,len(datalist),200):
print('getting datajson...'+'\n'+url+'\n'+str(i+200))
section = str(datalist[i:i+200]).replace('[','').replace(']','')
downurl = url+'/query?f=json&objectIds={}&returnGeometry=true&outFields=*'.format(section)
t=3
while t:
try:
a=requests.get(downurl,headers=head).text
if i == 0:
b=json.loads(a)
if 'features' in list(b.keys()):
t=0
else:
t-=1
elif i>0:
b1=json.loads(a)
if 'features' in list(b1.keys()):
b['features']+=b1['features']
t=0
else:
t-=1
except:
t-=1
continue
return (b)
if 'datalist.json' not in os.listdir():
a = requests.get(alllisturl,headers=head).text
b=a[a.index('['):-1]
b=b[:b.index('var')]
b=b.replace('\t','')
b=[i for i in b.splitlines() if '//'not in i[:6]]
b= ''.join(b)
b=b.replace(',]',']')
alllist =json.loads(b[:-1])
datalist1 = getname(alllist)
datalist = clearfullname(clearfullname(clearfullname(clearfullname(datalist1))))
with open ('datalist.json','w',encoding='utf-8') as f:
json.dump(datalist,f,ensure_ascii=False)
f.close()
elif 'datalist.json' in os.listdir():
with open ('datalist.json','r',encoding='utf-8') as f:
datalist = json.load(f)
f.close()
#namelevel1 =[i[0] for i in datalist]
#namelevel2 = [j[0] for i in datalist for j in i[1] if type(j)==list]
#namelevel3 = [k[0] for i in datalist for j in i[1] for k in j[1] if type(k)==list]
#namelevel4 = [l[0] for i in datalist for j in i[1] for k in j[1] if type(k)==list for l in k[1] if type(l)==list]
if '下载列表.json' not in os.listdir():
alllayerslist=[]
for i in datalist:
tempdict ={}
tempdict['数据名'] = i[0:-2]
tempdict['更新时间'] = i[-2]
tempdict['数据连接'] = i[-1]
layer = getlayers (i[-1])
layers =[]
for j in layer:
tempd = {}
tempd['层名'] = j[0]
tempd['连接'] = j[1]
tempd['数据量'] = getdatalen (j[1])
layers.append(tempd)
tempdict['下载层'] = layers
alllayerslist.append(tempdict)
#修改重复的层名
for i in alllayerslist:
names = [j['层名'] for j in i['下载层']]
for k,l in enumerate(names):
if names.count(l)>1:
i['下载层'][k]['层名']+=i['下载层'][k]['连接'].split('/')[-1]
with open ('下载列表.json','w',encoding='utf-8') as f:
json.dump(alllayerslist,f,ensure_ascii=False)
f.close()
elif '下载列表.json' in os.listdir():
with open ('下载列表.json','r',encoding='utf-8') as f:
alllayerslist = json.load(f)
f.close()
for i in alllayerslist:
path = './'+'/'.join(i['数据名'][:-1]).replace(':','_')+'/'
filedir = i['数据名'][-1].replace(':','_')+'/'
if not os.path.isdir(path+filedir):
os.makedirs(path+filedir)
for j in i['下载层']:
name = j['层名'].replace(':','_')+'.json'
if os.path.isfile(filedir+name):
shutil.move( filedir+name, path+filedir+name)
shutil.rmtree( filedir)
elif os.path.isfile(filedir.replace('/','')+name):
shutil.move(filedir.replace('/','')+name, path+filedir+name)
elif not os.path.isfile(path+filedir+name):
if type(j['数据量'])==int and 0<j['数据量'] :
downurl =j['连接']
downlist = getdataids(downurl)
datajson = downesrijson(downurl,downlist)
with open (path+filedir+name,'w',encoding='utf-8') as f:
json.dump(datajson,f,ensure_ascii=False)
f.close()
Json是网页数据的一类重要格式,对于使用GIS的规划工作者,最常见的两类是EsriJson和GeoJson。然而,这两类Json格式的数据冗余较大,国内的极海提出了新的数据格式,虽然网络传输便捷但不能直接使用arcgis或Qgis进行转换使用。
对付非通用格式的json数据,要花一点功夫,以下是我用python编写的极海Json转换代码,希望能够帮到您。
import os,json,time,requests
import pandas as pd
import geopandas as gpd
import matplotlib.pyplot as plt
from shapely import geometry
choose = input('转换文件夹内json选1,单个直接输入需要转shp的json名称,不带后缀名:')
def transjsontoshp(name):
try:
with open (name+'.json','r',encoding='utf8')as f:
jasondata = json.load(f)
f.close()
except Exception as Argument:
print (Argument,'\n ......try:gbk')
with open (name+'.json','r',encoding='gbk')as f:
jasondata = json.load(f)
f.close()
listdata =[]
for i in jasondata['data']['features']:
if 'geom' in i.keys() and type( i['geom'])==dict:
listdata .append( {**{'id':i['id']},**i['attrs'],**i['geom']})
elif 'geom' in i.keys() and type( i['geom'])==list:
listdata .append({**{'id':i['id']},**i['attrs'],**{'m':[i['geom']]}})
pddata = pd.DataFrame(listdata)
if 'Point' in jasondata['data']['geometryType']:
pddata['geometry']= [geometry.MultiPoint([geometry.Point(i) for i in j]) for j in pddata['m']]
elif 'Polyline' in jasondata['data']['geometryType']:
pddata['geometry']= [geometry.MultiLineString([geometry.LineString(i) for i in j]) for j in pddata['m']]
elif 'Polygon' in jasondata['data']['geometryType']:
pddata['geometry']= [geometry.MultiPolygon([geometry.Polygon(i) for j in k for i in j]) for k in pddata['m']]
pddata.drop(['m'],axis=1,inplace= True)
gpddata = gpd.GeoDataFrame(pddata)
try:
gpddata.to_file(name+'.shp',driver='ESRI Shapefile',encoding='gbk')
except:
gpddata.to_file(name+'geo.json',driver='GeoJSON',encoding='utf-8')
if choose == '1':
files = [i.split('.json')[0] for i in os.listdir() if '.json'in i]
for f in files:
transjsontoshp(f)
else:
name = choose
transjsontoshp(name)
2019年拜访澳大利亚昆士兰州政府贸易投资局,见证签订战略合作协议。
大家好,我是闷蛋。欢迎大家关注超业余的我来钻健身牛角尖。
今天仍然继续为您带来减肥方面的tips,主题是补剂。
今天的tips可是我花了不少学费才换来的,文中出现的所有补剂图片都是我用过的,看了一遍购物记录后我自己都害怕了……
一、对补剂的态度
补剂对于健身和减肥应该是锦上添花的作用,属于有了更好、没有也行,对最终目标的实现不起决定性作用。那有人问什么起决定性作用?相信仔细看前面几期文章的同学们都会领悟,那就是决心和意志力。
话说这个东西真要有了,干什么不成呢?
二、我对补剂的分类
大类分为用过的 和 没用过的,用过的里面可以分为以下几类:
提高运动能力的
肌酸
提高燃脂效率的
左旋肉碱
CLA共轭亚油酸(有单独配方的,但我买的是复合配方的,图在下面)
增加基础代谢的
咖啡因、育亨宾、番椒提取物、柑橘提取物(每个厂商配方不同,基本都是混合出现)
帮助运动恢复的(这个方面我买的最多,还可以细分3类)
补充蛋白质和氨基酸的
蛋白粉
BCAA(L-亮氨酸、L-异亮氨酸、L-缬氨酸)
提高激素分泌
D-天冬氨酸
ZMA (天冬氨酸镁、天冬氨酸锌、维生素B6)
硼
DHEA(前激素类,不推荐)
刺蒺藜、精氨酸(不推荐)
保护关节和抗氧化的
复合氨糖(氨糖、硫酸软骨素、MSM),对长期运动,尤其是跑步者的关节进行修护;
葡萄籽提取物、番茄红素等植物抗氧化剂,防止自由基侵害;
复合维生素
钙镁锌,运动者需要额外补充一些重要的营养元素,防止抽筋和一些其他不良状况;
其他没用过的我不敢瞎说,不过觉得下面两种东西最好别碰。
减肥茶、几丁质多糖等阻止营养或脂肪吸收的,不知道会不会误伤友军、造成营养不良的别碰;
被专业组织禁用的也别碰,比如麻黄碱类、瘦肉精类,虽然处方药还能开而且在被禁前用的很广泛,但毕竟医学在进步,发现什么副作用也有可能。
三、推荐的补剂
本着确实有用、性价比高的原则,我良心推荐下面几种情况,比较适合运动减肥的朋友们。
基础款:蛋白粉、钙镁锌;
进阶款:肌酸、蛋白粉、ZMA、复合维生素、左旋肉碱;
高级款:肌酸、蛋白粉、ZMA、复合维生素、左旋肉碱、D-天冬氨酸 、提高基础代谢或产热类的补剂、氨糖。
四、选购心得
选择了适合自己的补剂后,最重要的是渠道。
不是不爱国,一些原本平价的补剂国内卖超贵,并且不能保证货源质量。比如ZMA,虽说主要是锌镁和维生素B6,但有的淘宝不用天冬氨酸镁和天冬氨酸锌,改用便宜的氧化镁和氧化锌。不知道是不专业还是偷工减料,总之太不靠谱了。
所以我只用两个渠道,一是iherb买的最多,因为可以免运费,报关手续简单;二是bodybuilding,最专业最全面,打折力度最大,但运费超贵。
今天的tips就到这里。各位想减肥的小伙伴继续加油吧!
微信扫一扫
关注该公众号
大家好,我是闷蛋。欢迎大家关注超业余的我来钻健身牛角尖。
今天仍然继续为您带来减肥方面的tips,主题是饮食管理。
网上充斥着大量关于减肥该吃什么的文章,看来看去觉得不靠谱的太多。当然,还是老样子,出门右拐有比较靠谱和全面的文章推荐给大家。读了许多文章,闷蛋化繁为简总结了一些小小的tips,减肥主要是靠多消耗、少摄入,简单地说减肥要关心的是不吃什么和该怎么吃。
一、少吃多餐
施瓦辛格在他的书里写关于“吃的频率”,认为少吃多餐能够促进增肌减脂。理由很简单,假如每天把热量控制在合理范围,多餐可以使你很少在极其饥饿的情况下进食,身体就没有理由把摄入的食物储存成脂肪。
州长好有道理
当然,这个方法对缺乏自控力,一开吃就停不下来的减肥者绝对无效。
二、选择轻食
“轻食”就是低盐、低糖、低脂肪和纤维丰富的食物,同样的卡路里总量,轻食更能填饱肚皮,即拒绝了饥肠辘辘,又保证总体热量在控制范围内。
某个只吃土豆的减肥者,成效确实很显著。
从另一个方面讲,选择轻食就必须要戒掉零食和高糖饮料。一块巧克力可以抵得上三碗米饭,一瓶可乐里面有十分之一是糖分,油炸食品、奶油蛋糕就更不用提了。常吃零食绝对可以毁掉一个人的身材。
三、注重平衡,碳水化合物和脂肪摄入不要过于苛刻
还是来自州长的书——
碳水化合物缺乏会导致酮症,身体中的脂肪代谢需要碳水化合物参与,而不进食碳水会导致脂肪不完全燃烧形成酮体,酮体的效率比糖原要低,就会造成行动迟缓、思维不佳、肌肉分解和脱水。
健康饮食中,脂肪是绝对不可或缺的,饮食中可以控制脂肪但不能没有脂肪。而且,有些脂肪是“好脂肪”,比如鱼、坚果等含不饱和脂肪酸的食物,可以补充大脑、调节激素分泌,甚至帮助你燃烧脂肪。而越饱和的脂肪越稳定越难以分解代谢,成为身体里的钉子户,甚至堵塞动脉。
基于上面这些分析,可以尝试做一个饮食计划,每天三个正餐可以只吃原来份量的一半,吃的内容不变(考虑到工作餐不好变),另外增加两餐,用水果、蛋白粉、糙米土豆等复杂碳水化合物,以及少量坚果(毕竟脂肪热量高)来填补一些,份量控制为正餐的一半。这样一天下来可以做到比原来减少约1/3的热量摄入。
今天的tips就到这里。各位小伙伴也可以尝试制定自己的饮食计划吧。
微信扫一扫
关注该公众号
作为武汉领事馆区项目负责人,接待美国驻武汉总领事考察领事馆区。
在墨水湖大桥上,对照美好蓝图,跨湖眺望领事馆区,山水相映的景色不禁打动了在场的各位来宾。