python画建筑分析图_教你用GH绘制酷炫的流线分析图

重要声明:这篇教程纯粹为绘图方法的介绍,其中的“人流数据”为YY而来的伪数据,没有真实性及可参考性,不可以作为科研方法!请相关课题的研究者使用合理的、正确的、实际的方法采集并分析数据,以免出现数据造假或研究成果不可靠的局面!

欢迎各位大神能够为大家展示数据收集及处理的正确方法^3^,笔者才疏学浅,先为大家撸上绘图方法:

先上最终效果

人流数据上面说过了,是YY而来,通过gh进行组织和处理。

我选择了地理信息完备的Manhattan地区作为案例,使用rhino+grasshopper+ai+ps完成绘图,步骤简介如下:

1.取得地理信息

首先要获得某一地区的城市路网,我首先登陆了OpenStreetMap,搜寻我想要的地区路网,然而网速感人,高墙感人,基本下载不下来,我只能来到另外一个网站下载了New York地区的osm完整文件。

下载下来的osm.bz2文件由于是整个New York地区的,解压开后容量高达3GB,我们只需要Manhattan地区的,因此需要使用一个操作界面极不友善的小插件osmconvert来将osm根据需求范围的经纬度切割至合理大小。

2.地理信息导入Rhino+Grasshopper

由于不会使用GIS类地理信息软件,所以我选择使用Grasshopper中的Elk插件来读取osm文件中的地理信息,读取进来的数据是点云,我选择出主要的路网点云,并将它们连接成线。

3.模拟数据

我在城市区域内随机生成一些点代表人流起点,又在另外一些地方生成随机点代表人流终点,让他们一一对应,由于人们倾向于选择近便的路抵达目的地,所以我求得了起点和终点经过整个地图的最短路径,是不是有点儿像地图导航。这一步骤说起来容易做起来非常复杂,我越过了无数个坑才成功。举一例来说,elk导入进来的路是连续的、不相交的,这种路网是无法求得最短路径的,我需要先让他们交点打断,而用gh自身的逻辑对地图交点打断,对于少量线段可行,对于地图数据如此庞大的信息量,gh的运算法则和逻辑效率低下甚至容易造成崩溃,我又自己写了python代码来将他们互相打断。其他的不说了,说多了都是泪。。。

4.模拟随机感

由于人们的行进路线并不都是是沿着大马路的中线,所以我对模拟出的人流线进行一定量的偏移,让他们产生人们行走时略有偏差的效果。我在这里只加入了简单的偏移,还可以通过连电池模拟出“抄近路”、“走回头路”、“绕远路”等更加真实复杂的特殊情况。

5.导出流线并处理

选中模拟出的流线,烘焙到rhino中,选中烘焙出来的流线,将他们导出为.ai文件,在AI中的处理相当简单,选中所有的流线,调整颜色和粗细,降低透明度,混合模式改为差值或正片叠底均可。最后,将文件导出成背景透明的png。

6.获得底图

还需要能够展示街道和地形的底图。我在mapbox上自己定制了显示风格,取得了manhattan地区的底图,mapbox实际上使用的也是osm数据文件,只不过通过定制显示风格渲染出你所需要的地图图底,这比自己用osm文件画快多了,由于使用了几乎一样的数据来源,我们的流线图和这张底图应该是可以完美对位的。底图制作的具体教程可以参考这一篇答案,感谢作者:

如何做高大上的城市肌理分析图? - Adobe Photoshop

7.最终处理

在ps中将地图底图和背景透明的流线png对好位,这张图就完成了

希望能给大家提供思路~欢迎大神斧正~希望能给大家提供思路~欢迎大神斧正~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/426808.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mac使用Shell(终端)SSH连接远程服务器

前提:要有你需要连接的服务器的ip,端口号,服务器上的账户和密码1、首先打开终端,然后输入sudo su - 回车进入根目录2、然后输入:ssh -p 端口号 服务器用户名ip (例如ssh -p 22 userkunyu119.29.37.63&#…

手机钢琴软件测试自学,手机钢琴app哪个好_自学钢琴软件哪个好_安卓钢琴软件哪个好...

核心提示:手机钢琴的软件有很多,哪些手机钢琴软件是我们想要的呢,下面多特小编就跟您推荐几款比较合适的软件或者app给您参考手机钢琴的软件有很多,哪些手机钢琴软件是我们想要的呢,下面多特小编就跟您推荐几款比较合适的软件或者app给您参考手机上模拟钢琴app是一款…

实例44:python

#两个 3 行 3 列的矩阵,实现其对应位置的数据相加,并返回一个新矩阵: #X [[12,7,3], [4 ,5,6], [7 ,8,9]] #Y [[5,8,1], [6,7,3], [4,5,9]] #!/usr/bin/python -- coding: UTF-8 -- x [[12,7,3], [4,5,6], [7,8,9]] y [[5,8,1]…

r 语言roc_R语言画ROC曲线总结

原文链接:http://tecdat.cn/?p10963​tecdat.cn在本文中,我描述了如何在CRAN中搜索用于绘制ROC曲线的包,并重点介绍了六个有用的包。尽管我从一些我想谈论的软件包开始就有了一些想法,例如ROCR和pROC(我在过去发现它们很有用)&am…

SQLServer之创建非聚集索引

开始之前 典型实现 可以通过下列方法实现非聚集索引: UNIQUE 约束 在创建 UNIQUE 约束时,默认情况下将创建唯一非聚集索引,以便强制 UNIQUE 约束。 如果不存在该表的聚集索引,则可以指定唯一聚集索引。 有关详细信息,请…

outlook2013邮箱找不到服务器,outlook发邮件总提示找不到

2004-11-09无法连接到服务器。 帐户: pop3.sina.com.cn, 服务器: pop3.sina.com.cn, 协议: POP3, 端口: 110, 安全(SSL): 否, 套接字错误: 10060, 错误号: 0x800CCC0E0x800CCC0E 联机到服务器失败,无法与主机建立联机。等一段时间再试。或者用ping 等网络命令测试一…

实例45:python

#累计求和 #!/usr/bin/python -- coding: UTF-8 -- tmp 0 for i in range(1,101): tmp i print (‘The sum is %d’ % tmp)

linux验证cuda安装成功_Linux环境CUDA 4.0入门:验证安装

【IT168 技术】通过之前的文章,笔者介绍了如何在Linux环境下安装CUDA 4.0。因为Linux系统版本众多,因此即使按照相关步骤进行操作,也可能会出现问题。如何验证安装正确与否是本文将要讲解的内容。验证安装是否正确在进行下面的步骤之前&#…

迁移学习综述

参考论文:A Survey on Transfer Learning 1、Introduction 在机器学习和数据挖掘中有一个很普遍的假设就是训练数据和测试数据来源于统一特征空间并服从相同的分布。而当测试数据分布发生改变之后,我们又不得不从新收集同分布的训练数据并从新训练模型。…

清零 css,css样式清零及常用类

/*css样式清零及常用类*/charset "utf-8";/*CSS Reset*//*"微软雅黑","5FAE8F6F96C59ED1","Microsoft YaHei""黑体","9ED14F53""新宋体","65B05B8B4F53""宋体","5B8B4F53&quo…

实例46:python

#题目:求输入数字的平方,如果平方运算后小于 50 则退出。 #!/usr/bin/python -- coding: UTF-8 -- TRUE 1 FALSE 0 def SQ(x): return x * x print (‘如果输入的数字小于 50,程序将停止运行。’) again 1 while again: num int(input…

常见笔顺错误的字_最全汉字书写笔顺规则

最全汉字书写笔顺规则汉字笔画名称汉字书写顺序一个字先写哪一笔,后写哪一笔,叫做笔顺。汉字的笔顺有一定规律,一般如下:常见的笔画笔顺易错字;"忄" 先写点和点,最后写竖。"匕" 先写撇…

ajax时间控件,带有ajax的JQuery中的插件datetimepicker出错

我尝试这样做,禁用所有日期并启用我通过参数传递的日期这段代码不起作用$.ajax({method: "GET",url: "url",}).success(function(msg) {console.log(JSON.parse(msg));var disableIni JSON.parse(msg);var disable [];for (var i 0; i < disableIni.…

软件能用python编程吗_python能做软件开发吗?怎么样?

当然可以&#xff0c;这里以Python桌面软件开发为例&#xff0c;简单介绍几个非常不错的模块和第三方库&#xff0c;感兴趣的朋友可以尝试一下&#xff1a;01tkinter这是一个非常基础的Python GUI开发库(标准库)&#xff0c;免费、开源、跨平台&#xff0c;自带组件和容器完全可…

实例47:python

#题目&#xff1a;两个变量值互换。 encoding:utf-8 ‘’’ 三种简单的变量交换方法——参数法&#xff1b;相互运算法&#xff1b;字符拼剪法 ‘’’ def shuru(): a input(‘请输入a的值’) b input(“请输入b的值”) return a, b def change1(a, b):#加入第三变量 t …

js获取当前时间格式YYYY/MM/DD

//获取当前时间&#xff0c;格式YYYY-MM-DD function getNowFormatDate() {var date new Date();var seperator1 "/";var year date.getFullYear();//年var month date.getMonth() 1;//月var strDate date.getDate(); //日if (month > 1 && month &…

ajax 批量上传图片插件,TinyMCE多图片批量上传(Ajax)教程

需要用上插件&#xff1a;axupimgs插件作者&#xff1a;莫若卿支持版本&#xff1a;5.0.4支持语言&#xff1a;仅中文插件版本&#xff1a;1.6一、axupimgs 插件作用&#xff1a;这是一个tinymce多图片批量上传插件&#xff0c;支持拖拽文件添加&#xff0c;拖拽支持白名单&…

druid 非对称加密_springboot配置文件中mysql的密码进行加密

一、引入依赖方式一&#xff1a;com.alibabadruid1.2.1方式二&#xff1a;com.alibabadruid-spring-boot-starter1.2.1二、对密码加密加密命令java -cp druid-1.2.1.jar com.alibaba.druid.filter.config.ConfigTools you_password得到如下三个部分privateKey:MIIBVQIBADANBgkq…

实例48:python

#题目&#xff1a;数字比较。 #!/usr/bin/env python -- coding:utf-8 -- def compare(num1, num2): if num1 > num2: print("%s大于%s" % (num1, num2)) elif num2 > num1: print("%s大于%s" % (num2, num1)) else: print("%s等于%s" %…

------------------uniq 去重复

uniq #检查文件中重复出现的行-c #显示输出&#xff0c;并在文本行前加重复出现的次数,但如果重复行不连续&#xff0c;则不认为是重复的行-d #只显示重复出现的行-u #只显示不重复出现的行uniq -c passwd #显示重复行的次数uniq -u passwd #只显示不重复出现…