Last active
March 1, 2019 21:52
-
-
Save ssmaroju/be09984fc911284131b34f8c3bd8eb0a to your computer and use it in GitHub Desktop.
Project Prototype
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/*! | |
* dc.leaflet 0.4.0 | |
* http://dc-js.github.io/dc.leaflet.js/ | |
* Copyright 2014-2015 Boyan Yurukov and the dc.leaflet Developers | |
* https://github.com/dc-js/dc.leaflet.js/blob/master/AUTHORS | |
* | |
* Licensed under the Apache License, Version 2.0 (the "License"); | |
* you may not use this file except in compliance with the License. | |
* You may obtain a copy of the License at | |
* | |
* http://www.apache.org/licenses/LICENSE-2.0 | |
* | |
* Unless required by applicable law or agreed to in writing, software | |
* distributed under the License is distributed on an "AS IS" BASIS, | |
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |
* See the License for the specific language governing permissions and | |
* limitations under the License. | |
*/ | |
(function() { function _dc_leaflet(dc) { | |
'use strict'; | |
var dc_leaflet = { | |
version: '0.4.0' | |
}; | |
dc_leaflet.leafletBase = function(_chart) { | |
_chart = dc.marginMixin(dc.baseChart(_chart)); | |
_chart.margins({left:0, top:0, right:0, bottom:0}); | |
var _map; | |
var _mapOptions=false; | |
var _defaultCenter=false; | |
var _defaultZoom=false; | |
var _cachedHandlers = {}; | |
var _createLeaflet = function(root) { | |
// append sub-div if not there, to allow client to put stuff (reset link etc.) | |
// in main div. might also use relative positioning here, for now assume | |
// appending will put in right position | |
var child_div = root.selectAll('div.dc-leaflet'); | |
child_div = child_div.data([0]).enter() | |
.append('div').attr('class', 'dc-leaflet') | |
.style('width', _chart.effectiveWidth() + "px") | |
.style('height', _chart.effectiveHeight() + "px") | |
.merge(child_div); | |
return L.map(child_div.node(),_mapOptions); | |
}; | |
var _tiles=function(map) { | |
L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', { | |
attribution: '© <a href="https://openstreetmap.org/copyright">OpenStreetMap</a> contributors' | |
}).addTo(map); | |
}; | |
_chart.createLeaflet = function(_) { | |
if(!arguments.length) { | |
return _createLeaflet; | |
} | |
_createLeaflet = _; | |
return _chart; | |
}; | |
_chart._doRender = function() { | |
if(! _chart.map()){ | |
_map = _createLeaflet(_chart.root()); | |
for(var ev in _cachedHandlers) | |
_map.on(ev, _cachedHandlers[ev]); | |
if (_defaultCenter && _defaultZoom) { | |
_map.setView(_chart.toLocArray(_defaultCenter), _defaultZoom); | |
} | |
_chart.tiles()(_map); | |
_chart._postRender(); | |
} | |
else | |
console.warn("WARNING: Leaflet map already rendered."); | |
return _chart._doRedraw(); | |
}; | |
_chart._doRedraw = function() { | |
return _chart; | |
}; | |
_chart._postRender = function() { | |
return _chart; | |
}; | |
_chart.mapOptions = function(_) { | |
if (!arguments.length) { | |
return _mapOptions; | |
} | |
_mapOptions = _; | |
return _chart; | |
}; | |
_chart.center = function(_) { | |
if (!arguments.length) { | |
return _defaultCenter; | |
} | |
_defaultCenter = _; | |
return _chart; | |
}; | |
_chart.zoom = function(_) { | |
if (!arguments.length) { | |
return _defaultZoom; | |
} | |
_defaultZoom = _; | |
return _chart; | |
}; | |
_chart.tiles = function(_) { | |
if (!arguments.length) { | |
return _tiles; | |
} | |
_tiles = _; | |
return _chart; | |
}; | |
_chart.map = function() { | |
return _map; | |
}; | |
_chart.toLocArray = function(value) { | |
if (typeof value === "string") { | |
// expects '11.111,1.111' | |
value = value.split(","); | |
} | |
// else expects [11.111,1.111] | |
return value; | |
}; | |
// combine Leaflet events into d3 & dc events | |
dc.override(_chart, 'on', function(event, callback) { | |
var leaflet_events = ['zoomend', 'moveend']; | |
if(leaflet_events.indexOf(event) >= 0) { | |
if(_map) { | |
_map.on(event, callback); | |
} | |
else { | |
_cachedHandlers[event] = callback; | |
} | |
return this; | |
} | |
else return _chart._on(event, callback); | |
}); | |
return _chart; | |
}; | |
//Legend code adapted from http://leafletjs.com/examples/choropleth.html | |
dc_leaflet.legend = function() { | |
var _parent, _legend = {}; | |
var _leafletLegend = null; | |
var _position = 'bottomleft'; | |
_legend.parent = function (parent) { | |
if(!arguments.length) | |
return _parent; | |
_parent = parent; | |
return this; | |
}; | |
function _LegendClass() { | |
return L.Control.extend({ | |
options: {position: _position}, | |
onAdd: function (map) { | |
this._div = L.DomUtil.create('div', 'info legend'); | |
map.on('moveend',this._update,this); | |
this._update(); | |
return this._div; | |
}, | |
_update: function () { | |
if (!_parent.colorDomain) | |
console.warn('legend not supported for this dc.leaflet chart type, ignoring'); | |
else { | |
var minValue = _parent.colorDomain()[0], | |
maxValue = _parent.colorDomain()[1], | |
palette = _parent.colors().range(), | |
colorLength = _parent.colors().range().length, | |
delta = (maxValue - minValue)/colorLength, | |
i; | |
// define grades for legend colours | |
// based on equation in dc.js colorCalculator (before version based on colorMixin) | |
var grades = []; | |
grades[0] = Math.round(minValue); | |
for (i= 1; i < colorLength; i++) { | |
grades[i] = Math.round((0.5 + (i - 1)) * delta + minValue); | |
} | |
var div = L.DomUtil.create('div', 'info legend'); | |
// loop through our density intervals and generate a label with a colored | |
// square for each interval | |
this._div.innerHTML = ""; //reset so that legend is not plotted multiple times | |
for (i = 0; i < grades.length; i++) { | |
this._div.innerHTML += | |
'<i style="background:' + palette[i] + '"></i> ' + | |
grades[i] + (grades[i + 1] ? '–' + grades[i + 1] + '<br>' : '+'); | |
} | |
} | |
} | |
}); | |
} | |
_legend.LegendClass = function(LegendClass) { | |
if(!arguments.length) | |
return _LegendClass; | |
_LegendClass = LegendClass; | |
return _legend; | |
}; | |
_legend.render = function () { | |
// unfortunately the dc.js legend has no concept of redraw, it's always render | |
if(!_leafletLegend) { | |
// fetch the legend class creator, invoke it | |
var Legend = _legend.LegendClass()(); | |
// and constuct that class | |
_leafletLegend = new Legend(); | |
_leafletLegend.addTo(_parent.map()); | |
} | |
return _legend.redraw(); | |
}; | |
_legend.redraw = function () { | |
_leafletLegend._update(); | |
return _legend; | |
}; | |
_legend.leafletLegend = function () { | |
return _leafletLegend; | |
}; | |
_legend.position = function (position) { | |
if(!arguments.length) return _position; | |
_position = position; | |
return _legend; | |
}; | |
return _legend; | |
}; | |
dc_leaflet.markerChart = function(parent, chartGroup) { | |
var _chart = dc_leaflet.leafletBase({}); | |
var _renderPopup = true; | |
var _cluster = false; // requires leaflet.markerCluster | |
var _clusterOptions=false; | |
var _rebuildMarkers = false; | |
var _brushOn = true; | |
var _filterByArea = false; | |
var _filter; | |
var _innerFilter=false; | |
var _zooming=false; | |
var _layerGroup = false; | |
var _markerList = []; | |
var _currentGroups=false; | |
_chart.renderTitle(true); | |
var _location = function(d) { | |
return _chart.keyAccessor()(d); | |
}; | |
var _marker = function(d, map) { | |
var marker = new L.Marker(_chart.toLocArray(_chart.locationAccessor()(d)), { | |
title: _chart.renderTitle() ? _chart.title()(d) : '', | |
alt: _chart.renderTitle() ? _chart.title()(d) : '', | |
icon: _icon(d, map), | |
clickable: _chart.renderPopup() || (_chart.brushOn() && !_filterByArea), | |
draggable: false | |
}); | |
return marker; | |
}; | |
var _icon = function(d, map) { | |
return new L.Icon.Default(); | |
}; | |
var _popup = function(d, marker) { | |
return _chart.title()(d); | |
}; | |
_chart._postRender = function() { | |
if (_chart.brushOn()) { | |
if (_filterByArea) { | |
_chart.filterHandler(doFilterByArea); | |
} | |
_chart.map().on('zoomend moveend', zoomFilter, this ); | |
if (!_filterByArea) | |
_chart.map().on('click', zoomFilter, this ); | |
_chart.map().on('zoomstart', zoomStart, this); | |
} | |
if (_cluster) { | |
_layerGroup = new L.MarkerClusterGroup(_clusterOptions?_clusterOptions:null); | |
} | |
else { | |
_layerGroup = new L.LayerGroup(); | |
} | |
_chart.map().addLayer(_layerGroup); | |
}; | |
_chart._doRedraw = function() { | |
var groups = _chart._computeOrderedGroups(_chart.data()).filter(function (d) { | |
return _chart.valueAccessor()(d) !== 0; | |
}); | |
if (_currentGroups && _currentGroups.toString() === groups.toString()) { | |
return; | |
} | |
_currentGroups=groups; | |
if (_rebuildMarkers) { | |
_markerList=[]; | |
} | |
_layerGroup.clearLayers(); | |
var addList=[]; | |
groups.forEach(function(v, i) { | |
var key = _chart.keyAccessor()(v); | |
var marker = null; | |
if (!_rebuildMarkers && key in _markerList) { | |
marker = _markerList[key]; | |
} | |
else { | |
marker = createmarker(v, key); | |
} | |
if (!_chart.cluster()) { | |
_layerGroup.addLayer(marker); | |
} | |
else { | |
addList.push(marker); | |
} | |
}); | |
if (_chart.cluster() && addList.length > 0) { | |
_layerGroup.addLayers(addList); | |
} | |
}; | |
_chart.locationAccessor = function(_) { | |
if (!arguments.length) { | |
return _location; | |
} | |
_location= _; | |
return _chart; | |
}; | |
_chart.marker = function(_) { | |
if (!arguments.length) { | |
return _marker; | |
} | |
_marker= _; | |
return _chart; | |
}; | |
_chart.icon = function(_) { | |
if (!arguments.length) { | |
return _icon; | |
} | |
_icon= _; | |
return _chart; | |
}; | |
_chart.popup = function(_) { | |
if (!arguments.length) { | |
return _popup; | |
} | |
_popup= _; | |
return _chart; | |
}; | |
_chart.renderPopup = function(_) { | |
if (!arguments.length) { | |
return _renderPopup; | |
} | |
_renderPopup = _; | |
return _chart; | |
}; | |
_chart.cluster = function(_) { | |
if (!arguments.length) { | |
return _cluster; | |
} | |
_cluster = _; | |
return _chart; | |
}; | |
_chart.clusterOptions = function(_) { | |
if (!arguments.length) { | |
return _clusterOptions; | |
} | |
_clusterOptions = _; | |
return _chart; | |
}; | |
_chart.rebuildMarkers = function(_) { | |
if (!arguments.length) { | |
return _rebuildMarkers; | |
} | |
_rebuildMarkers = _; | |
return _chart; | |
}; | |
_chart.brushOn = function(_) { | |
if (!arguments.length) { | |
return _brushOn; | |
} | |
_brushOn = _; | |
return _chart; | |
}; | |
_chart.filterByArea = function(_) { | |
if (!arguments.length) { | |
return _filterByArea; | |
} | |
_filterByArea = _; | |
return _chart; | |
}; | |
_chart.markerGroup = function() { | |
return _layerGroup; | |
}; | |
var createmarker = function(v, k) { | |
var marker = _marker(v, _chart.map()); | |
marker.key = k; | |
if (_chart.renderPopup()) { | |
marker.bindPopup(_chart.popup()(v, marker)); | |
} | |
if (_chart.brushOn() && !_filterByArea) { | |
marker.on("click", selectFilter); | |
} | |
_markerList[k]=marker; | |
return marker; | |
}; | |
var zoomStart = function(e) { | |
_zooming=true; | |
}; | |
var zoomFilter = function(e) { | |
if (e.type === "moveend" && (_zooming || e.hard)) { | |
return; | |
} | |
_zooming=false; | |
if (_filterByArea) { | |
var filter; | |
if (_chart.map().getCenter().equals(_chart.center()) && _chart.map().getZoom() === _chart.zoom()) { | |
filter = null; | |
} | |
else { | |
filter = _chart.map().getBounds(); | |
} | |
dc.events.trigger(function () { | |
_chart.filter(null); | |
if (filter) { | |
_innerFilter=true; | |
_chart.filter(filter); | |
_innerFilter=false; | |
} | |
dc.redrawAll(_chart.chartGroup()); | |
}); | |
} else if (_chart.filter() && (e.type === "click" || | |
(_markerList.indexOf(_chart.filter()) !== -1 && | |
!_chart.map().getBounds().contains(_markerList[_chart.filter()].getLatLng())))) { | |
dc.events.trigger(function () { | |
_chart.filter(null); | |
if (_renderPopup) { | |
_chart.map().closePopup(); | |
} | |
dc.redrawAll(_chart.chartGroup()); | |
}); | |
} | |
}; | |
var doFilterByArea = function(dimension, filters) { | |
_chart.dimension().filter(null); | |
if (filters && filters.length>0) { | |
_chart.dimension().filterFunction(function(d) { | |
if (!(d in _markerList)) { | |
return false; | |
} | |
var locO = _markerList[d].getLatLng(); | |
return locO && filters[0].contains(locO); | |
}); | |
if (!_innerFilter && _chart.map().getBounds().toString !== filters[0].toString()) { | |
_chart.map().fitBounds(filters[0]); | |
} | |
} | |
}; | |
var selectFilter = function(e) { | |
if (!e.target) return; | |
var filter = e.target.key; | |
dc.events.trigger(function () { | |
_chart.filter(filter); | |
dc.redrawAll(_chart.chartGroup()); | |
}); | |
}; | |
return _chart.anchor(parent, chartGroup); | |
}; | |
dc_leaflet.choroplethChart = function(parent, chartGroup) { | |
var _chart = dc.colorChart(dc_leaflet.leafletBase({})); | |
var _geojsonLayer = false; | |
var _dataMap = []; | |
var _geojson = false; | |
var _renderPopup = true; | |
var _brushOn = true; | |
var _featureOptions = { | |
'fillColor':'black', | |
'color':'gray', | |
'opacity':0.4, | |
'fillOpacity':0.6, | |
'weight':1 | |
}; | |
var _featureKey = function(feature) { | |
return feature.key; | |
}; | |
var _featureStyle = function(feature) { | |
var options = _chart.featureOptions(); | |
if (options instanceof Function) { | |
options=options(feature); | |
} | |
options = JSON.parse(JSON.stringify(options)); | |
var v = _dataMap[_chart.featureKeyAccessor()(feature)]; | |
if (v && v.d) { | |
options.fillColor=_chart.getColor(v.d, v.i); | |
if (_chart.filters().indexOf(v.d.key) !== -1) { | |
options.opacity=0.8; | |
options.fillOpacity=1; | |
} | |
} | |
return options; | |
}; | |
var _popup = function(d, feature) { | |
return _chart.title()(d); | |
}; | |
_chart._postRender = function() { | |
_geojsonLayer=L.geoJson(_chart.geojson(), { | |
style: _chart.featureStyle(), | |
onEachFeature: processFeatures | |
}); | |
_chart.map().addLayer(_geojsonLayer); | |
}; | |
dc.override(_chart, '_doRedraw', function() { | |
_geojsonLayer.clearLayers(); | |
_dataMap=[]; | |
_chart._computeOrderedGroups(_chart.data()).forEach(function (d, i) { | |
_dataMap[_chart.keyAccessor()(d)] = {'d':d, 'i':i}; | |
}); | |
_geojsonLayer.addData(_chart.geojson()); | |
return _chart.__doRedraw(); | |
}); | |
_chart.geojson = function(_) { | |
if (!arguments.length) { | |
return _geojson; | |
} | |
_geojson = _; | |
return _chart; | |
}; | |
_chart.featureOptions = function(_) { | |
if (!arguments.length) { | |
return _featureOptions; | |
} | |
_featureOptions = _; | |
return _chart; | |
}; | |
_chart.featureKeyAccessor = function(_) { | |
if (!arguments.length) { | |
return _featureKey; | |
} | |
_featureKey= _; | |
return _chart; | |
}; | |
_chart.featureStyle = function(_) { | |
if (!arguments.length) { | |
return _featureStyle; | |
} | |
_featureStyle= _; | |
return _chart; | |
}; | |
_chart.popup = function(_) { | |
if (!arguments.length) { | |
return _popup; | |
} | |
_popup= _; | |
return _chart; | |
}; | |
_chart.renderPopup = function(_) { | |
if (!arguments.length) { | |
return _renderPopup; | |
} | |
_renderPopup = _; | |
return _chart; | |
}; | |
_chart.brushOn = function(_) { | |
if (!arguments.length) { | |
return _brushOn; | |
} | |
_brushOn = _; | |
return _chart; | |
}; | |
var processFeatures = function (feature, layer) { | |
var v = _dataMap[_chart.featureKeyAccessor()(feature)]; | |
if (v && v.d) { | |
layer.key=v.d.key; | |
if (_chart.renderPopup()) | |
layer.bindPopup(_chart.popup()(v.d, feature)); | |
if (_chart.brushOn()) | |
layer.on("click", selectFilter); | |
} | |
}; | |
var selectFilter = function(e) { | |
if (!e.target) { | |
return; | |
} | |
var filter = e.target.key; | |
dc.events.trigger(function () { | |
_chart.filter(filter); | |
dc.redrawAll(_chart.chartGroup()); | |
}); | |
}; | |
return _chart.anchor(parent, chartGroup); | |
}; | |
dc_leaflet.bubbleChart = function (parent, chartGroup) { | |
"use strict"; | |
/* #################################### | |
* Private variables -- default values. | |
* #################################### | |
*/ | |
var _chart = dc_leaflet.leafletBase({}); | |
var _selectedColor = 'blue'; | |
var _unselectedColor = 'gray'; | |
var _layerGroup = false; | |
var _location = function (d) { | |
return _chart.keyAccessor()(d); | |
}; | |
var _r = d3.scaleLinear().domain([0, 100]); | |
var _brushOn = true; | |
var _marker = function (d, map) { | |
var loc = _chart.locationAccessor()(d); | |
var locArray = _chart.toLocArray(loc); | |
var latlng = L.latLng(+locArray[0], +locArray[1]); | |
var circle = L.circleMarker(latlng); | |
circle.setRadius(_chart.r()(_chart.valueAccessor()(d))); | |
circle.on("mouseover", function (e) { | |
// TODO - Tooltips! | |
//console.log(_chart.title()(d)); | |
}); | |
var key = _chart.keyAccessor()(d); | |
var isSelected = (-1 !== _chart.filters().indexOf(key)); | |
circle.options.color = isSelected ? _chart.selectedColor() : _chart.unselectedColor(); | |
return circle; | |
}; | |
/* ######################## | |
* Private helper functions | |
* ######################## | |
*/ | |
/* ################ | |
* Public interface | |
* ################ | |
*/ | |
/** | |
#### .r([bubbleRadiusScale]) | |
Get or set bubble radius scale. By default bubble chart uses ```d3.scaleLinear().domain([0, 100])``` as its r scale . | |
**/ | |
_chart.r = function (_) { | |
if (!arguments.length) return _r; | |
_r = _; | |
return _chart; | |
}; | |
_chart.brushOn = function (_) { | |
if (!arguments.length) { | |
return _brushOn; | |
} | |
_brushOn = _; | |
return _chart; | |
}; | |
_chart.locationAccessor = function (_) { | |
if (!arguments.length) { | |
return _location; | |
} | |
_location = _; | |
return _chart; | |
}; | |
/** | |
#### .selectedColor([color]) | |
Get or set the color of a selected (filter) bubble. | |
*/ | |
_chart.selectedColor = function (_) { | |
if (!arguments.length) { | |
return _selectedColor; | |
} | |
_selectedColor = _; | |
return _chart; | |
}; | |
/** | |
#### .unselectedColor([color]) | |
Get or set the color of a bubble which is not currently in the filter. | |
*/ | |
_chart.unselectedColor = function (_) { | |
if (!arguments.length) { | |
return _unselectedColor; | |
} | |
_unselectedColor = _; | |
return _chart; | |
}; | |
var createmarker = function (v, k) { | |
var marker = _chart.marker()(v, _chart.map()); | |
marker.key = k; | |
if (_chart.brushOn()) { | |
marker.on("click", selectFilter); | |
} | |
return marker; | |
}; | |
_chart.marker = function (_) { | |
if (!arguments.length) { | |
return _marker; | |
} | |
_marker = _; | |
return _chart; | |
}; | |
/* Render and redraw overrides */ | |
_chart._postRender = function () { | |
if (_chart.brushOn()) { | |
_chart.map().on('click', function (e) { | |
_chart.filter(null); | |
_chart.redrawGroup(); | |
}); | |
} | |
_chart.map().on('boxzoomend', boxzoomFilter, this); | |
_layerGroup = new L.LayerGroup(); | |
_chart.map().addLayer(_layerGroup); | |
}; | |
_chart._doRedraw = function () { | |
var groups = _chart._computeOrderedGroups(_chart.data()).filter(function (d) { | |
return _chart.valueAccessor()(d) !== 0; | |
}); | |
_layerGroup.clearLayers(); | |
groups.forEach(function (v, i) { | |
var key = _chart.keyAccessor()(v); | |
var marker = null; | |
marker = createmarker(v, key); | |
_layerGroup.addLayer(marker); | |
}); | |
}; | |
/* Callback functions */ | |
function boxzoomFilter(e) { | |
var filters = []; | |
_layerGroup.eachLayer(function (layer) { | |
var latLng = layer.getLatLng(); | |
if (e.boxZoomBounds.contains(latLng)) { | |
filters.push(layer.key); | |
} | |
}); | |
dc.events.trigger(function (e) { | |
_chart.replaceFilter([filters]); | |
_chart.redrawGroup(); | |
}); | |
} | |
var selectFilter = function (e) { | |
L.DomEvent.stopPropagation(e); | |
var filter = e.target.key; | |
if (e.originalEvent.ctrlKey || e.originalEvent.metaKey) { | |
// If ctrl/cmd key modifier was pressed on click, toggle the target | |
_chart.filter(filter); | |
} | |
else { | |
// If ctrl key wasn't pressed, clear selection and add target | |
_chart.replaceFilter([[filter]]); | |
} | |
_chart.redrawGroup(); | |
}; | |
return _chart.anchor(parent, chartGroup); | |
}; | |
dc_leaflet.d3 = d3; | |
dc_leaflet.crossfilter = crossfilter; | |
dc_leaflet.dc = dc; | |
return dc_leaflet; | |
} | |
if (typeof define === 'function' && define.amd) { | |
define(["dc"], _dc_leaflet); | |
} else if (typeof module == "object" && module.exports) { | |
var _dc = require('dc'); | |
module.exports = _dc_leaflet(_dc); | |
} else { | |
this.dc_leaflet = _dc_leaflet(dc); | |
} | |
} | |
)(); | |
//# sourceMappingURL=dc.leaflet.js.map |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Name | Descriptor | Hectares | Year | Latitude | Longitude | |
---|---|---|---|---|---|---|
YCN Beach | Optimal | 3.489371967 | 2009 | -20.81050015 | 115.4513141 | |
YCN Beach | Optimal | 3.488416036 | 2010 | -20.81050015 | 115.4513141 | |
YCN Beach | Optimal | 3.476215252 | 2011 | -20.81050015 | 115.4513141 | |
YCN Beach | Optimal | 3.320573691 | 2012 | -20.81050015 | 115.4513141 | |
YCN Beach | Optimal | 3.426175204 | 2013 | -20.81050015 | 115.4513141 | |
YCN Beach | Optimal | 3.439568112 | 2014 | -20.81050015 | 115.4513141 | |
YCN Beach | Optimal | 3.297372369 | 2015 | -20.81050015 | 115.4513141 | |
YCN Beach | Sub-optimal | 0.031000349 | 2015 | -20.81050015 | 115.4513141 | |
YCN Beach | Optimal | 3.427721117 | 2017 | -20.81050015 | 115.4513141 | |
YCN Beach | Unsuitable | 0 | 2017 | -20.81050015 | 115.4513141 | |
Bivalve Beach | Sub-optimal | 0.027715216 | 2009 | -20.79187453 | 115.4594189 | |
Bivalve Beach | Optimal | 1.931345852 | 2009 | -20.79187453 | 115.4594189 | |
Bivalve Beach | Optimal | 0.049380233 | 2009 | -20.79187453 | 115.4594189 | |
Bivalve Beach | Optimal | 0.120301077 | 2009 | -20.79187453 | 115.4594189 | |
Bivalve Beach | Optimal | 0.10492518 | 2010 | -20.79187453 | 115.4594189 | |
Bivalve Beach | Optimal | 0.024899572 | 2010 | -20.79187453 | 115.4594189 | |
Bivalve Beach | Optimal | 0.001759573 | 2010 | -20.79187453 | 115.4594189 | |
Bivalve Beach | Optimal | 0.9649 | 2010 | -20.79187453 | 115.4594189 | |
Bivalve Beach | Sub-optimal | 0.004861879 | 2010 | -20.79187453 | 115.4594189 | |
Bivalve Beach | Sub-optimal | 0.154381583 | 2010 | -20.79187453 | 115.4594189 | |
Bivalve Beach | Optimal | 0.048963282 | 2010 | -20.79187453 | 115.4594189 | |
Bivalve Beach | Optimal | 0.017557808 | 2010 | -20.79187453 | 115.4594189 | |
Bivalve Beach | Optimal | 0.140780142 | 2010 | -20.79187453 | 115.4594189 | |
Bivalve Beach | Optimal | 0.737991399 | 2010 | -20.79187453 | 115.4594189 | |
Bivalve Beach | Optimal | 0.0001 | 2010 | -20.79187453 | 115.4594189 | |
Bivalve Beach | Optimal | 0.0002 | 2010 | -20.79187453 | 115.4594189 | |
Bivalve Beach | Optimal | 0.0001 | 2010 | -20.79187453 | 115.4594189 | |
Bivalve Beach | Optimal | 0.003367732 | 2011 | -20.79187453 | 115.4594189 | |
Bivalve Beach | Optimal | 0.002385959 | 2011 | -20.79187453 | 115.4594189 | |
Bivalve Beach | Optimal | 2.21E-06 | 2011 | -20.79187453 | 115.4594189 | |
Bivalve Beach | Optimal | 4.47E-09 | 2011 | -20.79187453 | 115.4594189 | |
Bivalve Beach | Optimal | 0.024611021 | 2011 | -20.79187453 | 115.4594189 | |
Bivalve Beach | Optimal | 0.046468766 | 2011 | -20.79187453 | 115.4594189 | |
Bivalve Beach | Optimal | 1.295657619 | 2011 | -20.79187453 | 115.4594189 | |
Bivalve Beach | Optimal | 0.147870652 | 2011 | -20.79187453 | 115.4594189 | |
Bivalve Beach | Sub-optimal | 0.853820713 | 2012 | -20.79187453 | 115.4594189 | |
Bivalve Beach | Optimal | 0.0001 | 2012 | -20.79187453 | 115.4594189 | |
Bivalve Beach | Sub-optimal | 0.000646442 | 2012 | -20.79187453 | 115.4594189 | |
Bivalve Beach | Sub-optimal | 0.0001 | 2012 | -20.79187453 | 115.4594189 | |
Bivalve Beach | Sub-optimal | 0.0001 | 2012 | -20.79187453 | 115.4594189 | |
Bivalve Beach | Sub-optimal | 0.0009 | 2012 | -20.79187453 | 115.4594189 | |
Bivalve Beach | Optimal | 0.002181671 | 2012 | -20.79187453 | 115.4594189 | |
Bivalve Beach | Optimal | 2.66E-06 | 2012 | -20.79187453 | 115.4594189 | |
Bivalve Beach | Optimal | 0.028235007 | 2012 | -20.79187453 | 115.4594189 | |
Bivalve Beach | Optimal | 0.019967564 | 2012 | -20.79187453 | 115.4594189 | |
Bivalve Beach | Optimal | 0.119519402 | 2012 | -20.79187453 | 115.4594189 | |
Bivalve Beach | Optimal | 0.000271051 | 2012 | -20.79187453 | 115.4594189 | |
Bivalve Beach | Optimal | 0.97834589 | 2012 | -20.79187453 | 115.4594189 | |
Bivalve Beach | Optimal | 0.023562149 | 2012 | -20.79187453 | 115.4594189 | |
Bivalve Beach | Sub-optimal | 0.003998507 | 2013 | -20.79187453 | 115.4594189 | |
Bivalve Beach | Optimal | 8.70E-06 | 2013 | -20.79187453 | 115.4594189 | |
Bivalve Beach | Optimal | 0.000105135 | 2013 | -20.79187453 | 115.4594189 | |
Bivalve Beach | Optimal | 0.037369958 | 2013 | -20.79187453 | 115.4594189 | |
Bivalve Beach | Optimal | 6.23E-06 | 2013 | -20.79187453 | 115.4594189 | |
Bivalve Beach | Optimal | 0.032589933 | 2013 | -20.79187453 | 115.4594189 | |
Bivalve Beach | Optimal | 0.040540493 | 2013 | -20.79187453 | 115.4594189 | |
Bivalve Beach | Optimal | 0.092982308 | 2013 | -20.79187453 | 115.4594189 | |
Bivalve Beach | Optimal | 0.001366141 | 2013 | -20.79187453 | 115.4594189 | |
Bivalve Beach | Sub-optimal | 0.861631558 | 2013 | -20.79187453 | 115.4594189 | |
Bivalve Beach | Optimal | 0.874745456 | 2013 | -20.79187453 | 115.4594189 | |
Bivalve Beach | Optimal | 4.06E-05 | 2014 | -20.79187453 | 115.4594189 | |
Bivalve Beach | Optimal | 0.000235491 | 2014 | -20.79187453 | 115.4594189 | |
Bivalve Beach | Optimal | 0.000852837 | 2014 | -20.79187453 | 115.4594189 | |
Bivalve Beach | Optimal | 0.031304868 | 2014 | -20.79187453 | 115.4594189 | |
Bivalve Beach | Sub-optimal | 0.062866926 | 2014 | -20.79187453 | 115.4594189 | |
Bivalve Beach | Sub-optimal | 0.785477805 | 2014 | -20.79187453 | 115.4594189 | |
Bivalve Beach | Optimal | 0.751828122 | 2014 | -20.79187453 | 115.4594189 | |
Bivalve Beach | Optimal | 0.037493614 | 2014 | -20.79187453 | 115.4594189 | |
Bivalve Beach | Optimal | 0.034319206 | 2014 | -20.79187453 | 115.4594189 | |
Bivalve Beach | Optimal | 0.10803192 | 2014 | -20.79187453 | 115.4594189 | |
Bivalve Beach | Optimal | 0.773110105 | 2015 | -20.79187453 | 115.4594189 | |
Bivalve Beach | Sub-optimal | 0.670258172 | 2015 | -20.79187453 | 115.4594189 | |
Bivalve Beach | Sub-optimal | 0.031562003 | 2015 | -20.79187453 | 115.4594189 | |
Bivalve Beach | Sub-optimal | 0.052506693 | 2015 | -20.79187453 | 115.4594189 | |
Bivalve Beach | Sub-optimal | 0.026761824 | 2015 | -20.79187453 | 115.4594189 | |
Bivalve Beach | Sub-optimal | 0.002629301 | 2015 | -20.79187453 | 115.4594189 | |
Bivalve Beach | Sub-optimal | 0.008163493 | 2015 | -20.79187453 | 115.4594189 | |
Bivalve Beach | Sub-optimal | 0.014782784 | 2015 | -20.79187453 | 115.4594189 | |
Bivalve Beach | Sub-optimal | 4.06E-06 | 2015 | -20.79187453 | 115.4594189 | |
Bivalve Beach | Sub-optimal | 0.205821415 | 2015 | -20.79187453 | 115.4594189 | |
Bivalve Beach | Sub-optimal | 0.031256672 | 2015 | -20.79187453 | 115.4594189 | |
Bivalve Beach | Optimal | 4.01E-06 | 2016 | -20.79187453 | 115.4594189 | |
Bivalve Beach | Optimal | 4.32E-05 | 2016 | -20.79187453 | 115.4594189 | |
Bivalve Beach | Optimal | 7.01E-05 | 2016 | -20.79187453 | 115.4594189 | |
Bivalve Beach | Optimal | 0.0001 | 2016 | -20.79187453 | 115.4594189 | |
Bivalve Beach | Optimal | 0.0001 | 2016 | -20.79187453 | 115.4594189 | |
Bivalve Beach | Optimal | 0.00014255 | 2016 | -20.79187453 | 115.4594189 | |
Bivalve Beach | Optimal | 0.019064496 | 2016 | -20.79187453 | 115.4594189 | |
Bivalve Beach | Optimal | 0.023209655 | 2016 | -20.79187453 | 115.4594189 | |
Bivalve Beach | Optimal | 0.095038035 | 2016 | -20.79187453 | 115.4594189 | |
Bivalve Beach | Optimal | 0.728487781 | 2016 | -20.79187453 | 115.4594189 | |
Bivalve Beach | Sub-optimal | 0.000938512 | 2016 | -20.79187453 | 115.4594189 | |
Bivalve Beach | Sub-optimal | 0.003696197 | 2016 | -20.79187453 | 115.4594189 | |
Bivalve Beach | Sub-optimal | 0.025553093 | 2016 | -20.79187453 | 115.4594189 | |
Bivalve Beach | Sub-optimal | 0.033680802 | 2016 | -20.79187453 | 115.4594189 | |
Bivalve Beach | Sub-optimal | 0.033690642 | 2016 | -20.79187453 | 115.4594189 | |
Bivalve Beach | Sub-optimal | 0.045453382 | 2016 | -20.79187453 | 115.4594189 | |
Bivalve Beach | Sub-optimal | 0.058276572 | 2016 | -20.79187453 | 115.4594189 | |
Bivalve Beach | Sub-optimal | 0.090531731 | 2016 | -20.79187453 | 115.4594189 | |
Bivalve Beach | Sub-optimal | 0.098624361 | 2016 | -20.79187453 | 115.4594189 | |
Bivalve Beach | Sub-optimal | 0.136290018 | 2016 | -20.79187453 | 115.4594189 | |
Bivalve Beach | Sub-optimal | 0.203459145 | 2016 | -20.79187453 | 115.4594189 | |
Bivalve Beach | Sub-optimal | 0.264080335 | 2016 | -20.79187453 | 115.4594189 | |
Bivalve Beach | Unsuitable | 0.000190527 | 2016 | -20.79187453 | 115.4594189 | |
Bivalve Beach | Unsuitable | 0.000683022 | 2016 | -20.79187453 | 115.4594189 | |
Bivalve Beach | Unsuitable | 0.004187631 | 2016 | -20.79187453 | 115.4594189 | |
Bivalve Beach | Unsuitable | 0.005996574 | 2016 | -20.79187453 | 115.4594189 | |
Bivalve Beach | Unsuitable | 0.012826822 | 2016 | -20.79187453 | 115.4594189 | |
Bivalve Beach | Unsuitable | 0.014485781 | 2016 | -20.79187453 | 115.4594189 | |
Bivalve Beach | Unsuitable | 0.020371434 | 2016 | -20.79187453 | 115.4594189 | |
Bivalve Beach | Unsuitable | 0.181810174 | 2016 | -20.79187453 | 115.4594189 | |
Bivalve Beach | Optimal | 0.056193877 | 2017 | -20.79187453 | 115.4594189 | |
Bivalve Beach | Optimal | 0.683669164 | 2017 | -20.79187453 | 115.4594189 | |
Bivalve Beach | Sub-optimal | 0.011861325 | 2017 | -20.79187453 | 115.4594189 | |
Bivalve Beach | Sub-optimal | 0.151184923 | 2017 | -20.79187453 | 115.4594189 | |
Bivalve Beach | Sub-optimal | 0.550307976 | 2017 | -20.79187453 | 115.4594189 | |
Bivalve Beach | Sub-optimal | 0.033115828 | 2017 | -20.79187453 | 115.4594189 | |
Bivalve Beach | Sub-optimal | 0.047364283 | 2017 | -20.79187453 | 115.4594189 | |
Bivalve Beach | Sub-optimal | 0.044303429 | 2017 | -20.79187453 | 115.4594189 | |
Bivalve Beach | Sub-optimal | 0.097603181 | 2017 | -20.79187453 | 115.4594189 | |
Bivalve Beach | Sub-optimal | 0.027279276 | 2017 | -20.79187453 | 115.4594189 | |
Bivalve Beach | Sub-optimal | 0.000103037 | 2017 | -20.79187453 | 115.4594189 | |
Bivalve Beach | Sub-optimal | 9.70E-05 | 2017 | -20.79187453 | 115.4594189 | |
Bivalve Beach | Sub-optimal | 0.000343091 | 2017 | -20.79187453 | 115.4594189 | |
Bivalve Beach | Sub-optimal | 0.000261409 | 2017 | -20.79187453 | 115.4594189 | |
Bivalve Beach | Sub-optimal | 0.000261409 | 2017 | -20.79187453 | 115.4594189 | |
Bivalve Beach | Sub-optimal | 2.20E-06 | 2017 | -20.79187453 | 115.4594189 | |
Bivalve Beach | Sub-optimal | 2.20E-06 | 2017 | -20.79187453 | 115.4594189 | |
Bivalve Beach | Sub-optimal | 3.36E-06 | 2017 | -20.79187453 | 115.4594189 | |
Bivalve Beach | Sub-optimal | 0.000169807 | 2017 | -20.79187453 | 115.4594189 | |
Bivalve Beach | Sub-optimal | 0.000169807 | 2017 | -20.79187453 | 115.4594189 | |
Bivalve Beach | Unsuitable | 0.000105761 | 2017 | -20.79187453 | 115.4594189 | |
Bivalve Beach | Unsuitable | 4.18E-05 | 2017 | -20.79187453 | 115.4594189 | |
Bivalve Beach | Unsuitable | 0.0003 | 2017 | -20.79187453 | 115.4594189 | |
Bivalve Beach | Unsuitable | 3.59E-05 | 2017 | -20.79187453 | 115.4594189 | |
Bivalve Beach | Unsuitable | 5.14E-08 | 2017 | -20.79187453 | 115.4594189 | |
Bivalve Beach | Unsuitable | 0.000129643 | 2017 | -20.79187453 | 115.4594189 | |
Bivalve Beach | Unsuitable | 1.33E-06 | 2017 | -20.79187453 | 115.4594189 | |
Bivalve Beach | Unsuitable | 7.84E-07 | 2017 | -20.79187453 | 115.4594189 | |
Bivalve Beach | Unsuitable | 0.003076037 | 2017 | -20.79187453 | 115.4594189 | |
Bivalve Beach | Unsuitable | 0.001138266 | 2017 | -20.79187453 | 115.4594189 | |
Bivalve Beach | Unsuitable | 0.002185317 | 2017 | -20.79187453 | 115.4594189 | |
Bivalve Beach | Unsuitable | 0.007026925 | 2017 | -20.79187453 | 115.4594189 | |
Bivalve Beach | Unsuitable | 0.0001 | 2017 | -20.79187453 | 115.4594189 | |
Bivalve Beach | Unsuitable | 0.0007 | 2017 | -20.79187453 | 115.4594189 | |
Bivalve Beach | Unsuitable | 0.0004 | 2017 | -20.79187453 | 115.4594189 | |
Bivalve Beach | Unsuitable | 0.0001 | 2017 | -20.79187453 | 115.4594189 | |
Bivalve Beach | Unsuitable | 0.0001 | 2017 | -20.79187453 | 115.4594189 | |
Bivalve Beach | Unsuitable | 0.0002 | 2017 | -20.79187453 | 115.4594189 | |
Bivalve Beach | Unsuitable | 0.000592201 | 2017 | -20.79187453 | 115.4594189 | |
Bivalve Beach | Unsuitable | 1.70E-05 | 2017 | -20.79187453 | 115.4594189 | |
Bivalve Beach | Unsuitable | 9.54E-06 | 2017 | -20.79187453 | 115.4594189 | |
Bivalve Beach | Unsuitable | 0.000308973 | 2017 | -20.79187453 | 115.4594189 | |
Bivalve Beach | Unsuitable | 0.011096571 | 2017 | -20.79187453 | 115.4594189 | |
Bivalve Beach | Unsuitable | 0.038445499 | 2017 | -20.79187453 | 115.4594189 | |
Bivalve Beach | Unsuitable | 0.295329044 | 2017 | -20.79187453 | 115.4594189 | |
Bivalve Beach | Unsuitable | 0.0001 | 2017 | -20.79187453 | 115.4594189 | |
Bivalve Beach | Unsuitable | 0.0001 | 2017 | -20.79187453 | 115.4594189 | |
Bivalve Beach | Unsuitable | 2.12E-06 | 2017 | -20.79187453 | 115.4594189 | |
Bivalve Beach | Unsuitable | 1.13E-05 | 2017 | -20.79187453 | 115.4594189 | |
Bivalve Beach | Unsuitable | 0.0002 | 2017 | -20.79187453 | 115.4594189 | |
Bivalve Beach | Unsuitable | 5.44E-06 | 2017 | -20.79187453 | 115.4594189 | |
Bivalve Beach | Unsuitable | 0.0015 | 2017 | -20.79187453 | 115.4594189 | |
Bivalve Beach | Unsuitable | 1.29E-05 | 2017 | -20.79187453 | 115.4594189 | |
Bivalve Beach | Unsuitable | 0.017363328 | 2017 | -20.79187453 | 115.4594189 | |
Bivalve Beach | Unsuitable | 0.014238321 | 2017 | -20.79187453 | 115.4594189 | |
Bivalve Beach | Unsuitable | 0.001744958 | 2017 | -20.79187453 | 115.4594189 | |
Bivalve Beach | Unsuitable | 0.003516457 | 2017 | -20.79187453 | 115.4594189 | |
Bivalve Beach | Unsuitable | 0.000343091 | 2017 | -20.79187453 | 115.4594189 | |
Bivalve Beach | Unsuitable | 3.36E-06 | 2017 | -20.79187453 | 115.4594189 | |
Bivalve Beach | Optimal | 0.00307609 | 2018 | -20.79187453 | 115.4594189 | |
Bivalve Beach | Optimal | 0.055642362 | 2018 | -20.79187453 | 115.4594189 | |
Bivalve Beach | Optimal | 0.664517139 | 2018 | -20.79187453 | 115.4594189 | |
Bivalve Beach | Sub-optimal | 0.002051072 | 2018 | -20.79187453 | 115.4594189 | |
Bivalve Beach | Sub-optimal | 0.041400783 | 2018 | -20.79187453 | 115.4594189 | |
Bivalve Beach | Sub-optimal | 0.042754367 | 2018 | -20.79187453 | 115.4594189 | |
Bivalve Beach | Sub-optimal | 0.046156953 | 2018 | -20.79187453 | 115.4594189 | |
Bivalve Beach | Sub-optimal | 0.053399867 | 2018 | -20.79187453 | 115.4594189 | |
Bivalve Beach | Sub-optimal | 0.178066747 | 2018 | -20.79187453 | 115.4594189 | |
Bivalve Beach | Sub-optimal | 0.210911382 | 2018 | -20.79187453 | 115.4594189 | |
Bivalve Beach | Sub-optimal | 0.336518933 | 2018 | -20.79187453 | 115.4594189 | |
Bivalve Beach | Unsuitable | 1.71E-05 | 2018 | -20.79187453 | 115.4594189 | |
Bivalve Beach | Unsuitable | 5.25E-05 | 2018 | -20.79187453 | 115.4594189 | |
Bivalve Beach | Unsuitable | 6.24E-05 | 2018 | -20.79187453 | 115.4594189 | |
Bivalve Beach | Unsuitable | 7.58E-05 | 2018 | -20.79187453 | 115.4594189 | |
Bivalve Beach | Unsuitable | 0.000160442 | 2018 | -20.79187453 | 115.4594189 | |
Bivalve Beach | Unsuitable | 0.000670285 | 2018 | -20.79187453 | 115.4594189 | |
Bivalve Beach | Unsuitable | 0.000833506 | 2018 | -20.79187453 | 115.4594189 | |
Bivalve Beach | Unsuitable | 0.012510209 | 2018 | -20.79187453 | 115.4594189 | |
Bivalve Beach | Unsuitable | 0.012945633 | 2018 | -20.79187453 | 115.4594189 | |
Bivalve Beach | Unsuitable | 0.033481195 | 2018 | -20.79187453 | 115.4594189 | |
Bivalve Beach | Unsuitable | 0.061502889 | 2018 | -20.79187453 | 115.4594189 | |
Bivalve Beach | Unsuitable | 0.064277447 | 2018 | -20.79187453 | 115.4594189 | |
Bivalve Beach | Unsuitable | 0.255146532 | 2018 | -20.79187453 | 115.4594189 | |
Inga Beach | Optimal | 0.00213204 | 2009 | -20.80143132 | 115.4552075 | |
Inga Beach | Optimal | 0.00669349 | 2009 | -20.80143132 | 115.4552075 | |
Inga Beach | Sub-optimal | 0.008317927 | 2009 | -20.80143132 | 115.4552075 | |
Inga Beach | Optimal | 0.062359401 | 2009 | -20.80143132 | 115.4552075 | |
Inga Beach | Optimal | 0.00531847 | 2009 | -20.80143132 | 115.4552075 | |
Inga Beach | Sub-optimal | 0.049922155 | 2009 | -20.80143132 | 115.4552075 | |
Inga Beach | Optimal | 0.130568339 | 2009 | -20.80143132 | 115.4552075 | |
Inga Beach | Optimal | 1.472894838 | 2009 | -20.80143132 | 115.4552075 | |
Inga Beach | Optimal | 0.179299781 | 2009 | -20.80143132 | 115.4552075 | |
Inga Beach | Sub-optimal | 0.357109373 | 2009 | -20.80143132 | 115.4552075 | |
Inga Beach | Optimal | 0.001009829 | 2010 | -20.80143132 | 115.4552075 | |
Inga Beach | Sub-optimal | 0.006817452 | 2010 | -20.80143132 | 115.4552075 | |
Inga Beach | Optimal | 0.041417337 | 2010 | -20.80143132 | 115.4552075 | |
Inga Beach | Optimal | 0.093679721 | 2010 | -20.80143132 | 115.4552075 | |
Inga Beach | Optimal | 0.03204814 | 2010 | -20.80143132 | 115.4552075 | |
Inga Beach | Optimal | 0.098627447 | 2010 | -20.80143132 | 115.4552075 | |
Inga Beach | Optimal | 1.562835089 | 2010 | -20.80143132 | 115.4552075 | |
Inga Beach | Optimal | 0.002034858 | 2010 | -20.80143132 | 115.4552075 | |
Inga Beach | Optimal | 0.009947913 | 2010 | -20.80143132 | 115.4552075 | |
Inga Beach | Optimal | 0.007038261 | 2010 | -20.80143132 | 115.4552075 | |
Inga Beach | Sub-optimal | 0.016779702 | 2010 | -20.80143132 | 115.4552075 | |
Inga Beach | Optimal | 0.074985926 | 2010 | -20.80143132 | 115.4552075 | |
Inga Beach | Optimal | 9.54E-06 | 2010 | -20.80143132 | 115.4552075 | |
Inga Beach | Sub-optimal | 0.281549525 | 2010 | -20.80143132 | 115.4552075 | |
Inga Beach | Sub-optimal | 2.11E-05 | 2010 | -20.80143132 | 115.4552075 | |
Inga Beach | Sub-optimal | 0.009928108 | 2010 | -20.80143132 | 115.4552075 | |
Inga Beach | Sub-optimal | 0.105124303 | 2010 | -20.80143132 | 115.4552075 | |
Inga Beach | Sub-optimal | 0.0001 | 2010 | -20.80143132 | 115.4552075 | |
Inga Beach | Sub-optimal | 0.0001 | 2010 | -20.80143132 | 115.4552075 | |
Inga Beach | Optimal | 0.0001 | 2011 | -20.80143132 | 115.4552075 | |
Inga Beach | Optimal | 2.88E-05 | 2011 | -20.80143132 | 115.4552075 | |
Inga Beach | Optimal | 0.000370632 | 2011 | -20.80143132 | 115.4552075 | |
Inga Beach | Optimal | 0.005850877 | 2011 | -20.80143132 | 115.4552075 | |
Inga Beach | Sub-optimal | 0.007825357 | 2011 | -20.80143132 | 115.4552075 | |
Inga Beach | Sub-optimal | 0.004339585 | 2011 | -20.80143132 | 115.4552075 | |
Inga Beach | Optimal | 3.85E-06 | 2011 | -20.80143132 | 115.4552075 | |
Inga Beach | Optimal | 0.008743697 | 2011 | -20.80143132 | 115.4552075 | |
Inga Beach | Optimal | 0.055212098 | 2011 | -20.80143132 | 115.4552075 | |
Inga Beach | Optimal | 0.041310635 | 2011 | -20.80143132 | 115.4552075 | |
Inga Beach | Optimal | 0.120820466 | 2011 | -20.80143132 | 115.4552075 | |
Inga Beach | Sub-optimal | 0.235447248 | 2011 | -20.80143132 | 115.4552075 | |
Inga Beach | Optimal | 1.295219082 | 2011 | -20.80143132 | 115.4552075 | |
Inga Beach | Sub-optimal | 0.453341672 | 2011 | -20.80143132 | 115.4552075 | |
Inga Beach | Optimal | 0.0001 | 2012 | -20.80143132 | 115.4552075 | |
Inga Beach | Optimal | 0.0001 | 2012 | -20.80143132 | 115.4552075 | |
Inga Beach | Optimal | 0.0003 | 2012 | -20.80143132 | 115.4552075 | |
Inga Beach | Optimal | 9.10E-05 | 2012 | -20.80143132 | 115.4552075 | |
Inga Beach | Optimal | 0.002519758 | 2012 | -20.80143132 | 115.4552075 | |
Inga Beach | Sub-optimal | 0.009188911 | 2012 | -20.80143132 | 115.4552075 | |
Inga Beach | Optimal | 0.009467066 | 2012 | -20.80143132 | 115.4552075 | |
Inga Beach | Optimal | 0.029427815 | 2012 | -20.80143132 | 115.4552075 | |
Inga Beach | Optimal | 0.082730227 | 2012 | -20.80143132 | 115.4552075 | |
Inga Beach | Optimal | 0.017348772 | 2012 | -20.80143132 | 115.4552075 | |
Inga Beach | Optimal | 0.098847796 | 2012 | -20.80143132 | 115.4552075 | |
Inga Beach | Sub-optimal | 0.004065228 | 2012 | -20.80143132 | 115.4552075 | |
Inga Beach | Sub-optimal | 0.007690828 | 2012 | -20.80143132 | 115.4552075 | |
Inga Beach | Optimal | 0.10445315 | 2012 | -20.80143132 | 115.4552075 | |
Inga Beach | Optimal | 1.303694526 | 2012 | -20.80143132 | 115.4552075 | |
Inga Beach | Optimal | 0.012342875 | 2012 | -20.80143132 | 115.4552075 | |
Inga Beach | Sub-optimal | 0.445467826 | 2012 | -20.80143132 | 115.4552075 | |
Inga Beach | Optimal | 0.008412414 | 2013 | -20.80143132 | 115.4552075 | |
Inga Beach | Sub-optimal | 0.002536482 | 2013 | -20.80143132 | 115.4552075 | |
Inga Beach | Sub-optimal | 0.422206373 | 2013 | -20.80143132 | 115.4552075 | |
Inga Beach | Sub-optimal | 0.337614772 | 2013 | -20.80143132 | 115.4552075 | |
Inga Beach | Optimal | 1.39183129 | 2013 | -20.80143132 | 115.4552075 | |
Inga Beach | Optimal | 2.27E-05 | 2014 | -20.80143132 | 115.4552075 | |
Inga Beach | Optimal | 0.148515916 | 2014 | -20.80143132 | 115.4552075 | |
Inga Beach | Sub-optimal | 0.374938534 | 2014 | -20.80143132 | 115.4552075 | |
Inga Beach | Optimal | 1.326629799 | 2014 | -20.80143132 | 115.4552075 | |
Inga Beach | Sub-optimal | 0.191035492 | 2014 | -20.80143132 | 115.4552075 | |
Inga Beach | Optimal | 1.34827491 | 2015 | -20.80143132 | 115.4552075 | |
Inga Beach | Optimal | 0.102210417 | 2015 | -20.80143132 | 115.4552075 | |
Inga Beach | Optimal | 0.06313827 | 2015 | -20.80143132 | 115.4552075 | |
Inga Beach | Sub-optimal | 0.193146932 | 2015 | -20.80143132 | 115.4552075 | |
Inga Beach | Sub-optimal | 0.218178807 | 2015 | -20.80143132 | 115.4552075 | |
Inga Beach | Sub-optimal | 0.010889938 | 2015 | -20.80143132 | 115.4552075 | |
Inga Beach | Optimal | 5.49E-07 | 2016 | -20.80143132 | 115.4552075 | |
Inga Beach | Optimal | 5.65E-07 | 2016 | -20.80143132 | 115.4552075 | |
Inga Beach | Optimal | 1.07E-06 | 2016 | -20.80143132 | 115.4552075 | |
Inga Beach | Optimal | 6.00E-06 | 2016 | -20.80143132 | 115.4552075 | |
Inga Beach | Optimal | 9.00E-06 | 2016 | -20.80143132 | 115.4552075 | |
Inga Beach | Optimal | 1.03E-05 | 2016 | -20.80143132 | 115.4552075 | |
Inga Beach | Optimal | 1.71E-05 | 2016 | -20.80143132 | 115.4552075 | |
Inga Beach | Optimal | 0.026962119 | 2016 | -20.80143132 | 115.4552075 | |
Inga Beach | Optimal | 0.159736155 | 2016 | -20.80143132 | 115.4552075 | |
Inga Beach | Optimal | 1.196404695 | 2016 | -20.80143132 | 115.4552075 | |
Inga Beach | Sub-optimal | 0.269979774 | 2016 | -20.80143132 | 115.4552075 | |
Inga Beach | Unsuitable | 0.015566776 | 2016 | -20.80143132 | 115.4552075 | |
Inga Beach | Unsuitable | 0.285649663 | 2016 | -20.80143132 | 115.4552075 | |
Inga Beach | Unsuitable | 0.328908813 | 2016 | -20.80143132 | 115.4552075 | |
Inga Beach | Optimal | 1.162610333 | 2017 | -20.80143132 | 115.4552075 | |
Inga Beach | Sub-optimal | 0.194094488 | 2017 | -20.80143132 | 115.4552075 | |
Inga Beach | Sub-optimal | 0.066972646 | 2017 | -20.80143132 | 115.4552075 | |
Inga Beach | Sub-optimal | 0.140464001 | 2017 | -20.80143132 | 115.4552075 | |
Inga Beach | Sub-optimal | 0.105057956 | 2017 | -20.80143132 | 115.4552075 | |
Inga Beach | Unsuitable | 0.307901134 | 2017 | -20.80143132 | 115.4552075 | |
Inga Beach | Unsuitable | 0.286978695 | 2017 | -20.80143132 | 115.4552075 | |
Inga Beach | Unsuitable | 0.0001 | 2017 | -20.80143132 | 115.4552075 | |
Inga Beach | Unsuitable | 1.61E-06 | 2017 | -20.80143132 | 115.4552075 | |
Inga Beach | Unsuitable | 9.32E-07 | 2017 | -20.80143132 | 115.4552075 | |
Inga Beach | Unsuitable | 4.90E-05 | 2017 | -20.80143132 | 115.4552075 | |
Inga Beach | Unsuitable | 7.74E-05 | 2017 | -20.80143132 | 115.4552075 | |
Inga Beach | Unsuitable | 9.23E-06 | 2017 | -20.80143132 | 115.4552075 | |
Inga Beach | Unsuitable | 0.000100875 | 2017 | -20.80143132 | 115.4552075 | |
Inga Beach | Unsuitable | 6.08E-05 | 2017 | -20.80143132 | 115.4552075 | |
Inga Beach | Unsuitable | 5.31E-05 | 2017 | -20.80143132 | 115.4552075 | |
Inga Beach | Unsuitable | 0.0001 | 2017 | -20.80143132 | 115.4552075 | |
Inga Beach | Unsuitable | 2.36E-06 | 2017 | -20.80143132 | 115.4552075 | |
Inga Beach | Unsuitable | 7.62E-06 | 2017 | -20.80143132 | 115.4552075 | |
Inga Beach | Unsuitable | 2.29E-05 | 2017 | -20.80143132 | 115.4552075 | |
Inga Beach | Unsuitable | 0.001 | 2017 | -20.80143132 | 115.4552075 | |
Inga Beach | Unsuitable | 0.001 | 2017 | -20.80143132 | 115.4552075 | |
Inga Beach | Unsuitable | 0.000284006 | 2017 | -20.80143132 | 115.4552075 | |
Inga Beach | Unsuitable | 2.56E-05 | 2017 | -20.80143132 | 115.4552075 | |
Inga Beach | Unsuitable | 2.69E-06 | 2017 | -20.80143132 | 115.4552075 | |
Inga Beach | Unsuitable | 0.00015005 | 2017 | -20.80143132 | 115.4552075 | |
Inga Beach | Unsuitable | 0.009685743 | 2017 | -20.80143132 | 115.4552075 | |
Inga Beach | Unsuitable | 0.010584484 | 2017 | -20.80143132 | 115.4552075 | |
Inga Beach | Optimal | 0.680236503 | 2018 | -20.80143132 | 115.4552075 | |
Inga Beach | Sub-optimal | 0.006878172 | 2018 | -20.80143132 | 115.4552075 | |
Inga Beach | Sub-optimal | 0.033949048 | 2018 | -20.80143132 | 115.4552075 | |
Inga Beach | Sub-optimal | 0.035458749 | 2018 | -20.80143132 | 115.4552075 | |
Inga Beach | Sub-optimal | 0.045843463 | 2018 | -20.80143132 | 115.4552075 | |
Inga Beach | Sub-optimal | 0.082365651 | 2018 | -20.80143132 | 115.4552075 | |
Inga Beach | Sub-optimal | 0.105273764 | 2018 | -20.80143132 | 115.4552075 | |
Inga Beach | Sub-optimal | 0.10877329 | 2018 | -20.80143132 | 115.4552075 | |
Inga Beach | Sub-optimal | 0.824496801 | 2018 | -20.80143132 | 115.4552075 | |
Inga Beach | Unsuitable | 0.027063806 | 2018 | -20.80143132 | 115.4552075 | |
Inga Beach | Unsuitable | 0.040010288 | 2018 | -20.80143132 | 115.4552075 | |
Inga Beach | Unsuitable | 0.296066461 | 2018 | -20.80143132 | 115.4552075 | |
Terminal Beach | Optimal | 0.146197754 | 2009 | -20.78527239 | 115.4645364 | |
Terminal Beach | Sub-optimal | 0.111737157 | 2009 | -20.78527239 | 115.4645364 | |
Terminal Beach | Optimal | 2.033221332 | 2009 | -20.78527239 | 115.4645364 | |
Terminal Beach | Optimal | 5.22E-06 | 2009 | -20.78527239 | 115.4645364 | |
Terminal Beach | Optimal | 0.004981651 | 2009 | -20.78527239 | 115.4645364 | |
Terminal Beach | Optimal | 0.008651609 | 2009 | -20.78527239 | 115.4645364 | |
Terminal Beach | Optimal | 0.055237781 | 2009 | -20.78527239 | 115.4645364 | |
Terminal Beach | Optimal | 0.160945542 | 2010 | -20.78527239 | 115.4645364 | |
Terminal Beach | Sub-optimal | 0.099820149 | 2010 | -20.78527239 | 115.4645364 | |
Terminal Beach | Optimal | 0.095709336 | 2010 | -20.78527239 | 115.4645364 | |
Terminal Beach | Optimal | 0.086121516 | 2010 | -20.78527239 | 115.4645364 | |
Terminal Beach | Sub-optimal | 0.009714191 | 2010 | -20.78527239 | 115.4645364 | |
Terminal Beach | Optimal | 0.028275535 | 2010 | -20.78527239 | 115.4645364 | |
Terminal Beach | Optimal | 0.015170892 | 2010 | -20.78527239 | 115.4645364 | |
Terminal Beach | Optimal | 0.033703952 | 2010 | -20.78527239 | 115.4645364 | |
Terminal Beach | Optimal | 0.05240095 | 2010 | -20.78527239 | 115.4645364 | |
Terminal Beach | Sub-optimal | 0.012565576 | 2010 | -20.78527239 | 115.4645364 | |
Terminal Beach | Sub-optimal | 0.007184831 | 2010 | -20.78527239 | 115.4645364 | |
Terminal Beach | Optimal | 1.313877236 | 2010 | -20.78527239 | 115.4645364 | |
Terminal Beach | Optimal | 0.0001 | 2010 | -20.78527239 | 115.4645364 | |
Terminal Beach | Optimal | 0.0001 | 2010 | -20.78527239 | 115.4645364 | |
Terminal Beach | Optimal | 0.134486292 | 2010 | -20.78527239 | 115.4645364 | |
Terminal Beach | Optimal | 0.0001 | 2010 | -20.78527239 | 115.4645364 | |
Terminal Beach | Optimal | 0.377093957 | 2010 | -20.78527239 | 115.4645364 | |
Terminal Beach | Optimal | 0.017853947 | 2010 | -20.78527239 | 115.4645364 | |
Terminal Beach | Sub-optimal | 0.016483358 | 2010 | -20.78527239 | 115.4645364 | |
Terminal Beach | Optimal | 0.20595307 | 2011 | -20.78527239 | 115.4645364 | |
Terminal Beach | Optimal | 1.004618671 | 2011 | -20.78527239 | 115.4645364 | |
Terminal Beach | Sub-optimal | 0.084150056 | 2011 | -20.78527239 | 115.4645364 | |
Terminal Beach | Sub-optimal | 0.410475039 | 2011 | -20.78527239 | 115.4645364 | |
Terminal Beach | Optimal | 0.063928322 | 2011 | -20.78527239 | 115.4645364 | |
Terminal Beach | Optimal | 0.294254722 | 2011 | -20.78527239 | 115.4645364 | |
Terminal Beach | Sub-optimal | 0.014069717 | 2011 | -20.78527239 | 115.4645364 | |
Terminal Beach | Optimal | 0.160514838 | 2011 | -20.78527239 | 115.4645364 | |
Terminal Beach | Sub-optimal | 0.026173491 | 2011 | -20.78527239 | 115.4645364 | |
Terminal Beach | Optimal | 4.77E-06 | 2011 | -20.78527239 | 115.4645364 | |
Terminal Beach | Sub-optimal | 0.010214133 | 2012 | -20.78527239 | 115.4645364 | |
Terminal Beach | Optimal | 0.184040587 | 2012 | -20.78527239 | 115.4645364 | |
Terminal Beach | Optimal | 0.0001 | 2012 | -20.78527239 | 115.4645364 | |
Terminal Beach | Optimal | 0.0001 | 2012 | -20.78527239 | 115.4645364 | |
Terminal Beach | Sub-optimal | 0.123100808 | 2012 | -20.78527239 | 115.4645364 | |
Terminal Beach | Sub-optimal | 0.889957352 | 2012 | -20.78527239 | 115.4645364 | |
Terminal Beach | Optimal | 0.628260891 | 2012 | -20.78527239 | 115.4645364 | |
Terminal Beach | Sub-optimal | 2.19E-05 | 2012 | -20.78527239 | 115.4645364 | |
Terminal Beach | Sub-optimal | 0.123886526 | 2012 | -20.78527239 | 115.4645364 | |
Terminal Beach | Optimal | 0.177168821 | 2013 | -20.78527239 | 115.4645364 | |
Terminal Beach | Sub-optimal | 0.802589341 | 2013 | -20.78527239 | 115.4645364 | |
Terminal Beach | Sub-optimal | 0.128229708 | 2013 | -20.78527239 | 115.4645364 | |
Terminal Beach | Optimal | 0.755436701 | 2013 | -20.78527239 | 115.4645364 | |
Terminal Beach | Sub-optimal | 0.131729914 | 2013 | -20.78527239 | 115.4645364 | |
Terminal Beach | Sub-optimal | 0.002824339 | 2014 | -20.78527239 | 115.4645364 | |
Terminal Beach | Optimal | 0.146796894 | 2014 | -20.78527239 | 115.4645364 | |
Terminal Beach | Sub-optimal | 0.121039384 | 2014 | -20.78527239 | 115.4645364 | |
Terminal Beach | Sub-optimal | 0.433291864 | 2014 | -20.78527239 | 115.4645364 | |
Terminal Beach | Optimal | 0.752650749 | 2014 | -20.78527239 | 115.4645364 | |
Terminal Beach | Sub-optimal | 0.309898618 | 2014 | -20.78527239 | 115.4645364 | |
Terminal Beach | Sub-optimal | 0.023223699 | 2014 | -20.78527239 | 115.4645364 | |
Terminal Beach | Optimal | 0.033615209 | 2015 | -20.78527239 | 115.4645364 | |
Terminal Beach | Optimal | 0.021083674 | 2015 | -20.78527239 | 115.4645364 | |
Terminal Beach | Optimal | 0.011526534 | 2015 | -20.78527239 | 115.4645364 | |
Terminal Beach | Optimal | 0.822236639 | 2015 | -20.78527239 | 115.4645364 | |
Terminal Beach | Optimal | 8.29E-07 | 2015 | -20.78527239 | 115.4645364 | |
Terminal Beach | Optimal | 0.004885041 | 2015 | -20.78527239 | 115.4645364 | |
Terminal Beach | Optimal | 0.000901947 | 2015 | -20.78527239 | 115.4645364 | |
Terminal Beach | Optimal | 0.00572066 | 2015 | -20.78527239 | 115.4645364 | |
Terminal Beach | Optimal | 0.005410731 | 2015 | -20.78527239 | 115.4645364 | |
Terminal Beach | Optimal | 0.006183144 | 2015 | -20.78527239 | 115.4645364 | |
Terminal Beach | Optimal | 0.005303903 | 2015 | -20.78527239 | 115.4645364 | |
Terminal Beach | Optimal | 0.011945777 | 2015 | -20.78527239 | 115.4645364 | |
Terminal Beach | Optimal | 0.011376394 | 2015 | -20.78527239 | 115.4645364 | |
Terminal Beach | Sub-optimal | 0.375266296 | 2015 | -20.78527239 | 115.4645364 | |
Terminal Beach | Sub-optimal | 0.340391524 | 2015 | -20.78527239 | 115.4645364 | |
Terminal Beach | Sub-optimal | 0.02134685 | 2015 | -20.78527239 | 115.4645364 | |
Terminal Beach | Sub-optimal | 0.000105667 | 2015 | -20.78527239 | 115.4645364 | |
Terminal Beach | Optimal | 1.80E-05 | 2016 | -20.78527239 | 115.4645364 | |
Terminal Beach | Optimal | 0.019276851 | 2016 | -20.78527239 | 115.4645364 | |
Terminal Beach | Optimal | 0.046218277 | 2016 | -20.78527239 | 115.4645364 | |
Terminal Beach | Optimal | 0.112568531 | 2016 | -20.78527239 | 115.4645364 | |
Terminal Beach | Optimal | 0.575526492 | 2016 | -20.78527239 | 115.4645364 | |
Terminal Beach | Sub-optimal | 3.27E-05 | 2016 | -20.78527239 | 115.4645364 | |
Terminal Beach | Sub-optimal | 0.00755861 | 2016 | -20.78527239 | 115.4645364 | |
Terminal Beach | Sub-optimal | 0.011014527 | 2016 | -20.78527239 | 115.4645364 | |
Terminal Beach | Sub-optimal | 0.014698906 | 2016 | -20.78527239 | 115.4645364 | |
Terminal Beach | Sub-optimal | 0.015692598 | 2016 | -20.78527239 | 115.4645364 | |
Terminal Beach | Sub-optimal | 0.036824367 | 2016 | -20.78527239 | 115.4645364 | |
Terminal Beach | Sub-optimal | 0.037982768 | 2016 | -20.78527239 | 115.4645364 | |
Terminal Beach | Sub-optimal | 0.039256626 | 2016 | -20.78527239 | 115.4645364 | |
Terminal Beach | Sub-optimal | 0.074068506 | 2016 | -20.78527239 | 115.4645364 | |
Terminal Beach | Sub-optimal | 0.106501593 | 2016 | -20.78527239 | 115.4645364 | |
Terminal Beach | Sub-optimal | 0.174934273 | 2016 | -20.78527239 | 115.4645364 | |
Terminal Beach | Unsuitable | 1.27E-05 | 2016 | -20.78527239 | 115.4645364 | |
Terminal Beach | Unsuitable | 1.79E-05 | 2016 | -20.78527239 | 115.4645364 | |
Terminal Beach | Unsuitable | 0.00092624 | 2016 | -20.78527239 | 115.4645364 | |
Terminal Beach | Unsuitable | 0.003105937 | 2016 | -20.78527239 | 115.4645364 | |
Terminal Beach | Unsuitable | 0.004690795 | 2016 | -20.78527239 | 115.4645364 | |
Terminal Beach | Unsuitable | 0.007630752 | 2016 | -20.78527239 | 115.4645364 | |
Terminal Beach | Unsuitable | 0.008374154 | 2016 | -20.78527239 | 115.4645364 | |
Terminal Beach | Unsuitable | 0.008687455 | 2016 | -20.78527239 | 115.4645364 | |
Terminal Beach | Unsuitable | 0.009839309 | 2016 | -20.78527239 | 115.4645364 | |
Terminal Beach | Unsuitable | 0.016663484 | 2016 | -20.78527239 | 115.4645364 | |
Terminal Beach | Unsuitable | 0.018602122 | 2016 | -20.78527239 | 115.4645364 | |
Terminal Beach | Unsuitable | 0.023723475 | 2016 | -20.78527239 | 115.4645364 | |
Terminal Beach | Unsuitable | 0.088209733 | 2016 | -20.78527239 | 115.4645364 | |
Terminal Beach | Unsuitable | 0.099668694 | 2016 | -20.78527239 | 115.4645364 | |
Terminal Beach | Unsuitable | 0.706980961 | 2016 | -20.78527239 | 115.4645364 | |
Terminal Beach | Optimal | 0.841127935 | 2017 | -20.78527239 | 115.4645364 | |
Terminal Beach | Sub-optimal | 0.112913377 | 2017 | -20.78527239 | 115.4645364 | |
Terminal Beach | Sub-optimal | 0.33836844 | 2017 | -20.78527239 | 115.4645364 | |
Terminal Beach | Sub-optimal | 0.109154493 | 2017 | -20.78527239 | 115.4645364 | |
Terminal Beach | Sub-optimal | 0.253805582 | 2017 | -20.78527239 | 115.4645364 | |
Terminal Beach | Sub-optimal | 0.002500325 | 2017 | -20.78527239 | 115.4645364 | |
Terminal Beach | Sub-optimal | 0.012095418 | 2017 | -20.78527239 | 115.4645364 | |
Terminal Beach | Unsuitable | 0.021929754 | 2017 | -20.78527239 | 115.4645364 | |
Terminal Beach | Unsuitable | 0.001398007 | 2017 | -20.78527239 | 115.4645364 | |
Terminal Beach | Unsuitable | 0.024423224 | 2017 | -20.78527239 | 115.4645364 | |
Terminal Beach | Unsuitable | 0.02433609 | 2017 | -20.78527239 | 115.4645364 | |
Terminal Beach | Unsuitable | 5.50E-05 | 2017 | -20.78527239 | 115.4645364 | |
Terminal Beach | Unsuitable | 0.026608938 | 2017 | -20.78527239 | 115.4645364 | |
Terminal Beach | Unsuitable | 0.005885972 | 2017 | -20.78527239 | 115.4645364 | |
Terminal Beach | Unsuitable | 0.169990452 | 2017 | -20.78527239 | 115.4645364 | |
Terminal Beach | Unsuitable | 1.47E-06 | 2017 | -20.78527239 | 115.4645364 | |
Terminal Beach | Unsuitable | 0.39586888 | 2017 | -20.78527239 | 115.4645364 | |
Terminal Beach | Unsuitable | 0.003911139 | 2017 | -20.78527239 | 115.4645364 | |
Terminal Beach | Unsuitable | 0.001345895 | 2017 | -20.78527239 | 115.4645364 | |
Terminal Beach | Unsuitable | 7.07E-06 | 2017 | -20.78527239 | 115.4645364 | |
Terminal Beach | Unsuitable | 0.0002 | 2017 | -20.78527239 | 115.4645364 | |
Terminal Beach | Unsuitable | 0.001997036 | 2017 | -20.78527239 | 115.4645364 | |
Terminal Beach | Unsuitable | 0.0002 | 2017 | -20.78527239 | 115.4645364 | |
Terminal Beach | Unsuitable | 0.0002 | 2017 | -20.78527239 | 115.4645364 | |
Terminal Beach | Unsuitable | 0.0002 | 2017 | -20.78527239 | 115.4645364 | |
Terminal Beach | Unsuitable | 0.0007 | 2017 | -20.78527239 | 115.4645364 | |
Terminal Beach | Unsuitable | 4.50E-05 | 2017 | -20.78527239 | 115.4645364 | |
Terminal Beach | Unsuitable | 5.83E-05 | 2017 | -20.78527239 | 115.4645364 | |
Terminal Beach | Unsuitable | 0.00074798 | 2017 | -20.78527239 | 115.4645364 | |
Terminal Beach | Unsuitable | 1.19E-05 | 2017 | -20.78527239 | 115.4645364 | |
Terminal Beach | Unsuitable | 0.018025299 | 2017 | -20.78527239 | 115.4645364 | |
Terminal Beach | Optimal | 0.740679834 | 2018 | -20.78527239 | 115.4645364 | |
Terminal Beach | Sub-optimal | 3.10E-05 | 2018 | -20.78527239 | 115.4645364 | |
Terminal Beach | Sub-optimal | 0.000468702 | 2018 | -20.78527239 | 115.4645364 | |
Terminal Beach | Sub-optimal | 0.000966255 | 2018 | -20.78527239 | 115.4645364 | |
Terminal Beach | Sub-optimal | 0.00132665 | 2018 | -20.78527239 | 115.4645364 | |
Terminal Beach | Sub-optimal | 0.001594347 | 2018 | -20.78527239 | 115.4645364 | |
Terminal Beach | Sub-optimal | 0.002786778 | 2018 | -20.78527239 | 115.4645364 | |
Terminal Beach | Sub-optimal | 0.003256272 | 2018 | -20.78527239 | 115.4645364 | |
Terminal Beach | Sub-optimal | 0.005089722 | 2018 | -20.78527239 | 115.4645364 | |
Terminal Beach | Sub-optimal | 0.005982548 | 2018 | -20.78527239 | 115.4645364 | |
Terminal Beach | Sub-optimal | 0.00702702 | 2018 | -20.78527239 | 115.4645364 | |
Terminal Beach | Sub-optimal | 0.026179257 | 2018 | -20.78527239 | 115.4645364 | |
Terminal Beach | Sub-optimal | 0.048082182 | 2018 | -20.78527239 | 115.4645364 | |
Terminal Beach | Sub-optimal | 0.048610657 | 2018 | -20.78527239 | 115.4645364 | |
Terminal Beach | Sub-optimal | 0.066107307 | 2018 | -20.78527239 | 115.4645364 | |
Terminal Beach | Sub-optimal | 0.077910109 | 2018 | -20.78527239 | 115.4645364 | |
Terminal Beach | Sub-optimal | 0.087937477 | 2018 | -20.78527239 | 115.4645364 | |
Terminal Beach | Sub-optimal | 0.12919101 | 2018 | -20.78527239 | 115.4645364 | |
Terminal Beach | Sub-optimal | 0.20270017 | 2018 | -20.78527239 | 115.4645364 | |
Terminal Beach | Unsuitable | 1.02E-06 | 2018 | -20.78527239 | 115.4645364 | |
Terminal Beach | Unsuitable | 1.19E-05 | 2018 | -20.78527239 | 115.4645364 | |
Terminal Beach | Unsuitable | 2.64E-05 | 2018 | -20.78527239 | 115.4645364 | |
Terminal Beach | Unsuitable | 4.43E-05 | 2018 | -20.78527239 | 115.4645364 | |
Terminal Beach | Unsuitable | 7.66E-05 | 2018 | -20.78527239 | 115.4645364 | |
Terminal Beach | Unsuitable | 0.000129728 | 2018 | -20.78527239 | 115.4645364 | |
Terminal Beach | Unsuitable | 0.000163997 | 2018 | -20.78527239 | 115.4645364 | |
Terminal Beach | Unsuitable | 0.000167221 | 2018 | -20.78527239 | 115.4645364 | |
Terminal Beach | Unsuitable | 0.000309532 | 2018 | -20.78527239 | 115.4645364 | |
Terminal Beach | Unsuitable | 0.000475583 | 2018 | -20.78527239 | 115.4645364 | |
Terminal Beach | Unsuitable | 0.000555443 | 2018 | -20.78527239 | 115.4645364 | |
Terminal Beach | Unsuitable | 0.000756326 | 2018 | -20.78527239 | 115.4645364 | |
Terminal Beach | Unsuitable | 0.0014645 | 2018 | -20.78527239 | 115.4645364 | |
Terminal Beach | Unsuitable | 0.002072054 | 2018 | -20.78527239 | 115.4645364 | |
Terminal Beach | Unsuitable | 0.002795491 | 2018 | -20.78527239 | 115.4645364 | |
Terminal Beach | Unsuitable | 0.008569444 | 2018 | -20.78527239 | 115.4645364 | |
Terminal Beach | Unsuitable | 0.013923516 | 2018 | -20.78527239 | 115.4645364 | |
Terminal Beach | Unsuitable | 0.241887342 | 2018 | -20.78527239 | 115.4645364 | |
Terminal Beach | Unsuitable | 0.539169009 | 2018 | -20.78527239 | 115.4645364 | |
YCS Beach | Optimal | 1.677693965 | 2009 | -20.81977078 | 115.4481556 | |
YCS Beach | Optimal | 0.0007 | 2009 | -20.81977078 | 115.4481556 | |
YCS Beach | Sub-optimal | 0.000218478 | 2009 | -20.81977078 | 115.4481556 | |
YCS Beach | Optimal | 1.765721868 | 2009 | -20.81977078 | 115.4481556 | |
YCS Beach | Sub-optimal | 0.318368109 | 2009 | -20.81977078 | 115.4481556 | |
YCS Beach | Sub-optimal | 0.721067462 | 2009 | -20.81977078 | 115.4481556 | |
YCS Beach | Optimal | 1.51207637 | 2010 | -20.81977078 | 115.4481556 | |
YCS Beach | Optimal | 0.033748447 | 2010 | -20.81977078 | 115.4481556 | |
YCS Beach | Optimal | 1.19E-05 | 2010 | -20.81977078 | 115.4481556 | |
YCS Beach | Optimal | 0.059547928 | 2010 | -20.81977078 | 115.4481556 | |
YCS Beach | Optimal | 0.09804988 | 2010 | -20.81977078 | 115.4481556 | |
YCS Beach | Sub-optimal | 0.019915126 | 2010 | -20.81977078 | 115.4481556 | |
YCS Beach | Optimal | 1.833477422 | 2010 | -20.81977078 | 115.4481556 | |
YCS Beach | Sub-optimal | 0.317770184 | 2010 | -20.81977078 | 115.4481556 | |
YCS Beach | Sub-optimal | 0.0006 | 2010 | -20.81977078 | 115.4481556 | |
YCS Beach | Sub-optimal | 0.0001 | 2010 | -20.81977078 | 115.4481556 | |
YCS Beach | Sub-optimal | 0.000588664 | 2010 | -20.81977078 | 115.4481556 | |
YCS Beach | Sub-optimal | 0.656964262 | 2010 | -20.81977078 | 115.4481556 | |
YCS Beach | Optimal | 0.0002 | 2011 | -20.81977078 | 115.4481556 | |
YCS Beach | Optimal | 1.877484468 | 2011 | -20.81977078 | 115.4481556 | |
YCS Beach | Sub-optimal | 0.307540074 | 2011 | -20.81977078 | 115.4481556 | |
YCS Beach | Optimal | 1.804230978 | 2011 | -20.81977078 | 115.4481556 | |
YCS Beach | Sub-optimal | 0.589916582 | 2011 | -20.81977078 | 115.4481556 | |
YCS Beach | Optimal | 3.60E-05 | 2012 | -20.81977078 | 115.4481556 | |
YCS Beach | Optimal | 1.73E-05 | 2012 | -20.81977078 | 115.4481556 | |
YCS Beach | Optimal | 1.685598 | 2012 | -20.81977078 | 115.4481556 | |
YCS Beach | Optimal | 2.017920965 | 2012 | -20.81977078 | 115.4481556 | |
YCS Beach | Sub-optimal | 0.375587307 | 2012 | -20.81977078 | 115.4481556 | |
YCS Beach | Sub-optimal | 0.470293772 | 2012 | -20.81977078 | 115.4481556 | |
YCS Beach | Optimal | 1.804417891 | 2013 | -20.81977078 | 115.4481556 | |
YCS Beach | Sub-optimal | 0.24604519 | 2013 | -20.81977078 | 115.4481556 | |
YCS Beach | Optimal | 1.751204522 | 2013 | -20.81977078 | 115.4481556 | |
YCS Beach | Sub-optimal | 0.685392111 | 2013 | -20.81977078 | 115.4481556 | |
YCS Beach | Optimal | 1.558465637 | 2014 | -20.81977078 | 115.4481556 | |
YCS Beach | Optimal | 1.770594508 | 2014 | -20.81977078 | 115.4481556 | |
YCS Beach | Sub-optimal | 0.427173921 | 2014 | -20.81977078 | 115.4481556 | |
YCS Beach | Sub-optimal | 0.798449363 | 2014 | -20.81977078 | 115.4481556 | |
YCS Beach | Optimal | 1.637737169 | 2015 | -20.81977078 | 115.4481556 | |
YCS Beach | Optimal | 1.740624668 | 2015 | -20.81977078 | 115.4481556 | |
YCS Beach | Optimal | 0.000197545 | 2015 | -20.81977078 | 115.4481556 | |
YCS Beach | Sub-optimal | 0.756915728 | 2015 | -20.81977078 | 115.4481556 | |
YCS Beach | Sub-optimal | 0.373136894 | 2015 | -20.81977078 | 115.4481556 | |
YCS Beach | Optimal | 8.71E-07 | 2017 | -20.81977078 | 115.4481556 | |
YCS Beach | Optimal | 1.590408032 | 2017 | -20.81977078 | 115.4481556 | |
YCS Beach | Optimal | 1.500559707 | 2017 | -20.81977078 | 115.4481556 | |
YCS Beach | Sub-optimal | 0.521522508 | 2017 | -20.81977078 | 115.4481556 | |
YCS Beach | Sub-optimal | 2.34E-07 | 2017 | -20.81977078 | 115.4481556 | |
YCS Beach | Sub-optimal | 5.07E-06 | 2017 | -20.81977078 | 115.4481556 | |
YCS Beach | Sub-optimal | 0.000835223 | 2017 | -20.81977078 | 115.4481556 | |
YCS Beach | Sub-optimal | 0.03768211 | 2017 | -20.81977078 | 115.4481556 | |
YCS Beach | Sub-optimal | 0.746178358 | 2017 | -20.81977078 | 115.4481556 | |
YCS Beach | Sub-optimal | 0.000342256 | 2017 | -20.81977078 | 115.4481556 | |
YCS Beach | Sub-optimal | 0.000257744 | 2017 | -20.81977078 | 115.4481556 | |
YCS Beach | Unsuitable | 0.0008 | 2017 | -20.81977078 | 115.4481556 | |
YCS Beach | Unsuitable | 0.0014 | 2017 | -20.81977078 | 115.4481556 | |
YCS Beach | Unsuitable | 0.0005 | 2017 | -20.81977078 | 115.4481556 | |
YCS Beach | Unsuitable | 0.0002 | 2017 | -20.81977078 | 115.4481556 | |
YCS Beach | Unsuitable | 0.02186897 | 2017 | -20.81977078 | 115.4481556 | |
Mushroom Beach | Optimal | 0.0001 | 2012 | -20.77001978 | 115.4689299 | |
Mushroom Beach | Optimal | 0.0001 | 2012 | -20.77001978 | 115.4689299 | |
Mushroom Beach | Optimal | 3.211100893 | 2012 | -20.77001978 | 115.4689299 | |
Mushroom Beach | Sub-optimal | 0.459044811 | 2012 | -20.77001978 | 115.4689299 | |
Mushroom Beach | Optimal | 3.256596685 | 2013 | -20.77001978 | 115.4689299 | |
Mushroom Beach | Sub-optimal | 0.467117972 | 2013 | -20.77001978 | 115.4689299 | |
Mushroom Beach | Optimal | 2.36E-05 | 2014 | -20.77001978 | 115.4689299 | |
Mushroom Beach | Optimal | 0.0001 | 2014 | -20.77001978 | 115.4689299 | |
Mushroom Beach | Optimal | 3.229805317 | 2014 | -20.77001978 | 115.4689299 | |
Mushroom Beach | Sub-optimal | 0.453528377 | 2014 | -20.77001978 | 115.4689299 | |
Mushroom Beach | Optimal | 3.213917436 | 2015 | -20.77001978 | 115.4689299 | |
Mushroom Beach | Optimal | 0.040405687 | 2015 | -20.77001978 | 115.4689299 | |
Mushroom Beach | Sub-optimal | 0.211038232 | 2015 | -20.77001978 | 115.4689299 | |
Mushroom Beach | Sub-optimal | 0.012069489 | 2015 | -20.77001978 | 115.4689299 | |
Mushroom Beach | Sub-optimal | 0.006419261 | 2015 | -20.77001978 | 115.4689299 | |
Mushroom Beach | Optimal | 3.40E-05 | 2016 | -20.77001978 | 115.4689299 | |
Mushroom Beach | Optimal | 0.0001 | 2016 | -20.77001978 | 115.4689299 | |
Mushroom Beach | Optimal | 0.0001 | 2016 | -20.77001978 | 115.4689299 | |
Mushroom Beach | Optimal | 0.148636459 | 2016 | -20.77001978 | 115.4689299 | |
Mushroom Beach | Optimal | 3.1581453 | 2016 | -20.77001978 | 115.4689299 | |
Mushroom Beach | Sub-optimal | 0.036544423 | 2016 | -20.77001978 | 115.4689299 | |
Mushroom Beach | Sub-optimal | 0.214757377 | 2016 | -20.77001978 | 115.4689299 | |
Mushroom Beach | Unsuitable | 0.005523402 | 2016 | -20.77001978 | 115.4689299 | |
Mushroom Beach | Unsuitable | 0.155202402 | 2016 | -20.77001978 | 115.4689299 | |
Mushroom Beach | Optimal | 3.426501096 | 2017 | -20.77001978 | 115.4689299 | |
Mushroom Beach | Optimal | 0.004832563 | 2017 | -20.77001978 | 115.4689299 | |
Mushroom Beach | Sub-optimal | 0.229308736 | 2017 | -20.77001978 | 115.4689299 | |
Mushroom Beach | Unsuitable | 2.12E-05 | 2017 | -20.77001978 | 115.4689299 | |
Mushroom Beach | Unsuitable | 0.005822199 | 2017 | -20.77001978 | 115.4689299 | |
Mushroom Beach | Unsuitable | 3.62E-05 | 2017 | -20.77001978 | 115.4689299 | |
Mushroom Beach | Unsuitable | 0.001887391 | 2017 | -20.77001978 | 115.4689299 | |
Mushroom Beach | Unsuitable | 1.58E-05 | 2017 | -20.77001978 | 115.4689299 | |
Mushroom Beach | Unsuitable | 0.077387868 | 2017 | -20.77001978 | 115.4689299 | |
Mushroom Beach | Unsuitable | 0.0001 | 2017 | -20.77001978 | 115.4689299 | |
Mushroom Beach | Unsuitable | 0.121684519 | 2017 | -20.77001978 | 115.4689299 | |
Mushroom Beach | Unsuitable | 0.000270477 | 2017 | -20.77001978 | 115.4689299 | |
Mushroom Beach | Optimal | 3.367063226 | 2018 | -20.77001978 | 115.4689299 | |
Mushroom Beach | Sub-optimal | 0.276784645 | 2018 | -20.77001978 | 115.4689299 | |
Mushroom Beach | Unsuitable | 0.013505737 | 2018 | -20.77001978 | 115.4689299 | |
Mushroom Beach | Unsuitable | 0.073961669 | 2018 | -20.77001978 | 115.4689299 | |
Mushroom Beach | Unsuitable | 0.138012204 | 2018 | -20.77001978 | 115.4689299 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<!--<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">--> | |
<!DOCTYPE html> | |
<html lang="en"> | |
<head> | |
<title>BMT-Ecology</title> | |
<link rel="shortcut icon" href="https://bmt.cloud.databricks.com/media/bmt-favicon.24e70a2e.ico"> | |
<meta charset="UTF-8"> | |
<link rel="stylesheet" type="text/css" href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.1.3/css/bootstrap.css"> | |
<link rel="stylesheet" type="text/css" href="https://cdnjs.cloudflare.com/ajax/libs/dc/3.0.6/dc.css"/> | |
<link type="text/css" href="https://cdnjs.cloudflare.com/ajax/libs/leaflet/1.3.4/leaflet.css" rel="stylesheet"/> | |
<link href="https://cdnjs.cloudflare.com/ajax/libs/leaflet/1.3.4/images/marker-icon.png" /> | |
<link href="https://cdnjs.cloudflare.com/ajax/libs/leaflet/1.3.4/images/marker-icon-2x.png" /> | |
<link type="text/css" href="https://cdnjs.cloudflare.com/ajax/libs/leaflet.markercluster/1.4.1/MarkerCluster.Default.css" rel="stylesheet"/> | |
<link type="text/css" href="https://cdnjs.cloudflare.com/ajax/libs/leaflet.markercluster/1.4.1/MarkerCluster.css" rel="stylesheet"/> | |
<meta name="viewport" content="width=device-width, initial-scale=1"> | |
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> | |
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script> | |
<!--<script src="https://gist.github.com/xhinking/9341806.js"></script>--> | |
<style> | |
#monthly-volume-chart g.y { | |
display: none; | |
} | |
#container{width:100%;} | |
#left{float:left;width:20px;} | |
#right{float:right;width:20px;} | |
#center{margin:0 auto;width:800px;} | |
#paging { | |
text-align: right; | |
} | |
#data-table th span { /*Glyphicon style*/ | |
float: right; | |
font-size: 1em; | |
color: #0080bf; | |
display: inline-block; | |
} | |
#dc-table-graph th { | |
cursor: pointer; | |
} | |
.dc-chart g.row text {fill: black;} | |
#holder>div { | |
padding:30px 0; | |
clear:both; | |
} | |
.map { | |
width:600px; | |
height:350px; | |
} | |
</style> | |
</head> | |
<body> | |
<div id="container"> | |
<div id="left"></div> | |
<div id="right"> | |
</div> | |
<div id="center"></div> | |
</div> | |
<div class="container"> | |
<h2>Turtle Nesting Study Area</h2> | |
<div class="row"> | |
<div id="demo1" align="center"> | |
<!--<strong>Average Values (Top 20)</strong>--> | |
<a class="reset" href="javascript:marker.filterAll();dc.redrawAll();" style="display: none;">reset</a> | |
<div class="map"></div> | |
<div class="clearfix"></div> | |
</div> | |
</div> | |
<div class="row"> | |
<div id="search-chart"></div> | |
<!--<div style="clear:both;">--> | |
<div id="year-chart" align="center"> | |
<strong>Year</strong> | |
<a class="reset" href="javascript:yearChart.filterAll();dc.redrawAll();" style="display: none;">reset</a> | |
<div class="clearfix"></div> | |
</div> | |
<div id="name-chart" align="center"> | |
<strong>Name</strong> | |
<a class="reset" href="javascript:nameChart.filterAll();dc.redrawAll();" style="display: none;">reset</a> | |
<div class="clearfix"></div> | |
</div> | |
<div id="descriptor-chart" align="center"> | |
<strong>Descriptor</strong> | |
<a class="reset" href="javascript:descriptorChart.filterAll();dc.redrawAll();" style="display: none;">reset</a> | |
<div class="clearfix"></div> | |
</div> | |
<div id="hectares-chart" align="center"> | |
<strong>Hectares by Location</strong> | |
<a class="reset" href="javascript:hectaresChart.filterAll();dc.redrawAll();" style="display: none;">reset</a> | |
<div class="clearfix"></div> | |
</div> | |
<div class="row"> | |
<div> | |
<div class="dc-data-count" align="center"> | |
<span class="filter-count"></span> selected out of <span class="total-count"></span> records | <a | |
href="javascript:dc.filterAll(); dc.renderAll();">Reset All</a> | |
</div> | |
</div> | |
<table class="table table-hover dc-data-table"> | |
</table> | |
</div> | |
<div class="clearfix"></div> | |
</div> | |
</div> | |
<!--<script type="text/javascript" src="js/d3.js"></script>--> | |
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/d3/5.5.0/d3.js"></script> | |
<!--<script src="https://d3js.org/d3-time.v1.min.js"></script> | |
<script src="https://d3js.org/d3-time-format.v2.min.js"></script>--> | |
<!--<script type="text/javascript" src="js/crossfilter.js"></script>--> | |
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/crossfilter/1.3.12/crossfilter.js"></script> | |
<!--<script type="text/javascript" src="js/dc.js"></script>--> | |
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/dc/3.0.6/dc.js"></script> | |
<!--<script type="text/javascript" src="js/d3.js"></script>--> | |
<!--<script type="text/javascript" src="js/crossfilter.js"></script>--> | |
<!--<script type="text/javascript" src="js/dc.js"></script>--> | |
<!--<script type="text/javascript" src="../dc.leaflet.js-master/web/js/leaflet.js"></script>--> | |
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/leaflet/1.3.4/leaflet.js"></script> | |
<!--<script src="../dc.leaflet.js-master/web/js/colorbrewer.js"></script>--> | |
<!--<script type="text/javascript" src="../dc.leaflet.js-master/web/js/leaflet.markercluster.js"></script>--> | |
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/leaflet.markercluster/1.4.1/leaflet.markercluster.js"></script> | |
<!--<script type="text/javascript" src="../dc.leaflet.js-master/web/js/dc.leaflet.js"></script>--> | |
<script type="text/javascript" src="dc.leaflet.js"></script> | |
<script type="text/javascript" src="turtleAreas.js"></script> | |
</body> | |
</html> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
//# dc.js Getting Started and How-To Guide | |
'use strict'; | |
// dc.config.defaultColors(d3.schemeCategory10); | |
dc.config.defaultColors(d3.schemePaired); | |
// Note: It is often a good idea to have these objects accessible at the global scope so that they can be modified or | |
// filtered by other page controls. | |
var yearChart = dc.pieChart('#year-chart'); | |
var nameChart = dc.pieChart('#name-chart'); | |
var descriptorChart = dc.pieChart('#descriptor-chart'); | |
var hectaresChart = dc.barChart('#hectares-chart'); | |
var sampleCount = dc.dataCount('.dc-data-count'); | |
var samplesTable = dc.dataTable('.dc-data-table'); | |
var groupname = "marker-select"; | |
// var marker = dc_leaflet.markerChart("#demo1 .map",groupname); | |
var marker = dc_leaflet.markerChart("#demo1 .map"); | |
var pie = dc.pieChart("#demo1 .pie",groupname); | |
var searchChart = dc.textFilterWidget("#search-chart"); | |
d3.csv('finalResult1.csv').then(function (data) { | |
var numberFormat = d3.format('.2f'); | |
data.forEach(function (d) { | |
d.Year = +d.Year; | |
// d.Lab_Detection_Limit = (d.Lab_Detection_Limit==="NAN")? 1e-9:+d.Lab_Detection_Limit; | |
d.Hectares = +d.Hectares; | |
d.geo = +d.Latitude+","+d.Longitude; | |
}); | |
//### Create Crossfilter Dimensions and Groups | |
var xf = crossfilter(data); | |
var all = xf.groupAll(); | |
var searchDimension = xf.dimension(function (d) { | |
return d.Year + ' ' + d.Name + ' ' + d.Descriptor + ' ' + d.Hectares; | |
}); | |
// Create categorical dimension | |
var nameDim = xf.dimension(function (d) { | |
return d.Name; | |
}); | |
// Produce counts records in the dimension | |
var nameGroup = nameDim.group(); | |
var nameDescDim = xf.dimension(function (d) { | |
return d.Name; | |
}); | |
// var nameDescriptorGroup = nameDescDim.group().reduce(reduceAdd, reduceRemove, reduceInitial); | |
// print_filter(nameDescDim); | |
// Create categorical dimension | |
var descriptor = xf.dimension(function (d) { | |
return d.Descriptor; | |
}); | |
// Produce counts records in the dimension | |
var descriptorGroup = descriptor.group(); | |
var yearDim = xf.dimension(function (d) { | |
return d.Year; | |
}); | |
var yearGroup = yearDim.group(); | |
var location = xf.dimension(function(d) { return d.geo; }); | |
var locationGroup = location.group().reduceCount(); | |
nameChart /* dc.pieChart('#gain-loss-chart', 'chartGroup') */ | |
// (_optional_) define chart width, `default = 200` | |
.width(250) | |
// (optional) define chart height, `default = 200` | |
.height(250) | |
// Define pie radius | |
.radius(100) | |
// Set dimension | |
.innerRadius(30) | |
.dimension(nameDim) | |
// Set group | |
.group(nameGroup); | |
descriptorChart /* dc.pieChart('#gain-loss-chart', 'chartGroup') */ | |
// (_optional_) define chart width, `default = 200` | |
.width(250) | |
// (optional) define chart height, `default = 200` | |
.height(250) | |
// Define pie radius | |
.radius(100) | |
// Set dimension | |
.innerRadius(30) | |
.dimension(descriptor) | |
// Set group | |
.group(descriptorGroup); | |
yearChart /* dc.pieChart('#quarter-chart', 'chartGroup') */ | |
.width(250) | |
.height(250) | |
.radius(100) | |
.innerRadius(30) | |
.dimension(yearDim) | |
.group(yearGroup) | |
.render(); | |
var nameDimension = xf.dimension(function(d) {return d.Name;}); | |
var hectaresGroup = nameDimension.group().reduce(function (p, v) { | |
p[v.Descriptor] = (p[v.Descriptor] || 0) + v.Hectares; | |
return p; | |
}, function(p, v) { | |
p[v.Descriptor] = (p[v.Descriptor] || 0) - v.Hectares; | |
return p; | |
}, function() { | |
return {}; | |
}); | |
function sel_stack(i) { | |
return function(d) { | |
return d.value[i]; | |
}; | |
} | |
var desc = ['Optimal', 'Sub-optimal', 'Unsuitable']; | |
hectaresChart | |
.width(768) | |
.height(480) | |
.x(d3.scaleBand()) | |
.xUnits(dc.units.ordinal) | |
.margins({left: 80, top: 20, right: 10, bottom: 20}) | |
.brushOn(false) | |
.clipPadding(10) | |
.title(function(d) { | |
console.log(this); | |
return d.key + '[' + this.layer + ']: ' + d.value[this.layer]; | |
}) | |
.dimension(nameDimension) | |
.group(hectaresGroup, desc[0], sel_stack(desc[0])) | |
.renderLabel(true); | |
hectaresChart.legend(dc.legend()); | |
dc.override(hectaresChart, 'legendables', function() { | |
var items = hectaresChart._legendables(); | |
return items.reverse(); | |
}); | |
for(var i = 1; i<desc.length; ++i) | |
hectaresChart.stack(hectaresGroup, desc[i], sel_stack(desc[i])); | |
hectaresChart.render(); | |
sampleCount /* dc.dataCount('.dc-data-count', 'chartGroup'); */ | |
.dimension(xf) | |
.group(all) | |
// (_optional_) `.html` sets different html when some records or all records are selected. | |
// `.html` replaces everything in the anchor with the html given using the following function. | |
// `%filter-count` and `%total-count` are replaced with the values obtained. | |
.html({ | |
some: '<strong>%filter-count</strong> selected out of <strong>%total-count</strong> records' + | |
' | <a href=\'javascript:dc.filterAll(); dc.renderAll();\'>Reset All</a>', | |
all: 'All records:<strong>%total-count</strong>' | |
}); | |
samplesTable /* dc.dataTable('.dc-data-table', 'chartGroup') */ | |
.dimension(yearDim) | |
// (_optional_) max number of records to be shown, `default = 25` | |
.group(function () { | |
return 'Parameters'; | |
}) | |
.size(50) | |
.columns([ | |
'Year', | |
'Name', | |
'Descriptor', | |
'Hectares' | |
]) | |
// (optional) sort using the given field, :default = function(d){return d;} | |
.sortBy(function(d){ return -d.Value; }) | |
// (optional) sort order, :default ascending | |
// .order(d3.descending()) | |
; | |
searchChart.dimension(searchDimension); | |
marker.dimension(location) | |
.group(locationGroup) | |
.width(1200) | |
.height(300) | |
.center([-20.79647816005, 115.457927070833]) | |
.zoom(12) | |
// .cluster(true); | |
.renderPopup(false) | |
.filterByArea(true); | |
//#### Rendering | |
//simply call `.renderAll()` to render all charts on the page | |
// dc.renderAll(); | |
dc.renderAll(); | |
}); | |
//#### Versions | |
//Determine the current version of dc with `dc.version` | |
d3.selectAll('#version').text(dc.version); | |
// Determine latest stable version in the repo via Github API | |
d3.json('https://api.github.com/repos/dc-js/dc.js/releases/latest').then(function (latestRelease) { | |
/*jshint camelcase: false */ | |
/* jscs:disable */ | |
d3.selectAll('#latest').text(latestRelease.tag_name); | |
}); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment