GeoDenStream is a method for clustering spatiotemporal data streams. Building on DenStream, this method is particularly suitable for analyzing entity-based geographical data streams.

spatiotemporaldata streamsDenStreamentity-basedgeographical data streams



Initial contribute: 2020-01-09


Is authorship not correct? Feed back


Method-focused categoriesData-perspectiveGeoinformation analysis
Method-focused categoriesData-perspectiveGeostatistical analysis

Detailed Description

English {{currentDetailLanguage}} English

Quoted from: 

GeoDenStream is an improved DenStream clustering method for acquiring individual data point information within Big Data Streams. The implementation of GeoDenStream is based on the open source MOA project (Bifet et al., 2010), which is available at (

In GeoDenStream, several modifications and improvements are made based on the MOA package to address the memory limitation, overlapping points, and false noise issues. Also, pruning strategy is extended to consider the time stamp of the data records.

Detailed modifications and improvements can be found in master/moa/src/main/java/moa/clusterers/denstream. There are four main classes in this folder:

  • This class is same with the original MOA, which is used to record a point(aka a record, an item, a tweet) in a stream.
  • In this class, a new function TryInsert was add for attempting add a point into a potential cluster and check whether it can be added. Two lists are added for recording: (1) Ids of the points that belongs to a potential cluster and (2) the distance between each involved point and the center of a potential cluster (could be seen in Line 36 and 37).
  • This class is same with the original MOA, and it is used for giving a timestamp as long integer for each points.
  • The code in this class has been modified largely. Function trainOnInstanceImpl is a new implemented function which supports the real time based pruning strategy. And function trainOnInstanceImpl_TpStaticIndex keeps the count based pruning strategy as MOA does. A minor issue but also a key point. the function nearestCluster was modified. The original nearestCluster has a bug in calculating the minimum distance. Could be seen in Line 483.

Examples of its application using Twitter data streams can be found in master/moa/src/main/java/denstream/zikaebola.

For other analysis scenarios, a configurable application is provided in master/moa/src/main/java/denstream/configure.

  • This is an entrance for using GeoDenStream, with dynamic memory optimization (loading points with an offline range and using the index strategy).
  • This is another entrance for using GeoDenStream, without memory optimization (loading all records for generating clusters).
  • This class is used for handling the overlap and false noise issues. Detailed implementation could be checked in the funciton fillPotentialCluster.
  • This class is for get offline clusters based on the results of For other classes, they are some utilies and could be easy understand.



ManqiLi, ArieCroitoru, and SongshanYue (2020). GeoDenStream, Model Item, OpenGMS,


Initial contribute : 2020-01-09



Is authorship not correct? Feed back

QR Code


{{'; ')}}



Drop the file here, orclick to upload.
Select From My Space
+ add


Cancel Submit
{{htmlJSON.Cancel}} {{htmlJSON.Submit}}
{{htmlJSON.Localizations}} + {{htmlJSON.Add}}
{{ item.label }} {{ item.value }}
{{htmlJSON.Cancel}} {{htmlJSON.Submit}}
名称 别名 {{tag}} +
系列名 版本号 目的 修改内容 创建/修改日期 作者
摘要 详细描述
{{tag}} + 添加关键字
* 时间参考系
* 空间参考系类型 * 空间参考系名称

起始日期 终止日期 进展 开发者
* 是否开源 * 访问方式 * 使用方式 开源协议 * 传输方式 * 获取地址 * 发布日期 * 发布者

编号 目的 修改内容 创建/修改日期 作者

时间分辨率 时间尺度 时间步长 时间范围 空间维度 格网类型 空间分辨率 空间尺度 空间范围
{{tag}} +
* 类型

* 名称 * 描述
示例描述 * 名称 * 类型 * 值/链接 上传

{{htmlJSON.Cancel}} {{htmlJSON.Submit}}
Title Author Date Journal Volume(Issue) Pages Links Doi Operation
{{htmlJSON.Cancel}} {{htmlJSON.Submit}}
{{htmlJSON.Add}} {{htmlJSON.Cancel}}


Authors:  {{articleUploading.authors[0]}}, {{articleUploading.authors[1]}}, {{articleUploading.authors[2]}}, et al.

Journal:   {{articleUploading.journal}}

Date:   {{}}

Page range:   {{articleUploading.pageRange}}

Link:   {{}}

DOI:   {{articleUploading.doi}}

Yes, this is it Cancel

The article {{articleUploading.title}} has been uploaded yet.

{{htmlJSON.Cancel}} {{htmlJSON.Confirm}}