Showing preview only (2,084K chars total). Download the full file or copy to clipboard to get everything.
Repository: jamesward/koober
Branch: master
Commit: 3c370c60bbe7
Files: 82
Total size: 2.0 MB
Directory structure:
gitextract_o_p3sq4s/
├── .gitignore
├── .travis.yml
├── Procfile
├── README.md
├── app.json
├── build.sbt
├── cassandra-server/
│ ├── build.sbt
│ └── src/
│ └── main/
│ ├── resources/
│ │ └── cassandra.yaml
│ └── scala/
│ └── CassandraServer.scala
├── demand-dashboard/
│ ├── app/
│ │ ├── Module.scala
│ │ ├── assets/
│ │ │ ├── scripts/
│ │ │ │ └── getdemand.js
│ │ │ └── stylesheets/
│ │ │ └── main.css
│ │ ├── controllers/
│ │ │ └── HomeController.scala
│ │ ├── services/
│ │ │ └── PredictionIO.scala
│ │ └── views/
│ │ ├── dashboardAnalysis.scala.html
│ │ ├── dashboardPrediction.scala.html
│ │ ├── dashboardSectionHeader.scala.html
│ │ ├── documentationData.scala.html
│ │ ├── documentationModels.scala.html
│ │ ├── documentationSectionHeader.scala.html
│ │ ├── header.scala.html
│ │ └── index.scala.html
│ ├── build.sbt
│ ├── conf/
│ │ ├── application.conf
│ │ └── routes
│ └── public/
│ ├── analysis.js
│ ├── koober-training.js
│ ├── main.css
│ └── prediction.js
├── demo-data/
│ ├── build.sbt
│ └── src/
│ ├── main/
│ │ └── scala/
│ │ ├── DemoData.scala
│ │ ├── FakeDataSource.scala
│ │ └── NewYorkDataSource.scala
│ └── test/
│ └── scala/
│ ├── FakeDataSourceSpec.scala
│ └── NewYorkDataSourceSpec.scala
├── flink-client/
│ ├── build.sbt
│ └── src/
│ └── main/
│ ├── resources/
│ │ └── log4j.properties
│ └── scala/
│ └── FlinkClient.scala
├── kafka-common/
│ ├── build.sbt
│ └── src/
│ └── main/
│ └── scala/
│ └── helpers/
│ └── KafkaHelper.scala
├── kafka-server/
│ ├── build.sbt
│ └── src/
│ └── main/
│ ├── resources/
│ │ └── log4j.properties
│ └── scala/
│ └── KafkaServer.scala
├── kafka-to-cassandra/
│ ├── build.sbt
│ └── src/
│ └── main/
│ ├── resources/
│ │ └── log4j.properties
│ └── scala/
│ └── KafkaToCassandra.scala
├── pio-client/
│ ├── build.sbt
│ └── src/
│ ├── main/
│ │ └── scala/
│ │ └── PioClient.scala
│ └── test/
│ └── scala/
│ └── PioClientSpec.scala
├── pio-engine/
│ ├── build.sbt
│ ├── engine.json
│ ├── project/
│ │ └── assembly.sbt
│ ├── src/
│ │ └── main/
│ │ └── scala/
│ │ ├── Algorithm.scala
│ │ ├── AlgorithmGBTree.scala
│ │ ├── Coder.scala
│ │ ├── DataSource.scala
│ │ ├── Engine.scala
│ │ ├── Evaluation.scala
│ │ ├── KooberUtil.scala
│ │ ├── Preparator.scala
│ │ ├── RandomForestAlgorithm.scala
│ │ ├── RidgeRegressionAlgorithm.scala
│ │ └── Serving.scala
│ └── template.json
├── pio-s3/
│ ├── build.sbt
│ └── src/
│ └── main/
│ └── scala/
│ └── pio/
│ └── s3/
│ ├── S3Models.scala
│ └── StorageClient.scala
├── project/
│ ├── build.properties
│ └── plugins.sbt
├── sbt
├── sbt-launch.jar
├── sbt.cmd
├── subproc.sh
├── weather-backfill/
│ └── weather-import.py
└── webapp/
├── app/
│ ├── Module.scala
│ ├── controllers/
│ │ └── HomeController.scala
│ ├── services/
│ │ └── Kafka.scala
│ └── views/
│ ├── driver.scala.html
│ └── rider.scala.html
├── build.sbt
└── conf/
├── application.conf
└── routes
================================================
FILE CONTENTS
================================================
================================================
FILE: .gitignore
================================================
pio.log
/target/
/*/target/
/project/project/
/.idea/
/logs/
/pio-engine/manifest.json
/pio-engine/pio.log
/pio-engine/pio.sbt
/pio-engine/project/target/
/pio-engine/project/project/
/pio-engine/.idea/
*.iml
================================================
FILE: .travis.yml
================================================
language: scala
jdk:
- oraclejdk8
script: sbt test
cache:
directories:
- $HOME/.ivy2/cache
- $HOME/.sbt/boot
sudo: false
================================================
FILE: Procfile
================================================
web: ./subproc.sh web
train: ./subproc.sh train
================================================
FILE: README.md
================================================
Koober
----------------
An uber data pipeline sample app. Play Framework, Akka Streams, Kafka, Flink, Spark Streaming, and Cassandra.
Start Kafka:
./sbt kafkaServer/run
Web App:
1. Obtain an API key from [mapbox.com](https://www.mapbox.com/)
1. Start the Play web app: `MAPBOX_ACCESS_TOKEN=YOUR-MAPBOX-API-KEY ./sbt webapp/run`
Try it out:
1. Open the driver UI: [http://localhost:9000/driver](http://localhost:9000/driver)
1. Open the rider UI: [http://localhost:9000/rider](http://localhost:9000/rider)
1. In the Rider UI, click on the map to position the rider
1. In the Driver UI, click on the rider to initiate a pickup
Start Flink:
1. `./sbt flinkClient/run`
1. Initiate a few pickups and see the average pickup wait time change (in the stdout console for the Flink process)
Start Cassandra:
./sbt cassandraServer/run
Start the Spark Streaming process:
1. `./sbt kafkaToCassandra/run`
1. Watch all of the ride data be micro-batched from Kafka to Cassandra
Setup PredictionIO Pipeline:
1. Setup PIO
2. Set the PIO Access Key:
export PIO_ACCESS_KEY=<YOUR PIO ACCESS KEY>
3. Start the PIO Pipeline:
./sbt pioClient/run
Copy demo data into Kafka or PIO:
For fake data, run:
./sbt "demoData/run <kafka|pio> fake <number of records> <number of months> <number of clusters>"
For New York data, run:
./sbt "demoData/run <kafka|pio> ny <number of months> <sample rate>"
Start the Demand Dashboard
PREDICTIONIO_URL=http://asdf.com MAPBOX_ACCESS_TOKEN=YOUR_MAPBOX_TOKEN ./sbt demandDashboard/run
================================================
FILE: app.json
================================================
{
"name": "koober",
"keywords": [
"play-framework",
"scala",
"akka-streams",
"kafka",
"cassandra",
"flink",
"spark-streaming"
],
"env": {
"CRYPTO_SECRET": {
"generator": "secret"
}
},
"addons": [
"heroku-kafka"
]
}
================================================
FILE: build.sbt
================================================
name := "koober"
lazy val commonSettings = Seq(
scalaVersion := "2.11.8",
libraryDependencies ++= Seq(
"org.scalatest" %% "scalatest" % "3.0.1" % "test"
)
)
lazy val kafkaServer = (project in file("kafka-server")).settings(commonSettings: _*)
lazy val cassandraServer = (project in file("cassandra-server")).settings(commonSettings: _*)
lazy val kafkaCommon = (project in file("kafka-common")).settings(commonSettings: _*)
lazy val webapp = (project in file("webapp")).settings(commonSettings: _*).dependsOn(kafkaCommon).enablePlugins(PlayScala, SbtWeb)
lazy val flinkClient = (project in file("flink-client")).settings(commonSettings: _*)
lazy val kafkaToCassandra = (project in file("kafka-to-cassandra")).settings(commonSettings: _*).dependsOn(kafkaCommon)
lazy val pioClient = (project in file("pio-client")).settings(commonSettings: _*).dependsOn(kafkaCommon)
lazy val demoData = (project in file("demo-data")).settings(commonSettings: _*).dependsOn(kafkaCommon, pioClient)
lazy val demandDashboard = (project in file("demand-dashboard")).settings(commonSettings: _*).enablePlugins(PlayScala, SbtWeb)
lazy val pioS3 = (project in file("pio-s3")).settings(commonSettings: _*)
lazy val pioEngine = (project in file("pio-engine"))
================================================
FILE: cassandra-server/build.sbt
================================================
libraryDependencies += "org.apache.cassandra" % "cassandra-all" % "3.9"
================================================
FILE: cassandra-server/src/main/resources/cassandra.yaml
================================================
# Cassandra storage config YAML
cluster_name: 'Koober'
commitlog_sync: periodic
commitlog_sync_period_in_ms: 10000
partitioner: org.apache.cassandra.dht.Murmur3Partitioner
endpoint_snitch: SimpleSnitch
seed_provider:
- class_name: org.apache.cassandra.locator.SimpleSeedProvider
parameters:
- seeds: "127.0.0.1"
listen_address: localhost
start_native_transport: true
================================================
FILE: cassandra-server/src/main/scala/CassandraServer.scala
================================================
import java.nio.file.Files
import org.apache.cassandra.service.CassandraDaemon
object CassandraServer extends App {
System.setProperty("cassandra.config", "cassandra.yaml")
private val tmpCassandraDirectory: String = Files.createTempDirectory("cassandra").toString
println(s"using cassandra tmp directory: $tmpCassandraDirectory")
System.setProperty("cassandra.storagedir", tmpCassandraDirectory)
System.setProperty("cassandra-foreground", "true")
val cassandraDaemon = new CassandraDaemon()
cassandraDaemon.activate()
}
================================================
FILE: demand-dashboard/app/Module.scala
================================================
import com.google.inject.AbstractModule
import services.{PredictionIO, PredictionIOImpl}
class Module extends AbstractModule {
override def configure() = {
bind(classOf[PredictionIO]).to(classOf[PredictionIOImpl])
}
}
================================================
FILE: demand-dashboard/app/assets/scripts/getdemand.js
================================================
function getDemand() {
// TODO: update demand value with actual predicted demand
document.getElementById("demand-value").innerHTML = "1";
}
================================================
FILE: demand-dashboard/app/assets/stylesheets/main.css
================================================
/* Global */
* {
font-family: "Avenir Next";
}
/* Header */
.header {
display: inline-block;
width: 100%;
height: 100px;
background-color: #89E1D0;
}
.header h1 {
font-size: 40px;
}
#logo-title {
display: inline-flex;
margin-left: 30px;
height: 100%;
}
#logo-title img {
margin: auto 10px auto 0;
width: 50px;
height: auto;
}
#dashboard-title {
float: right;
margin-right: 30px;
height: 100%;
}
/* Dashboard */
.dashboard {
display: inline-flex;
margin-top: 100px;
width: 100%;
}
/* Form */
#form-view {
width: 50%;
}
#form-container {
margin: auto;
width: 300px;
}
.form-field {
height: 40px;
width: 100%;
margin: 10px auto;
background-color: #EEEEEE;
border-radius: 5px;
border: 1px solid #979797;
}
.form-field-icon {
position: relative;
width: 40px;
height: 100%;
border-radius: 5px 0 0 5px;
border-right: 1px solid #979797;
background-color: #D8D8D8;
}
.form-field-icon img {
position: absolute;
margin: auto;
width: auto;
height: 24px;
top:0;
right: 0;
bottom:0;
left: 0;
}
.form-field {
display: inline-flex;
}
select, input {
padding-left: 10px;
width: 260px;
outline: none;
-webkit-appearance: none;
-webkit-border-radius: 0px;
border: none;
border-radius: 0 5px 5px 0;
font-size: 20px;
font-weight: 500;
background-color: #EEEEEE;
color: #A9A9A9;
}
#latitude-field, #longitude-field {
padding-left: 10px;
width: 120px;
outline: none;
background-color: #EEEEEE;
border: none;
font-size: 20px;
font-weight: 500;
}
#longitude-field {
border-left: 1px solid #979797;
border-radius: 0 5px 5px 0;
}
.form-button {
display: table;
margin: 10px auto;
text-align: center;
width: 150px;
height: 40px;
border-radius: 5px;
border: 1px solid #979797;
background-color: #89E1D0;
color: black;
}
.form-button span {
display: table-cell;
vertical-align: middle;
font-weight: bold;
font-size: 20px;
}
.form-button:hover {
background-color: #68C8B6;
}
/* Display */
#display-view {
width: 50%;
}
#demand-card {
display: block;
margin: auto;
width: 250px;
height: 290px;
border-radius: 10px;
background-color: #D8D8D8;
}
#demand-card h2 {
margin: 0;
padding: 15px 0 10px;
text-align: center;
font-size: 30px;
}
#demand-container {
display: table;
margin: auto;
width: 200px;
height: 200px;
border-radius: 8px;
border: 1px solid #979797;
text-align: center;
background-color: #EEEEEE;
}
#demand-container span {
display: table-cell;
vertical-align: middle;
font-size: 100px;
}
================================================
FILE: demand-dashboard/app/controllers/HomeController.scala
================================================
package controllers
import javax.inject._
import org.joda.time.DateTime
import play.api.Configuration
import play.api.libs.json.{Json, JsValue, Reads, Writes}
import play.api.mvc.{Action, Controller}
import services.PredictionIO
import scala.concurrent.{ExecutionContext, Future}
import scala.util.Random
@Singleton
class HomeController @Inject() (configuration: Configuration, predictionIO: PredictionIO)(implicit executionContext: ExecutionContext) extends Controller {
implicit val dateWrites = Writes.jodaDateWrites("yyyy-MM-dd'T'HH:mm:ss.SSSZ")
implicit val dateReads = Reads.jodaDateReads("yyyy-MM-dd'T'HH:mm:ss.SSSZ")
lazy val mapboxAccessToken: String = configuration.getString("mapbox.access-token").get
def index = Action {
Ok(views.html.index())
}
def header = Action {
Ok(views.html.header())
}
def documentationSectionHeader = Action {
Ok(views.html.documentationSectionHeader())
}
def documentationData = Action {
Ok(views.html.documentationData())
}
def documentationModels = Action {
Ok(views.html.documentationModels())
}
def dashboardSectionHeader = Action {
Ok(views.html.dashboardSectionHeader())
}
def dashboardAnalysis = Action {
Ok(views.html.dashboardAnalysis(mapboxAccessToken))
}
def dashboardPrediction = Action {
Ok(views.html.dashboardPrediction(mapboxAccessToken))
}
// todo: input checking and error handling
def predict(eventTime: String, lat: Double, lng: Double, temperature: Double,
clear: Int, fog: Int, rain: Int, snow: Int, hail: Int, thunder: Int, tornado: Int, algorithm:Int) = Action.async {
var lngLatArray = makeCluster(lat, lng)
val resultSeq = (0 to (lngLatArray(0).length - 1)).map(i => {
var query = Json.obj(
"eventTime" -> eventTime,
"lat" -> lngLatArray(0)(i),
"lng" -> lngLatArray(1)(i),
"temperature" -> temperature,
"clear" -> clear,
"fog" -> fog,
"rain" -> rain,
"snow" -> snow,
"hail" -> hail,
"thunder" -> thunder,
"tornado" -> tornado
)
var prediction = predictionIO.predict(query)
prediction.map { json => toGeoJson2(json, lngLatArray(0)(i), lngLatArray(1)(i), i, algorithm) }
})
var result = Future.sequence(resultSeq)
result.map { r => Ok(toGeoJsonCollection(r))
}
}
def analyze(algorithm: String, eventTime: String, coordinates: String) = Action.async {
var coordinatesData = deserializeCoordinatesData(coordinates)
val resultSeq = (0 to (coordinatesData.length - 1)).map(i => {
var query = Json.obj(
"eventTime" -> eventTime,
"lat" -> coordinatesData(i)(0),
"lng" -> coordinatesData(i)(1),
"temperature" -> 20,
"clear" -> 1,
"fog" -> 0,
"rain" -> 0,
"snow" -> 0,
"hail" -> 0,
"thunder" -> 0,
"tornado" -> 0
)
var prediction = predictionIO.predict(query)
prediction.map { json => toGeoJsonForAlg(algorithm, json, coordinatesData(i)(1), coordinatesData(i)(0), i) }
})
var result = Future.sequence(resultSeq)
result.map { r => Ok(toGeoJsonCollection(r))
}
}
private def toGeoJsonForAlg(algorithm: String, json: JsValue, lat: Double, lon: Double, id: Int) = {
var demand = (json \ "algorithms" \ algorithm).as[Double]
Json.obj(
"type" -> "Feature",
"properties" -> Json.obj(
"Primary ID" -> id,
"demand" -> demand
),
"geometry" -> Json.obj(
"type" -> "Point",
"coordinates" -> Json.arr(lon, lat)
)
)
}
private def toGeoJson2(json: JsValue, lat: Double, lon: Double, id: Int, alg: Int) = {
var demand = (json \ "demand").as[Double]
alg match {
case 0 => demand = (json \ "demand").as[Double]
case 1 => demand = (json \ "algorithms" \"algGBTree").as[Double]
case 2 => demand = (json \ "algorithms" \"algRegression").as[Double]
case 3 => demand = (json \ "algorithms" \"ridgeRegression").as[Double]
case 4 => demand = (json \ "algorithms" \"randomForest").as[Double]
case default => demand = (json \ "demand").as[Double]
}
Json.obj(
"type" -> "Feature",
"properties" -> Json.obj(
"Primary ID" -> id,
"demand" -> demand
),
"geometry" -> Json.obj(
"type" -> "Point",
"coordinates" -> Json.arr(lon, lat)
)
)
}
private def toGeoJson(value: Double, lat: Double, lon: Double) = {
Json.obj(
"type" -> "Feature",
"properties" -> Json.obj(
"Primary ID" -> value,
"demand" -> Random.nextInt(10)
),
"geometry" -> Json.obj(
"type" -> "Point",
"coordinates" -> Json.arr(lon, lat)
)
)
}
private def toGeoJsonCollection(demands: IndexedSeq[JsValue]) = {
Json.obj(
"type" -> "FeatureCollection",
"features" -> demands
)
}
def demand(lng: Double, lat: Double) = Action {
val points = Seq.fill(50) {
val newLng = lng + (0.1 * Random.nextDouble()) - 0.05
val newLat = lat + (0.1 * Random.nextDouble()) - 0.05
toGeoJson(1, newLat, newLng)
}
Ok(
Json.obj(
"type" -> "FeatureCollection",
"crs" -> Json.obj(
"type" -> "name",
"properties" -> Json.obj(
"name" -> "urn:ogc:def:crs:OGC:1.3:CRS84"
)
),
"features" -> points
)
)
}
def makeCluster(lat:Double, lng:Double) : Array[Array[Double]] = {
var lats = Array(lat, lat + 2*0.0016, lat + 0.0016, lat + 0.0016, lat + 0.0016, lat, lat, lat, lat, lat - 0.0016, lat - 0.0016, lat - 0.0016, lat - 2*0.0016)
var lngs = Array(lng, lng, lng - 0.0016, lng, lng + 0.0016, lng - 2*0.0016, lng - 0.0016, lng + 0.0016, lng + 2*0.0016, lng - 0.0016, lng, lng + 0.0016, lng)
Array(lats, lngs)
}
def deserializeCoordinatesData(coordinates:String): Array[Array[Double]] = {
var tokens = coordinates.substring(2, coordinates.length-2).split("\\],\\[")
var coordinatesArray:Array[Array[String]] = tokens.map(_.split(',')).toArray
var coordinatesData = coordinatesArray.map( _.map { tmp =>
try {
tmp.toDouble
} catch {
case _: NumberFormatException => 1.0
}
})
coordinatesData
}
}
================================================
FILE: demand-dashboard/app/services/PredictionIO.scala
================================================
package services
import javax.inject.{Inject, Singleton}
import org.joda.time.DateTime
import play.api.Configuration
import play.api.libs.json.{JsValue, Json}
import play.api.libs.ws.WSClient
import scala.concurrent.{ExecutionContext, Future}
trait PredictionIO {
def predict(json: JsValue) : Future[JsValue]
}
@Singleton
class PredictionIOImpl @Inject() (configuration: Configuration, wsClient: WSClient)(implicit executionContext: ExecutionContext) extends PredictionIO {
val predictionIOUrl = configuration.getString("predictionio.url").get
override def predict(json: JsValue) : Future[JsValue] = {
wsClient.url(predictionIOUrl).post(json)
.map { response =>
response.json
}
}
}
================================================
FILE: demand-dashboard/app/views/dashboardAnalysis.scala.html
================================================
@(mapboxAccessToken: String)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Analysis Dashboard</title>
<link rel="stylesheet" href="@routes.Assets.versioned("lib/jquery-ui/jquery-ui.min.css")">
<link href='https://api.mapbox.com/mapbox-gl-js/v0.28.0/mapbox-gl.css' rel='stylesheet' />
<link href="https://api.mapbox.com/mapbox-gl-js/plugins/mapbox-gl-directions/v3.0.2/mapbox-gl-directions.css" rel="stylesheet" type="text/css"/>
<link href='//mapbox.com/base/latest/base.css' rel='stylesheet' />
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet">
<link href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datepicker/1.6.4/css/bootstrap-datepicker.css" rel="stylesheet">
<link rel="stylesheet" href="@routes.Assets.versioned("main.css")">
<script src="https://code.jquery.com/jquery-1.12.4.js"></script>
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datepicker/1.6.4/js/bootstrap-datepicker.min.js"></script>
<script src='https://api.mapbox.com/mapbox-gl-js/v0.28.0/mapbox-gl.js'></script>
<script src="https://api.mapbox.com/mapbox-gl-js/plugins/mapbox-gl-directions/v3.0.2/mapbox-gl-directions.js"></script>
<script src="https://api.tiles.mapbox.com/mapbox.js/plugins/turf/v2.0.0/turf.min.js" charset="utf-8"></script>
<script src="@routes.Assets.versioned("koober-training.js")"></script>
<script src="@routes.Assets.versioned("analysis.js")"></script>
<script>
mapboxgl.accessToken = '@mapboxAccessToken';
$(function(){
$(".dashboard-section-header-container").load("@routes.HomeController.dashboardSectionHeader()");
$( "#time-slider" ).slider();
});
</script>
<style>
#dashboard-analysis {
color: var(--off-black-color);
border-bottom: solid 3px var(--off-black-color);
}
.mapboxgl-popup {
max-width: 400px;
font: 12px/20px 'Helvetica Neue', Arial, Helvetica, sans-serif;
}
</style>
</head>
<body>
<div class="dashboard-section-header-container"></div>
<div class="analysis-dashboard">
<div class="interactive-section">
<div id="dataset-card" class="dashboard-card">
<h2 class="card-title">Dataset</h2>
<div class="card-divider"></div>
<div id="dataset-field" class="input-field">
<div class="input-field-icon">
<img src="../assets/DatasetIcon.png" alt="dataset">
</div>
<select id="dataset-select" required title="Choose an algorithm to use!">
<option selected="selected" value="0">NYC Taxi Data</option>
</select>
</div>
</div>
<div id="datetime-slider-card" class="dashboard-card">
<h2 class="card-title">Datetime</h2>
<div class="card-divider"></div>
<div class="form-group">
<div class='input-group date'>
<input id='datetimepicker' type='text' class="form-control" />
<span class="input-group-addon">
<span class="glyphicon glyphicon-calendar"></span>
</span>
</div>
</div>
<div id="time-slider-field" class="datetime-slider-field">
<div class="slider-title">Time:</div>
<div id="time-slider-value" class="slider-value">00:00-00:30</div>
<input id="time-slider" class="datetime-slider" type='range' min='0' max='47' step='1' value='0'></input>
</div>
</div>
</div>
<div class="all-maps-section">
<div id="actual-demand-card" class="dashboard-card">
<h2 class="card-title">Actual Demand</h2>
<div class="card-divider"></div>
<div id="actual-demand-map" class="map"></div>
</div>
<div id="gradient-boosted-trees-card" class="dashboard-card">
<h2 class="card-title">Gradient Boosted Trees</h2>
<div class="card-divider"></div>
<div id="gradient-boosted-trees-map" class="map"></div>
</div>
<div id="linear-regression-card" class="dashboard-card">
<h2 class="card-title">Linear Regression with SGD</h2>
<div class="card-divider"></div>
<div id="linear-regression-map" class="map"></div>
</div>
<div id="ridge-regression-card" class="dashboard-card">
<h2 class="card-title">Ridge Regression</h2>
<div class="card-divider"></div>
<div id="ridge-regression-map" class="map"></div>
</div>
<div id="neural-network-card" class="dashboard-card">
<h2 class="card-title">Neural Network</h2>
<div class="card-divider"></div>
<div id="neural-network-map" class="map"></div>
</div>
<div id="random-forest-card" class="dashboard-card">
<h2 class="card-title">Random Forest</h2>
<div class="card-divider"></div>
<div id="random-forest-map" class="map"></div>
</div>
</div>
</div>
</body>
</html>
================================================
FILE: demand-dashboard/app/views/dashboardPrediction.scala.html
================================================
@(mapboxAccessToken: String)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Prediction Dashboard</title>
<link rel="stylesheet" href="@routes.Assets.versioned("main.css")">
<link href="https://api.mapbox.com/mapbox-gl-js/v0.28.0/mapbox-gl.css" rel="stylesheet" type="text/css"/>
<link href="https://api.mapbox.com/mapbox-gl-js/plugins/mapbox-gl-directions/v3.0.2/mapbox-gl-directions.css" rel="stylesheet" type="text/css"/>
<script src="@routes.Assets.versioned("lib/jquery/jquery.min.js")"></script>
<script src="https://api.mapbox.com/mapbox-gl-js/v0.28.0/mapbox-gl.js"></script>
<script src="https://api.mapbox.com/mapbox-gl-js/plugins/mapbox-gl-directions/v3.0.2/mapbox-gl-directions.js"></script>
<script src="https://api.tiles.mapbox.com/mapbox.js/plugins/turf/v2.0.0/turf.min.js" charset="utf-8"></script>
<script src="@routes.Assets.versioned("prediction.js")"></script>
<script>
mapboxgl.accessToken = '@mapboxAccessToken';
$(function(){
$(".dashboard-section-header-container").load("@routes.HomeController.dashboardSectionHeader()");
var today = new Date();
var currMonth = today.getMonth() < 10 ? '0' + today.getMonth() : today.getMonth();
var currDay = today.getDate() < 10 ? '0' + today.getDate() : today.getDate();
var currYear = today.getFullYear();
$("#date-select").val(currYear + "-" + currMonth + "-" + currDay);
var currHour = today.getHours() < 10 ? '0' + today.getHours() : today.getHours();
var currMins = today.getMinutes() < 10 ? '0' + today.getMinutes() : today.getMinutes();
$("#time-select").val(currHour + ":" + currMins);
});
</script>
<style>
#dashboard-prediction {
color: var(--off-black-color);
border-bottom: solid 3px var(--off-black-color);
}
</style>
</head>
<body>
<div class="dashboard-section-header-container"></div>
<div class="prediction-dashboard">
<div class="query-section">
<div id="datetime-card" class="dashboard-card">
<h2 class="card-title">Datetime</h2>
<div class="card-divider"></div>
<div id="date-field" class="input-field">
<div class="input-field-icon">
<img src="@routes.Assets.versioned("DateIcon.png")" alt="date">
</div>
<input id="date-select" type="date">
</div>
<div id="time-field" class="input-field">
<div class="input-field-icon">
<img src="@routes.Assets.versioned("TimeIcon.png")" alt="time">
</div>
<input id="time-select" type="time">
</div>
</div>
<div id="location-card" class="dashboard-card">
<h2 class="card-title">Location</h2>
<div class="card-divider"></div>
<div id="latitude-field" class="input-field">
<div class="input-field-icon">
<img src="@routes.Assets.versioned("LatitudeIcon.png")" alt="latitude">
</div>
<input id="latitude-input" type="text" placeholder="Latitude" required title="Enter a latitude!"><br>
</div>
<div id="longitude-field" class="input-field">
<div class="input-field-icon">
<img src="@routes.Assets.versioned("LongitudeIcon.png")" alt="longitude">
</div>
<input id="longitude-input" type="text" placeholder="Longitude" required title="Enter a longitude!"><br>
</div>
</div>
<div id="weather-card" class="dashboard-card">
<h2 class="card-title">Weather</h2>
<div class="card-divider"></div>
<div id="temperature-field" class="input-field">
<div class="input-field-icon">
<img src="@routes.Assets.versioned("TemperatureIcon.png")" alt="temperature">
</div>
<input id="temperature-input" type="text" placeholder="20" required title="Enter a Temperature!"><br>
</div>
<div id="weather-field" class="input-field">
<div class="input-field-icon">
<img src="@routes.Assets.versioned("WeatherIcon.png")" alt="weather">
</div>
<select id="weather-select" required title="Choose as weather!">
<option selected="selected" value="0">Clear</option>
<option value="1">Fog</option>
<option value="2">Rain</option>
<option value="3">Snow</option>
<option value="4">Hail</option>
<option value="5">Thunder</option>
<option value="6">Tornado</option>
</select>
</div>
</div>
<div id="algorithm-card" class="dashboard-card">
<h2 class="card-title">Algorithm</h2>
<div class="card-divider"></div>
<div id="algorithm-field" class="input-field">
<div class="input-field-icon">
<img src="@routes.Assets.versioned("AlgorithmIcon.png")" alt="algorithm">
</div>
<select id="algorithm-select" required title="Choose an algorithm to use!">
<option selected="selected" value="0">Combined</option>
<option value="1">Gradient Boosted Trees</option>
<option value="2">Linear Regression with SGD</option>
<option value="3">Ridge Regression</option>
<option value="4">Random Forest</option>
</select>
</div>
</div>
</div>
<div class="map-section">
<div id="map-card" class="dashboard-card">
<h2 class="card-title">Map</h2>
<div class="card-divider"></div>
<div id="prediction-map" class="map"></div>
</div>
</div>
</div>
</body>
</html>
================================================
FILE: demand-dashboard/app/views/dashboardSectionHeader.scala.html
================================================
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Dashboard Section Header</title>
<link rel="stylesheet" href="@routes.Assets.versioned("main.css")">
<script src="@routes.Assets.versioned("lib/jquery/jquery.min.js")"></script>
<script>
$(function(){
$(".header-container").load("@routes.HomeController.header()");
});
</script>
</head>
<body>
<div class="header-container"></div>
<div id="dashboard-header-container" class="section-navbar-container">
<div id="dashboard-header" class="section-navbar">
<h4 id="dashboard-analysis"><a href="@routes.HomeController.dashboardAnalysis()">Analysis</a></h4>
<h4 id="dashboard-prediction"><a href="@routes.HomeController.dashboardPrediction()">Prediction</a></h4>
</div>
</div>
</body>
</html>
================================================
FILE: demand-dashboard/app/views/documentationData.scala.html
================================================
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Documentation Data</title>
<link rel="stylesheet" href="@routes.Assets.versioned("main.css")">
<script src="@routes.Assets.versioned("lib/jquery/jquery.min.js")"></script>
<script>
$(function(){
$(".documentation-section-header-container").load("@routes.HomeController.documentationSectionHeader()");
});
</script>
<style>
#documentation-data {
color: var(--off-black-color);
border-bottom: solid 3px var(--off-black-color);
}
</style>
</head>
<body>
<div class="documentation-section-header-container"></div>
<h1 class="documentation-title">Data</h1>
<div class="documentation-body">
<div class="subsection">
<h1>New York City Taxi Data</h1>
<p>Our website currently supports the Yellow Taxi Cab Dataset provided by NYC Taxi & Limousine Commission.</p>
</div>
</div>
</body>
</html>
================================================
FILE: demand-dashboard/app/views/documentationModels.scala.html
================================================
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Documentation Models</title>
<link rel="stylesheet" href="@routes.Assets.versioned("main.css")">
<script src="@routes.Assets.versioned("lib/jquery/jquery.min.js")"></script>
<script>
$(function(){
$(".documentation-section-header-container").load("@routes.HomeController.documentationSectionHeader()");
$("#models").addClass("selected");
console.log("test");
});
</script>
<style>
#documentation-models {
color: var(--off-black-color);
border-bottom: solid 3px var(--off-black-color);
}
</style>
</head>
<body>
<div class="documentation-section-header-container"></div>
<h1 class="documentation-title">Models</h1>
<div class="documentation-body">
<div class="subsection">
<h1>Gradient-Boosted Trees</h1>
<p>Gradient Boosted Trees is a prediction model that consists of a set of numerous decision produced in sequence. The set is produced iteratively by using the current ensemble of trees to predict values for the training data and comparing these predictions against the actual values. Based on the differences in predicted and actual values, a new tree is added to the ensemble to reduce the error. Gradient-Boosted Trees tend to have high bias but low variance.</p>
</div>
<div class="divider"></div>
<div class="subsection">
<h1>Linear Regression with Stochastic Gradient Descent</h1>
<p>Linear Regression is a prediction model in which the output is a linear combination of the inputs. Each of the one or more inputs, such as time or weather in the case of Koober, is assigned a weight in a linear regression such that the resulting function, a sum of the inputs' weights and values, is a line that best fits the training data. Stochastic Gradient Descent, or SGD, is a method that optimizes the regression by iteratively modifying the equation based on its gradient.</p>
</div>
<div class="divider"></div>
<div class="subsection">
<h1>Neural Network</h1>
<p>Neural network is a prediction model that attempts to mimic the structure of biological brains in order to learn from provided data. A neural network contains many small units called neurons. Each neuron has an activation strength and a number of other neurons that it is connected to. If the combined strength of incoming signals is large enough, the neuron will activate and send a signal to other neurons that it is connected to. The network is trained in an interative process called back propogation; some input is given to the input layer of the network, and the output layer is then read and compared against the actual value for the given input. The neurons are assigned error values, which correspond to their contribution to the output, and the error values are propogation back through the network. These error values are used to calculate a gradient for the network, which can then be used to correct the network via Stochastic Gradient Descent.</p>
</div>
<div class="divider"></div>
<div class="subsection">
<h1>Random Forest</h1>
<p>Random Forest is a prediction model that consists of a set of numerous decision trees produced in parallel. Each decision tree uses a random subset of the provided training data, making each tree unique. To predict an output, each decision tree gives a prediction, and the mean of these predictions is the prediction of the random forest. Random forests tend to have high variance but low</p>
</div>
<div class="divider"></div>
<div class="subsection">
<h1>Ridge Regression</h1>
<p>Ridge Regression is a prediction model that functions very similarly to linear regression, in that it models the output as a linear combination of the inputs. However, it differs from linear regression by atttempting to minimize the coefficient values themselves in addition to the error of the predicted values. The result is a model that has, compared to an equivalent linear regression, more bias but less variance.</p>
</div>
</div>
</body>
</html>
================================================
FILE: demand-dashboard/app/views/documentationSectionHeader.scala.html
================================================
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Documentation Section Header</title>
<link rel="stylesheet" href="@routes.Assets.versioned("main.css")">
<script src="@routes.Assets.versioned("lib/jquery/jquery.min.js")"></script>
<script>
$(function(){
$(".header-container").load("@routes.HomeController.header()");
});
</script>
</head>
<body>
<div class="header-container"></div>
<div class="section-header">
<div class="section-logo-title">
<img src="../assets/DocumentationSectionIcon.png" alt="logo">
<h1>Documentation</h1>
</div>
</div>
<div class="section-navbar-container">
<div id="documentation-navbar" class="section-navbar">
<h4 id="documentation-data"><a href="@routes.HomeController.documentationData()">Data</a></h4>
<h4 id="documentation-models"><a href="@routes.HomeController.documentationModels()">Models</a></h4>
</div>
</div>
</body>
</html>
================================================
FILE: demand-dashboard/app/views/header.scala.html
================================================
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Header</title>
<link rel="stylesheet" href="@routes.Assets.versioned("main.css")">
</head>
<body>
<div class="header">
<div id="logo-title">
<img src="../assets/KooberLogo.png" alt="logo">
<h1>Koober</h1>
</div>
<div id="navbar">
<h4><a href="@routes.HomeController.index()">About</a></h4>
<h4><a href="@routes.HomeController.documentationData()">Documentation</a></h4>
<h4><a href="@routes.HomeController.dashboardAnalysis()">Dashboard</a></h4>
</div>
</div>
</body>
</html>
================================================
FILE: demand-dashboard/app/views/index.scala.html
================================================
<!DOCTYPE html>
<html lang="en">
<head>
<title>About</title>
<link rel="stylesheet" href="@routes.Assets.versioned("main.css")">
<script src="@routes.Assets.versioned("lib/jquery/jquery.min.js")"></script>
<script>
$(function(){
$(".header-container").load("@routes.HomeController.header()");
});
</script>
</head>
<body>
<div class="header-container"></div>
<div class="section-header">
<div class="section-logo-title">
<img src="../assets/AboutSectionIcon.png" alt="logo">
<h1>About Koober</h1>
</div>
</div>
<div id="about-body">
<p>Koober is an open-source project that uses <a class="linked-text" href="http://predictionio.incubator.apache.org/" target="_blank">PredictionIO</a> to predict taxi demand based on past usage and to analyze
trends depending on time, location, and weather across different models. The dashboard integrates <a class="linked-text" href="https://www.mapbox.com/" target="_blank">MapBox</a> for data visualization on an interactive map. Koober currently supports data analysis of certain New York
City locations.
</p>
<a id="github-button" href="https://github.com/jamesward/koober" target="_blank">Github</a>
</div>
</body>
</html>
================================================
FILE: demand-dashboard/build.sbt
================================================
name := "demand-dashboard"
libraryDependencies ++= Seq(
ws,
"org.webjars" % "jquery-ui" % "1.12.1",
"org.webjars" % "jquery" % "3.1.1"
)
pipelineStages := Seq(digest)
================================================
FILE: demand-dashboard/conf/application.conf
================================================
play.crypto.secret = "changeme"
play.crypto.secret = ${?CRYPTO_SECRET}
play.i18n.langs = ["en"]
play.http.forwarded.trustedProxies = ["0.0.0.0/0", "::/0"]
predictionio.url = ${PREDICTIONIO_URL}
mapbox.access-token = ${MAPBOX_ACCESS_TOKEN}
================================================
FILE: demand-dashboard/conf/routes
================================================
# Routes
# This file defines all application routes (Higher priority routes first)
# ~~~~
GET / controllers.HomeController.index
GET /header controllers.HomeController.header
GET /documentation/header controllers.HomeController.documentationSectionHeader
GET /documentation/data controllers.HomeController.documentationData
GET /documentation/models controllers.HomeController.documentationModels
GET /dashboard/header controllers.HomeController.dashboardSectionHeader
GET /dashboard/analysis controllers.HomeController.dashboardAnalysis
GET /dashboard/prediction controllers.HomeController.dashboardPrediction
GET /predict controllers.HomeController.predict(eventTime: String, lat: Double, lng: Double, temperature: Double, clear: Int, fog: Int, rain: Int, snow: Int, hail: Int, thunder: Int, tornado: Int, algorithm: Int)
GET /analyze controllers.HomeController.analyze(algorithm: String, eventTime: String, coordinates: String)
GET /demand controllers.HomeController.demand(lng: Double, lat: Double)
GET /assets/*file controllers.Assets.versioned(path="/public", file)
================================================
FILE: demand-dashboard/public/analysis.js
================================================
$(function() {
// todo: use a default center based on data
var mapCenter = [-73.9440917, 40.7682802];
var actualDemandMap = new mapboxgl.Map({
container: 'actual-demand-map',
style: 'mapbox://styles/mapbox/streets-v9',
zoom: 11,
center: mapCenter
});
var gradientBoostedTreesMap = new mapboxgl.Map({
container: 'gradient-boosted-trees-map',
style: 'mapbox://styles/mapbox/streets-v9',
zoom: 11,
center: mapCenter
});
var linearRegressionMap = new mapboxgl.Map({
container: 'linear-regression-map',
style: 'mapbox://styles/mapbox/streets-v9',
zoom: 11,
center: mapCenter
});
var ridgeRegressionMap = new mapboxgl.Map({
container: 'ridge-regression-map',
style: 'mapbox://styles/mapbox/streets-v9',
zoom: 11,
center: mapCenter
});
var neuralNetworkMap = new mapboxgl.Map({
container: 'neural-network-map',
style: 'mapbox://styles/mapbox/streets-v9',
zoom: 11,
center: mapCenter
});
var randomForestMap = new mapboxgl.Map({
container: 'random-forest-map',
style: 'mapbox://styles/mapbox/streets-v9',
zoom: 11,
center: mapCenter
});
var algorithmMapNames = {"algGBTree":gradientBoostedTreesMap, "algRegression":linearRegressionMap, "ridgeRegression":ridgeRegressionMap, "randomForest":randomForestMap};
var coordinates = [];
var updateAlgorithmMapSliderDelay = 200; //Milliseconds
var updateAlgorithmMapInitialDelay = 1000; //Milliseconds
$('#datetimepicker').datepicker({
format: 'mm/dd/yyyy',
autoclose: true
});
var startDate = new Date(2016, 5, 7);
$('#datetimepicker').datepicker('setDate', startDate);
$('#time-slider').change(function(e) {
var input = parseInt(e.target.value);
current_time = input;
$('#time-slider-value').html(prettyNumbers(Math.floor(input / 2)) + ":" + prettyNumbers((input % 2) * 30) + "-" +
(prettyNumbers(Math.floor((input + 1) / 2))) + ":" + prettyNumbers(((input + 1) % 2) * 30))
updateAllMaps(updateAlgorithmMapSliderDelay)
});
function getTimeElements() {
var datepickerTokens = $("#datetimepicker").val().split("/");
var month = parseInt(datepickerTokens[0])-1;
var day = parseInt(datepickerTokens[1]);
var year = parseInt(datepickerTokens[2]);
var timeInterval = parseInt($('#time-slider').val());
var hour = parseInt(timeInterval / 2);
var minute = 30 * (timeInterval - hour * 2);
return [year, month, day, hour, minute];
}
function getNormalizedTime() {
[year, month, day, hour, minute] = getTimeElements();
return Date.UTC(year, month, day, hour, minute, 0, 0) / (1000 * 60 * 30);
}
function getDateTime() {
[year, month, day, hour, minute] = getTimeElements();
return new Date(year, month, day, hour, minute, 0, 0);
}
function buildQueryString(algorithm, coordinates) {
return "algorithm=" + algorithm + "&eventTime=" + getDateTime().toISOString() + "&coordinates=" + JSON.stringify(coordinates)
}
function prettyNumbers(number) {
var result = number.toString()
if (result.length == 1) {
return "0" + result
}
return result
}
function filterBy(time) {
var filters = ['==', 'time', time];
actualDemandMap.setFilter('actual', filters);
}
actualDemandMap.on('load', function() {
actualDemandMap.addSource("actualDemand", {
type: "geojson",
data: geoJson
});
actualDemandMap.addLayer({
"id": "actual",
"type": "circle",
"source": "actualDemand",
"paint": {
"circle-color": {
property: 'demand',
stops: [
[1.0, '#FADBD8'],
[2.0, '#F1948A'],
[3.0, '#E74C3C'],
[4.0, '#B03A2E'],
[5.0, '#78281F']
]
},
"circle-radius": {
'base': 8,
"property": "demand",
'stops': [
[0.0, 8],
[1.0, 10],
[2.0, 12],
[3.0, 14],
[4.0, 16],
[5.0, 20]
]
},
'circle-opacity': 1.0
}
});
updateAllMaps(updateAlgorithmMapInitialDelay)
});
function updateAllMaps(delay) {
filterBy(getNormalizedTime().toString())
setTimeout(function() {
for (var algorithmName in algorithmMapNames) {
updateMapPredictions(algorithmMapNames[algorithmName],algorithmName);
}
}, delay);
}
function updateMapPredictions(algorithmMap, algorithmName) {
updateCoordinates();
if (!coordinates || coordinates.length == 0) {
return;
}
var sourceName = "source" + algorithmName;
var layerName = "layer" + algorithmName;
try {
algorithmMap.removeSource(sourceName);
algorithmMap.removeLayer(layerName);
} catch (e) {
// ignored
}
algorithmMap.addSource(sourceName, {
type: "geojson",
data: "/analyze?" + buildQueryString(algorithmName, coordinates)
});
algorithmMap.addLayer({
"id": layerName,
"type": "circle",
"source": sourceName,
"paint": {
"circle-color": {
property: 'demand',
stops: [
[14.0, '#FADBD8'],
[18.0, '#F1948A'],
[20.0, '#E74C3C'],
[24.0, '#B03A2E'],
[30.0, '#78281F']
]
},
"circle-radius": {
'base': 8,
"property": "demand",
'stops': [
[14.0, 8],
[16.0, 10],
[18.0, 12],
[20.0, 14],
[22.0, 16],
[25.0, 18],
[30.0, 20]
]
},
'circle-opacity': 1.0
}
});
}
function updateCoordinates() {
var features = actualDemandMap.queryRenderedFeatures({
layers: ['actual']
});
coordinates = [];
if (features) {
for (var i = 0; i < features.length; i++) {
coordinates.push(features[i].geometry.coordinates);
}
}
}
});
================================================
FILE: demand-dashboard/public/koober-training.js
================================================
var geoJson = {"type": "FeatureCollection", "features": [{"geometry": {"type": "Point", "coordinates": [-73.87293243408203, 40.77409362792969]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814068", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.973876953125, 40.76049041748047]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814523", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.97454833984375, 40.74241256713867]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814482", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.97322845458984, 40.752628326416016]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814303", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.98832702636719, 40.75935363769531]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814603", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-74.00416564941406, 40.71297836303711]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "815185", "demand": "5"}}, {"geometry": {"type": "Point", "coordinates": [-73.96014404296875, 40.773223876953125]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814185", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.95838928222656, 40.778594970703125]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "813821", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.97596740722656, 40.68389129638672]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814338", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.95542907714844, 40.77941131591797]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814252", "demand": "3"}}, {"geometry": {"type": "Point", "coordinates": [-73.95542907714844, 40.77941131591797]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814252", "demand": "3"}}, {"geometry": {"type": "Point", "coordinates": [-73.99475860595703, 40.74000930786133]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814755", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.96971893310547, 40.784698486328125]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814307", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.99153900146484, 40.749061584472656]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814057", "demand": "4"}}, {"geometry": {"type": "Point", "coordinates": [-73.98787689208984, 40.74409103393555]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814453", "demand": "4"}}, {"geometry": {"type": "Point", "coordinates": [-73.98237609863281, 40.73160934448242]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814179", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.98110961914062, 40.77434158325195]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814300", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.98530578613281, 40.758522033691406]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814088", "demand": "3"}}, {"geometry": {"type": "Point", "coordinates": [-73.97590637207031, 40.75571060180664]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "815134", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.96141052246094, 40.79625701904297]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "813933", "demand": "3"}}, {"geometry": {"type": "Point", "coordinates": [-73.9903793334961, 40.756900787353516]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814846", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.97827911376953, 40.766510009765625]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814846", "demand": "5"}}, {"geometry": {"type": "Point", "coordinates": [-74.00029754638672, 40.730770111083984]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814031", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.9744873046875, 40.76277542114258]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "815073", "demand": "3"}}, {"geometry": {"type": "Point", "coordinates": [-73.89042663574219, 40.74695587158203]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814868", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-74.00288391113281, 40.76042556762695]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814794", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.94432830810547, 40.780723571777344]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814824", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.98296356201172, 40.755802154541016]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814323", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.9820556640625, 40.72798538208008]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814365", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.9893569946289, 40.742008209228516]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814496", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.97827911376953, 40.766510009765625]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814846", "demand": "5"}}, {"geometry": {"type": "Point", "coordinates": [-73.97272491455078, 40.75840759277344]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814840", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.98177337646484, 40.763118743896484]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814893", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.9893569946289, 40.742008209228516]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814496", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.98614501953125, 40.75935745239258]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814079", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.78144073486328, 40.64487075805664]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "813776", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.95667266845703, 40.777992248535156]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "813872", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.95667266845703, 40.777992248535156]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "813872", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-74.00992584228516, 40.7147216796875]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814125", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-74.00992584228516, 40.7147216796875]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814125", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.9897232055664, 40.74161148071289]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814229", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.98391723632812, 40.72139358520508]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814486", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.94512176513672, 40.779998779296875]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814746", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.99870300292969, 40.74494171142578]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814904", "demand": "4"}}, {"geometry": {"type": "Point", "coordinates": [-73.9974594116211, 40.74932098388672]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814562", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.97801971435547, 40.753990173339844]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814647", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.98745727539062, 40.7442512512207]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "813878", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.86383819580078, 40.76987838745117]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814464", "demand": "5"}}, {"geometry": {"type": "Point", "coordinates": [-73.86383819580078, 40.76987838745117]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814464", "demand": "5"}}, {"geometry": {"type": "Point", "coordinates": [-73.95336151123047, 40.77262878417969]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "813836", "demand": "3"}}, {"geometry": {"type": "Point", "coordinates": [-73.99665832519531, 40.75310134887695]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814032", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.99665832519531, 40.75310134887695]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814032", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.99677276611328, 40.74768829345703]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814782", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.97323608398438, 40.76342010498047]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814327", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.97940826416016, 40.75541305541992]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "813936", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.98197174072266, 40.75809097290039]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814904", "demand": "5"}}, {"geometry": {"type": "Point", "coordinates": [-73.88523864746094, 40.77302551269531]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814939", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.98583221435547, 40.7408561706543]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814229", "demand": "4"}}, {"geometry": {"type": "Point", "coordinates": [-73.96058654785156, 40.76982879638672]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814069", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.99478149414062, 40.740211486816406]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814894", "demand": "3"}}, {"geometry": {"type": "Point", "coordinates": [-73.99116516113281, 40.755531311035156]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814446", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.98983001708984, 40.75663757324219]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "813779", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.96216583251953, 40.77920150756836]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "813927", "demand": "4"}}, {"geometry": {"type": "Point", "coordinates": [-74.00727844238281, 40.72833251953125]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "815030", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-74.00270080566406, 40.744667053222656]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "813917", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.95531463623047, 40.78280258178711]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814687", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.98967742919922, 40.741641998291016]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "815187", "demand": "3"}}, {"geometry": {"type": "Point", "coordinates": [-73.98007202148438, 40.77796173095703]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814209", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.97928619384766, 40.63812255859375]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814764", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-74.00946807861328, 40.7381706237793]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814543", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.97676086425781, 40.76481246948242]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814512", "demand": "4"}}, {"geometry": {"type": "Point", "coordinates": [-73.98661804199219, 40.72577667236328]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "813914", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.98128509521484, 40.74647903442383]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "813873", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.96393585205078, 40.756221771240234]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814087", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.98303985595703, 40.73890686035156]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814951", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.78816223144531, 40.647579193115234]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814377", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.99005126953125, 40.76205062866211]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814566", "demand": "4"}}, {"geometry": {"type": "Point", "coordinates": [-73.99005126953125, 40.76205062866211]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814566", "demand": "4"}}, {"geometry": {"type": "Point", "coordinates": [-73.97892761230469, 40.76493835449219]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814787", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.97917938232422, 40.75550079345703]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814251", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.98504638671875, 40.73212814331055]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "813950", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.99860382080078, 40.75020217895508]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814844", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.99860382080078, 40.75020217895508]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814844", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.97582244873047, 40.757598876953125]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814809", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.98356628417969, 40.75653839111328]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "815124", "demand": "3"}}, {"geometry": {"type": "Point", "coordinates": [-73.99015045166016, 40.735137939453125]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814614", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.94103240966797, 40.79247283935547]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814173", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.9666748046875, 40.764373779296875]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "813936", "demand": "3"}}, {"geometry": {"type": "Point", "coordinates": [-73.86341094970703, 40.7698974609375]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "813992", "demand": "5"}}, {"geometry": {"type": "Point", "coordinates": [-73.96092987060547, 40.799461364746094]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814123", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.97899627685547, 40.763301849365234]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814468", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-74.00699615478516, 40.73299026489258]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814511", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.96792602539062, 40.76274490356445]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814790", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.9762954711914, 40.74794387817383]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814227", "demand": "3"}}, {"geometry": {"type": "Point", "coordinates": [-73.98090362548828, 40.75362014770508]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814567", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-74.00865936279297, 40.71114730834961]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814370", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.9381332397461, 40.796730041503906]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814441", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.98065948486328, 40.78242874145508]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "813833", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.96797943115234, 40.762367248535156]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "815183", "demand": "3"}}, {"geometry": {"type": "Point", "coordinates": [-73.98516845703125, 40.72768020629883]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814138", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.9781494140625, 40.76219940185547]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "813845", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.78820037841797, 40.64189147949219]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814515", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.78820037841797, 40.64189147949219]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814515", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.95851135253906, 40.77277374267578]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814153", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-74.00617980957031, 40.723106384277344]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "815179", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.95086669921875, 40.7748908996582]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "813883", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.9832992553711, 40.7559814453125]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814754", "demand": "4"}}, {"geometry": {"type": "Point", "coordinates": [-73.98757934570312, 40.756317138671875]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814158", "demand": "3"}}, {"geometry": {"type": "Point", "coordinates": [-73.99073028564453, 40.75122833251953]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "815046", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-74.00119018554688, 40.74656295776367]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814414", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.98217010498047, 40.775611877441406]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "813847", "demand": "3"}}, {"geometry": {"type": "Point", "coordinates": [-73.9914779663086, 40.74261474609375]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "815139", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.97106170654297, 40.75265884399414]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814014", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.98986053466797, 40.71699142456055]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814933", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.98193359375, 40.77640151977539]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "813985", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.99044036865234, 40.73721694946289]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814265", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.9803695678711, 40.77555465698242]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "813880", "demand": "4"}}, {"geometry": {"type": "Point", "coordinates": [-73.97370147705078, 40.74722671508789]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "815040", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-74.01717376708984, 40.70533752441406]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814706", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.99107360839844, 40.74966049194336]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814027", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.99651336669922, 40.75320816040039]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "813823", "demand": "3"}}, {"geometry": {"type": "Point", "coordinates": [-73.99364471435547, 40.74180603027344]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814585", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.98274230957031, 40.73101043701172]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814941", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.9843978881836, 40.7652702331543]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814845", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.96482849121094, 40.7667236328125]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "813918", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.98274230957031, 40.73101043701172]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814941", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.95663452148438, 40.78672790527344]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "815085", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.96558380126953, 40.76856994628906]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814270", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.9825439453125, 40.7570686340332]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814110", "demand": "3"}}, {"geometry": {"type": "Point", "coordinates": [-73.94023895263672, 40.79372024536133]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "815044", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-74.00608825683594, 40.735286712646484]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "815009", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.87088012695312, 40.77373123168945]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814369", "demand": "3"}}, {"geometry": {"type": "Point", "coordinates": [-73.97808074951172, 40.745731353759766]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814954", "demand": "3"}}, {"geometry": {"type": "Point", "coordinates": [-73.99388885498047, 40.75128936767578]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814150", "demand": "4"}}, {"geometry": {"type": "Point", "coordinates": [-73.98075103759766, 40.74209213256836]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814695", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.98461151123047, 40.74444580078125]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "815045", "demand": "3"}}, {"geometry": {"type": "Point", "coordinates": [-73.9661636352539, 40.767757415771484]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814067", "demand": "3"}}, {"geometry": {"type": "Point", "coordinates": [-73.99162292480469, 40.750091552734375]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814067", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.97987365722656, 40.7392578125]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814635", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.98483276367188, 40.760780334472656]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814947", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.99437713623047, 40.75254821777344]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814666", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-74.00434112548828, 40.72557067871094]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814172", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-74.0027847290039, 40.747215270996094]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "813862", "demand": "4"}}, {"geometry": {"type": "Point", "coordinates": [-73.9914779663086, 40.726890563964844]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "813894", "demand": "4"}}, {"geometry": {"type": "Point", "coordinates": [-73.99683380126953, 40.74764633178711]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814125", "demand": "3"}}, {"geometry": {"type": "Point", "coordinates": [-73.99954986572266, 40.73870086669922]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814037", "demand": "3"}}, {"geometry": {"type": "Point", "coordinates": [-73.98566436767578, 40.756351470947266]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814783", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-74.00328826904297, 40.726646423339844]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814898", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.97868347167969, 40.77238082885742]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "813769", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-74.01123809814453, 40.715728759765625]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814753", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-74.00660705566406, 40.70565414428711]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814164", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-74.00349426269531, 40.73258590698242]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814648", "demand": "3"}}, {"geometry": {"type": "Point", "coordinates": [-73.98796081542969, 40.75471115112305]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814933", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.994140625, 40.7512092590332]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814151", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.99417877197266, 40.7408561706543]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814026", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.95921325683594, 40.77457046508789]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "813830", "demand": "3"}}, {"geometry": {"type": "Point", "coordinates": [-73.95722961425781, 40.76832962036133]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814588", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.95722961425781, 40.76832962036133]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814588", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.99580383300781, 40.716495513916016]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814744", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.96797180175781, 40.80297088623047]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "813916", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.97245025634766, 40.74977111816406]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "815078", "demand": "4"}}, {"geometry": {"type": "Point", "coordinates": [-73.78191375732422, 40.644718170166016]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814933", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.78191375732422, 40.644718170166016]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814933", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.98873901367188, 40.7430305480957]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814226", "demand": "3"}}, {"geometry": {"type": "Point", "coordinates": [-73.96338653564453, 40.710208892822266]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814908", "demand": "5"}}, {"geometry": {"type": "Point", "coordinates": [-73.98709106445312, 40.7390251159668]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814454", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.98678588867188, 40.76005554199219]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814666", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.97838592529297, 40.75807189941406]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "813828", "demand": "4"}}, {"geometry": {"type": "Point", "coordinates": [-73.99710845947266, 40.73586654663086]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "815076", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-74.01062774658203, 40.70949172973633]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814688", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-74.00785064697266, 40.71196365356445]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814798", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.9449462890625, 40.78733825683594]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814199", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.97379302978516, 40.764469146728516]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814636", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.9537582397461, 40.78490447998047]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814538", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.95304870605469, 40.776695251464844]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814281", "demand": "3"}}, {"geometry": {"type": "Point", "coordinates": [-73.98226165771484, 40.76837921142578]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "815139", "demand": "3"}}, {"geometry": {"type": "Point", "coordinates": [-73.96111297607422, 40.7607307434082]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814007", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-74.00381469726562, 40.7156982421875]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "813816", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.78939819335938, 40.64772033691406]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814859", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.97241973876953, 40.782318115234375]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814651", "demand": "3"}}, {"geometry": {"type": "Point", "coordinates": [-74.00455474853516, 40.736061096191406]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "813966", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.98899841308594, 40.75335693359375]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "813841", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.9629898071289, 40.77839279174805]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814995", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.99746704101562, 40.75141143798828]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "815034", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.863525390625, 40.77000045776367]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "813928", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.78238677978516, 40.64449691772461]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814843", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-74.00631713867188, 40.739524841308594]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814222", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.96272277832031, 40.772300720214844]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814584", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-74.007568359375, 40.727840423583984]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814030", "demand": "4"}}, {"geometry": {"type": "Point", "coordinates": [-73.97557830810547, 40.752281188964844]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814405", "demand": "4"}}, {"geometry": {"type": "Point", "coordinates": [-73.9586181640625, 40.77833557128906]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "815064", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-74.00350189208984, 40.71561813354492]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814351", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.98098754882812, 40.770660400390625]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "815121", "demand": "4"}}, {"geometry": {"type": "Point", "coordinates": [-74.00978088378906, 40.706268310546875]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814594", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.9642562866211, 40.76097869873047]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814757", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.99140167236328, 40.72718048095703]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "813911", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.77953338623047, 40.647804260253906]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "815131", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.99258422851562, 40.73714065551758]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "815071", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.77953338623047, 40.647804260253906]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "815131", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.96624755859375, 40.76163864135742]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "813779", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.78199768066406, 40.64476013183594]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814628", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.97430419921875, 40.75938034057617]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814886", "demand": "4"}}, {"geometry": {"type": "Point", "coordinates": [-73.96229553222656, 40.75912094116211]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814123", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.78199768066406, 40.64476013183594]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814628", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.9544448852539, 40.77811050415039]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814750", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.94876861572266, 40.788978576660156]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814247", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.97102355957031, 40.76156234741211]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814021", "demand": "3"}}, {"geometry": {"type": "Point", "coordinates": [-73.9842529296875, 40.75505447387695]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814478", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.99462127685547, 40.72596740722656]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814655", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.99986267089844, 40.73284912109375]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "813935", "demand": "3"}}, {"geometry": {"type": "Point", "coordinates": [-73.98711395263672, 40.76853561401367]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "813808", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.95006561279297, 40.772003173828125]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "813879", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.96272277832031, 40.75821304321289]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "813893", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-74.00574493408203, 40.72569274902344]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "815087", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.97962188720703, 40.78635787963867]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "815122", "demand": "3"}}, {"geometry": {"type": "Point", "coordinates": [-73.98967742919922, 40.75773239135742]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814044", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.98967742919922, 40.75773239135742]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814044", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.78807830810547, 40.641483306884766]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814939", "demand": "3"}}, {"geometry": {"type": "Point", "coordinates": [-73.9980239868164, 40.7236328125]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "813926", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-74.00169372558594, 40.730709075927734]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814184", "demand": "3"}}, {"geometry": {"type": "Point", "coordinates": [-73.9564208984375, 40.77540969848633]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "813815", "demand": "3"}}, {"geometry": {"type": "Point", "coordinates": [-73.99038696289062, 40.68901443481445]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814428", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.9564208984375, 40.77540969848633]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "813815", "demand": "3"}}, {"geometry": {"type": "Point", "coordinates": [-73.9723129272461, 40.67707061767578]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "815003", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.95299530029297, 40.78023910522461]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814111", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.97936248779297, 40.76655960083008]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814924", "demand": "3"}}, {"geometry": {"type": "Point", "coordinates": [-73.98554229736328, 40.747711181640625]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "813796", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.94416046142578, 40.746421813964844]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814270", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-74.00732421875, 40.727256774902344]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814780", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.97482299804688, 40.758968353271484]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814519", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.78946685791016, 40.647159576416016]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814873", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.9909439086914, 40.750667572021484]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814463", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.9909439086914, 40.750667572021484]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814463", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.9499282836914, 40.78032684326172]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814010", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.9851303100586, 40.76781463623047]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814277", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.9881362915039, 40.748268127441406]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814477", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.9742660522461, 40.76261901855469]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814789", "demand": "3"}}, {"geometry": {"type": "Point", "coordinates": [-73.95964813232422, 40.762672424316406]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814556", "demand": "3"}}, {"geometry": {"type": "Point", "coordinates": [-73.96919250488281, 40.760894775390625]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814755", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.95519256591797, 40.76770782470703]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "813976", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.975341796875, 40.7581672668457]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814254", "demand": "3"}}, {"geometry": {"type": "Point", "coordinates": [-73.99403381347656, 40.732810974121094]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814138", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.98052978515625, 40.748207092285156]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814391", "demand": "3"}}, {"geometry": {"type": "Point", "coordinates": [-73.98400115966797, 40.775413513183594]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814898", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.95459747314453, 40.76993179321289]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814589", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.98736572265625, 40.73316192626953]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "815008", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.98374938964844, 40.780723571777344]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "815132", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.98374938964844, 40.780723571777344]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "815132", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.9705581665039, 40.75217819213867]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814559", "demand": "4"}}, {"geometry": {"type": "Point", "coordinates": [-73.99267578125, 40.76337814331055]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814793", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-74.00021362304688, 40.73782730102539]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814296", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.99410247802734, 40.74570083618164]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "815038", "demand": "3"}}, {"geometry": {"type": "Point", "coordinates": [-73.97563934326172, 40.760284423828125]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814111", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.98599243164062, 40.72262954711914]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814286", "demand": "4"}}, {"geometry": {"type": "Point", "coordinates": [-73.98890686035156, 40.721656799316406]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "813846", "demand": "3"}}, {"geometry": {"type": "Point", "coordinates": [-73.97328186035156, 40.75251007080078]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814630", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.97918701171875, 40.781959533691406]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "815163", "demand": "3"}}, {"geometry": {"type": "Point", "coordinates": [-73.99713134765625, 40.72066879272461]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "813844", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.98526000976562, 40.75953674316406]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814569", "demand": "3"}}, {"geometry": {"type": "Point", "coordinates": [-73.9913101196289, 40.75606155395508]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814852", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.98796081542969, 40.7379264831543]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814841", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.98017120361328, 40.75439453125]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "815025", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.9760513305664, 40.757633209228516]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814683", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.97074127197266, 40.75789260864258]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814231", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-74.00334930419922, 40.714420318603516]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814070", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.96456909179688, 40.7730598449707]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "815174", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.9793701171875, 40.72333908081055]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "813774", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.98482513427734, 40.75944519042969]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814609", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-74.01168823242188, 40.70798873901367]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814938", "demand": "3"}}, {"geometry": {"type": "Point", "coordinates": [-73.98139190673828, 40.7498664855957]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814240", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.96819305419922, 40.80073165893555]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "813816", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.98733520507812, 40.7359733581543]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814033", "demand": "4"}}, {"geometry": {"type": "Point", "coordinates": [-73.96106719970703, 40.76897048950195]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814725", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.95391082763672, 40.774967193603516]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814219", "demand": "3"}}, {"geometry": {"type": "Point", "coordinates": [-73.96867370605469, 40.75751876831055]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814511", "demand": "4"}}, {"geometry": {"type": "Point", "coordinates": [-73.98851013183594, 40.769100189208984]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814253", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.8729248046875, 40.773956298828125]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814298", "demand": "3"}}, {"geometry": {"type": "Point", "coordinates": [-73.97837829589844, 40.75233459472656]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "815019", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.98999786376953, 40.738441467285156]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814752", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.98695373535156, 40.76620101928711]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "813831", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.9576416015625, 40.67121887207031]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814957", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.98161315917969, 40.77375793457031]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814465", "demand": "3"}}, {"geometry": {"type": "Point", "coordinates": [-73.98027038574219, 40.76565933227539]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "813866", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.98346710205078, 40.765838623046875]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "813848", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.9851303100586, 40.72774887084961]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814619", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.79031372070312, 40.643680572509766]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814019", "demand": "4"}}, {"geometry": {"type": "Point", "coordinates": [-74.00775909423828, 40.70494079589844]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814989", "demand": "3"}}, {"geometry": {"type": "Point", "coordinates": [-74.00636291503906, 40.74482727050781]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814206", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.98223876953125, 40.768680572509766]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "815180", "demand": "3"}}, {"geometry": {"type": "Point", "coordinates": [-74.00813293457031, 40.73881530761719]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814532", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.96568298339844, 40.75919723510742]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "813933", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.98150634765625, 40.780723571777344]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "815076", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.98182678222656, 40.7490234375]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814354", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.98171997070312, 40.767433166503906]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814659", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.97041320800781, 40.75218200683594]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814697", "demand": "3"}}, {"geometry": {"type": "Point", "coordinates": [-74.01465606689453, 40.714202880859375]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "813791", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.97062683105469, 40.76292037963867]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "813798", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.98147583007812, 40.78007888793945]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814599", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-74.00357818603516, 40.74223327636719]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814287", "demand": "4"}}, {"geometry": {"type": "Point", "coordinates": [-73.99819946289062, 40.75084686279297]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814349", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.97657012939453, 40.76054000854492]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814519", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.97613525390625, 40.75138473510742]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "815039", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.99349212646484, 40.724300384521484]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "813753", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.99906158447266, 40.73427963256836]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "813772", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.95446014404297, 40.76974868774414]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814735", "demand": "4"}}, {"geometry": {"type": "Point", "coordinates": [-73.97832489013672, 40.74152755737305]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "815142", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.97649383544922, 40.739715576171875]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814358", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.97649383544922, 40.739715576171875]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814358", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-74.00547790527344, 40.73976516723633]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "813769", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.96459197998047, 40.7606201171875]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814537", "demand": "3"}}, {"geometry": {"type": "Point", "coordinates": [-74.001220703125, 40.731224060058594]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "815123", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.98323059082031, 40.7616081237793]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "813798", "demand": "4"}}, {"geometry": {"type": "Point", "coordinates": [-73.98100280761719, 40.735870361328125]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814202", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.95050811767578, 40.78224563598633]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814497", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.96805572509766, 40.800662994384766]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814662", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.98788452148438, 40.77013397216797]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "813990", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.9881820678711, 40.731788635253906]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814701", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.98920440673828, 40.71652603149414]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814239", "demand": "6"}}, {"geometry": {"type": "Point", "coordinates": [-73.96005249023438, 40.76640701293945]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814013", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.98051452636719, 40.7217903137207]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "813949", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.96949768066406, 40.763057708740234]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814362", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.86282348632812, 40.76899719238281]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "813964", "demand": "4"}}, {"geometry": {"type": "Point", "coordinates": [-74.00975799560547, 40.712825775146484]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "813766", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-74.00975799560547, 40.712825775146484]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "813766", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-74.00746154785156, 40.74306106567383]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814129", "demand": "4"}}, {"geometry": {"type": "Point", "coordinates": [-73.9854965209961, 40.7630500793457]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814912", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.99459838867188, 40.75020980834961]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814332", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.97289276123047, 40.75585174560547]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814453", "demand": "3"}}, {"geometry": {"type": "Point", "coordinates": [-73.99136352539062, 40.74951171875]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814339", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.98853302001953, 40.74599075317383]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814362", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.96576690673828, 40.76282501220703]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814514", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.99797821044922, 40.745811462402344]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "815084", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.95213317871094, 40.784019470214844]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814678", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.98693084716797, 40.76430130004883]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814525", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.97370147705078, 40.76346206665039]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814449", "demand": "3"}}, {"geometry": {"type": "Point", "coordinates": [-74.00399017333984, 40.7130126953125]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "815185", "demand": "5"}}, {"geometry": {"type": "Point", "coordinates": [-73.9729995727539, 40.755619049072266]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "815170", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.86331939697266, 40.7697639465332]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814877", "demand": "5"}}, {"geometry": {"type": "Point", "coordinates": [-73.9748306274414, 40.75775909423828]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814901", "demand": "4"}}, {"geometry": {"type": "Point", "coordinates": [-73.97238159179688, 40.75916290283203]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "815127", "demand": "4"}}, {"geometry": {"type": "Point", "coordinates": [-73.8643798828125, 40.770389556884766]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814155", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.9751205444336, 40.75257110595703]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "815189", "demand": "3"}}, {"geometry": {"type": "Point", "coordinates": [-73.99240112304688, 40.74890899658203]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814534", "demand": "4"}}, {"geometry": {"type": "Point", "coordinates": [-73.95378875732422, 40.77110290527344]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814893", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.9821548461914, 40.74870681762695]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814453", "demand": "3"}}, {"geometry": {"type": "Point", "coordinates": [-73.99092864990234, 40.72798156738281]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "815122", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.97086334228516, 40.763954162597656]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814121", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-74.0122299194336, 40.70341110229492]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814684", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.99139404296875, 40.74987030029297]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814936", "demand": "4"}}, {"geometry": {"type": "Point", "coordinates": [-73.978515625, 40.74514389038086]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814283", "demand": "3"}}, {"geometry": {"type": "Point", "coordinates": [-73.87088012695312, 40.77375411987305]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "815088", "demand": "4"}}, {"geometry": {"type": "Point", "coordinates": [-73.97857666015625, 40.78594970703125]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814332", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.9798583984375, 40.78605270385742]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814741", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.94856262207031, 40.77376937866211]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814898", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.9890365600586, 40.71883010864258]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814279", "demand": "5"}}, {"geometry": {"type": "Point", "coordinates": [-73.95813751220703, 40.773040771484375]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814056", "demand": "3"}}, {"geometry": {"type": "Point", "coordinates": [-73.98046875, 40.76497268676758]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "815089", "demand": "3"}}, {"geometry": {"type": "Point", "coordinates": [-73.97013092041016, 40.764381408691406]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814068", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.98644256591797, 40.760276794433594]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814693", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.98941802978516, 40.719093322753906]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "813820", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.97918701171875, 40.771568298339844]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "815017", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.96220397949219, 40.80536651611328]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814224", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.98098754882812, 40.770591735839844]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814926", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.98854064941406, 40.7435188293457]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814551", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.99227142333984, 40.73799514770508]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814949", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.97940063476562, 40.761531829833984]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "815180", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.98150634765625, 40.768585205078125]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "813847", "demand": "4"}}, {"geometry": {"type": "Point", "coordinates": [-73.95068359375, 40.771366119384766]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814407", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.9798583984375, 40.74338150024414]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "813844", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.97938537597656, 40.78660583496094]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814415", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.97930908203125, 40.78654861450195]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "815047", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.9898681640625, 40.77532958984375]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814129", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.97567749023438, 40.744911193847656]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814781", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.97567749023438, 40.744911193847656]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814781", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.9721450805664, 40.75941467285156]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "815122", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.95213317871094, 40.77735137939453]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814991", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.9834213256836, 40.77558898925781]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "815079", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.96926879882812, 40.798641204833984]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814693", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.97985076904297, 40.739383697509766]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814923", "demand": "3"}}, {"geometry": {"type": "Point", "coordinates": [-73.97985076904297, 40.739383697509766]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814923", "demand": "3"}}, {"geometry": {"type": "Point", "coordinates": [-73.99329376220703, 40.74740982055664]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "815007", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.98816680908203, 40.743038177490234]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "813976", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.98816680908203, 40.743038177490234]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "813976", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.97311401367188, 40.74412536621094]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814641", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.9937744140625, 40.75189208984375]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814462", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.97898864746094, 40.76201248168945]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814489", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.9504623413086, 40.716548919677734]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814425", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-74.01336669921875, 40.7075309753418]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "813770", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.89173126220703, 40.75497817993164]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814148", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.97538757324219, 40.75286865234375]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814789", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-74.00267028808594, 40.7393684387207]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "815143", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.94767761230469, 40.7713508605957]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "813828", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-74.01219177246094, 40.702613830566406]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814070", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.99137878417969, 40.739830017089844]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814687", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.99137115478516, 40.7236213684082]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814472", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.99137115478516, 40.7236213684082]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814472", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-74.00292205810547, 40.760433197021484]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814128", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.98849487304688, 40.77859115600586]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "815018", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.994873046875, 40.73835754394531]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "815075", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.95958709716797, 40.813804626464844]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814873", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.86344909667969, 40.769893646240234]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814803", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.98248291015625, 40.73121643066406]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "813987", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.9888687133789, 40.72273254394531]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814794", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.9769515991211, 40.77997970581055]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814317", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.97779083251953, 40.75478744506836]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "815014", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.86481475830078, 40.77033233642578]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "815134", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.9934310913086, 40.75236129760742]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814670", "demand": "3"}}, {"geometry": {"type": "Point", "coordinates": [-73.99156951904297, 40.74979019165039]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814008", "demand": "3"}}, {"geometry": {"type": "Point", "coordinates": [-73.98523712158203, 40.753517150878906]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814835", "demand": "4"}}, {"geometry": {"type": "Point", "coordinates": [-74.01370239257812, 40.707725524902344]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814354", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.98829650878906, 40.723388671875]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814621", "demand": "4"}}, {"geometry": {"type": "Point", "coordinates": [-73.97262573242188, 40.744972229003906]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "815028", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.95941162109375, 40.76319122314453]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "813814", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.95753479003906, 40.781005859375]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "815097", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.95753479003906, 40.781005859375]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "815097", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.994140625, 40.74658966064453]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814858", "demand": "3"}}, {"geometry": {"type": "Point", "coordinates": [-73.99752044677734, 40.75143051147461]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814282", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.98638916015625, 40.75114059448242]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "813983", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.99059295654297, 40.745670318603516]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814033", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.97418975830078, 40.76253128051758]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "813824", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.967041015625, 40.7613410949707]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "815086", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.97564697265625, 40.74102783203125]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "813869", "demand": "3"}}, {"geometry": {"type": "Point", "coordinates": [-74.00640106201172, 40.73959732055664]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814137", "demand": "4"}}, {"geometry": {"type": "Point", "coordinates": [-73.96197509765625, 40.7738151550293]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "813768", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.96197509765625, 40.7738151550293]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "813768", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.9686508178711, 40.767452239990234]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814428", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.98487854003906, 40.77500915527344]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "815161", "demand": "3"}}, {"geometry": {"type": "Point", "coordinates": [-73.97356414794922, 40.738277435302734]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "813968", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.97356414794922, 40.738277435302734]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "813968", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.86371612548828, 40.769805908203125]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814780", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.99826049804688, 40.745208740234375]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "815086", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.95207977294922, 40.783023834228516]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "813892", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.79015350341797, 40.64558410644531]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814651", "demand": "3"}}, {"geometry": {"type": "Point", "coordinates": [-73.98197937011719, 40.768741607666016]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814657", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.95823669433594, 40.71341323852539]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "813995", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-74.01016235351562, 40.7061653137207]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814580", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.98320007324219, 40.6773567199707]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814372", "demand": "3"}}, {"geometry": {"type": "Point", "coordinates": [-73.99581146240234, 40.74423599243164]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814467", "demand": "3"}}, {"geometry": {"type": "Point", "coordinates": [-73.99394226074219, 40.751338958740234]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814305", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-74.0094223022461, 40.7260627746582]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814561", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-74.0094223022461, 40.7260627746582]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814561", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.96047973632812, 40.58925247192383]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814936", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-74.005126953125, 40.71892166137695]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814981", "demand": "3"}}, {"geometry": {"type": "Point", "coordinates": [-73.95189666748047, 40.74602127075195]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "813943", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.97567749023438, 40.74523162841797]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814173", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.9939956665039, 40.75120162963867]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814955", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.99149322509766, 40.730167388916016]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814986", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.98220825195312, 40.76851272583008]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "813822", "demand": "4"}}, {"geometry": {"type": "Point", "coordinates": [-73.99683380126953, 40.762752532958984]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "815121", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.9826431274414, 40.77208709716797]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814561", "demand": "3"}}, {"geometry": {"type": "Point", "coordinates": [-73.97067260742188, 40.79851531982422]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814777", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.99066162109375, 40.771766662597656]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814445", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.98988342285156, 40.752742767333984]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "815038", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.97463989257812, 40.753501892089844]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814803", "demand": "4"}}, {"geometry": {"type": "Point", "coordinates": [-73.97463989257812, 40.753501892089844]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814803", "demand": "4"}}, {"geometry": {"type": "Point", "coordinates": [-74.01029205322266, 40.711368560791016]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "815063", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.96804809570312, 40.75563049316406]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "813818", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.99754333496094, 40.75712585449219]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814231", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.86345672607422, 40.7697639465332]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814352", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.99383544921875, 40.7516975402832]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814874", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.98087310791016, 40.75360870361328]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814773", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.95587158203125, 40.77587127685547]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814409", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.99761962890625, 40.7336311340332]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "815088", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.99761962890625, 40.7336311340332]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "815088", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.96119689941406, 40.768856048583984]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814875", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.9740982055664, 40.73984146118164]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "813946", "demand": "3"}}, {"geometry": {"type": "Point", "coordinates": [-73.98934173583984, 40.7529296875]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814601", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.95113372802734, 40.777854919433594]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814346", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.97865295410156, 40.745365142822266]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "813935", "demand": "3"}}, {"geometry": {"type": "Point", "coordinates": [-73.999267578125, 40.73926544189453]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814485", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.95504760742188, 40.77730941772461]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "813881", "demand": "3"}}, {"geometry": {"type": "Point", "coordinates": [-73.99855041503906, 40.6768913269043]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814856", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.98670959472656, 40.74262619018555]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "815132", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.97784423828125, 40.78887939453125]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814124", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.98545837402344, 40.75878143310547]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814173", "demand": "4"}}, {"geometry": {"type": "Point", "coordinates": [-73.96038818359375, 40.778778076171875]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814738", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.98171997070312, 40.74663543701172]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814471", "demand": "3"}}, {"geometry": {"type": "Point", "coordinates": [-74.00276947021484, 40.75614929199219]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814650", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.98235321044922, 40.77743911743164]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "813918", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-74.0059814453125, 40.7352294921875]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814104", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.9710922241211, 40.750911712646484]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814451", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.97232055664062, 40.76538848876953]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814740", "demand": "3"}}, {"geometry": {"type": "Point", "coordinates": [-73.97502136230469, 40.75558090209961]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814806", "demand": "4"}}, {"geometry": {"type": "Point", "coordinates": [-73.99115753173828, 40.76023864746094]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814504", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.98127746582031, 40.7414665222168]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "813917", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.9479751586914, 40.79853057861328]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814698", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.9744873046875, 40.75584411621094]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "813966", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.98831939697266, 40.758949279785156]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "813932", "demand": "3"}}, {"geometry": {"type": "Point", "coordinates": [-73.98137664794922, 40.770896911621094]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "815068", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.970458984375, 40.79375457763672]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "815046", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.977294921875, 40.755367279052734]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814942", "demand": "3"}}, {"geometry": {"type": "Point", "coordinates": [-74.00822448730469, 40.72258758544922]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814486", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.9800033569336, 40.7431526184082]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814659", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.98375701904297, 40.73408126831055]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814743", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.98660278320312, 40.73963928222656]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "813798", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-74.00431823730469, 40.71977996826172]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "813854", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.98038482666016, 40.77546310424805]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "815068", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-74.00239562988281, 40.745201110839844]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "813916", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-74.00677490234375, 40.74338150024414]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814326", "demand": "4"}}, {"geometry": {"type": "Point", "coordinates": [-73.99131774902344, 40.74987030029297]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814233", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.80204010009766, 40.664669036865234]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814032", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.98892974853516, 40.72312927246094]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "815145", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.98818969726562, 40.73775100708008]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814788", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.95250701904297, 40.80329132080078]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814883", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.95674896240234, 40.767330169677734]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814931", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-74.00578308105469, 40.70634841918945]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814743", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.97937774658203, 40.76710891723633]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814641", "demand": "3"}}, {"geometry": {"type": "Point", "coordinates": [-73.96102905273438, 40.77250289916992]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814556", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.98072052001953, 40.779945373535156]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814591", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.98921966552734, 40.726505279541016]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "815190", "demand": "3"}}, {"geometry": {"type": "Point", "coordinates": [-73.9739761352539, 40.7475700378418]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814594", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.9739761352539, 40.7475700378418]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814594", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.95436096191406, 40.764076232910156]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814033", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.95037841796875, 40.77967834472656]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "813768", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.97677612304688, 40.745304107666016]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814101", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.99454498291016, 40.75063705444336]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "813776", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.98152923583984, 40.77880859375]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814094", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-74.00708770751953, 40.71601104736328]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814155", "demand": "4"}}, {"geometry": {"type": "Point", "coordinates": [-73.95095825195312, 40.78335952758789]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "813909", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.98694610595703, 40.72244644165039]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814790", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.99464416503906, 40.75022506713867]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814322", "demand": "3"}}, {"geometry": {"type": "Point", "coordinates": [-73.98694610595703, 40.753421783447266]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814305", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.96014404296875, 40.770362854003906]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814252", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.94998168945312, 40.77614974975586]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814294", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.94606018066406, 40.775508880615234]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "815018", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.99974822998047, 40.733211517333984]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814572", "demand": "6"}}, {"geometry": {"type": "Point", "coordinates": [-73.98594665527344, 40.74757385253906]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814651", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.95437622070312, 40.717041015625]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814520", "demand": "4"}}, {"geometry": {"type": "Point", "coordinates": [-73.95295715332031, 40.82349395751953]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814777", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-74.00797271728516, 40.72593688964844]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814458", "demand": "4"}}, {"geometry": {"type": "Point", "coordinates": [-73.98316192626953, 40.69342803955078]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814597", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.98249053955078, 40.77558135986328]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814921", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.9972152709961, 40.71397399902344]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814988", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.99710083007812, 40.762821197509766]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814205", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.9773941040039, 40.775020599365234]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814600", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.93475341796875, 40.714500427246094]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814233", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.93475341796875, 40.714500427246094]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814233", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.95177459716797, 40.76959991455078]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814303", "demand": "3"}}, {"geometry": {"type": "Point", "coordinates": [-74.00627899169922, 40.73316955566406]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "813974", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.86378479003906, 40.76953887939453]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814980", "demand": "4"}}, {"geometry": {"type": "Point", "coordinates": [-73.97688293457031, 40.78784942626953]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "815098", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.97688293457031, 40.78784942626953]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "815098", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.9847412109375, 40.74821853637695]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814030", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.86322784423828, 40.76996994018555]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "815014", "demand": "3"}}, {"geometry": {"type": "Point", "coordinates": [-73.93953704833984, 40.74822998046875]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814836", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.99066925048828, 40.74443435668945]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814850", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.97113037109375, 40.7514533996582]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814242", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.9648666381836, 40.77543640136719]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "813920", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.98986053466797, 40.73834991455078]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814934", "demand": "3"}}, {"geometry": {"type": "Point", "coordinates": [-73.97125244140625, 40.7578010559082]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814035", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.97125244140625, 40.7578010559082]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814035", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.98285675048828, 40.77702713012695]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "813977", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.98815155029297, 40.72324752807617]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814231", "demand": "6"}}, {"geometry": {"type": "Point", "coordinates": [-74.00324249267578, 40.7252082824707]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814214", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-74.00845336914062, 40.71424102783203]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814549", "demand": "3"}}, {"geometry": {"type": "Point", "coordinates": [-73.9672622680664, 40.763404846191406]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "813781", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.99159240722656, 40.68503952026367]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814032", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.99359893798828, 40.742576599121094]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "815035", "demand": "4"}}, {"geometry": {"type": "Point", "coordinates": [-73.95561981201172, 40.7823600769043]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "813831", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.98280334472656, 40.76262664794922]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814652", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.9827651977539, 40.73971939086914]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "815113", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.95228576660156, 40.77700424194336]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814181", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.99336242675781, 40.75251770019531]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814350", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.99134063720703, 40.734947204589844]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "813938", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.99934387207031, 40.72661209106445]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814995", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.98442840576172, 40.74568557739258]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814060", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-74.00279235839844, 40.72859191894531]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814080", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.96631622314453, 40.80465316772461]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814961", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.97698974609375, 40.790191650390625]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814893", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-74.00749969482422, 40.71558380126953]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814310", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.99181365966797, 40.75019836425781]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814542", "demand": "5"}}, {"geometry": {"type": "Point", "coordinates": [-74.01261901855469, 40.702232360839844]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "815169", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.95323181152344, 40.765010833740234]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814117", "demand": "4"}}, {"geometry": {"type": "Point", "coordinates": [-73.9939956665039, 40.756683349609375]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814464", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.95291137695312, 40.79849624633789]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814962", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.98481750488281, 40.75859832763672]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814368", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.96886444091797, 40.78651809692383]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814877", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.95671081542969, 40.77482223510742]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814224", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.9808349609375, 40.767601013183594]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814021", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.9808349609375, 40.767601013183594]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814021", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.86335754394531, 40.76997375488281]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814893", "demand": "5"}}, {"geometry": {"type": "Point", "coordinates": [-73.99494171142578, 40.74797821044922]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814619", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.97840881347656, 40.76056671142578]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814402", "demand": "3"}}, {"geometry": {"type": "Point", "coordinates": [-73.88524627685547, 40.77293014526367]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814267", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.97456359863281, 40.75077819824219]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814683", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.97518157958984, 40.758216857910156]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814887", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.98751831054688, 40.761226654052734]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "813841", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.97848510742188, 40.76195526123047]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814036", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.99109649658203, 40.7182731628418]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "815177", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.9823226928711, 40.73163986206055]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "815154", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.99134063720703, 40.76005554199219]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "815096", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.969970703125, 40.7578125]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814359", "demand": "3"}}, {"geometry": {"type": "Point", "coordinates": [-73.78108978271484, 40.6450309753418]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814450", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.9780502319336, 40.75447082519531]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814980", "demand": "3"}}, {"geometry": {"type": "Point", "coordinates": [-73.9946060180664, 40.74563980102539]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "813876", "demand": "3"}}, {"geometry": {"type": "Point", "coordinates": [-73.99126434326172, 40.75077438354492]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "815066", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.98887634277344, 40.718868255615234]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814804", "demand": "3"}}, {"geometry": {"type": "Point", "coordinates": [-73.96955871582031, 40.75663757324219]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "813912", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.96499633789062, 40.772308349609375]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814035", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.99520111083984, 40.71751022338867]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814882", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.99961853027344, 40.74903106689453]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814445", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.94657897949219, 40.711463928222656]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814643", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.96350860595703, 40.75745391845703]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814406", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.95584869384766, 40.77622604370117]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814489", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.98090362548828, 40.77436828613281]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814697", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.9913330078125, 40.730220794677734]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "813880", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.97052001953125, 40.75491714477539]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "813969", "demand": "3"}}, {"geometry": {"type": "Point", "coordinates": [-73.9866714477539, 40.761688232421875]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "815044", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.9610595703125, 40.77513122558594]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814104", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-74.00209045410156, 40.740264892578125]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814223", "demand": "3"}}, {"geometry": {"type": "Point", "coordinates": [-73.98841857910156, 40.764305114746094]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814476", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.99130249023438, 40.750213623046875]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814491", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-74.00279998779297, 40.723594665527344]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814954", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.87308502197266, 40.77413558959961]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814998", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.98542785644531, 40.72700500488281]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814956", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.86357116699219, 40.76945877075195]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814034", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.95635986328125, 40.76797866821289]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "815116", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.99274444580078, 40.76327896118164]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814849", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.98292541503906, 40.76900863647461]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814205", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.99500274658203, 40.75934982299805]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "815005", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.86270904541016, 40.768821716308594]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814744", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.98931121826172, 40.74308776855469]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814231", "demand": "3"}}, {"geometry": {"type": "Point", "coordinates": [-73.99700164794922, 40.72541046142578]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814750", "demand": "5"}}, {"geometry": {"type": "Point", "coordinates": [-74.00334930419922, 40.727291107177734]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814547", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-74.0022201538086, 40.729461669921875]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814958", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.97381591796875, 40.74312973022461]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814592", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.9747085571289, 40.75576400756836]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "815071", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.9759750366211, 40.75791549682617]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814703", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.97078704833984, 40.76398849487305]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814837", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.96263885498047, 40.76681137084961]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814412", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.99671173095703, 40.723121643066406]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814542", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.99955749511719, 40.71849822998047]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814461", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.99955749511719, 40.71849822998047]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814461", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.9893798828125, 40.757625579833984]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "813823", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.97808837890625, 40.78355407714844]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "815080", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.95787048339844, 40.78229904174805]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814202", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.95342254638672, 40.74480056762695]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "815102", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.98229217529297, 40.77716064453125]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "815188", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.95233154296875, 40.77672576904297]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814084", "demand": "3"}}, {"geometry": {"type": "Point", "coordinates": [-73.97808074951172, 40.729270935058594]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814060", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-74.00704956054688, 40.743751525878906]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814625", "demand": "3"}}, {"geometry": {"type": "Point", "coordinates": [-73.95325469970703, 40.77578353881836]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "813958", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.95325469970703, 40.77578353881836]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "813958", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.96245574951172, 40.778690338134766]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814160", "demand": "4"}}, {"geometry": {"type": "Point", "coordinates": [-73.9997787475586, 40.753639221191406]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814022", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.9897232055664, 40.755550384521484]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "813826", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-74.00048828125, 40.72737503051758]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "813958", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-74.00789642333984, 40.705665588378906]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "815178", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.99823760986328, 40.74048614501953]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814469", "demand": "3"}}, {"geometry": {"type": "Point", "coordinates": [-74.0022201538086, 40.75052261352539]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814105", "demand": "3"}}, {"geometry": {"type": "Point", "coordinates": [-73.99602508544922, 40.73866271972656]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814107", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.98131561279297, 40.78102111816406]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814115", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.9897232055664, 40.739864349365234]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "813841", "demand": "3"}}, {"geometry": {"type": "Point", "coordinates": [-73.979736328125, 40.75468826293945]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "813888", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.97145080566406, 40.750221252441406]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814773", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.9911880493164, 40.75115966796875]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814615", "demand": "4"}}, {"geometry": {"type": "Point", "coordinates": [-73.9991455078125, 40.72777557373047]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814567", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.92318725585938, 40.70675277709961]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "815097", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.99149322509766, 40.739017486572266]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "813914", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.9755630493164, 40.792057037353516]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814443", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.96204376220703, 40.80048751831055]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814054", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.99642181396484, 40.72380065917969]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814697", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.9537124633789, 40.76708984375]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814542", "demand": "3"}}, {"geometry": {"type": "Point", "coordinates": [-73.88530731201172, 40.77302169799805]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814457", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.98199462890625, 40.77096939086914]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814413", "demand": "3"}}, {"geometry": {"type": "Point", "coordinates": [-74.00238800048828, 40.73960876464844]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814754", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.9556655883789, 40.7765998840332]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814982", "demand": "4"}}, {"geometry": {"type": "Point", "coordinates": [-74.00814819335938, 40.738929748535156]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "815040", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.97360229492188, 40.75291061401367]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "815067", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.97591400146484, 40.760616302490234]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "813829", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.98844909667969, 40.76666259765625]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814822", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.99654388427734, 40.72526168823242]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814943", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.99122619628906, 40.74518966674805]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814430", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.96244049072266, 40.75883102416992]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814951", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.98452758789062, 40.736419677734375]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "815041", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.98316955566406, 40.750518798828125]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814123", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.9583740234375, 40.760704040527344]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814802", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.9568099975586, 40.767433166503906]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814465", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.9815444946289, 40.73291015625]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814840", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.96231842041016, 40.810298919677734]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814119", "demand": "3"}}, {"geometry": {"type": "Point", "coordinates": [-73.98882293701172, 40.741783142089844]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814395", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.97281646728516, 40.755767822265625]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814874", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.98690795898438, 40.750877380371094]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814932", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.98114776611328, 40.774391174316406]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "815038", "demand": "3"}}, {"geometry": {"type": "Point", "coordinates": [-73.99251556396484, 40.75855255126953]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814179", "demand": "4"}}, {"geometry": {"type": "Point", "coordinates": [-74.005859375, 40.70925521850586]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814220", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.9808349609375, 40.741939544677734]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814008", "demand": "4"}}, {"geometry": {"type": "Point", "coordinates": [-73.97978210449219, 40.76559066772461]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814083", "demand": "3"}}, {"geometry": {"type": "Point", "coordinates": [-73.97978210449219, 40.76559066772461]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814083", "demand": "3"}}, {"geometry": {"type": "Point", "coordinates": [-73.97019958496094, 40.75654220581055]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814499", "demand": "5"}}, {"geometry": {"type": "Point", "coordinates": [-73.95144653320312, 40.71404266357422]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "813996", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.9872817993164, 40.72904968261719]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814322", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.98212432861328, 40.73134994506836]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814306", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-74.00494384765625, 40.723331451416016]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "815142", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-74.00914764404297, 40.71364212036133]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "813854", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.99129486083984, 40.74972152709961]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814148", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.9591293334961, 40.77743148803711]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814156", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.98741912841797, 40.741661071777344]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814170", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.96131896972656, 40.76457214355469]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "815031", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.99838256835938, 40.72454833984375]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814394", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-74.0135269165039, 40.709354400634766]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814940", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.98213958740234, 40.774715423583984]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814683", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.98075103759766, 40.75843048095703]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814616", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.97061157226562, 40.76237106323242]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814071", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.98956298828125, 40.76258087158203]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "815092", "demand": "4"}}, {"geometry": {"type": "Point", "coordinates": [-73.98190307617188, 40.74045944213867]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814855", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.99656677246094, 40.74815368652344]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814204", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.95353698730469, 40.776065826416016]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814692", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.96537780761719, 40.77191925048828]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814345", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.9808120727539, 40.765174865722656]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814855", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.983642578125, 40.756072998046875]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "813892", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-74.01205444335938, 40.70795822143555]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814156", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.96387481689453, 40.765296936035156]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814551", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.96336364746094, 40.77214050292969]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "815065", "demand": "4"}}, {"geometry": {"type": "Point", "coordinates": [-73.98170471191406, 40.76462173461914]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814594", "demand": "4"}}, {"geometry": {"type": "Point", "coordinates": [-73.99779510498047, 40.735877990722656]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814311", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.96687316894531, 40.76066589355469]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814750", "demand": "3"}}, {"geometry": {"type": "Point", "coordinates": [-73.95877075195312, 40.81529235839844]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "813897", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.99333190917969, 40.720184326171875]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814286", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.99922180175781, 40.72787094116211]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814246", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.97701263427734, 40.73887634277344]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814499", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.98251342773438, 40.777099609375]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814362", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.98251342773438, 40.777099609375]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814362", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-74.00462341308594, 40.72401809692383]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "815065", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.97671508789062, 40.75990676879883]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "813979", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.97904968261719, 40.76414489746094]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814223", "demand": "4"}}, {"geometry": {"type": "Point", "coordinates": [-73.94680786132812, 40.77621841430664]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "813918", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.98616790771484, 40.752403259277344]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814965", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.98690795898438, 40.74216842651367]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814893", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.9481430053711, 40.78988265991211]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814249", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-74.01543426513672, 40.71037292480469]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814077", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.99658203125, 40.7293815612793]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814846", "demand": "4"}}, {"geometry": {"type": "Point", "coordinates": [-73.98199462890625, 40.76316833496094]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814198", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-74.015869140625, 40.71503829956055]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814978", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.9906997680664, 40.756126403808594]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "813861", "demand": "6"}}, {"geometry": {"type": "Point", "coordinates": [-73.99976348876953, 40.72356033325195]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "813885", "demand": "3"}}, {"geometry": {"type": "Point", "coordinates": [-73.98041534423828, 40.76030349731445]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814566", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.99178314208984, 40.73817443847656]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814361", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.98849487304688, 40.72149658203125]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "813899", "demand": "4"}}, {"geometry": {"type": "Point", "coordinates": [-74.00008392333984, 40.72682189941406]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814241", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.98992156982422, 40.73430633544922]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814792", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.98249816894531, 40.7510986328125]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "813788", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.9541244506836, 40.78116989135742]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814033", "demand": "3"}}, {"geometry": {"type": "Point", "coordinates": [-73.97814178466797, 40.745731353759766]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814899", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-74.00432586669922, 40.707603454589844]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "813817", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.98111724853516, 40.748680114746094]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814008", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.98111724853516, 40.748680114746094]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814008", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-74.00386047363281, 40.74215316772461]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814557", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.9789047241211, 40.74582290649414]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814154", "demand": "5"}}, {"geometry": {"type": "Point", "coordinates": [-74.00003814697266, 40.73054122924805]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814034", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.99076843261719, 40.73442459106445]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "813824", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.99076843261719, 40.73442459106445]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "813824", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.98086547851562, 40.75094223022461]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814249", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.97821807861328, 40.74844741821289]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814013", "demand": "4"}}, {"geometry": {"type": "Point", "coordinates": [-73.97135162353516, 40.7979736328125]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814992", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.98869323730469, 40.74562454223633]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814306", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.94860076904297, 40.692588806152344]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "813987", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-74.00543212890625, 40.713829040527344]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814756", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.9805908203125, 40.73040008544922]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "813987", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.95084381103516, 40.770668029785156]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "815020", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.9915771484375, 40.735130310058594]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814022", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.95247650146484, 40.78647994995117]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "815027", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.99986267089844, 40.725311279296875]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814076", "demand": "4"}}, {"geometry": {"type": "Point", "coordinates": [-73.99674987792969, 40.6974983215332]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "813860", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.97230529785156, 40.76228713989258]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814596", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.8734130859375, 40.77402114868164]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814788", "demand": "4"}}, {"geometry": {"type": "Point", "coordinates": [-73.99983978271484, 40.76158142089844]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814344", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.78317260742188, 40.64682388305664]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "813837", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.99017333984375, 40.756282806396484]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814343", "demand": "3"}}, {"geometry": {"type": "Point", "coordinates": [-73.94816589355469, 40.78287124633789]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814066", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.98759460449219, 40.719932556152344]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "813901", "demand": "6"}}, {"geometry": {"type": "Point", "coordinates": [-74.0074462890625, 40.74327087402344]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814806", "demand": "3"}}, {"geometry": {"type": "Point", "coordinates": [-73.98950958251953, 40.757118225097656]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "813919", "demand": "3"}}, {"geometry": {"type": "Point", "coordinates": [-73.98307037353516, 40.744564056396484]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814296", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.9932632446289, 40.752525329589844]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814128", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.97721099853516, 40.77437973022461]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814594", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.97355651855469, 40.75020980834961]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814364", "demand": "4"}}, {"geometry": {"type": "Point", "coordinates": [-73.99777221679688, 40.72147750854492]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814761", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.98928833007812, 40.748661041259766]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "815032", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-74.00767517089844, 40.7409782409668]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814274", "demand": "6"}}, {"geometry": {"type": "Point", "coordinates": [-73.95629119873047, 40.77861022949219]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814948", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-74.00997161865234, 40.705833435058594]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "815137", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.8631820678711, 40.770259857177734]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "815031", "demand": "3"}}, {"geometry": {"type": "Point", "coordinates": [-73.98660278320312, 40.728878021240234]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814279", "demand": "5"}}, {"geometry": {"type": "Point", "coordinates": [-73.97087097167969, 40.758724212646484]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814419", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.97212982177734, 40.76243209838867]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814880", "demand": "3"}}, {"geometry": {"type": "Point", "coordinates": [-74.00745391845703, 40.71558380126953]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "815063", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.9893569946289, 40.74755859375]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814853", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.97265625, 40.78068542480469]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814275", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.96292877197266, 40.7584114074707]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814462", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.99456024169922, 40.75425720214844]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "813893", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.97332000732422, 40.762245178222656]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "813853", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.9508285522461, 40.77912521362305]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814798", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.94912719726562, 40.777130126953125]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814923", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.97084045410156, 40.76430130004883]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "815168", "demand": "4"}}, {"geometry": {"type": "Point", "coordinates": [-73.9959716796875, 40.76728439331055]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814335", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.9959716796875, 40.76728439331055]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814335", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.95559692382812, 40.77973937988281]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814700", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-74.00588989257812, 40.74544143676758]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "813947", "demand": "4"}}, {"geometry": {"type": "Point", "coordinates": [-73.96150970458984, 40.76057052612305]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814466", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.96240997314453, 40.7564582824707]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814113", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.98088836669922, 40.74726104736328]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814059", "demand": "5"}}, {"geometry": {"type": "Point", "coordinates": [-73.97467041015625, 40.782997131347656]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814081", "demand": "3"}}, {"geometry": {"type": "Point", "coordinates": [-73.98694610595703, 40.73964309692383]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814067", "demand": "3"}}, {"geometry": {"type": "Point", "coordinates": [-73.98187255859375, 40.758060455322266]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814471", "demand": "3"}}, {"geometry": {"type": "Point", "coordinates": [-73.986328125, 40.740440368652344]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "815178", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.93585205078125, 40.79977035522461]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "813941", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.95581817626953, 40.76401138305664]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "813846", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.95442199707031, 40.76996994018555]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "813808", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-74.00421142578125, 40.707420349121094]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814642", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.9905014038086, 40.751068115234375]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814700", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.99117279052734, 40.749488830566406]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814352", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.96774291992188, 40.80297088623047]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814126", "demand": "3"}}, {"geometry": {"type": "Point", "coordinates": [-73.98491668701172, 40.747989654541016]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814022", "demand": "3"}}, {"geometry": {"type": "Point", "coordinates": [-73.97798156738281, 40.764923095703125]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "813888", "demand": "3"}}, {"geometry": {"type": "Point", "coordinates": [-73.96516418457031, 40.76919174194336]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814889", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.94904327392578, 40.695308685302734]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "813798", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.94637298583984, 40.77690124511719]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "813815", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.9844970703125, 40.74281692504883]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "813981", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-74.01258087158203, 40.70208740234375]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814378", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.96894836425781, 40.76163101196289]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "813965", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-74.00660705566406, 40.74394989013672]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814001", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.86290740966797, 40.76871871948242]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814365", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.98182678222656, 40.76813888549805]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814129", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.98912811279297, 40.76586151123047]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814129", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.97828674316406, 40.76264190673828]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814743", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.99152374267578, 40.7393798828125]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814845", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.9815673828125, 40.72842025756836]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "813973", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.97498321533203, 40.75101852416992]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814494", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.97698974609375, 40.75217056274414]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814500", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.97863006591797, 40.75218200683594]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814263", "demand": "4"}}, {"geometry": {"type": "Point", "coordinates": [-73.97452545166016, 40.788326263427734]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814273", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-74.01651000976562, 40.704795837402344]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "815173", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.95516967773438, 40.777198791503906]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814729", "demand": "3"}}, {"geometry": {"type": "Point", "coordinates": [-73.95271301269531, 40.780338287353516]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "813942", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.94141387939453, 40.79200744628906]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "813994", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.95781707763672, 40.7652702331543]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "815085", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.97985076904297, 40.743431091308594]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814468", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.78218841552734, 40.64462661743164]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "813943", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.99079132080078, 40.771358489990234]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "815124", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.99800109863281, 40.76577377319336]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814982", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-74.00434875488281, 40.70744323730469]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814446", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.97679138183594, 40.753719329833984]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814132", "demand": "3"}}, {"geometry": {"type": "Point", "coordinates": [-73.78400421142578, 40.646236419677734]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814584", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-74.00109100341797, 40.73141860961914]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814253", "demand": "3"}}, {"geometry": {"type": "Point", "coordinates": [-73.95211029052734, 40.69319152832031]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814956", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.98323059082031, 40.78163146972656]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814892", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.98924255371094, 40.763038635253906]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814037", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.9614028930664, 40.764625549316406]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814461", "demand": "3"}}, {"geometry": {"type": "Point", "coordinates": [-73.98086547851562, 40.74205780029297]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814688", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-74.00721740722656, 40.70631790161133]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814880", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.96539306640625, 40.765716552734375]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814128", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.99198150634766, 40.759368896484375]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814957", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.9903564453125, 40.75920486450195]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "813935", "demand": "4"}}, {"geometry": {"type": "Point", "coordinates": [-73.78988647460938, 40.647308349609375]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814572", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-74.00105285644531, 40.73165512084961]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814594", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.99554443359375, 40.764610290527344]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814227", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.97560119628906, 40.73244094848633]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814730", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.96512603759766, 40.76639175415039]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814265", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.98519134521484, 40.761962890625]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "813988", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.86345672607422, 40.769840240478516]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814732", "demand": "4"}}, {"geometry": {"type": "Point", "coordinates": [-73.8729476928711, 40.774078369140625]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814516", "demand": "5"}}, {"geometry": {"type": "Point", "coordinates": [-73.9876937866211, 40.73841857910156]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814215", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.98702239990234, 40.73981857299805]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814199", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.98702239990234, 40.73981857299805]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814199", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.97926330566406, 40.75297927856445]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814607", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.99409484863281, 40.751136779785156]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814918", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.97418975830078, 40.75014877319336]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "815057", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.9864730834961, 40.752952575683594]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814553", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.98216247558594, 40.77568435668945]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "813863", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.88540649414062, 40.77310562133789]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814556", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.96859741210938, 40.75497055053711]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814420", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.94938659667969, 40.77679443359375]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814150", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-73.97516632080078, 40.7823486328125]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "813831", "demand": "1"}}, {"geometry": {"type": "Point", "coordinates": [-73.97210693359375, 40.764747619628906]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "814697", "demand": "5"}}, {"geometry": {"type": "Point", "coordinates": [-74.00369262695312, 40.74738311767578]}, "type": "Feature", "properties": {"Primary ID": 1, "time": "813835", "demand": "2"}}, {"geometry": {"type": "Point", "coordinates": [-74.00369262695312, 40.74738311767578]}, "type": "Feature", "properties": {"Prima
gitextract_o_p3sq4s/
├── .gitignore
├── .travis.yml
├── Procfile
├── README.md
├── app.json
├── build.sbt
├── cassandra-server/
│ ├── build.sbt
│ └── src/
│ └── main/
│ ├── resources/
│ │ └── cassandra.yaml
│ └── scala/
│ └── CassandraServer.scala
├── demand-dashboard/
│ ├── app/
│ │ ├── Module.scala
│ │ ├── assets/
│ │ │ ├── scripts/
│ │ │ │ └── getdemand.js
│ │ │ └── stylesheets/
│ │ │ └── main.css
│ │ ├── controllers/
│ │ │ └── HomeController.scala
│ │ ├── services/
│ │ │ └── PredictionIO.scala
│ │ └── views/
│ │ ├── dashboardAnalysis.scala.html
│ │ ├── dashboardPrediction.scala.html
│ │ ├── dashboardSectionHeader.scala.html
│ │ ├── documentationData.scala.html
│ │ ├── documentationModels.scala.html
│ │ ├── documentationSectionHeader.scala.html
│ │ ├── header.scala.html
│ │ └── index.scala.html
│ ├── build.sbt
│ ├── conf/
│ │ ├── application.conf
│ │ └── routes
│ └── public/
│ ├── analysis.js
│ ├── koober-training.js
│ ├── main.css
│ └── prediction.js
├── demo-data/
│ ├── build.sbt
│ └── src/
│ ├── main/
│ │ └── scala/
│ │ ├── DemoData.scala
│ │ ├── FakeDataSource.scala
│ │ └── NewYorkDataSource.scala
│ └── test/
│ └── scala/
│ ├── FakeDataSourceSpec.scala
│ └── NewYorkDataSourceSpec.scala
├── flink-client/
│ ├── build.sbt
│ └── src/
│ └── main/
│ ├── resources/
│ │ └── log4j.properties
│ └── scala/
│ └── FlinkClient.scala
├── kafka-common/
│ ├── build.sbt
│ └── src/
│ └── main/
│ └── scala/
│ └── helpers/
│ └── KafkaHelper.scala
├── kafka-server/
│ ├── build.sbt
│ └── src/
│ └── main/
│ ├── resources/
│ │ └── log4j.properties
│ └── scala/
│ └── KafkaServer.scala
├── kafka-to-cassandra/
│ ├── build.sbt
│ └── src/
│ └── main/
│ ├── resources/
│ │ └── log4j.properties
│ └── scala/
│ └── KafkaToCassandra.scala
├── pio-client/
│ ├── build.sbt
│ └── src/
│ ├── main/
│ │ └── scala/
│ │ └── PioClient.scala
│ └── test/
│ └── scala/
│ └── PioClientSpec.scala
├── pio-engine/
│ ├── build.sbt
│ ├── engine.json
│ ├── project/
│ │ └── assembly.sbt
│ ├── src/
│ │ └── main/
│ │ └── scala/
│ │ ├── Algorithm.scala
│ │ ├── AlgorithmGBTree.scala
│ │ ├── Coder.scala
│ │ ├── DataSource.scala
│ │ ├── Engine.scala
│ │ ├── Evaluation.scala
│ │ ├── KooberUtil.scala
│ │ ├── Preparator.scala
│ │ ├── RandomForestAlgorithm.scala
│ │ ├── RidgeRegressionAlgorithm.scala
│ │ └── Serving.scala
│ └── template.json
├── pio-s3/
│ ├── build.sbt
│ └── src/
│ └── main/
│ └── scala/
│ └── pio/
│ └── s3/
│ ├── S3Models.scala
│ └── StorageClient.scala
├── project/
│ ├── build.properties
│ └── plugins.sbt
├── sbt
├── sbt-launch.jar
├── sbt.cmd
├── subproc.sh
├── weather-backfill/
│ └── weather-import.py
└── webapp/
├── app/
│ ├── Module.scala
│ ├── controllers/
│ │ └── HomeController.scala
│ ├── services/
│ │ └── Kafka.scala
│ └── views/
│ ├── driver.scala.html
│ └── rider.scala.html
├── build.sbt
└── conf/
├── application.conf
└── routes
SYMBOL INDEX (19 symbols across 4 files)
FILE: demand-dashboard/app/assets/scripts/getdemand.js
function getDemand (line 1) | function getDemand() {
FILE: demand-dashboard/public/analysis.js
function getTimeElements (line 67) | function getTimeElements() {
function getNormalizedTime (line 78) | function getNormalizedTime() {
function getDateTime (line 83) | function getDateTime() {
function buildQueryString (line 88) | function buildQueryString(algorithm, coordinates) {
function prettyNumbers (line 92) | function prettyNumbers(number) {
function filterBy (line 100) | function filterBy(time) {
function updateAllMaps (line 144) | function updateAllMaps(delay) {
function updateMapPredictions (line 154) | function updateMapPredictions(algorithmMap, algorithmName) {
function updateCoordinates (line 208) | function updateCoordinates() {
FILE: demand-dashboard/public/prediction.js
function makeCluster (line 141) | function makeCluster(lat, lng) {
function buildQueryJson (line 149) | function buildQueryJson(lat, lng){
function buildQueryString (line 169) | function buildQueryString(lat, lng){
function findNearestIndex (line 179) | function findNearestIndex(demands, data){
FILE: weather-backfill/weather-import.py
function compareObs (line 11) | def compareObs(ob1, ob2):
function cmp_to_key (line 19) | def cmp_to_key(mycmp):
function getWeatherData (line 38) | def getWeatherData(pickup_hour, observations):
function import_weather_data (line 56) | def import_weather_data(inputfile, outputfile):
function main (line 85) | def main(argv):
Condensed preview — 82 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (2,345K chars).
[
{
"path": ".gitignore",
"chars": 209,
"preview": "pio.log\n/target/\n/*/target/\n/project/project/\n/.idea/\n/logs/\n/pio-engine/manifest.json\n/pio-engine/pio.log\n/pio-engine/p"
},
{
"path": ".travis.yml",
"chars": 133,
"preview": "language: scala\njdk:\n - oraclejdk8\nscript: sbt test\ncache:\n directories:\n - $HOME/.ivy2/cache\n - $HOME/.sbt/boot"
},
{
"path": "Procfile",
"chars": 48,
"preview": "web: ./subproc.sh web\ntrain: ./subproc.sh train\n"
},
{
"path": "README.md",
"chars": 1558,
"preview": "Koober\n----------------\n\nAn uber data pipeline sample app. Play Framework, Akka Streams, Kafka, Flink, Spark Streaming,"
},
{
"path": "app.json",
"chars": 275,
"preview": "{\n \"name\": \"koober\",\n \"keywords\": [\n \"play-framework\",\n \"scala\",\n \"akka-streams\",\n \"kafka\",\n \"cassandra"
},
{
"path": "build.sbt",
"chars": 1256,
"preview": "name := \"koober\"\n\nlazy val commonSettings = Seq(\n scalaVersion := \"2.11.8\",\n\n libraryDependencies ++= Seq(\n \"org.sc"
},
{
"path": "cassandra-server/build.sbt",
"chars": 72,
"preview": "libraryDependencies += \"org.apache.cassandra\" % \"cassandra-all\" % \"3.9\"\n"
},
{
"path": "cassandra-server/src/main/resources/cassandra.yaml",
"chars": 393,
"preview": "# Cassandra storage config YAML\ncluster_name: 'Koober'\n\ncommitlog_sync: periodic\ncommitlog_sync_period_in_ms: 10000\n\npar"
},
{
"path": "cassandra-server/src/main/scala/CassandraServer.scala",
"chars": 540,
"preview": "import java.nio.file.Files\n\nimport org.apache.cassandra.service.CassandraDaemon\n\nobject CassandraServer extends App {\n\n "
},
{
"path": "demand-dashboard/app/Module.scala",
"chars": 229,
"preview": "import com.google.inject.AbstractModule\nimport services.{PredictionIO, PredictionIOImpl}\n\nclass Module extends AbstractM"
},
{
"path": "demand-dashboard/app/assets/scripts/getdemand.js",
"chars": 147,
"preview": "function getDemand() {\n // TODO: update demand value with actual predicted demand\n document.getElementById(\"demand"
},
{
"path": "demand-dashboard/app/assets/stylesheets/main.css",
"chars": 2562,
"preview": "/* Global */\n* {\n font-family: \"Avenir Next\";\n}\n/* Header */\n.header {\n display: inline-block;\n width: 100%;\n height"
},
{
"path": "demand-dashboard/app/controllers/HomeController.scala",
"chars": 6338,
"preview": "package controllers\n\nimport javax.inject._\n\nimport org.joda.time.DateTime\nimport play.api.Configuration\nimport play.api."
},
{
"path": "demand-dashboard/app/services/PredictionIO.scala",
"chars": 724,
"preview": "package services\n\nimport javax.inject.{Inject, Singleton}\n\nimport org.joda.time.DateTime\nimport play.api.Configuration\ni"
},
{
"path": "demand-dashboard/app/views/dashboardAnalysis.scala.html",
"chars": 5680,
"preview": "@(mapboxAccessToken: String)\n\n<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n <meta charset=\"UTF-8\">\n <title>Analysis Das"
},
{
"path": "demand-dashboard/app/views/dashboardPrediction.scala.html",
"chars": 6450,
"preview": "@(mapboxAccessToken: String)\n\n<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n <meta charset=\"UTF-8\">\n <title>Prediction D"
},
{
"path": "demand-dashboard/app/views/dashboardSectionHeader.scala.html",
"chars": 862,
"preview": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n <meta charset=\"UTF-8\">\n <title>Dashboard Section Header</title>\n <link"
},
{
"path": "demand-dashboard/app/views/documentationData.scala.html",
"chars": 1013,
"preview": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n <meta charset=\"UTF-8\">\n <title>Documentation Data</title>\n <link rel=\""
},
{
"path": "demand-dashboard/app/views/documentationModels.scala.html",
"chars": 4293,
"preview": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n <meta charset=\"UTF-8\">\n <title>Documentation Models</title>\n <link rel"
},
{
"path": "demand-dashboard/app/views/documentationSectionHeader.scala.html",
"chars": 1040,
"preview": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n <meta charset=\"UTF-8\">\n <title>Documentation Section Header</title>\n <"
},
{
"path": "demand-dashboard/app/views/header.scala.html",
"chars": 657,
"preview": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n <meta charset=\"UTF-8\">\n <title>Header</title>\n <link rel=\"stylesheet\" "
},
{
"path": "demand-dashboard/app/views/index.scala.html",
"chars": 1321,
"preview": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n <title>About</title>\n <link rel=\"stylesheet\" href=\"@routes.Assets.version"
},
{
"path": "demand-dashboard/build.sbt",
"chars": 175,
"preview": "name := \"demand-dashboard\"\n\nlibraryDependencies ++= Seq(\n ws,\n \"org.webjars\" % \"jquery-ui\" % \"1.12.1\",\n \"org.webjars\""
},
{
"path": "demand-dashboard/conf/application.conf",
"chars": 243,
"preview": "play.crypto.secret = \"changeme\"\nplay.crypto.secret = ${?CRYPTO_SECRET}\n\nplay.i18n.langs = [\"en\"]\n\nplay.http.forwarded.tr"
},
{
"path": "demand-dashboard/conf/routes",
"chars": 1343,
"preview": "# Routes\n# This file defines all application routes (Higher priority routes first)\n# ~~~~\n\nGET / "
},
{
"path": "demand-dashboard/public/analysis.js",
"chars": 5985,
"preview": "$(function() {\n // todo: use a default center based on data\n var mapCenter = [-73.9440917, 40.7682802];\n\n var actualD"
},
{
"path": "demand-dashboard/public/koober-training.js",
"chars": 1926420,
"preview": "var geoJson = {\"type\": \"FeatureCollection\", \"features\": [{\"geometry\": {\"type\": \"Point\", \"coordinates\": [-73.872932434082"
},
{
"path": "demand-dashboard/public/main.css",
"chars": 7419,
"preview": "/*************/\n/* Variables */\n/*************/\n\n:root {\n --header-height: 60px;\n --edge-padding: 20px;\n --section-he"
},
{
"path": "demand-dashboard/public/prediction.js",
"chars": 5902,
"preview": "$(function() {\n // todo: apply code to demand popup on map\n\n // todo: use a default center based on data or get user's"
},
{
"path": "demo-data/build.sbt",
"chars": 247,
"preview": "name := \"demo-data\"\n\nlibraryDependencies ++= Seq(\n \"org.apache.commons\" % \"commons-io\" % \"1.3.2\",\n \"com.typesafe.akka\""
},
{
"path": "demo-data/src/main/scala/DemoData.scala",
"chars": 3263,
"preview": "import java.time.ZonedDateTime\n\nimport akka.NotUsed\nimport akka.actor.ActorSystem\nimport akka.kafka.ProducerSettings\nimp"
},
{
"path": "demo-data/src/main/scala/FakeDataSource.scala",
"chars": 2989,
"preview": "import java.time.{Duration, ZonedDateTime}\n\nimport akka.NotUsed\nimport akka.stream.scaladsl.Source\nimport org.joda.time."
},
{
"path": "demo-data/src/main/scala/NewYorkDataSource.scala",
"chars": 4400,
"preview": "import java.io.{File, FileOutputStream}\nimport java.net.URL\n\nimport akka.NotUsed\nimport akka.stream.scaladsl.{FileIO, Fr"
},
{
"path": "demo-data/src/test/scala/FakeDataSourceSpec.scala",
"chars": 967,
"preview": "import java.time.ZonedDateTime\n\nimport akka.actor.ActorSystem\nimport akka.stream.ActorMaterializer\nimport org.joda.time."
},
{
"path": "demo-data/src/test/scala/NewYorkDataSourceSpec.scala",
"chars": 768,
"preview": "import akka.actor.ActorSystem\nimport akka.stream.ActorMaterializer\nimport akka.stream.scaladsl.Sink\nimport org.scalatest"
},
{
"path": "flink-client/build.sbt",
"chars": 277,
"preview": "name := \"flink-client\"\n\nlibraryDependencies ++= Seq(\n \"com.github.jkutner\" % \"env-keystore\" % \"0.1.2\",\n \"org.apache.fl"
},
{
"path": "flink-client/src/main/resources/log4j.properties",
"chars": 278,
"preview": "log4j.rootLogger=INFO, stdout\n\nlog4j.appender.stdout=org.apache.log4j.ConsoleAppender\nlog4j.appender.stdout.Target=Syste"
},
{
"path": "flink-client/src/main/scala/FlinkClient.scala",
"chars": 1684,
"preview": "import java.util.Properties\n\nimport org.apache.flink.api.common.typeinfo.TypeInformation\nimport org.apache.flink.streami"
},
{
"path": "kafka-common/build.sbt",
"chars": 265,
"preview": "name := \"kafka-common\"\n\nlibraryDependencies ++= Seq(\n \"org.apache.kafka\" % \"kafka-clients\" % \"0.10.1.1\",\n \"com.github."
},
{
"path": "kafka-common/src/main/scala/helpers/KafkaHelper.scala",
"chars": 2791,
"preview": "package helpers\n\nimport com.github.jkutner.EnvKeyStore\nimport com.typesafe.config.{Config, ConfigFactory}\nimport org.apa"
},
{
"path": "kafka-server/build.sbt",
"chars": 66,
"preview": "libraryDependencies += \"org.apache.kafka\" %% \"kafka\" % \"0.10.1.1\"\n"
},
{
"path": "kafka-server/src/main/resources/log4j.properties",
"chars": 278,
"preview": "log4j.rootLogger=INFO, stdout\n\nlog4j.appender.stdout=org.apache.log4j.ConsoleAppender\nlog4j.appender.stdout.Target=Syste"
},
{
"path": "kafka-server/src/main/scala/KafkaServer.scala",
"chars": 1497,
"preview": "import java.net.InetSocketAddress\nimport java.nio.file.Files\nimport java.util.Properties\n\nimport kafka.server.{KafkaConf"
},
{
"path": "kafka-to-cassandra/build.sbt",
"chars": 340,
"preview": "name := \"kafka-to-cassandra\"\n\nlibraryDependencies ++= Seq(\n \"org.apache.spark\" %% \"spark-core\" % \"2.1.0\",\n \"org.apache"
},
{
"path": "kafka-to-cassandra/src/main/resources/log4j.properties",
"chars": 278,
"preview": "log4j.rootLogger=INFO, stdout\n\nlog4j.appender.stdout=org.apache.log4j.ConsoleAppender\nlog4j.appender.stdout.Target=Syste"
},
{
"path": "kafka-to-cassandra/src/main/scala/KafkaToCassandra.scala",
"chars": 2941,
"preview": "import java.util.UUID\n\nimport com.datastax.driver.core.{Cluster, ConsistencyLevel}\nimport com.datastax.spark.connector.s"
},
{
"path": "pio-client/build.sbt",
"chars": 203,
"preview": "name := \"pio-client\"\n\nlibraryDependencies ++= Seq(\n \"com.typesafe.akka\" %% \"akka-stream-kafka\" % \"0.14\",\n \"com.typesaf"
},
{
"path": "pio-client/src/main/scala/PioClient.scala",
"chars": 2244,
"preview": "import java.util.UUID\n\nimport akka.NotUsed\nimport akka.actor.ActorSystem\nimport akka.kafka.scaladsl.Consumer\nimport akka"
},
{
"path": "pio-client/src/test/scala/PioClientSpec.scala",
"chars": 977,
"preview": "import akka.actor.ActorSystem\nimport akka.stream.ActorMaterializer\nimport akka.stream.scaladsl.{Sink, Source}\nimport org"
},
{
"path": "pio-engine/build.sbt",
"chars": 417,
"preview": "name := \"predictionio-load-forecasting\"\n\nscalaVersion := \"2.11.8\"\n\nval sparkVersion = \"2.1.1\"\n\nlibraryDependencies ++= S"
},
{
"path": "pio-engine/engine.json",
"chars": 930,
"preview": "{\n \"id\": \"default\",\n \"description\": \"Demand Prediction for NYC Taxi\",\n \"engineFactory\": \"edu.cs5152.predictionio.dema"
},
{
"path": "pio-engine/project/assembly.sbt",
"chars": 125,
"preview": "addSbtPlugin(\"com.eed3si9n\" % \"sbt-assembly\" % \"0.14.4\")\n\naddSbtPlugin(\"com.typesafe.sbt\" % \"sbt-native-packager\" % \"1.1"
},
{
"path": "pio-engine/src/main/scala/Algorithm.scala",
"chars": 2426,
"preview": "package edu.cs5152.predictionio.demandforecasting\n\nimport grizzled.slf4j.Logger\nimport org.apache.predictionio.controlle"
},
{
"path": "pio-engine/src/main/scala/AlgorithmGBTree.scala",
"chars": 2385,
"preview": "package edu.cs5152.predictionio.demandforecasting\nimport grizzled.slf4j.Logger\nimport org.apache.predictionio.controller"
},
{
"path": "pio-engine/src/main/scala/Coder.scala",
"chars": 787,
"preview": "package detrevid.predictionio.loadforecasting\n\nimport scala.math.{cos, sin, Pi}\n\nobject Coder {\n def simpleCoding(value"
},
{
"path": "pio-engine/src/main/scala/DataSource.scala",
"chars": 3885,
"preview": "package edu.cs5152.predictionio.demandforecasting\n\nimport org.apache.predictionio.controller.PDataSource\nimport org.apac"
},
{
"path": "pio-engine/src/main/scala/Engine.scala",
"chars": 1191,
"preview": "package edu.cs5152.predictionio.demandforecasting\n\nimport org.apache.predictionio.controller.{Engine, EngineFactory}\nimp"
},
{
"path": "pio-engine/src/main/scala/Evaluation.scala",
"chars": 2550,
"preview": "package edu.cs5152.predictionio.demandforecasting\n\nimport org.apache.predictionio.controller.AverageMetric\nimport org.ap"
},
{
"path": "pio-engine/src/main/scala/KooberUtil.scala",
"chars": 3122,
"preview": "package edu.cs5152.predictionio.demandforecasting\n\n\nimport grizzled.slf4j.Logger\nimport org.apache.spark.SparkContext\nim"
},
{
"path": "pio-engine/src/main/scala/Preparator.scala",
"chars": 4789,
"preview": "package edu.cs5152.predictionio.demandforecasting\n\n\nimport grizzled.slf4j.Logger\nimport org.apache.predictionio.controll"
},
{
"path": "pio-engine/src/main/scala/RandomForestAlgorithm.scala",
"chars": 2115,
"preview": "package edu.cs5152.predictionio.demandforecasting\n\nimport grizzled.slf4j.Logger\nimport org.apache.predictionio.controlle"
},
{
"path": "pio-engine/src/main/scala/RidgeRegressionAlgorithm.scala",
"chars": 3072,
"preview": "package edu.cs5152.predictionio.demandforecasting\n\nimport grizzled.slf4j.Logger\nimport org.apache.predictionio.controlle"
},
{
"path": "pio-engine/src/main/scala/Serving.scala",
"chars": 783,
"preview": "package edu.cs5152.predictionio.demandforecasting\n\nimport org.apache.predictionio.controller.LServing\n\nclass Serving ext"
},
{
"path": "pio-engine/template.json",
"chars": 53,
"preview": "{\"pio\": {\"version\": { \"min\": \"0.11.0-incubating\" }}}\n"
},
{
"path": "pio-s3/build.sbt",
"chars": 359,
"preview": "name := \"pio-data-s3\"\n\nlibraryDependencies ++= Seq(\n \"jp.co.bizreach\" %% \"aws-s3-scala\" % \"0.0.11\",\n \"org.apache.predi"
},
{
"path": "pio-s3/src/main/scala/pio/s3/S3Models.scala",
"chars": 1073,
"preview": "package pio.s3\n\nimport java.io.ByteArrayInputStream\n\nimport awscala.s3.S3\nimport com.amazonaws.services.s3.model.ObjectM"
},
{
"path": "pio-s3/src/main/scala/pio/s3/StorageClient.scala",
"chars": 538,
"preview": "package pio.s3\n\nimport awscala.Region\nimport grizzled.slf4j.Logging\nimport jp.co.bizreach.s3scala.S3\nimport org.apache.p"
},
{
"path": "project/build.properties",
"chars": 20,
"preview": "sbt.version=0.13.13\n"
},
{
"path": "project/plugins.sbt",
"chars": 177,
"preview": "addSbtPlugin(\"com.typesafe.play\" % \"sbt-plugin\" % \"2.5.12\")\n\naddSbtPlugin(\"com.typesafe.sbt\" % \"sbt-digest\" % \"1.1.1\")\n\n"
},
{
"path": "sbt",
"chars": 153,
"preview": "#!/bin/bash\nSBT_OPTS=\"-Xms512M -Xmx1536M -Xss1M -XX:+CMSClassUnloadingEnabled -XX:MaxPermSize=256M\"\njava $SBT_OPTS -jar "
},
{
"path": "sbt.cmd",
"chars": 3041,
"preview": "@REM sbt launcher script\n@setlocal enabledelayedexpansion\n\n@echo off\n\nset ERROR_CODE=0\nset SBT_LAUNCH_JAR=%~dp0%sbt-laun"
},
{
"path": "subproc.sh",
"chars": 2859,
"preview": "#!/bin/bash\n\nif [ \"$SUB_APP\" = \"pio-engine\" ]; then\n\n if [ \"$PIO_HOME\" = \"\" ]; then\n echo \"Downloading PredictionIO\""
},
{
"path": "weather-backfill/weather-import.py",
"chars": 4556,
"preview": "#!/usr/bin/python\n\nimport requests\nimport csv\nimport time\nimport datetime\nimport sys\nimport getopt\n\ncache = {}\ndef compa"
},
{
"path": "webapp/app/Module.scala",
"chars": 201,
"preview": "import com.google.inject.AbstractModule\nimport services.{Kafka, KafkaImpl}\n\nclass Module extends AbstractModule {\n\n ove"
},
{
"path": "webapp/app/controllers/HomeController.scala",
"chars": 1357,
"preview": "package controllers\n\nimport javax.inject._\n\nimport akka.stream.scaladsl.Flow\nimport org.apache.kafka.clients.producer.Pr"
},
{
"path": "webapp/app/services/Kafka.scala",
"chars": 1840,
"preview": "package services\n\nimport java.util.UUID\nimport javax.inject.{Inject, Singleton}\n\nimport akka.kafka.scaladsl.{Consumer, P"
},
{
"path": "webapp/app/views/driver.scala.html",
"chars": 5974,
"preview": "@(wsUrl: String, mapboxAccessToken: String)\n\n<!DOCTYPE html>\n<html lang=\"en\">\n <head>\n <title>Driver</title>\n\n"
},
{
"path": "webapp/app/views/rider.scala.html",
"chars": 5094,
"preview": "@(wsUrl: String, mapboxAccessToken: String)\n\n<!DOCTYPE html>\n<html lang=\"en\">\n <head>\n <title>Rider</title>\n\n "
},
{
"path": "webapp/build.sbt",
"chars": 260,
"preview": "name := \"webapp\"\n\nlibraryDependencies ++= Seq(\n \"com.typesafe.akka\" %% \"akka-stream-kafka\" % \"0.14\",\n \"org.webjars\" % "
},
{
"path": "webapp/conf/application.conf",
"chars": 664,
"preview": "akka {\n kafka.producer {\n close-timeout = 60s\n kafka-clients {\n acks = \"all\"\n retries = 0\n batch.s"
},
{
"path": "webapp/conf/routes",
"chars": 485,
"preview": "# Routes\n# This file defines all application routes (Higher priority routes first)\n# ~~~~\n\nGET /driver "
}
]
// ... and 1 more files (download for full content)
About this extraction
This page contains the full source code of the jamesward/koober GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 82 files (2.0 MB), approximately 713.3k tokens, and a symbol index with 19 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.
Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.