本期介绍基于地理信息平台的国土空间规划平台的规划辅助编制应用。在梳理国土空间规划科学流程的基础上,将规划编制各关键环节信息化、工具化、智能化;充分发挥清华同衡大数据与智能模型相结合的定量评估、精准预测的数据优势与模型优势,提升国土空间规划编制的精准性、科学性。

国土空间规划编制包括明晰规划思路、统一规划基础、开展基础评价、绘制规划底图、编制空间规划等主要任务。在统一规划基础信息前提下,开展资源环境承载能力评价和国土空间开发适宜性评价,划定“三区三线”,形成规划底图;结合国家、区域及城市发展战略,制定规划目标,在规划实施评估的基础上,进行要素配置,并叠加规划底图,形成空间布局方案,完成规划成果编制。规划辅助编制应用针对以上各任务,提供智能化的分析模块。

国土空间规划编制流程

模块1

规划基础信息数据处理

国土空间规划编制需要统一的规划基础信息数据支撑。但目前规划基础信息数据种类多样、来源不一,面临基准坐标、数据格式、时空精度不统一等问题。规划基础信息数据处理模块,建立国土空间规划数据存储、数据治理与数据使用规则;支持图表、文本、空间矢量、栅格、海量高时空精度社会大数据等各类型数据的存储、加载与展示;提供坐标转换、格式转换、时空精度转换等功能,为国土空间规划提供统一的规划基础信息数据。

国土空间规划基础信息数据目录

模块2

“双评价”

资源环境承载能力评价和国土空间开发适宜性评价(简称“双评价”)是开展国土空间规划编制的前提和基础。

其中,资源环境承载能力评价是指在土地资源、水资源、海洋资源、环境、生态、灾害等单项资源环境要素评价的基础上,开展生态功能、农业功能、城镇功能导向的资源环境承载能力集成评价。

国土空间开发适宜性评价以资源环境承载能力评价结果为基础,划定生态保护、农业生产、城镇建设适宜性分区。结合“双评价”结果,进行资源环境秉赋特征、问题与风险识别、潜力分析、情景分析等综合分析。

“双评价”模块以《资源环境承载能力和国土空间开发适宜性评价技术指南》为依据,为每项资源环境要素单项评价、集成评价提供数据处理、要素分级、阈值率定、优化修正、空间分析、统计图表等功能,实现智能化的评价分析、成果核验和输出。

“双评价”流程

​“双评价”模块界面

模块3

“三区三线”划定

“三区三线”作为空间规划底图的载体,是指在“双评价”的基础上,科学有序统筹布局生态、农业、城镇等功能空间,划定生态保护红线、永久基本农田、城镇开发边界等空间管控边界。

“三区三线”划定模块在综合考虑底线保护要求(永久基本农田、各类自然保护地、重点生态功能区、生态环境敏感区和脆弱区保护等)和社会经济发展要素(经济社会发展、产业布局、人口集聚趋势等)基础上,科学测算城镇、农业、生态三类空间比例和开发强度指标。

参照生态红线、城镇开发边界等划定指南,梳理生态保护要素,开展生态功能重要性评价、生态敏感性评价,划定生态保护红线;基于城镇发展现状研究、城镇发展定位和目标分析、城镇发展规模预测、城镇空间格局研究等,划定城镇开发边界;通过永久基本农田现状分析、占补平衡分析等,划定永久基本农田保护线。统筹“双评价”结果、三条控制线位置,初步划定生态、农业、城镇适宜空间。

“三区三线”划定模块提供边界初划的基本流程及分析工具,以及冲突检测、方案协调等功能,实现“三区三线”智能划定、成果检验和输出。

“三区三线”划定流程

“三区三线”划定模块界面

模块4

要素配置及空间布局

围绕底线约束、绿色发展、城乡融合、区域协同、以人为本、品质提升等发展要求,重点解决要素配置问题。通过高时空精度大数据和灵活的专业模型,进行自然资源、生态环境、人口、产业、交通、基础设施等要素现状评估与发展预测模拟,为各类要素定类别、定规模、定位置、定关系,提供科学量化支撑。

<html>
<head>
<meta charset="utf-8" />
<meta
name="viewport"
content="initial-scale=1,maximum-scale=1,user-scalable=no"
/> <title>Point clustering - advanced configuration | Sample | ArcGIS API for JavaScript 4.19</title> <link rel="stylesheet" href="https://js.arcgis.com/4.19/esri/themes/dark/main.css" />
<script src="https://js.arcgis.com/4.19/"></script> <style>
html, body, #viewDiv {
height: 100%;
width: 100%;
margin: 0;
padding: 0;
}
#infoDiv {
padding: 10px;
width: 275px;
}
#sliderValue{
font-weight: bolder;
}
#legendDiv{
width: 260px;
}
#description{
padding: 10px 0 10px 0;
}
</style> <script>
require([
"esri/Map",
"esri/views/MapView",
"esri/layers/FeatureLayer",
"esri/widgets/Legend",
"esri/widgets/Slider",
"esri/widgets/Expand"
], (Map, MapView, FeatureLayer, Legend, Slider, Expand
) => {
// Configure clustering on the layer with a
// popupTemplate displaying the predominant
// fuel type of the power plants in the cluster const clusterLabelThreshold = 1500; const haloColor = "#373837";
const color = "#f0f0f0"; const clusterConfig = {
type: "cluster",
popupTemplate: {
title: "Cluster summary",
content: [
{
type: "text",
text: `
This cluster represents <b>{cluster_count}</b> power plants with an average capacity of <b>{cluster_avg_capacity_mw} megawatts</b>.
The power plants in this cluster produce a total of <b>{expression/total-mw} megawatts</b> of power.`
},
{
type: "text",
text: "Most power plants in this cluster generate power from <b>{cluster_type_fuel1}</b>."
}
],
fieldInfos: [{
fieldName: "cluster_count",
format: {
places: 0,
digitSeparator: true
}
}, {
fieldName: "cluster_avg_capacity_mw",
format: {
places: 2,
digitSeparator: true
}
}, {
fieldName: "expression/total-mw",
format: {
places: 0,
digitSeparator: true
}
}],
expressionInfos: [{
name: "total-mw",
title: "total megawatts",
expression: "$feature.cluster_avg_capacity_mw * $feature.cluster_count"
}]
},
// larger radii look better with multiple label classes
// smaller radii looks better visually
clusterRadius: "120px",
labelsVisible: true,
labelingInfo: [{
symbol: {
type: "text",
haloColor,
haloSize: "1px",
color,
font: {
family: "Noto Sans",
size: "11px"
},
xoffset: 0,
yoffset: "-15px",
},
labelPlacement: "center-center",
labelExpressionInfo: {
expression: "Text($feature.cluster_count, '#,### plants')"
},
where: `cluster_avg_capacity_mw > ${clusterLabelThreshold}`
}, {
symbol: {
type: "text",
haloColor,
haloSize: "2px",
color,
font: {
weight: "bold",
family: "Noto Sans",
size: "18px"
},
xoffset: 0,
yoffset: 0
},
labelPlacement: "center-center",
labelExpressionInfo: {
expression: "$feature.cluster_type_fuel1"
},
where: `cluster_avg_capacity_mw > ${clusterLabelThreshold}`
}, {
symbol: {
type: "text",
haloColor,
haloSize: "1px",
color,
font: {
weight: "bold",
family: "Noto Sans",
size: "12px"
},
xoffset: 0,
yoffset: "15px"
},
deconflictionStrategy: "none",
labelPlacement: "center-center",
labelExpressionInfo: {
expression: `
var value = $feature.cluster_avg_capacity_mw;
var num = Count(Text(Round(value))); Decode(num,
4, Text(value / Pow(10, 3), "##.0k"),
5, Text(value / Pow(10, 3), "##k"),
6, Text(value / Pow(10, 3), "##k"),
7, Text(value / Pow(10, 6), "##.0m"),
Text(value, "#,###")
);
`
},
where: `cluster_avg_capacity_mw > ${clusterLabelThreshold}`
}, {
symbol: {
type: "text",
haloColor,
haloSize: "1px",
color,
font: {
family: "Noto Sans",
size: "11px"
},
xoffset: 0,
yoffset: "-15px",
},
labelPlacement: "above-right",
labelExpressionInfo: {
expression: "Text($feature.cluster_count, '#,### plants')"
},
where: `cluster_avg_capacity_mw <= ${clusterLabelThreshold}`
}, {
symbol: {
type: "text",
haloColor,
haloSize: "2px",
color,
font: {
weight: "bold",
family: "Noto Sans",
size: "18px"
}
},
labelPlacement: "above-right",
labelExpressionInfo: {
expression: "$feature.cluster_type_fuel1"
},
where: `cluster_avg_capacity_mw <= ${clusterLabelThreshold}`
}, {
symbol: {
type: "text",
haloColor,
haloSize: "1px",
color,
font: {
weight: "bold",
family: "Noto Sans",
size: "12px"
},
xoffset: 0,
yoffset: 0
},
labelPlacement: "center-center",
labelExpressionInfo: {
expression: `
var value = $feature.cluster_avg_capacity_mw;
var num = Count(Text(Round(value))); Decode(num,
4, Text(value / Pow(10, 3), "##.0k"),
5, Text(value / Pow(10, 3), "##k"),
6, Text(value / Pow(10, 3), "##k"),
7, Text(value / Pow(10, 6), "##.0m"),
Text(value, "#,###")
);
`
},
where: `cluster_avg_capacity_mw <= ${clusterLabelThreshold}`
}]
}; const layer = new FeatureLayer({
portalItem: {
id: "eb54b44c65b846cca12914b87b315169"
},
featureReduction: clusterConfig,
popupEnabled: true,
labelsVisible: true,
labelingInfo: [{
symbol: {
type: "text",
haloColor,
haloSize: "1px",
color,
font: {
family: "Noto Sans",
size: "11px"
},
xoffset: 0,
yoffset: "-15px",
},
labelPlacement: "center-center",
labelExpressionInfo: {
expression: "$feature.name"
},
where: `capacity_mw > ${clusterLabelThreshold}`
}, {
symbol: {
type: "text",
haloColor,
haloSize: "2px",
color,
font: {
weight: "bold",
family: "Noto Sans",
size: "18px"
},
xoffset: 0,
yoffset: 0
},
labelPlacement: "center-center",
labelExpressionInfo: {
expression: "$feature.fuel1"
},
where: `capacity_mw > ${clusterLabelThreshold}`
}, {
symbol: {
type: "text",
haloColor,
haloSize: "1px",
color,
font: {
weight: "bold",
family: "Noto Sans",
size: "12px"
},
xoffset: 0,
yoffset: "15px"
},
labelPlacement: "center-center",
labelExpressionInfo: {
expression: `
var value = $feature.capacity_mw;
var num = Count(Text(Round(value))); Decode(num,
4, Text(value / Pow(10, 3), "##.0k"),
5, Text(value / Pow(10, 3), "##k"),
6, Text(value / Pow(10, 3), "##k"),
7, Text(value / Pow(10, 6), "##.0m"),
Text(value, "#,###")
);
`
},
where: `capacity_mw > ${clusterLabelThreshold}`
}, {
symbol: {
type: "text",
haloColor,
haloSize: "1px",
color,
font: {
family: "Noto Sans",
size: "11px"
},
xoffset: 0,
yoffset: "-15px",
},
labelPlacement: "above-right",
labelExpressionInfo: {
expression: "$feature.name"
},
where: `capacity_mw <= ${clusterLabelThreshold}`
}, {
symbol: {
type: "text",
haloColor,
haloSize: "2px",
color,
font: {
weight: "bold",
family: "Noto Sans",
size: "18px"
}
},
labelPlacement: "above-right",
labelExpressionInfo: {
expression: "$feature.fuel1"
},
where: `capacity_mw <= ${clusterLabelThreshold}`
}, {
symbol: {
type: "text",
haloColor,
haloSize: "1px",
color,
font: {
weight: "bold",
family: "Noto Sans",
size: "12px"
},
xoffset: 0,
yoffset: 0
},
labelPlacement: "center-center",
labelExpressionInfo: {
expression: `
var value = $feature.cluster_avg_capacity_mw;
var num = Count(Text(Round(value))); Decode(num,
4, Text(value / Pow(10, 3), "##.0k"),
5, Text(value / Pow(10, 3), "##k"),
6, Text(value / Pow(10, 3), "##k"),
7, Text(value / Pow(10, 6), "##.0m"),
Text(value, "#,###")
);
`
},
where: `cluster_avg_capacity_mw <= ${clusterLabelThreshold}`
}]
}); const map = new Map({
basemap: {
portalItem: {
id: "8d91bd39e873417ea21673e0fee87604"
}
},
layers: [layer]
}); const view = new MapView({
container: "viewDiv",
map: map,
extent: {
spatialReference: {
latestWkid: 3857,
wkid: 102100
},
xmin: -42087672,
ymin: 4108613,
xmax: -36095009,
ymax: 8340167
}
}); layer.when().then(() =>{
const renderer = layer.renderer.clone();
renderer.visualVariables = [{
type: "size",
field: "capacity_mw",
legendOptions: {
title: "Capacity (MW)"
},
minSize: "24px",
maxSize: "100px",
minDataValue: 1,
maxDataValue: 5000
}];
layer.renderer = renderer;
}); const legend = new Legend({
view: view,
container: "legendDiv"
}); const infoDiv = document.getElementById("infoDiv");
view.ui.add(
new Expand({
view: view,
content: infoDiv,
expandIconClass: "esri-icon-layer-list",
expanded: true
}),
"top-right"
); view.whenLayerView(layer).then((layerView) => {
const field = "capacity_mw"; const slider = new Slider({
min: 0,
max: 2000,
values: [0],
container: document.getElementById("sliderDiv"),
visibleElements: {
rangeLabels: true
},
precision: 0
}); const sliderValue = document.getElementById("sliderValue"); // filter features by power plant capacity when the user
// drags the slider thumb. If clustering is enabled,
// clusters will recompute and render based on the number
// and type of features that satisfy the filter where clause slider.on(["thumb-change", "thumb-drag"], (event) => {
sliderValue.innerText = event.value;
layerView.filter = {
where: field + " >= " + event.value
};
});
});
});
</script> </head> <body>
<div id="viewDiv"></div>
<div id="infoDiv" class="esri-widget">
<div id="description">
Show power plants with at least <span id="sliderValue">0</span> megawatts of capacity
</div>
<div id="sliderContainer">
<div id="sliderDiv"></div>
</div>
<div id="legendDiv"></div>
</div>
</body> </html>

同时,根据规划目标导向,统筹协调空间布局安排,将各要素在空间规划底图上进行有机叠加,形成空间布局方案,为国土空间用途管制提供依据。

要素配置和空间布局流程

基于GIS的国土空间规划平台建设的更多相关文章

  1. 基于特定领域国土GIS应用框架设计及应用

              基于特定领域国土GIS应用框架 设计及应用              何仕国 2012年8月16日   摘要: 本文首先讲述了什么是框架和特定领域框架,以及与国土GIS 这个特定领 ...

  2. 基于GIS的视频管理指挥平台

    平台利用空间地理信息技术,以GIS地图为基础,将各类信息空间化.可视化,实现基于空间电子地图的可视化查询和分析,它能使情报.推理.分析与其他可用数据融为一体,提供依托于电子地图的清晰而精确的现场态势图 ...

  3. 基于MaxCompute的媒体大数据开放平台建设

    摘要:随着自媒体的发展,传统媒体面临着巨大的压力和挑战,新华智云运用大数据和人工智能技术,致力于为媒体行业赋能.通过媒体大数据开放平台,将媒体行业全网数据汇总起来,借助平台数据处理能力和算法能力,将有 ...

  4. 一个大数据平台省了20个IT人力——敦奴数据平台建设案例分享

    认识敦奴 敦奴集团创立于1987年,主营服装.酒店.地产,总部位于中国皮都-海宁.浙江敦奴联合实业股份有限公司(以下简称"敦奴")是一家集开发.设计.生产.销售于一体的大型专业服装 ...

  5. 基于UML网络教学管理平台模型的搭建

    一.基本信息 标题:基于UML网络教学管理平台模型的搭建 时间:2013 出版源:网络安全技术与应用 领域分类:UML:网络教学管理平台:模型 二.研究背景 问题定义:网络教学管理平台模型的搭建 难点 ...

  6. 美团点评基于 Flink 的实时数仓建设实践

    https://mp.weixin.qq.com/s?__biz=MjM5NjQ5MTI5OA==&mid=2651749037&idx=1&sn=4a448647b3dae5 ...

  7. 时间序列大数据平台建设(Time Series Data,简称TSD)

    来源:https://blog.csdn.net/bluishglc/article/details/79277455 引言在大数据的生态系统里,时间序列数据(Time Series Data,简称T ...

  8. TOP100summit 2017:【案例分享】魅族持续交付平台建设实践

    本篇文章内容来自第10期魅族开放日魅族运维架构师林钟洪的现场分享.编辑:Cynthia 一.自动化建设历程1.1 魅族互联网发展的时间线 2003-2008年被称之为“互联网1.0时代”.2003年, ...

  9. 天马行空-Ops平台建设概述

    1           概述 什么是Ops平台,Ops平台的目标是什么,建设的考虑点有哪些?本章节以实际生活中医院的例子来进行各形象的阐述. 医院包含各种诊断治疗设备,病历库,医生.一个孕妇需要到医院 ...

随机推荐

  1. Linux的三剑客

    首先,需要介绍一下管道和正则表达式,因为它经常和Linux三剑客一起使用. 一.管道Linux 提供管道符"|",将两个命令隔开,管道符左边命令的输出作为管道符右边命令的输入. c ...

  2. C++ primer plus读书笔记——第14章 C++中的代码重用

    第14章 C++中的代码重用 1. 使用公有继承时,类可以继承接口,可能还有实现(基类的纯虚函数提供接口,但不提供实现).获得接口是is-a关系的组成部分.而使用组合,类可以获得实现,但不能获得接口. ...

  3. Ribbon导航

    简介 最近都在弄微服务的东西,现在来记录下收获.我从一知半解到现在能从0搭建使用最大的感触有两点 1.微服务各大组件的版本很多,网上很多博客内容不一定适合你的版本,很多时候苦苦琢磨都是无用功 2.网上 ...

  4. JAVA基础——包机制

    包机制 包的语法格式package pkg1[.pkg2[.pkg3...]] 一般利用 公司域名倒置 作为包名; 例如www.baidu.com,则建立报的名字com.baidu.www 一般不要让 ...

  5. Docker——基本使用及常用命令

    Docker 是一个开源的应用容器引擎,而一个容器其实是一个虚拟化的独立的环境,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化. ...

  6. 使用 parted 命令可以查看系统采用什么类型的分区表 gpt/mbr/msdos/ext/ext/ext2/ext3/ext4

      Linux磁盘表示方式 Linux以字母标识磁盘的个数 a:第一块 b:第二块 Linux用数字标识分区:1-4标识主分区或扩展分区 逻辑分区从5开始 例如:sda.sda1.sda2 低级格式化 ...

  7. 四大浏览器JavaScript性能/硬件加速测试

    四大浏览器JavaScript性能/硬件加速测试 出处:快科技 2010-09-19 10:52:59    人气: 27925 次   作者:萧萧 编辑:萧萧[爆料]  评论(42)  收藏文章 新 ...

  8. 彻底解决Could not transfer artifact org.apache.maven.plugins问题

    今天在学习maven框架的时候出现Could not transfer artifact org.apache.maven.plugins问题,后面根据很多博客综合总结,终于解决了,现在分享一下我的方 ...

  9. 对抗性鲁棒性与模型压缩:ICCV2019论文解析

    对抗性鲁棒性与模型压缩:ICCV2019论文解析 Adversarial Robustness vs. Model Compression, or Both? 论文链接: http://openacc ...

  10. TOF与结构光技术分析

    TOF与结构光技术分析 一.概述 结构光(Structuredlight),通常采用特定波长的不可见的激光作为光源,它发射出来的光带有编码信息,投射在物体上,通过一定算法来计算返回的编码图案的畸变来得 ...