当前位置:文档之家› 零售引力模型

零售引力模型

最近我们一直在开发基于Java的软件组件集合的土地使用领域交通建模。

该系统被设计用于集成各种开源工具对于未来城市的快速评估。

我们利用广泛的面向对象技术实施的总体框架和数据交换的环境,有潜力像GIS,仿真模型,管理工具,数据库和其他外部嵌入常见的子系统数据源。

在这篇文章中,我将介绍如何在Java平台上使用运行空间相互作用模型基本库,我们已经开发的背景下,拟。

该库定义了一组类代表一组可能行为的空间交互模型基于威尔逊(1972)。

可能是从设计的角度来看这个库的更有趣的部分之一是利用策略模式来实现空间互动模式的家庭。

这些行为应该是柔性的,以被插入到一个应用程序,改变在飞行的功能。

UML类图如下所示:基于UML类图上,有四种方式来执行空间相互作用的运行模型(重力,生产约束,吸引力约束和双约束)和两个的方式来执行该行程成本矩阵的一般化(反幂函数和负指数函数)。

SpatialInteractionModel - 这是将使用不同的策略来运行的类模型。

它使一个参考ISpatialInterationModel实例。

该类使用setTypeOfSpatialInteractionModel方法,以取代目前的策略与其他策略。

还将使用不同的策略使用该方法来计算广义的旅行费用setTypeOfDistanceFunction。

ISpatialInteractionModel - 该接口定义了所有可用的方法SpatialInteractionModel使用。

GravityModel,ProductionConstrainedModel,AttractionConstrainedModel和ProductionAttractionConstrainedModel - 这些类实现ISpatialInteractionModel接口使用特定的一组的每个calculateInteractions方法的规则。

InversePowerFunction和NegativeExponentialFunction - 这些类实现使用特定的规则对每个calculateDistanceFuntion IDistanceFunction接口方法。

从哪里开始?本快速指南介绍了在Eclipse中我们的空间相互作用模型库的使用作为JavaIDE。

为实现本教程是必要熟悉空间的基本概念交互模式和与Java面向对象编程和使用的Eclipse IDE中。

如果你不熟悉的空间相互作用的模型,我会建议你先阅读本文章艾伦·威尔逊爵士教授。

如果你不熟悉的Eclipse IDE,我会建议你先试试这个教程由拉尔斯沃格尔。

二手库本教程的发展将需要以下工具对于空间相互作用的模型,我们会从我们的谷歌使用最新的jar文件代码项目主页CASA-拟。

第1步:定义问题为了解释如何运行空间相互作用的模型与我们的图书馆,我们会考虑的问题预测流四区城市之间的购物支出。

购物支出数据为四区城市将是:每周的购物支出(GBP)纬向零售楼面(平方米)区域之间的旅行费用第2步:导入项目到Eclipse中首先,你需要下载我们已经准备了本指南从这里开始的Eclipse项目。

启动Eclipse后,从菜单中选择文件 - >导入。

在导入向导中选择“现有项目到工作区”,然后单击下一步。

选择“选择存档文件”选项,并点击浏览选择你刚下载文件。

选择文件后单击Finish项目导入到工作区。

一个新的项目创建并显示在Project Explorer视图中的文件夹。

打开相应的文件夹在“uk.ac.ucl.casa.simulacra.first”项目。

选择文件夹SRC,选择包“uk.ac.ucl.casa.simulacra.first”,然后打开类MyFirstSpatialInteractionModel。

这个类应该是这样的:包uk.ac.ucl.casa.simulacra.first;公共类MyFirst空间交互模型{/*** @参数的args*/公共静态无效的主要(字串[] args){// TODO自动生成方法存根双[] shoppingExpenditure={}355455255570;双[] retailFloorspace={}720376930321;双[] [] travelCost={{3,11,18,22},{12,3,13,19},{15,13,5,7},{24,18,8,5}};}}注意,在第1步类已经宣布该问题的定义相关的变量。

步骤3.创建一个空间相互作用的模型对象要创建空间相互作用模型中,我们只需要在以下行后添加几行双[] [] travelCost={{3,11,18,22},{12,3,13,19},{15,13,5,7},{24,18,8,5}};该行是SpatialInteractionModel模式=新SpatialInteractionModel (shoppingExpenditure,retailFloorspace);model.setTypeSpatialInteractionModel(新AttractionConstrainedModel());model.setTypeDistanceFunction(新NegativeExponentialFunction ());第4步:运行模型并打印结果要获得预测的行程矩阵购物支出流向了四圈的城市,我们只是需要用下面的代码行运行模式双[] [] tripMatrix= model.calculateInteractions(travelCost,0.1);需要注意的是运行模式,calculateInteractions()方法需要的参数,travelCost它已被定义以及摩擦参数。

对于本教程的目的,我们将使用一个天真的方式来分配摩擦参数的值,我们将简单的猜测值。

在下面的文章中,我们将讨论不同的方法实现计算更好估计摩擦参数。

现在,我们只需要打印的购物支出流量增加的预测行程矩阵下面几行System.out.println("Origin " + "Destination " + "Flow");for (int i = 0; i < shoppingExpenditure.length; i++) {for (int j = 0; j < retailFloorspace.length; j++) { System.out.println(i + " " + j + " " + tripMatrix[i][j]);}}Finally, to see the results you just need to run the application by right click on theMyFirstSpatialInteractionModel.java editor -> Run as -> Java ApplciationAt the end your class should look like:package uk.ac.ucl.casa.simulacra.first;importuk.ac.ucl.casa.scale.spatialinteraction.exception.SpatialUn itsException;importuk.ac.ucl.casa.scale.spatialinteraction.model.AttractionCon strainedModel;importuk.ac.ucl.casa.scale.spatialinteraction.model.NegativeExpon entialFunction;importuk.ac.ucl.casa.scale.spatialinteraction.model.SpatialIntera ctionModel;public class MyFirstSpatialInteractionModel {/*** @param args* @throws SpatialUnitsException*/public static void main(String[] args) throwsSpatialUnitsException {// TODO Auto-generated method stubdouble[] shoppingExpenditure = {355,455,255,570};double[] retailFloorspace = {720,376,930,321};double[][] travelCost ={{3,11,18,22},{12,3,13,19},{15,13,5,7},{24,18,8,5}}; SpatialInteractionModel model = new SpatialInteractionModel(shoppingExpenditure, retailFloorspace);model.setTypeSpatialInteractionModel(new AttractionConstrainedModel());model.setTypeDistanceFunction(new NegativeExponentialFunction());double[][] tripMatrix =model.calculateInteractions(travelCost, 0.1);System.out.println("Origin " + "Destination " + "Flow"); for (int i = 0; i < shoppingExpenditure.length; i++) {for (int j = 0; j < retailFloorspace.length; j++) { System.out.println(i + " " + j + " " + tripMatrix[i][j]); }}}}最后评论该库一直是基于对拟像与住宅,零售和就业的位置处理的第一个车型之一的实施。

在这里,你可以看到什么样的应用程序看起来像一个样关于拟像本网站展示了土地使用交通模型,城市的复杂性和可持续性的研究从中心高级空间分析,伦敦大学学院。

术语拟像,最初是由鲍德里亚创造,代表了造型属的多样性来探讨城市系统和词的发挥是相当有意义的,因为我们越来越多地认为模型作为探索了工具的现实,而不是现实本身的表达。

相关主题