基于POI的功能区划分

最近看了一些中文论文,对基于POI的功能区划分也是有了粗浅的认识,虽然我主要的目标并不是要做基于POI的功能区的划分,但是这也是必须的一步。

1.基于POI的功能区划分方法1

这是我看到的第一种方法,也是最简单的方法,如果想要知道某个点A的功能分区,那么可以用以下方法:

  1. 以A点为圆心,划定半径为r的缓冲区;
  2. 然后统计该缓冲区内的各个类型的POI点的数目,取数量最多的POI点的类型为该地区的功能分区;
  3. 第二步提到的这种方法是最简单,最粗暴的,效果应该也是不错的,但是未免考虑的过于简单了,因此有很多改进,比如说计算缓冲区内的各个类型的POI的核密度值之和(POI核密度的估计是基于整个POI点位数据的,而不是仅仅对一个缓冲区做核密度估计),取核密度值最高的那个类型为代表类型。选取缓冲区内特定类型兴趣点的核密度值之和、而非数量的原因在于:核密度值代表被计算要素在其周围邻域中的密度,因此相对于直接计算缓冲区范围内不同类型兴趣点数量,不仅能够反映缓冲区范围内不同类型的兴趣点密度、同时也能够反映缓冲区周边一定空间范围内不同类型兴趣点的密度信息。

2.基于POI的功能区划分方法2

基于POI数据使用TF-IDF方法进行北京五环范围内的城市用地功能分区,实验从道路网和格网两个层面开展,并与遥感影像进行对比验证,从中提取出主要的交通枢纽,在此基础上,从空间服务范围和空间强度两个维度对火车站和机场的地理特性进行分析,包括空间分布范围的特点、受区域影响的强弱、空间联系强度的差异等内容,最后,进一步对比各重要交通枢纽所在空间单元作为出租车行程起始点和终止点的共性和差异性。
我觉得用格网应该更好一点吧,划分好格网后,用TF-IDF方法进行分区,TF-IDF的方法介绍,该方法其实就是判断某个POI点在该格网或该区域的重要性,然后利用这个重要性来确定该区域的的功能分区,也是十分简单易行。

3.使用Ripley’s K 函数和核密度估计进行交通小区划分优化

这个就不是功能分区了,但是思路也可以学习下。

  1. 首先基于POI点进行核密度估计,然后设定阈值划定热点区域;
  2. 用Ripley’s K 函数确定最佳的空间尺度,也就是要使得整个区域聚集性尽可能高。
  3. 将一个热点区域中且距离小于最佳的空间尺度的交通小区合并。

Ripley’s K 函数简单介绍
Ripley’s K 函数工作原理
核密度估计1
核密度估计2

其他

目前只看到这些,之后在看一些paper来补充吧

参考文献

[1] 赵鹏军,曹毓书.基于多源地理大数据与机器学习的地铁乘客出行目的识别方法[J].地球信息科学学报,2020,22(09):1753-1765.
[2] 赵家瑶, 李宏伟, 邓圣乾, et al. 基于POI数据的城市功能区识别及主要交通枢纽空间分析[J]. 测绘与空间地理信息, 2019, 042(012):38-42.
[3] 诸葛雪玉, 张文闯, 谭娅琦, et al. 基于POI空间聚类的交通小区划分方法改进[J]. 山西建筑, 2018, 044(026):7-8.

  • 4
    点赞
  • 51
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
添加水印是通过在文档中插入图片实现的。以下是一个示例代码,演示了如何使用 HWPFDocument 在 Word 文档中添加水印: ```java import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.util.List; import org.apache.poi.hwpf.HWPFDocument; import org.apache.poi.hwpf.usermodel.HeaderFooter; import org.apache.poi.hwpf.usermodel.Paragraph; import org.apache.poi.hwpf.usermodel.Picture; import org.apache.poi.hwpf.usermodel.Range; import org.apache.poi.hwpf.usermodel.Section; import org.apache.poi.hwpf.usermodel.Shape; public class AddWatermark { public static void main(String[] args) throws IOException { InputStream is = new FileInputStream("input.doc"); HWPFDocument doc = new HWPFDocument(is); // 添加水印 addWatermark(doc, "watermark.png"); FileOutputStream fos = new FileOutputStream("output.doc"); doc.write(fos); fos.close(); } /** * 在 Word 文档中添加水印 * * @param doc Word 文档对象 * @param watermarkPath 水印图片路径 */ private static void addWatermark(HWPFDocument doc, String watermarkPath) throws IOException { Range range = doc.getRange(); HeaderFooter header = range.getHeader(0); if (header == null) { header = range.createHeader(Section.FIRST); } List<Paragraph> paragraphs = header.getParagraphs(); Paragraph watermarkPara; if (paragraphs.isEmpty()) { watermarkPara = header.createParagraph(); } else { watermarkPara = paragraphs.get(0); } watermarkPara.setAlignment(Paragraph.ALIGN_CENTER); Picture watermark = new Picture(watermarkPath, doc); Shape shape = watermark.getShape(); shape.setWrap(Shape.WRAP_TIGHT); shape.setAnchor(watermarkPara, watermarkPara.createRun().text().length() + 1, 0, 0, 0, 500, 500, 800, 800); watermarkPara.addPicture(watermark); } } ``` 在上面的示例代码中,我们首先通过 `HWPFDocument` 加载 Word 文档,然后使用 `addWatermark` 方法添加水印。该方法首先获取文档的第一个页眉,如果不存在页眉则创建一个。然后在页眉中添加一个段落,并设置其水平居中对齐。接着,从指定路径加载水印图片,并创建一个图片对象。我们可以通过图片对象获取其对应的形状对象,然后设置形状的位置和大小,以及文本环绕方式。最后,将图片添加到段落中即可。 需要注意的是,这段代码使用的是 `HWPFDocument`,只适用于老版本的 Word 文档(.doc 格式)。如果你的 Word 文档是新版本的(.docx 格式),则需要使用 `XWPFDocument` 来操作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值