# Efficient, Decentralized Detection of Qualitative Spatial Events in a Dynamic Scalar Field

^{1}

^{2}

^{*}

## Abstract

**:**

## 1. Introduction

## 2. Background

## 3. Model

#### 3.1. Algorithm Preliminaries

Algorithm 1 Update gradient vectors. | |

1: Restrictions: Geosensor network, $G=(V,E)$; sensor function $\mathit{sense}:V\times T\to \mathbb{R}$; communication neighborhood $\mathit{nbr}:V\to {2}^{V}$; identifier function $\mathit{id}:V\to \mathbb{N}$; reliable communication. | |

2: State transition system: $\langle \{idle,peak,pitx\},\left\{\right(idle,peak\left)\right),$ $(idle,pitx)\}\rangle $ | |

3: Local variables: the last sensing value, ${s}_{l}$, initialized empty; list of upstream neighbors, $\mathit{Nu}$, initialized empty; list of downstream neighbors, $\mathit{Nd}$, initialized empty; an ascent vector, $\mathit{av}$, initialized empty; the last ascent vector, ${\mathit{av}}_{l}$, initialized empty; a strong peak id, $\mathit{pkid}$, initialized empty; a last peak id, ${\mathit{pkid}}_{l}$, initialized empty; a strong pit id, $\mathit{ptid}$, initialized empty; neighbors’ peak identifiers, $\mathit{Pkcell}$, initialized empty; neighbors’ pit identifiers, $\mathit{Ptcell}$, initialized empty; a weak peak’s ascent bridge, ${\mathit{wpk}}_{av}$, initialized empty; | |

IDLE, PEAK, PITX | |

4: $\mathit{When}$ $\stackrel{\u02da}{\mathit{sense}}$ changes | |

5: set ${s}_{l}:=\mathit{sense}$ | - - Save the last sensed value |

6: broadcast (upd8, $\stackrel{\u02da}{\mathit{id}}$, $\stackrel{\u02da}{\mathit{sense}}$, $\mathit{pkid}$, $\mathit{ptid}$) | |

IDLE | |

7: Receiving (upd8, i, s, ${c}_{pk}$, ${c}_{pt}$) | |

8: update $\mathit{Nu}$ and $\mathit{Nd}$ | - - Based on s value |

9: update $\mathit{Pkcell}$ and $\mathit{Ptcell}$ | |

10: if $\left|\mathit{Nu}\right|>0$ and $\left|\mathit{Nd}\right|>0$ then | |

11: set $\mathit{av}:=max\left(\mathit{Nu}\right)$ | - - Likewise for descent vector |

12: if $\mathit{pkid}\ne \mathit{av}$’s peak identifier then | |

13: set $\mathit{pkid}:=\mathit{av}$’s peak identifier | |

14: broadcast (udsf, $\stackrel{\u02da}{\mathit{id}}$, $\mathit{pkid}$, $\mathit{ptid}$, $"\mathrm{channel}"$) | |

15: if $\left|\mathit{Nu}\right|=0$ then | - -Likewise for Nd |

16: set ${\mathit{av}}_{l}:=\mathit{av}$ and set $\mathit{av}:=\varnothing $ | |

17: if $|{\mathit{wpk}}_{av}|>0$ then | |

18: set ${\mathit{av}}_{l}:={\mathit{wpk}}_{av}$ and set ${\mathit{wpk}}_{av}:=\varnothing $ | |

19: Receiving (udsf, i, ${n}_{pk}$, ${n}_{pt}$, $\mathit{sf}$) | |

20: if $\mathit{sf}="\mathrm{channel}"$ then | |

21: update $\mathit{Pkcell}$ | - - Update a neighbor’s peak |

identifier | |

22: if $i=\mathit{av}$ and ${n}_{pk}\ne \mathit{pkid}$ then | |

23: set $\mathit{pkid}:={n}_{pk}$ | |

24: broadcast (udsf, $\stackrel{\u02da}{\mathit{id}}$, $\mathit{pkid}$, $\mathit{ptid}$, $"\mathrm{channel}"$) |

#### 3.2. Discrete Surface Networks

**Figure 1.**Identification of a strong and a weak peak, ascent vectors and an ascent bridge (Contour lines describe a scalar field showing the difference in elevation between consecutive contour lines. The sensed values can be estimated using a contour map).

**Figure 2.**Representative pass (Contour lines describe a scalar field showing the difference in elevation between consecutive contour lines. The sensed values can be estimated using a contour map.)

## 4. Algorithm

#### 4.1. Monitoring Events Occurring on Peaks and Pits

**Figure 3.**Stable/Unstable Morse complexes. This figure is adapted from [30].

#### 4.1.1. Algorithm 1: Update Gradient Vectors

#### 4.1.2. Algorithm 2: Monitor Peak Movement

- A node in a peak state that detects a new ascent vector (a higher neighbor) sends a wipk message to its ascent neighbor and transitions to an idle state (Algorithm 2, Lines 34–40).
- A wipk message is forwarded along the ascent vector until it reaches a peak (Algorithm 2, Lines 9 and 12).
- The peak receiving an wipk message evaluates whether it is a strong or a weak peak (Algorithm 2, Line 7). If it is a strong peak, this node transitions to a PEAK state (Algorithm 2, Line 27). If not, the node unicasts the wipk message via its ascent bridge (Algorithm 2, Line 29) and the algorithm continues from Step 2 above.

Algorithm 2 Monitoring a peak movement. | |

1: Fragment extend: Algorithm 1 | |

2: Local variables: the flag for receiving wipk messages, $\mathit{bpk}$, initialized $\mathit{false}$; neighbors adjacent to a potential peak, $\mathit{Tcells}$, initialized empty; | |

IDLE | |

3: Receiving (wipk, ${p}_{s}$, i, ${p}_{pk}$) | |

4: if $\mathit{pkid}={p}_{pk}$ then | |

5: if $\left|\mathit{Nu}\right|=0$ then | |

6: set $\mathit{bpk}:=$ true | |

7: broadcast (etcl, $\stackrel{\u02da}{\mathit{id}}$) | - - To identify a strong peak |

8: else | |

9: send (wipk, ${p}_{s},\stackrel{\u02da}{\mathit{id}},\mathit{pkid}$) to $\mathit{av}$ or ${\mathit{wpk}}_{av}$ | |

10: else | |

11: if $\left|\mathit{Nu}\right|>0$ then | |

12: send (wipk, ${p}_{s},\stackrel{\u02da}{\mathit{id}},\mathit{pkid}$) to $\mathit{av}$ or ${\mathit{wpk}}_{av}$ | |

13: Receiving (etcl, i) | |

14: if $\stackrel{\u02da}{\mathit{av}}=i$ then | |

15: send (cetc, $\stackrel{\u02da}{\mathit{id}}$, $\mathit{true}$, $\mathit{pkid}$, $\stackrel{\u02da}{\mathit{sense}}$) to a node i | |

16: else | |

17: send (cetc, $\stackrel{\u02da}{\mathit{id}}$, $\mathit{false}$, $\mathit{pkid}$, $\stackrel{\u02da}{\mathit{sense}}$) to a node i | |

18: Receiving (cetc, i, bflag, ${n}_{pk}$, ${n}_{s}$) | |

19: if $\mathit{bflag}=\mathit{false}$ then | |

20: set ${\mathit{wpk}}_{av}:=\{i,{n}_{pk},{n}_{s}\}$ | - - Set ascent bridge |

21: if $i\notin \mathit{Tcells}$ Tcells then | |

22: $:=\mathit{Tcells}\cup \left\{i\right\}$ | |

23: if $\left|\mathit{Tcells}\right|=\left|\mathit{Nd}\right|$ then | |

24: if $\left|\mathit{Nu}\right|=0$ then | |

25: if $\left(\right|\mathit{av}|>0$ and $|{\mathit{wpk}}_{av}|=0)$ or $\left(\right|\mathit{av}|=0$ and $|{\mathit{wpk}}_{av}|=0)$ then | - - A strong peak |

26: set $\mathit{av}:=\varnothing $; set $\mathit{bpk}:=\mathit{false}$; set $\mathit{Tcells}:=\varnothing $ | |

27: become PEAK | |

28: if $|{\mathit{wpk}}_{av}|>0$ then | - - A weak peak |

29: send (wipk, ${p}_{s},\stackrel{\u02da}{\mathit{id}},\mathit{pkid}$) to ${\mathit{wpk}}_{av}$ | |

30: else | |

31: send (wipk, ${p}_{s},\stackrel{\u02da}{\mathit{id}},\mathit{pkid}$) to $\mathit{av}$ or ${\mathit{wpk}}_{av}$ | |

PEAK | |

32: Receiving (upd8, i, s, ${c}_{pk}$, ${c}_{pt}$) | |

33: update $\mathit{Nu}$, $\mathit{Nd}$, $\mathit{Pkcell}$, and $\mathit{Ptcell}$ | |

34: if $\left|\mathit{Nu}\right|>0$ then | |

35: set $\mathit{av}:=max\left(\mathit{Nu}\right)$ | |

36: if $\mathit{pkid}\ne \mathit{av}$’s peak identifier then | |

37: set $\mathit{pkid}:=\mathit{av}$’s peak identifier | |

38: broadcast (udsf, $\stackrel{\u02da}{\mathit{id}}$, $\mathit{pkid}$, $\mathit{ptid}$, $"\mathrm{channel}"$) | |

39: send (wipk, $\stackrel{\u02da}{\mathit{id}},\stackrel{\u02da}{\mathit{id}},\mathit{pkid}$) to $\mathit{av}$ | |

40: become IDLE |

#### 4.1.3. Algorithm 3: Monitor Peak Disappearance

- When a wipk message reaches a PEAK node, the node checks if the peak identifier contained in that message matches its own peak identifier. If not, this event triggers the PEAK node to return a rwpk message back down the ascent vector to the origin of the wipk message (Algorithm 3, Line 5 or Line 24).
- When the origin of a wipk message subsequently receives a rwpk message, it confirms a peak disappearance. The node then broadcasts swpk messages that trigger the update of peak identifiers (Algorithm 3, Line 12) in nodes below it in the surface.

Algorithm 3 Monitoring a peak disappearance. | |

1: Fragment extend: Algorithm 1, 2 | |

IDLE | |

2: Receiving (wipk, ${p}_{s}$, i, ${p}_{pk}$) | |

3: if $\mathit{pkid}\ne {p}_{pk}$ then | |

4: if $\left|\mathit{Nu}\right|=0$ then | |

5: send (rwpk, ${p}_{s},\stackrel{\u02da}{\mathit{id}},\mathit{pkid},{p}_{pk}$) to i | |

6: Receiving (rwpk, ${p}_{s}$, i, ${p}_{pk}$, ${p}_{pkl}$) | |

7: if $\stackrel{\u02da}{\mathit{id}}={p}_{s}$ and $\mathit{pkid}={p}_{pk}$ then | |

8: A peak identifier has been already changed because of udsf messages. | |

9: if $\stackrel{\u02da}{\mathit{id}}={p}_{s}$ then | |

10: if $\mathit{pkid}\ne {p}_{pk}$ then | |

11: set $\mathit{pkid}:={p}_{pk}$ | - - Peak disappearance |

12: broadcast (swpk, $"\mathrm{disappearance}"$, $\stackrel{\u02da}{\mathit{id}}$, $\mathit{pkid}$, ${p}_{pkl}$) | |

13: update $\mathit{Pkcell}$ | - - Update neighbors’ peak |

identifier | |

14: else | |

15: send (rwpk, ${p}_{s},\stackrel{\u02da}{\mathit{id}},{p}_{pk},{p}_{pkl}$) to a node sent wipk message | |

16: Receiving (swpk, $\mathrm{e}$, i, ${p}_{pk}$, ${p}_{pkl}$) | |

17: if $\mathrm{e}="\mathrm{disappearance}"$ then | |

18: if $\mathit{pkid}={p}_{pkl}$ then | |

19: set $\mathit{pkid}:={p}_{pk}$ | - - Set new peak id |

20: broadcast (swpk, “disappearance", $\stackrel{\u02da}{\mathit{id}}$, $\mathit{pkid}$, ${p}_{pkl}$) | |

21: update $\mathit{Pkcell}$ | |

PEAK | |

22: Receiving (wipk, ${p}_{s}$, i, ${p}_{pk}$) | |

23: if $\mathit{pkid}\ne {p}_{pk}$ then | |

24: send (rwpk, ${p}_{s},\stackrel{\u02da}{\mathit{id}},\mathit{pkid},{p}_{pk}$) to i |

#### 4.1.4. Algorithm 4: Monitor Peak Appearance

- If a node detects pit movement, it broadcasts wnpk messages in order to infer peak appearance. (Algorithm 4, Line 5).
- When a node receives a wnpk message from a descent neighbor (i.e., via a descent vector, dv), it delivers a wnpk message to its ascent neighbor (i.e., via an ascent vector, av). By following each node’s ascent vector, this message reaches a peak (Algorithm 4, Line 10).
- If a node receives a wnpk message from a downhill node with the same pit identifier (but not a descent vector), this node broadcasts wnpk messages to its neighbors to trigger a wnpk message to peaks. These nodes usually exist on boundaries where two catchment areas meet (Algorithm 4, Line 12).
- If a node with the highest value among neighbors takes a wnpk message in an IDLE state, it will first check whether it is a strong peak or a weak peak (Algorithm 4, Line 20). If it is a strong peak, this node will broadcast swpk messages to create a new catchment area (i.e., a new peak appearance; Algorithm 4, Line 35).
- If a node receives a swpk message from an ascent neighbor, it will update its peak identifier that is indicated in the swpk message. It then broadcast an swpk message in order to trigger the construction of the new catchment area (Algorithm 4, Line 43).

Algorithm 4 Monitoring a peak appearance. | |

1: Fragment extend: Algorithm 1, 2, 3 | |

2: Local variables: the flag for receiving wnpk messages, $\mathit{bnpk}$, initialized $\mathit{false}$; | |

IDLE | |

3: Receiving (cebc, i, bflag, ${n}_{pt}$, ${n}_{s}$) | |

4: if A pit movement is confirmed then | |

5: broadcast (wnpk, $\mathit{ptid},\stackrel{\u02da}{\mathit{id}},\mathit{false}$) | |

6: Receiving (wnpk, ${n}_{pt}$, i, $\mathit{flag}$) | |

7: if $\left|\mathit{Nu}\right|>0$ and $\mathit{bnpk}=\mathit{false}$ then | |

8: if $\mathit{flag}=\mathit{false}$ then | |

9: if $\left(\right|\mathit{dv}|>0$ and $i=\mathit{dv})$ or $\left(\right|{\mathit{wpt}}_{dv}|>0$ and $i={\mathit{wpt}}_{dv})$ then | |

10: send (wnpk, $\mathit{ptid}$, $\stackrel{\u02da}{\mathit{id}}$, $\mathit{false}$) to $\mathit{av}$ or ${\mathit{wpk}}_{av}$ | |

11: else | |

12: broadcast (wnpk, $\mathit{ptid},\stackrel{\u02da}{\mathit{id}},\mathit{true}$) | |

13: set $\mathit{bnpk}:=\mathit{true}$ | |

14: else | |

15: if $i\in \mathit{Nd}$ and $\mathit{ptid}={n}_{pt}$ then | |

16: send (wnpk, $\mathit{ptid}$, $\stackrel{\u02da}{\mathit{id}}$, $\mathit{false}$) to $\mathit{av}$ or ${\mathit{wpk}}_{av}$ | |

17: set $\mathit{bnpk}:=\mathit{true}$ | |

18: if $\left|Nu\right|=0$ and $\mathit{bnpk}=\mathit{false}$ and $\mathit{bpk}=\mathit{false}$ then | |

19: set $\mathit{bnpk}:=\mathit{true}$; set $\mathit{Tcells}:=\varnothing $ | |

20: broadcast (ispk, $\stackrel{\u02da}{\mathit{id}}$) | |

21: Receiving (ispk, i) | |

22: if $\stackrel{\u02da}{\mathit{av}}=i$ then | |

23: send (rspk, $\stackrel{\u02da}{\mathit{id}}$, $\mathit{true}$, $\mathit{pkid}$, $\stackrel{\u02da}{\mathit{sense}}$) to a node i | |

24: else | |

25: send (rspk, $\stackrel{\u02da}{\mathit{id}}$, $\mathit{false}$, $\mathit{pkid}$, $\stackrel{\u02da}{\mathit{sense}}$) to a node i | |

26: Receiving (rspk, i, bflag, ${n}_{pk}$, ${n}_{s}$) | |

27: if $\mathit{bflag}=\mathit{false}$ then | |

28: set ${\mathit{wpk}}_{av}:=\{i,{n}_{pk},{n}_{s}\}$ | |

29: if $i\notin \mathit{Tcells}$ then | |

30: Tcells $:=\mathit{Tcells}\cup \left\{i\right\}$ | |

31: if $\left|\mathit{Tcells}\right|=\left|\mathit{Nd}\right|$ then | |

32: if $\left|\mathit{Nu}\right|=0$ and $\mathit{bpk}=\mathit{false}$ then | |

33: if $\left(\right|\mathit{av}|>0$ and $|{\mathit{wpk}}_{av}|=0)$ or $\left(\right|\mathit{av}|=0$ and $|{\mathit{wpk}}_{av}|=0)$ then | - - A strong peak |

34: set $\mathit{av}:=\varnothing $; set $\mathit{bpk}:=\mathit{false}$; set $\mathit{Tcells}:=\varnothing $ ; set $\mathit{pkid}:=\stackrel{\u02da}{\mathit{id}}$ | |

35: broadcast (swpk, $"\mathrm{appearance}"$, $\stackrel{\u02da}{\mathit{id}}$, $\mathit{pkid}$, ${p}_{pkl}$) | |

36: become peak | - - Peak appearance |

37: if $|{\mathit{wpk}}_{av}|>0$ then | - - A weak peak |

38: A weak peak appearance | |

39: Receiving (swpk, e, i, ${p}_{pk}$, ${p}_{pkl}$) | |

40: if $e=$ “appearance” then | |

41: if $\mathit{pkid}={p}_{pkl}$ and $\mathit{av}=i$ then | |

42: set $\mathit{pkid}:={p}_{pk}$ | |

43: broadcast (swpk, $"\mathrm{appearance}"$, $\stackrel{\u02da}{\mathit{id}}$, $\mathit{pkid}$, ${p}_{pkl}$) |

#### 4.1.5. Summary

#### 4.2. Monitoring Events Occurring on Passes

Algorithm 5 Monitoring events occurring on passes. | |

1: Fragment extend: Algorithm 1, 2, 3, 4 | |

2: Local variables: list of passes, $\mathit{Passes}$, initialized empty; list of pass cluster, Passcluster, initialized empty; list of a representative pass, Repass, initialized empty; list of a last representative pass, ${\mathit{Repasse}}_{l}$, initialized empty; | |

3: Receiving (uppc, i, $\mathit{Npasscluster}$) | |

4: if $\mathit{Passes}$ have the same associated peaks (pits) then | |

5: update$\mathit{Passcluster}$ and $\mathit{Repass}$ | |

6: if $\mathit{Repass}=\varnothing $ and ${\mathit{Repasse}}_{l}\ne \varnothing $then | |

7: send (wirp, $\stackrel{\u02da}{\mathit{id}}$, $\mathit{Passcluster}$) to a node i | |

8: if $\mathit{Passcluster}\ne \mathit{Npasscluster}$ then | |

9: broadcast (uppc, $\stackrel{\u02da}{\mathit{id}}$, $\mathit{Passcluster}$) | |

10: Receiving (wirp, i, $\mathit{Nrepass}$) | - - Infer pass events |

11: if this node is a representative pass then | |

12: infer events occurring on a pass | |

13: else | |

14: deliver a wirp message to a representative pass. |

#### 4.3. Scalability

## 5. Experiments

#### 5.1. Experimental Setup

#### 5.2. Overall Scalability

**Figure 6.**Overall scalability for monitoring events (averaged over 10 randomized networks and 10 consecutive time steps in each evolution).

**Figure 7.**Number of messages generated by spatial events at each evolution step: dots are deemed to be outliers.

#### 5.3. Latency

#### 5.4. Load Balance

**Figure 10.**Load balance for communication messages (averaged over 10 networks of 4000 nodes and 10 consecutive evolution).

#### 5.5. Accuracy

Network sizes | 1000 | 2000 | 4000 | 8000 | 16,000 |
---|---|---|---|---|---|

Peak | 0.77 | 0.86 | 0.89 | 0.93 | 0.94 |

Pass | 0.84 | 0.91 | 0.90 | 0.88 | 0.91 |

**Figure 11.**Positive predictive value (PPV)-recall curves for network sizes of 1000–16,000 nodes on a Level 4 surface.

## 6. Discussion

## 7. Conclusions

## Acknowledgments

## Author Contributions

## Conflicts of Interest

## References

- Nittel, S. A Survey of Geosensor Networks: Advances in Dynamic Environmental Monitoring. Sensors
**2009**, 9, 5664–5678. [Google Scholar] [CrossRef] [PubMed] - Rana, S. Topological Data Structures for Surfaces; John Wiley & Sons, Ltd.: Chichester, UK, 2004. [Google Scholar]
- Pfaltz, J.L. Surface Networks. Geograph. Anal.
**1976**, 8, 77–93. [Google Scholar] [CrossRef] - Edelsbrunner, H.; Harer, J.; Zomorodian, A. Hierarchical Morse Smale Complexes for Piecewise Linear 2 Manifolds. Discret. Comput. Geom.
**2003**, 30, 87–107. [Google Scholar] [CrossRef] - Sarkar, R.; Zhu, X.; Gao, J.; Guibas, L.J.; Mitchell, J.S. Iso-Contour Queries and Gradient Descent with Guaranteed Delivery in Sensor Networks. In Proceedings of the 27th IEEE Conference on Computer Communications (INFOCOM), Phoenix, AZ, USA, 13–18 April 2008; pp. 960–967.
- Zhu, X.; Sarkar, R.; Gao, J. Topological Data Processing for Distributed Sensor Networks with Morse-Smale Decomposition. In Proceedings of the IEEE Conference on Computer Communications (INFOCOM), Rio de Janeiro, Brazil, 19–25 April 2009; pp. 2911–2915.
- Jeong, M.-H.; Duckham, M.; Miller, H.; Kealy, A.; Peisker, A. Decentralized and coordinate-free computation of critical points and surface networks in a discretized scalar field. Int. J. Geograph. Inf. Sci.
**2014**, 28, 1–21. [Google Scholar] [CrossRef] - Edelsbrunner, H.; Harer, J.; Mascarenhas, A.; Pascucci, V.; Snoeyink, J. Time-varying Reeb graphs for continuous space–time data. Comput. Geom.
**2008**, 41, 149–166. [Google Scholar] [CrossRef] - Edelsbrunner, H.; Harer, J. Jacobi Sets of Multiple Morse Functions. In Foundations of Computational Mathematics, Minneapolis; Cambridge University Press: London, UK, 2002; pp. 37–57. [Google Scholar]
- Sadahiro, Y. Analysis of surface changes using primitive events. Int. J. Geograph. Inf. Sci.
**2001**, 15, 523–538. [Google Scholar] [CrossRef] - Szymczak, A. Subdomain Aware Contour Trees and Contour Evolution in Time-Dependent Scalar Fields. In Proceedings of the International Conference on Shape Modeling and Applications, Genova, Italy, 13–17 June 2005; pp. 136–144.
- Mascarenhas, A.; Snoeyink, J. Isocontour Based Visualization of Time-Varying Scalar Fields. In Mathematical Foundations of Scientific Visualization, Computer Graphics, and Massive Data Exploration; Springer: Berlin Heidelberg, Germany, 2009; pp. 41–68. [Google Scholar]
- Samtaney, R.; Silver, D.; Zabusky, N.; Cao, J. Visualizing features and tracking their evolution. Computer
**1994**, 27, 20–27. [Google Scholar] [CrossRef] - Reinders, F.; Post, F.H.; Spoelder, H.J. Visualization of time-dependent data with feature tracking and event detection. Vis. Comput.
**2001**, 17, 55–71. [Google Scholar] [CrossRef] - Ji, G.; Shen, H.W.; Wenger, R. Volume Tracking Using Higher Dimensional Isosurfacing. In Proceedings of the IEEE Visualization (VIS 2003), Washington, DC, USA, 19–24 October 2003; pp. 209–216.
- Bremer, P.T.; Weber, G.H.; Pascucci, V.; Day, M.; Bell, J.B. Analyzing and tracking burning structures in lean premixed hydrogen flames. IEEE Trans. Vis. Comput. Graph.
**2010**, 16, 248–260. [Google Scholar] [CrossRef] [PubMed] - Weber, G.; Bremer, P.T.; Day, M.; Bell, J.; Pascucci, V. Feature Tracking Using Reeb Graphs. In Topological Methods in Data Analysis and Visualization; Pascucci, V., Tricoche, X., Hagen, H., Tierny, J., Eds.; Mathematics and Visualization, Springer: Berlin Heidelberg, Germany, 2011; pp. 241–253. [Google Scholar]
- Sohn, B.S.; Bajaj, C. Time-varying contour topology. IEEE Trans. Vis. Comput. Graph.
**2006**, 12, 14–25. [Google Scholar] [CrossRef] [PubMed] - Galton, A. Continuous Change in Spatial Regions. In Proceedings of the International Conference COSIT ’97 on Spatial Information Theory: A Theoretical Basis for GIS, Laurel Highlands, PA, USA, 15–18 October 1997; Hirtle, S.C., Frank, A.U., Eds.; Springer: Berlin/Heidelberg, Germany, 1997; pp. 1–13. [Google Scholar]
- Sadahiro, Y.; Umemura, M. A computational approach for the analysis of changes in polygon distributions. J. Geograph. Syst.
**2001**, 3, 137–154. [Google Scholar] [CrossRef] - Silver, D.; Wang, X. Tracking Scalar Features in Unstructured Data Sets. In Proceedings of the Visualization’98, Research Triangle Park, NC, USA, 24 October 1998; pp. 79–86.
- Bothwell, J.; Yuan, M. A Kinematics-based GIS Methodology to Represent and Analyze Spatiotemporal Patterns of Precipitation Change. In Proceedings of the 19th ACM SIGSPATIAL International Conference on Advances in Geographic Information Systems (GIS ’11), Chicago, IL, USA, 1–4 November 2011; ACM: New York, NY, USA, 2011; pp. 152–161. [Google Scholar]
- Palla, G.; Barabási, A.L.; Vicsek, T. Quantifying social group evolution. Nature
**2007**, 446, 664–667. [Google Scholar] [CrossRef] [PubMed] - Greene, D.; Doyle, D.; Cunningham, P. Tracking the Evolution of Communities in Dynamic Social Networks. In Proceedings of the 2010 International Conference on Advances in Social Networks Analysis and Mining (ASONAM), Odense, Denmark, 9–11 August 2010; pp. 176–183.
- Robertson, C.; Nelson, T.A.; Boots, B.; Wulder, M.A. STAMP: Spatial-temporal analysis of moving polygons. J. Geograph. Syst.
**2007**, 9, 207–227. [Google Scholar] [CrossRef] - Jiang, J.; Worboys, M. Event-based topology for dynamic planar areal objects. Int. J. Geograph. Inf. Sci.
**2009**, 23, 33–60. [Google Scholar] [CrossRef] - Duckham, M. Decentralized Spatial Computing: Foundations of Geosensor Networks; Springer: Berlin, Germany, 2013. [Google Scholar]
- Santoro, N. Design and Analysis of Distributed Algorithms; John Wiley & Sons, Inc.: Hoboken, NJ, USA, 2007. [Google Scholar]
- Takahashi, S.; Ikeda, T.; Shinagawa, Y.; Kunii, T.L.; Ueda, M. Algorithms for Extracting Correct Critical Points and Constructing Topological Graphs from Discrete Geographical Elevation Data. Comput. Graph. Forum
**1995**, 14, 181–192. [Google Scholar] [CrossRef] - Danovaro, E.; de Floriani, L.; Papaleo, L.; Vitali, M. A Multi-Resolution Representation for Terrain Morphology. In Proceedings of the 4th International Conference on Geographic Information Science, Münster, Germany, 20–23 September 2006; Raubal, M., Miller, H., Frank, A., Goodchild, M., Eds.; Lecture Notes in Computer Science. Springer: Berlin Heidelberg, Germany, 2006; Volume 4197, pp. 33–46. [Google Scholar]
- Wood, J. The Geomorphological Characterisation of Digital Elevation Models. Ph.D. Thesis, University of Leicester, Leicester, UK, March 1996. [Google Scholar]
- Wilensky, U. NetLogo. 1999. Available online: http://ccl.northwestern.edu/netlogo/ (accessed on 1 June 2015).
- Bakeman, R. Recommended effect size statistics for repeated measures designs. Behav. Res. Methods
**2005**, 37, 379–384. [Google Scholar] [CrossRef] [PubMed] - Field, A.; Miles, J.; Field, Z. Discovering Statistics Using R; Sage: London, UK, 2012. [Google Scholar]
- Buckland, M.; Gey, F. The relationship between Recall and Precision. J. Am. Soc. Inf. Sci.
**1994**, 45, 12–19. [Google Scholar] [CrossRef] - Goutte, C.; Gaussier, E. A Probabilistic Interpretation of Precision, Recall and F-Score, with Implications for Evaluation. In Advances in Information Retrieval; Losada, D., Fernández-Luna, J., Eds.; Lecture Notes in Computer Science; Springer: Berlin Heidelberg, Germany, 2005; Volume 3408, pp. 345–359. [Google Scholar]
- Sundararaman, B.; Buy, U.; Kshemkalyani, A.D. Clock synchronization for wireless sensor networks: A survey. Ad Hoc Netw.
**2005**, 3, 281–323. [Google Scholar] [CrossRef] - Werner-Allen, G.; Tewari, G.; Patel, A.; Welsh, M.; Nagpal, R. Firefly-Inspired Sensor Network Synchronicity with Realistic Radio Effects. In Proceedings of the 3rd International Conference on Embedded Networked Sensor Systems, San Diego, CA, USA, 2–4 November 2005; ACM: New York, NY, USA, 2005; pp. 142–153. [Google Scholar]
- Jeong, M.-H. Qualitative Characteristics of Fields Monitored by a Resource-Constrained Geosensor Network. Ph.D. Thesis, The University of Melbourne, Melbourne, Australia, June 2014. [Google Scholar]

© 2015 by the authors; licensee MDPI, Basel, Switzerland. This article is an open access article distributed under the terms and conditions of the Creative Commons Attribution license (http://creativecommons.org/licenses/by/4.0/).

## Share and Cite

**MDPI and ACS Style**

Jeong, M.-H.; Duckham, M. Efficient, Decentralized Detection of Qualitative Spatial Events in a Dynamic Scalar Field. *Sensors* **2015**, *15*, 21350-21376.
https://doi.org/10.3390/s150921350

**AMA Style**

Jeong M-H, Duckham M. Efficient, Decentralized Detection of Qualitative Spatial Events in a Dynamic Scalar Field. *Sensors*. 2015; 15(9):21350-21376.
https://doi.org/10.3390/s150921350

**Chicago/Turabian Style**

Jeong, Myeong-Hun, and Matt Duckham. 2015. "Efficient, Decentralized Detection of Qualitative Spatial Events in a Dynamic Scalar Field" *Sensors* 15, no. 9: 21350-21376.
https://doi.org/10.3390/s150921350