编程技术辅助规划设计方法探寻

2016-10-10 05:15包瑞清刘永BAORuiqingLIUYong
风景园林 2016年2期
关键词:编程语言编程景观

包瑞清 刘永BAO Rui-qing LIU Yong

编程技术辅助规划设计方法探寻

包瑞清 刘永
BAO Rui-qing LIU Yong

随着计算机技术的发展和编程语言的成熟与完善,编程语言在风景园林学科中的应用价值逐步显现并承担起越来越重要的作用。编程设计是面向建筑、城乡规划、风景园林学科,以编程语言为基础,解决规划设计问题的方法。编程景观则面向风景园林专业,依据风景园林学科特点,使用相关编程语言解决该领域的问题。具体阐述编程景观方法时,在编程地形与设计思维方式的转变中,在一定控制条件下基于参数化编写地形衍生的程序,以及基于地形的部分相关程序处理技术,探索智能化设计的应用;在基于数据、依托编程,跨平台解决问题中,将地理信息系统和城市洪涝灾害研究结合起来,强调基于地理信息系统、跨学科相关研究中,编程语言的数据处理和分析技术。

编程景观;参数化设计;地理信息系统;低影响开发

修回日期:2016-02-01

风景园林学本身就是一门建立在广泛自然科学和人文艺术学科基础上的应用学科,是基于技术的空间艺术营建。在计算机辅助设计领域,伴随计算机技术的发展以及编程语言的发展和趋于成熟,各种新思想不断涌现,从传统的计算机辅助制图到参数化、建筑信息模型、规划设计相关的大数据分析、地理信息系统、复杂系统和机器人技术,都从跨学科的角度,借助相关学科的研究渗入到规划设计领域。大部分新思想都是依托于计算机编程语言,或由编程语言衍生,或者诉诸于编程语言。编程语言作为辅助规划设计发展的支撑技术,其重用性日益凸显,成为跨学科研究的纽带。

面向设计师编程设计方法是指面向建筑、风景园林和城乡规划设计领域设计师,使用CAD系统和相关设计软件的脚本语言或者直接使用编程语言编写程序解决设计相关问题的过程。定义中界定了使用编程语言的对象,区分一般意义上的系统程序开发、网页开发以及游戏等的程序员。同时,确定以程序编写作为解决设计问题的手段,强调设计过程中的编程思维,即以编程思维解决设计问题的过程,一般都可以界定为面向设计师的编程设计方法。编程景观基于面向设计师编程设计方法,从风景园林学科领域切入,探索编程技术在该学科的应用价值。编程景观需要立足于跨学科相关领域,使用即有的编程技术和学科知识来解决风景园林规划设计相关问题。

编程景观的相关研究探索可以渗透到大部分即有的具体研究方向中,例如从园林要素出发的编程地形、编程种植、道路、置石和建筑等;以及解决某一具体问题,例如搭接不同分析平台的数据接口,提高分析问题的效率;同时立足于跨学科领域,例如基于地理信息系统的、基于参数化的、基于景观信息化的、基于复杂系统的、基于机器人的不断横向扩展和纵向探索数字景观体系结构来解决风景园林学中的问题。本文就编程景观的研究探索从分析设计层面的编程地形和规划分析层面的城市洪涝灾害研究进一步阐述编程设计应用的价值,并说明当今设计师知识结构的调整对推动学科的发展具有重要意义。

1 编程地形与设计思维方式的转变

地形设计手工途径的逐步推导过程,需要设计思维的心手合一,通过逐步的反复推敲,设计过程中不断的灵光闪现与曾经记忆的搜索,或直接文献图库的查阅,从那些相关或者看似不相关的形式中碰撞出最初的原型,根据场地的需要不断修正与细化。对于自然地形的设计需要研究自然山川的地形走势,借助抽象出来的等高线研究空间开合变化为己所用。然而,在关注借助抽象出来的等高线设计地形,进而表达三维空间的时候,自然地形的生成仅仅是由于随机地壳板块碰撞挤压或者太阳及月球的引子所形成,那么在我们“师法自然”、“身即山川而取之”的时候,是否可以尝试转变设计思维方式,从地形生成的本源上建立程序,即构建逻辑来模拟地形衍生的过程。

2012年9月开始着手山东聊城职业技术学院中心区的改造项目,由于学校中轴南门受到阿尔卡迪亚居住楼项目的影响,学校内部空间感受到压迫,不利于学校《礼学•学记第十八》所说“故君子之于学也,藏焉修焉,息焉游焉”寻求幽静学习环境的基本要求。在环境改善上采取了地形营造的方式,减弱 “俗世”对学校自然环境的负面影响,同时改善银杏林区域规则的种植方式,营造“自山前而窥山后,谓之深远”之意的山林意境,两个区域空间营造上一个主为观, 一个主为游。设计本质上更加强调“精而造疏,简而意足”的主张,表现的是宋代文人写意山水园简、疏、雅、野的风格特征,去繁缛,拒装饰,更多侧重于营造意境美的倾向。例如《洛阳名园记》中记述的环溪“园中树,松桧花朩,千株皆品,别种列除,其中为岛坞,使可张幄次,各待其盛而赏之”。因为本次项目主要采取的措施为地形营造,并采取自然地形的形式,因此作为编程景观的实践项目,探索编程地形的方法。

程序编写的初始条件应该是可以控制的,并能够与设计场地发生直接关联,进而建立互动的虚拟三维模型。这个过程需要设置多个关键参数,例如用于调整地形的高度、偏移以及柔滑程度。参数的设置应该满足以下几个条件:(1)参数的设置应该与设计师设计的习惯相协调,便于设计方案的调整;(2)参数的控制应该受制于场地的需求,从而获取满足场地要求的形式结果;(3)输入参数(控制参数)没有数量的限制,可以根据设计需求任意增减。

本案例中程序的编写是基于Rhinoceros的Grasshopper和Python得以实现,即基于参数化技术的编程设计。参数化可以通过对于参数的控制获取不同可预测甚至不可预测的形式,拓展设计师思维的触角。就发挥参数化价值,实现参数化意义、目的,达到对设计方法的影响,需要将参数化建立在编程设计基础之上。通过编程语言而不是对话框或者尺寸驱动达到参数化的目的,使得设计的流程越加自由并具有创造性。基于编程设计方法,通过逻辑构建实现设计的参数化过程,是将几何体直接的构建关系或者分析问题的流程通过语言的方式表述出来,建立互相关联的有机体或者解决问题的程序过程,通过不同初始条件的设定和过程参数的调整获取不同形式比较或者同一逻辑不同问题的解析。一方面编程过程本身就是一个梳理思路的过程,具有参数化的意义,相反依据参数化思想,强化这个逻辑构建的过程,有助于更高效的建立合理的程序。

编程地形程序核心的逻辑思想是建立可控制的磁场,磁场中的点在磁场力的作用下发生偏移,模拟自然地形发生的过程。为了更好控制磁场力的变化,借助于蚁群算法(ACO)解决旅行商问题(TSP)的程序建立随机的折线用于调整磁场的变化。图1编程地形逻辑构建中输入条件包括控制输出形式的磁场强度控制、边界控制、光滑地形、等高线距离和点控制等。输出形式包括地形表面(mesh)、等高线和高程点。图2是在不同ACO输入参数随机数控制变化条件下直接获取不同结果的地形形式,研究不同地形在设计场地中的空间变化形式,为进一步的地形营造提供形式参照以及作为设计进一步发展的基础。图3为编程地形节点可视化程序grasshopper的文件,其中Python编写的ACO文件封装在ACO组件中,磁场控制的程序封装在地形设计组件中。

一旦程序建立完成,程序可以直接应用于类似的相关设计研究中,快速获取地形营造的多个原型,用于方案的发展。同时可以继续通过Python语言编写计算坡度、坡向、起伏度和水文等相关的程序,提取地形的基本属性参数。例如图4中高程的可视化以及栅格单元坡向的数据提取;图5中则是利用galapagos进化计算的方法,求取研究区域中哪个黑点具有最大的可视区域;同时,可以编写土方计算的程序,并求取研究区域内土地平整填挖方平衡的高程位置;编写提取山顶点的程序;基于参数化技术的编程设计所建立起来的前后形式相互关联的有机联系,也为智能化的形式反演提供基础,例如根据相关影响因子,利用遗传算法推算适宜区域等。

在分析某一特定问题时,可能已经存在相关求解的途径,例如使用Python语言编写计算坡度、坡向、起伏度和水文等相关属性值时,可以在ArcGIS平台下求解,但是所基于的思想却截然不同,基于参数化目的构建参数之间或者结果形式与影响因子之间的相关关系,可以从影响因子或者从预知的结果直接正向与逆向求解相关问题,即对不同的问题采取不同的思维途径。如果希望能够从复杂系统的角度出发建构程序,研究地表污染物的流经途径和汇集区域的动态过程,借助于低影响开发(Low Impact Development,LID)设施控制污染物,则可以从微观层面分析主体之间的相互关系,由微观个体之间的行为规则研究宏观的变化即涌现。编程可以解决不同平台之间的数据接口问题,在应用复杂系统思想,基于多智能体仿真模拟程序编写平台NetLogo建立污染源汇流情况,将编程地形获得的高程点数据通过程序编写存为符合NetLogo输入要求的文本文件,在NetLogo中加载,并再次使用NetLogo编写程序进行分析。如图6,程序主要包括“to load-patch-data”数据调入例程、“to show-patch-data”显示高程例程、“to flow”地表径流例程、“to go”基本运算例程、“to save-data”和“to write-to-file”保存数据例程。图中红色点即为监测的污染源。

基于语言编程地形逻辑构建的途径不局限于形式,而是能够以数据为基本核心,衍生地形形式原型并发展地形相关属性与设计相关关系,根据场地设计提出的问题,寻找适宜的解决思路。这个过程同样可以发展到,编程种植,研究植物群落的生长演替过程;编程置石,探究唐宋置石规律;编程建筑,建立几何形体间参数化关系,以及基于参数化下生态、结构分析下形体变化的优化算法。本例地形程序的编写将边界作为输入的参数,更多的从地形艺术空间上着手。实际上,在很多规划设计中,设计会受到更多自身或者外在条件的影响,如果希望将这些影响作为输入参数来控制设计的最终形式,将会获得更加理性的形式结果。但是同时需要明确设计的艺术性与影响因子逻辑参数之间潜在的制约关系,当获取一个在功能上满足要求,适合于场地需求,并具有一定设计艺术水平多种要求的条件时,调整程序的逻辑捕捉到这个平衡就越加重要。

图7是中心区建设过程和建设后地形营造。虽然在设计过程中采用了新的技术来辅助设计,但是施工却是传统、非智能化的过程,这个从设计到施工的不连续性,使得整个流程未形成智能化技术的一体化。建立设计到施工一体化过程需要借助于景观信息模型(Landscape Information Modeling,LIM)的进一步发展,实现设计阶段到施工阶段的平稳过渡。

2 基于数据、依托编程,跨平台解决问题的途径

规划的过程往往是对即有条件分析研究提出解决策略的过程,例如在绿地系统规划设计过程中,对城市现有绿地情况的调查,提出当前绿地系统存在的问题并给予解决的策略。而随着地理信息系统的发展,尤其通过遥感影像获取基础数据上,规划设计的方法也应进行必要的调整。不仅在数据的采集、存储、管理、运算、显示上,同时应将数据分析作为规划设计方法的重要内容,通过对即有数据的分析,定量、定性、准确的研究问题。

2015年秋季,西安建筑科技大学建筑学院风景园林系绿地系统课题组,针对陕西省户县绿地系统规划尝试提出新的解决策略。在研究区域层面上,分为两个层级,一个是县域层级的景观安全格局分析,从水安全、生物安全、地质灾害安全、视觉安全和人文安全等方面构建综合安全格局,提出基于安全格局的乡土文化遗产廊道格局和战略点规划;在中心城区层面上,从洪涝灾害、城区生物安全和人文景观上细分为三个方面。本次研究主要探索城市绿地系统与城市洪涝灾害之间的关系,提出解决问题的规划思路和技术路线。基于风景园林学科来探索城市洪涝灾害的问题,如何限定研究的范围,避免较大学科间的跨度,并能够从水利工程、水土保持等专业中找到切入点或者碰触点,主要从两个方面来对城市绿地系统与洪涝灾害关系提出解决思路:一个方面是根据殷学文在《城乡治理与规划改革——2014中国城市规划年会论文集(01城市安全与防灾规划)》中《城市绿地景观格局对雨洪调蓄功能的影响》一文提出以对景观生态学指数的评价构建城市排水压力空间分布的方法确定低影响开发(LID)设施潜在的布局区域;另一个途径是基于美国EPA(Environmental Protection Agency,环境保护署) SWMM(storm water management model,暴雨洪水管理模型)模拟开发前后以及低影响开发(LID)设施调控下动态降水-径流模式。

图8给出了基本的技术路线,左侧为遥感(Remote Sensing,RS)和地理信息系统(Geographic Information System,GIS)处理部分。首先对获取的2015年4月28日的Landsat 8遥感影像进行辐射校正,包括辐射定标和大气校正。 不管是计算景观指数,还是SWMM模拟的参数输入,都需要根据分析的目的对图像进行分类,重点提取不透水区域。本例采用分类回归树算法(Classification and Regression Tree,CART),采用从Landsat 8多光谱(MultiSpectral)衍生的多源数据,包括主成成分分析中信噪比最高的前三个分量、城市建成区指数BUAI(Built Up Area Index)、归一化植被指数NDVI(Normalized Difference Vegetation Index)、改进型归一化水体指数MNDWI(Modified Normalized Difference Water Index)和裸土指数BI(Bare soil Index)。图9右侧为图像融合后分辨率为15m的真彩色图像,左侧深灰色区域为分类回归树算法计算获取的不透水区域。

首先计算城市绿地系统与洪涝灾害关系解决思路中景观指数评价城市排水压力空间分布。可以由已经获取的不透水区域分类图,直接在Fragstats中计算斑块类型面积(Class area,CA)、 斑 块 密 度(Patch Density,PD)、 景 观 破 碎 度(Landscape Division Index,LDI)、斑块连接 度(Connectance Index, Connect)和斑块结合度(Cohesion),并在ArcGIS中加载。为了提升操作的效率,直接通过Python编写脚本程序,采用最大最小值法对景观指数数据标准化化处理,使得数据都落在(0,1)之间,具体语句为:

raster_remap=(raster_r-raster_r.minimum)/ (raster_r.maximum-raster_r.minimum)

其中raster_r为各个景观指数每个单元栅格的值,raster_r.minimum为各个景观指数最小值,raster_r.maximum为各个景观指数最大值。对影响城市排水压力空间分布标准化处理后的景观指数赋予相应权重计算获取城市排水压力的综合分析图,具体语句为:

evaluation=ca_remap*0.4774+pd_ remap*0.0602+division_remap*0.2907+connect_ remap*0.1130+cohesion_remap*0.0586。

图10为计算结果,颜色越红表示该区域城市排水压力越大,绿地雨洪调蓄功能较弱;颜色越绿表示该区域排水压力越小,绿地雨洪调蓄功能较强。城市排水压力的分布与不透水区域和绿地区域的分布有直接空间上的联系,根据空间分布情况选择布置适合的低影响开发(LID)设施增强渗、滞、蓄、净、用和排的作用。在不透水区域与绿地之间的过渡区域可以设置干式/湿式植草沟、植被缓冲带,结合绿地设置雨水湿地、湿塘等设施,在城市排水压力较大的城市核心区,增加透水铺地使用的比例,建立绿色屋顶、下沉式绿地、生物滞留设施和渗井等,通过低影响开发(LID)设施的设置有效补充地下水、消减峰值流量、净化雨水和集蓄利用雨水。

在进一步探索城市绿地系统与洪涝灾害之间的关系,将对城市开发前后以及采取低影响开发(LID)设施后,径流系数等相关参数进行模拟计算,并对具体低影响开发(LID)设施布局给出反馈的建议。基于GDEM30m高程数据进行水文分析,建立SWMM模拟所需要的输入参数,包括对地表径流的提取获得划分的子流域区域、面积、地表水流动路径的特征宽度、平均坡度、子流域中不透水面积所占的比例,以及出水口位置的确定和高程等。整个计算的流程和建立SWMM的.inp格式文件的输出均在基于地理信息系统ArcGIS下通过Python语言编写相应程序计算完成。在确定子流域区域研究范围时,为了保证子流域研究区域的完整性,不以中心城区行政范围为边界,如图11,同时计算获取每一个子流域不透水区域的比例,颜色越红不透水区域的比例越大,城市建设开发的程度越高。图12为子流域平均坡度变化情况,颜色越蓝坡度越大,其中在子流域中分布的红点是出水口的位置,分布在子流域高程相对较低处。

本例脚本程序约300行,包括SWMM基本输入参数的计算、.inp格式的输出和径流系数调回ArcGIS平台等三个部分。其中通过Python编程建立符合SWMM输入.inp文件的格式,可以通过直接打开一个.inp文件确认每行数据记录的内容;同时部分参数设置参考EPA的〈Storm Water Management Model Applications Manual〉。本例使用SWMM模拟是以服务于绿地系统规划为目的,排除市政雨水管网后重点比较开发前后和低影响开发(LID)设施布置与否对径流的影响。

由于一定控制率对应的设计雨量在是否加入低影响开发(LID)设施的运行中体现不明显,所以选取该地10年一遇的设计雨型作为SWMM模型中的运行参数,可采用芝加哥降雨计算公式按需计算。

降雨量根据当地气象资料,选取至少近10年降雨量资料确定。对于陕西关中地区,其暴雨强度可按下式计算:

式中 q——降雨强度,L/(s•hm2);

P——重现期,a;

t——降雨历时,min。

对于陕西地区可采用芝加哥雨型进行设计,其具体降雨量分布如下式:

当0≤t≤ta时:

当tb≤t≤T时:

式中:

A、b、n——暴雨雨强计算公式中地方参数,A=16.715(1+1.1658lgP),b=16.813,n=0.9302;

r——雨峰系数,降雨开始至暴雨洪峰形成的时间与总降雨历时的比例,一般在0.3~0.5之间,常取0.5;

ia——峰前雨强,mm/min;

ib——峰后雨强,mm/min;

ta——峰前降雨历时,min;

tb——峰后降雨历时,min;

t ——总降雨历时min。

在划分汇水分区时,以满足水文格局和安全格局的前提下,尽量以区域排水坡度为依据。地表漫流长度控制在150m以内。

图13为开发前后各个子流域径流系数对比情况,由于不透水区域比例的增加,径流系数相应改变,为了比较开发前后各个子流域径流系数变化的幅度,编写脚本增加字段,读取计算后径流系数并计算差值,图14显示颜色越黑的区域开发前后径流系数变化幅度越大。选取变化幅度相对较大的S71子流域,计算开发前后S71子流域径流过程线,如图15,因为不透水区域比例的大幅度增加,开发前后径流变化幅度较大,高峰径流发生在高峰降雨时,并且一旦降雨停止,开发后的过程线以更快的速度下降。

参照陕西省西咸新区海绵城市建设目标,50年一遇建成区综合径流系数控制在0.3,建成区可渗透地面面积比例不低于40%,天然水域面积保持程度不得减少;以及细化控制目标中下沉式绿地建设比例在市政道路、广场/停车场、商业区、住宅区、公服用地、工业区、绿廊和城市公园中所占最小比例为40%的条件,在各个子流域中按比例增加低影响开发(LID)设施,可以参考城市排水压力设置低影响开发(LID)设施,包括生物滞留设施(Bio-Retention Cell),设计蓄水深度为300mm和透水铺地(Permeable Pavement),计算模拟结果如图16。在10年一遇设计雨型模拟中,低影响开发(LID)调控后径流系数减少,各子流域平均径流系数由0.51控制到约0.27。

第一个案例基于参数化阐述了智能化设计的过程,编程设计方法对设计本身形式有较大的控制,截然不同于传统方案推敲的过程,能够直接获取空间形式;第二个案例基于地理信息系统,解决必然面临的数据处理、分析等相关问题,推进基于数字景观的规划设计顺利发展。编程设计具有较广泛的扩展性,不仅可以建立几何模型部分间的参数化关系,强调部分之间的因果联系,达到影响因子(参数)对几何形式的影响。其中建立具有参数化关系的几何模型,控制几何模型的影响因子可以是气象数据、水文数据等,同时从传感器中获取的数据,例如旋转角度电位计、光线传感器、倾斜传感器、火焰传感器、温湿度传感器以及无线信号,都可以作为影响因子影响几何形式的变化;另外基于复杂系统,在多智能体仿真中设置智能体规则,涌现宏观形式,例如基于多智能体的地表径流分析,自然演替的生态过程模拟等;基于地理信息系统与地统计,使用公交刷卡数据、出租车轨迹数据和社会化网络数据的大数据分析,例如使用微博数据计算反映城市土地利用均衡程度的信息熵;利用传感器、物理输出建立机器人,进行智能化结构的原型设计以及加工建造。未来的建筑必然趋于智能化,在各类传感器的帮助下可以将建筑“物联”,实现建筑与环境,建筑与人行为之间的关联,由传感器或者参数驱动下的物理输出,控制舵机、步进电机等建筑结构机械设计;以及由程序和GPS定位系统控制下的大型施工机械。基于数据的设计分析过程因为使用途径上的差异,异常丰富,并不断的产生着新的创造影响设计的过程,设计建造的过程和设计的管理。

推进数字景观和编程设计的方法,对设计师的知识架构提出了新的要求。基于数字景观的设计思维更多倾向于数理逻辑思维,而所涉及的每一个领域往往可以借助于编程语言来有效解决问题,编程语言本身的思维方式也恰恰反映了数字景观思维的本质,编程景观以编程语言为依托,实现艺术与技术的碰撞。但是同时也需要理性的看待编程技术辅助规划设计的方法途径,编程设计方法更应是对学科本身知识结构的拓展,自身在具有无限拓展能力的同时,也存在着应用上的局限性。目前希望能够指望一个或者多个程序自动完成一个项目的可能性很难,而且即使达到了这个目的,每个设计师对艺术的评判各不相同,即使具有相同的艺术形式倾向,具有明显逻辑特征的程序也只会让更多的设计变得枯燥乏味。如何正确的看待和应用编程技术,对于它的理解只有在具体的项目实践中判断,对于碰到的任何问题都可以思考使用编程技术来解决,并评估其可行性以及是否优于一般的方法。

[1]包瑞清.编程景观[M].南京:江苏凤凰科学技术出版社,2015.

[2]殷学文,俞孔坚,李迪华.城市绿地景观格局对雨洪调蓄功能的影响[C]//中国城市规划学会.城乡治理与规划改革——2014中国城市规划年会论文集.北京:中国建筑工业出版社,2014.

[3]EPA. Strom Water Management Model Reference Manual Volume1-Hydrology[Z].2015.

[4]Jorge Gironás, Larry A. Roesner, Jennifer Davis. Storm Water Management Model Applications Manual[Z].2009:7.

A Study on the Method of Programming Technology Aided Planning and Design

With development of computer technology and programming languages, programming is playing an increasingly important role in Landscape Architecture subject. Programming Design is an approach to solve problems of plan and design in Architecture, Urban Planning and Landscape Architecture by the programming language. According to the characteristics of landscape, Programming Landscape aims to solve problems in Landscape Architecture. The paper illustrates the method of programming landscape architecture in details, to write the derivative program in the exchange between the terrain programming and the design thoughts, and then figure out the parametrics which is under the certain controlled conditions. And explore the applications of intelligent design which is based on the relevant procedure of the terrain. Combining GIS and city flood disaster researches to solve the problems under the data program and cross-platform situation,which emphasizes the relevant researches based on the geographic information system and cross-platform, and the technology of programming language data processing analysis.

Programming Landscape; Parametric Design; Geographic Information System; Low Impact Development

TU986

A

1673-1530(2016)02-0026-07

10.14085/j.fjyl.2016.02.0026.07

2015-12-15

包瑞清/1980年生/男/河北人/西安建筑科技大学建筑学院讲师/博士/研究方向:数字景观(西安710055)

刘永/1987年生/男/ 河南人/西安建筑科技大学硕士/研究方向:低影响开发 (西安710055)

猜你喜欢
编程语言编程景观
基于对计算机软件Java编程及应用的分析
基于JavaScript编程语言之 闭包技术在焦点轮播上的应用
景观别墅
景观软装在地产景观的应用及市场前景
编程,是一种态度
元征X-431实测:奔驰发动机编程
编程小能手
包罗万象的室内景观
纺织机上诞生的编程
《景观平面图》