ScaDaMaLe Course site and book

This notebook is from databricks document: - https://docs.databricks.com/_static/notebooks/package-cells.html

As you know, we need to eventually package and deploy our models, say using sbt.

However it is nice to be in a notebook environment to prototype and build intuition and create better pipelines.

Using package cells we can be in the best of both worlds to an extent.

NOTE: This is not applicable to Zeppelin notes.

Package Cells

Package cells are special cells that get compiled when executed. These cells have no visibility with respect to the rest of the notebook. You may think of them as separate scala files.

This means that only class and object definitions may go inside this cell. You may not have any variable or function definitions lying around by itself. The following cell will not work.

If you wish to use custom classes and/or objects defined within notebooks reliably in Spark, and across notebook sessions, you must use package cells to define those classes.

Unless you use package cells to define classes, you may also come across obscure bugs as follows:

// We define a class
case class TestKey(id: Long, str: String)
defined class TestKey
// we use that class as a key in the group by
val rdd = sc.parallelize(Array((TestKey(1L, "abd"), "dss"), (TestKey(2L, "ggs"), "dse"), (TestKey(1L, "abd"), "qrf")))

rdd.groupByKey().collect
rdd: org.apache.spark.rdd.RDD[(TestKey, String)] = ParallelCollectionRDD[121] at parallelize at command-2971213210276613:2
res0: Array[(TestKey, Iterable[String])] = Array((TestKey(1,abd),CompactBuffer(dss, qrf)), (TestKey(2,ggs),CompactBuffer(dse)))

What went wrong above? Even though we have two elements for the key TestKey(1L, "abd"), they behaved as two different keys resulting in:

Array[(TestKey, Iterable[String])] = Array(
  (TestKey(2,ggs),CompactBuffer(dse)), 
  (TestKey(1,abd),CompactBuffer(dss)), 
  (TestKey(1,abd),CompactBuffer(qrf)))

Once we define our case class within a package cell, we will not face this issue.

package com.databricks.example

case class TestKey(id: Long, str: String)
Warning: classes defined within packages cannot be redefined without a cluster restart.
Compilation successful.
import com.databricks.example

val rdd = sc.parallelize(Array(
  (example.TestKey(1L, "abd"), "dss"), (example.TestKey(2L, "ggs"), "dse"), (example.TestKey(1L, "abd"), "qrf")))

rdd.groupByKey().collect
import com.databricks.example
rdd: org.apache.spark.rdd.RDD[(com.databricks.example.TestKey, String)] = ParallelCollectionRDD[123] at parallelize at command-2971213210276616:3
res2: Array[(com.databricks.example.TestKey, Iterable[String])] = Array((TestKey(1,abd),CompactBuffer(dss, qrf)), (TestKey(2,ggs),CompactBuffer(dse)))

As you can see above, the group by worked above, grouping two elements (dss, qrf) under TestKey(1,abd).

These cells behave as individual source files, therefore only classes and objects can be defined inside these cells.

package x.y.z

val aNumber = 5 // won't work

def functionThatWillNotWork(a: Int): Int = a + 1

The following cell is the way to go.

package x.y.z

object Utils {
  val aNumber = 5 // works!
  def functionThatWillWork(a: Int): Int = a + 1
}
Warning: classes defined within packages cannot be redefined without a cluster restart.
Compilation successful.
import x.y.z.Utils

Utils.functionThatWillWork(Utils.aNumber)
import x.y.z.Utils
res9: Int = 6

Why did we get the warning: classes defined within packages cannot be redefined without a cluster restart?

Classes that get compiled with the package cells get dynamically injected into Spark's classloader. Currently it's not possible to remove classes from Spark's classloader. Any classes that you define and compile will have precedence in the classloader, therefore once you recompile, it will not be visible to your application.

Well that kind of beats the purpose of iterative notebook development if I have to restart the cluster, right? In that case, you may just rename the package to x.y.z2 during development/fast iteration and fix it once everything works.

One thing to remember with package cells is that it has no visiblity regarding the notebook environment.

  • The SparkContext will not be defined as sc.
  • The SQLContext will not be defined as sqlContext.
  • Did you import a package in a separate cell? Those imports will not be available in the package cell and have to be remade.
  • Variables imported through %run cells will not be available.

It is really a standalone file that just looks like a cell in a notebook. This means that any function that uses anything that was defined in a separate cell, needs to take that variable as a parameter or the class needs to take it inside the constructor.

package x.y.zpackage

import org.apache.spark.SparkContext

case class IntArray(values: Array[Int])

class MyClass(sc: SparkContext) {
  def sparkSum(array: IntArray): Int = {
    sc.parallelize(array.values).reduce(_ + _)
  }
}

object MyClass {
  def sparkSum(sc: SparkContext, array: IntArray): Int = {
    sc.parallelize(array.values).reduce(_ + _)
  }
}
Warning: classes defined within packages cannot be redefined without a cluster restart.
Compilation successful.
import x.y.zpackage._

val array = IntArray(Array(1, 2, 3, 4, 5))

val myClass = new MyClass(sc)
myClass.sparkSum(array)
import x.y.zpackage._
array: x.y.zpackage.IntArray = IntArray([I@5bb7ffc8)
myClass: x.y.zpackage.MyClass = x.y.zpackage.MyClass@5124c9d2
res11: Int = 15
MyClass.sparkSum(sc, array)
res12: Int = 15

Build Packages Locally

Although package cells are quite handy for quick prototyping in notebook environemnts, it is better to develop packages locally on your laptop and then upload the packaged or assembled jar file into databricks to use the classes and methods developed in the package.

For examples of how to build Scala Spark packages and libraries using mvn or sbt see for example:

ScaDaMaLe Course site and book

Core ideas in Monte Carlo simulation

  • modular arithmetic gives pseudo-random streams that are indistiguishable from 'true' Uniformly distributed samples in integers from \({0,1,2,...,m}\)
  • by diving the integer streams from above by \(m\) we get samples from \({0/m,1/m,...,(m-1)/m}\) and "pretend" this to be samples from the Uniform(0,1) RV
  • we can use inverse distribution function of von Neumann's rejection sampler to convert samples from Uniform(0,1) RV to the following:
    • any other random variable
    • vector of random variables that could be dependent
    • or more generally other random structures:
      • random graphs and networks
      • random walks or (sensible perturbations of live traffic data on open street maps for hypothesis tests)
      • models of interacting paticle systems in ecology / chemcal physics, etc...

breeze.stats.distributions

Breeze also provides a fairly large number of probability distributions. These come with access to probability density function for either discrete or continuous distributions. Many distributions also have methods for giving the mean and the variance.

Let us simulate from the Poisson distribution with the following probability mass and cumulative distribution functions:

Poisson PMF Poisson CDF

import breeze.stats.distributions._

val poi = new Poisson(3.0);
import breeze.stats.distributions._
poi: breeze.stats.distributions.Poisson = Poisson(3.0)
val s = poi.sample(5); // let's draw five samples - black-box
s: IndexedSeq[Int] = Vector(3, 2, 5, 4, 1)

Getting probabilities of the Poisson samples

s.map( x => poi.probabilityOf(x) ) // PMF
res0: IndexedSeq[Double] = Vector(0.22404180765538775, 0.22404180765538775, 0.10081881344492458, 0.16803135574154085, 0.14936120510359185)
val doublePoi = for(x <- poi) yield x.toDouble // meanAndVariance requires doubles, but Poisson samples over Ints
doublePoi: breeze.stats.distributions.Rand[Double] = MappedRand(Poisson(3.0),$Lambda$8556/443731598@3fbbf491)
breeze.stats.meanAndVariance(doublePoi.samples.take(1000));
res1: breeze.stats.meanAndVariance.MeanAndVariance = MeanAndVariance(3.0660000000000034,3.250894894894892,1000)
(poi.mean, poi.variance) // population mean and variance
res1: (Double, Double) = (3.0,3.0)

Exponential random Variable

Let's focus on getting our hands dirty with the Exponential random variable, a common continuous RV with rate parameter \(\lambda\) with the following probability density and distribution functions:

NOTE: Below, there is a possibility of confusion for the term rate in the family of exponential distributions. Breeze parameterizes the distribution with the mean, but refers to it as the rate.

val expo = new Exponential(0.5);
expo: breeze.stats.distributions.Exponential = Exponential(0.5)
expo.rate // what is the rate parameter
res2: Double = 0.5

A characteristic of exponential distributions is its half-life, but we can compute the probability a value falls between any two numbers.

expo.probability(0, math.log(2) * expo.rate)
res3: Double = 0.1591035847462855
expo.probability(math.log(2) * expo.rate, 10000.0)
res4: Double = 0.8408964152537145
expo.probability(0.0, 1.5)
res5: Double = 0.5276334472589853

The above result means that approximately 95% of the draws from an exponential distribution fall between 0 and thrice the mean. We could have easily computed this with the cumulative distribution as well.

1 - math.exp(-3.0) // the CDF of the Exponential RV with rate parameter 3
res6: Double = 0.950212931632136

Drawing samples from Exponential RV

Using the Inverse Transform Sampling, we can sample from the Exponential RV by transforming the samples from the standard Uniform RV as shown in the animation below:

val samples = expo.sample(2).sorted; // built-in black box - we will roll our own shortly in Spark
samples: IndexedSeq[Double] = Vector(0.5783204633797516, 2.470656843546517)
expo.probability(samples(0), samples(1));
res7: Double = 0.4581529379432925
breeze.stats.meanAndVariance(expo.samples.take(10000)); // mean and variance of the sample
res8: breeze.stats.meanAndVariance.MeanAndVariance = MeanAndVariance(1.9763018410146713,3.9243880003317417,10000)
(1 / expo.rate, 1 / (expo.rate * expo.rate)) // mean and variance of the population
res9: (Double, Double) = (2.0,4.0)
import spark.implicits._
import org.apache.spark.sql.functions._
import spark.implicits._
import org.apache.spark.sql.functions._
val df = spark.range(1000).toDF("Id") // just make a DF of 1000 row indices
df: org.apache.spark.sql.DataFrame = [Id: bigint]
df.show(5)
+---+
| Id|
+---+
|  0|
|  1|
|  2|
|  3|
|  4|
+---+
only showing top 5 rows
val dfRand = df.select($"Id", rand(seed=1234567) as "rand") // add a column of random numbers in (0,1)
dfRand: org.apache.spark.sql.DataFrame = [Id: bigint, rand: double]
dfRand.show(5) // these are first 5 of the 1000 samples from the Uniform(0,1) RV
+---+--------------------+
| Id|                rand|
+---+--------------------+
|  0|0.024042816995877625|
|  1|  0.4763832311243641|
|  2|  0.3392911406256911|
|  3|  0.6282132043405342|
|  4|  0.9665960987271114|
+---+--------------------+
only showing top 5 rows
val dfRand = df.select($"Id", rand(seed=1234567) as "rand") // add a column of random numbers in (0,1)
dfRand.show(5) // these are first 5 of the 1000 samples from the Uniform(0,1) RV
+---+--------------------+
| Id|                rand|
+---+--------------------+
|  0|0.024042816995877625|
|  1|  0.4763832311243641|
|  2|  0.3392911406256911|
|  3|  0.6282132043405342|
|  4|  0.9665960987271114|
+---+--------------------+
only showing top 5 rows

dfRand: org.apache.spark.sql.DataFrame = [Id: bigint, rand: double]
val dfRand = df.select($"Id", rand(seed=879664) as "rand") // add a column of random numbers in (0,1)
dfRand.show(5) // these are first 5 of the 1000 samples from the Uniform(0,1) RV
+---+-------------------+
| Id|               rand|
+---+-------------------+
|  0|  0.269224348263137|
|  1|0.20433965628039852|
|  2| 0.8481228617934538|
|  3| 0.6665103087537884|
|  4| 0.7712898780552342|
+---+-------------------+
only showing top 5 rows

dfRand: org.apache.spark.sql.DataFrame = [Id: bigint, rand: double]

Let's use the inverse CDF of the Exponential RV to transform these samples from the Uniform(0,1) RV into those from the Exponential RV.

val dfRand = df.select($"Id", rand(seed=1234567) as "rand") // add a column of random numbers in (0,1)
               .withColumn("one",lit(1.0))
               .withColumn("rate",lit(0.5))
dfRand: org.apache.spark.sql.DataFrame = [Id: bigint, rand: double ... 2 more fields]
dfRand.show(5) 
+---+--------------------+---+----+
| Id|                rand|one|rate|
+---+--------------------+---+----+
|  0|0.024042816995877625|1.0| 0.5|
|  1|  0.4763832311243641|1.0| 0.5|
|  2|  0.3392911406256911|1.0| 0.5|
|  3|  0.6282132043405342|1.0| 0.5|
|  4|  0.9665960987271114|1.0| 0.5|
+---+--------------------+---+----+
only showing top 5 rows
val dfExpRand = dfRand.withColumn("expo_sample", -($"one" / $"rate") * log($"one" - $"rand")) // samples from expo(rate=0.5)
dfExpRand: org.apache.spark.sql.DataFrame = [Id: bigint, rand: double ... 3 more fields]
dfExpRand.show(5)
+---+--------------------+---+----+--------------------+
| Id|                rand|one|rate|         expo_sample|
+---+--------------------+---+----+--------------------+
|  0|0.024042816995877625|1.0| 0.5|0.048673126808362034|
|  1|  0.4763832311243641|1.0| 0.5|  1.2939904386814756|
|  2|  0.3392911406256911|1.0| 0.5|  0.8288839819270684|
|  3|  0.6282132043405342|1.0| 0.5|  1.9788694379168241|
|  4|  0.9665960987271114|1.0| 0.5|   6.798165162486205|
+---+--------------------+---+----+--------------------+
only showing top 5 rows
display(dfExpRand)
Id rand one rate expo_sample
0.0 2.4042816995877625e-2 1.0 0.5 4.8673126808362034e-2
1.0 0.4763832311243641 1.0 0.5 1.2939904386814756
2.0 0.3392911406256911 1.0 0.5 0.8288839819270684
3.0 0.6282132043405342 1.0 0.5 1.9788694379168241
4.0 0.9665960987271114 1.0 0.5 6.798165162486205
5.0 0.8269758822163711 1.0 0.5 3.508648570093974
6.0 0.3404052214826948 1.0 0.5 0.8322592089262
7.0 0.5658253891225227 1.0 0.5 1.6686169931673005
8.0 0.11737981749647353 1.0 0.5 0.24972063061386013
9.0 0.7848668745585088 1.0 0.5 3.072996508744745
10.0 0.10665116151243736 1.0 0.5 0.2255562755600773
11.0 0.34971775733163646 1.0 0.5 0.8606975816973311
12.0 3.349566781262969e-2 1.0 0.5 6.813899599567436e-2
13.0 0.334063669089834 1.0 0.5 0.8131224244912618
14.0 0.4105052702588069 1.0 0.5 1.0569789985263547
15.0 0.22519777483698333 1.0 0.5 0.5102949510683874
16.0 0.21124107883891907 1.0 0.5 0.47458910937069004
17.0 0.12332274767843698 1.0 0.5 0.26323273531964136
18.0 4.324422155449681e-2 1.0 0.5 8.841423006745963e-2
19.0 3.933267172708754e-2 1.0 0.5 8.025420479220831e-2
20.0 0.8162723223794007 1.0 0.5 3.388601261211285
21.0 7.785566240785313e-2 1.0 0.5 0.16210703862675058
22.0 0.1244015150504949 1.0 0.5 0.26569528726942954
23.0 0.5313795676534989 1.0 0.5 1.5159243018004147
24.0 0.8177063965639969 1.0 0.5 3.4042733720631824
25.0 0.7757379079578416 1.0 0.5 2.98987971469377
26.0 0.9019086568714294 1.0 0.5 4.643712323362237
27.0 0.5793202308042869 1.0 0.5 1.7317667559523853
28.0 4.913530139386124e-2 1.0 0.5 0.10076699863506142
29.0 0.6984668419742928 1.0 0.5 2.3977505839877837
30.0 1.579141234703818e-2 1.0 0.5 3.18348501444197e-2
31.0 0.3170147319677016 1.0 0.5 0.762563978285606
32.0 0.6243818511105477 1.0 0.5 1.9583644261768265
33.0 0.9720896733059052 1.0 0.5 7.157517052464175
34.0 6.406755887221727e-2 1.0 0.5 0.13242396678361196
35.0 0.8275324400058236 1.0 0.5 3.515092236401242
36.0 0.4223760255739688 1.0 0.5 1.0976643705892708
37.0 0.6237792697270514 1.0 0.5 1.9551585184791915
38.0 0.30676209726152626 1.0 0.5 0.7327640894184466
39.0 0.7209798363387625 1.0 0.5 2.5529424571699533
40.0 0.5408086036735253 1.0 0.5 1.556576340750279
41.0 0.22254408000797787 1.0 0.5 0.5034566621599345
42.0 0.6478051949133747 1.0 0.5 2.0871416658496442
43.0 0.6186563924196967 1.0 0.5 1.9281089062362353
44.0 0.2689179760895458 1.0 0.5 0.6264592354306907
45.0 0.1310898372764776 1.0 0.5 0.28103107825164747
46.0 0.8459785027719904 1.0 0.5 3.741326187841892
47.0 0.7844461581951896 1.0 0.5 3.069089109365284
48.0 0.3195541476806115 1.0 0.5 0.7700140609818293
49.0 0.326892158146161 1.0 0.5 0.7916994433570004
50.0 0.4392312327086285 1.0 0.5 1.1568932758900772
51.0 0.5377790694946909 1.0 0.5 1.543424595293625
52.0 0.4369640582174875 1.0 0.5 1.1488236262486446
53.0 0.26672242876690055 1.0 0.5 0.6204619408451196
54.0 0.9743181848790359 1.0 0.5 7.323944240755433
55.0 0.5636877255447679 1.0 0.5 1.6587941323713102
56.0 0.8214194684040824 1.0 0.5 3.44543124420649
57.0 4.2394218638494574e-2 1.0 0.5 8.663817482333575e-2
58.0 0.2986030735782996 1.0 0.5 0.7093626466953578
59.0 0.9251464009715654 1.0 0.5 5.184442172120483
60.0 0.9768531076059933 1.0 0.5 7.531789490600966
61.0 0.4147651110232632 1.0 0.5 1.0714839854387161
62.0 0.4525161010109643 1.0 0.5 1.2048444519262322
63.0 7.638776464132979e-2 1.0 0.5 0.1589259082490955
64.0 0.8203900440907219 1.0 0.5 3.433935381714252
65.0 0.9746746584977457 1.0 0.5 7.35189948830076
66.0 0.41832172801299305 1.0 0.5 1.083675562745256
67.0 3.3131200470495226e-2 1.0 0.5 6.738494114620364e-2
68.0 0.10008247055930286 1.0 0.5 0.21090430762250917
69.0 0.4268021831375646 1.0 0.5 1.113048783438383
70.0 0.8213380254753332 1.0 0.5 3.444519337826204
71.0 0.47431121070064797 1.0 0.5 1.2860917933318652
72.0 0.68679164992865 1.0 0.5 2.321773309424188
73.0 0.7057803676609208 1.0 0.5 2.4468574835462356
74.0 0.32184620342731496 1.0 0.5 0.776762356325894
75.0 0.3589329148022541 1.0 0.5 0.8892423408857425
76.0 0.7448782338623747 1.0 0.5 2.7320286670643386
77.0 0.9740613004640858 1.0 0.5 7.304038469785621
78.0 0.7453909609063684 1.0 0.5 2.736052180743762
79.0 6.853610233988816e-2 1.0 0.5 0.14199569380051374
80.0 0.336012781812836 1.0 0.5 0.8189847588182159
81.0 0.2963058480260412 1.0 0.5 0.7028229208813994
82.0 0.38627232525200883 1.0 0.5 0.9764079513820425
83.0 0.9097248909817963 1.0 0.5 4.809787008391862
84.0 0.20679745942261907 1.0 0.5 0.46335335878970363
85.0 0.16582497569469312 1.0 0.5 0.36262407472768277
86.0 0.6960738838737711 1.0 0.5 2.381941292346302
87.0 0.890094879396298 1.0 0.5 4.416275650715409
88.0 0.8258738496535992 1.0 0.5 3.4959504809275685
89.0 0.4066244237870885 1.0 0.5 1.0438554620679272
90.0 0.44414816275414526 1.0 0.5 1.1745070000344822
91.0 0.8820223175378497 1.0 0.5 4.274519608161631
92.0 0.3814200182827251 1.0 0.5 0.9606575597598919
93.0 0.491252177347836 1.0 0.5 1.3516056440673538
94.0 0.9042145561359308 1.0 0.5 4.691289097027222
95.0 0.8293982814391448 1.0 0.5 3.536847140695551
96.0 0.6957817964411346 1.0 0.5 2.38002012037681
97.0 0.46108317902841456 1.0 0.5 1.2363880819986401
98.0 0.658234439306857 1.0 0.5 2.14726054405596
99.0 0.43175037735005384 1.0 0.5 1.130388960612226
100.0 0.7719881477151886 1.0 0.5 2.9567153353469786
101.0 6.397418621476536e-2 1.0 0.5 0.13222444810891013
102.0 0.44410081132020296 1.0 0.5 1.1743366329905425
103.0 0.9364231799229901 1.0 0.5 5.511012678534471
104.0 0.5453471566845608 1.0 0.5 1.576442265948382
105.0 0.7346238968987211 1.0 0.5 2.653214404406468
106.0 0.3493365535175731 1.0 0.5 0.8595254994862054
107.0 0.5230037795263933 1.0 0.5 1.480493423321206
108.0 0.6886814284788837 1.0 0.5 2.333877090719847
109.0 0.7731252946239237 1.0 0.5 2.966714745163421
110.0 2.276168830750991e-2 1.0 0.5 4.604946957472576e-2
111.0 0.264951110753621 1.0 0.5 0.6156365319998442
112.0 0.14616140102686104 1.0 0.5 0.3160261944637388
113.0 3.066619523108849e-2 1.0 0.5 6.229248529326732e-2
114.0 0.49017052188807597 1.0 0.5 1.3473579316333943
115.0 9.835381148010536e-2 1.0 0.5 0.20706617613153588
116.0 8.828156810764243e-2 1.0 0.5 0.1848481470740138
117.0 0.6868446103815881 1.0 0.5 2.3221115183574854
118.0 0.4067862578001439 1.0 0.5 1.0444010055396156
119.0 0.44070042328022496 1.0 0.5 1.1621400679168603
120.0 0.19523663294276805 1.0 0.5 0.4344139974853618
121.0 0.34930320794183467 1.0 0.5 0.8594230049585315
122.0 0.37713232784782635 1.0 0.5 0.9468423740115679
123.0 0.6429635193876022 1.0 0.5 2.0598346316676848
124.0 0.5726782020473655 1.0 0.5 1.7004358488091253
125.0 0.3013872989669776 1.0 0.5 0.7173175321607891
126.0 0.3469657736553403 1.0 0.5 0.8522514741503977
127.0 0.3062597218624077 1.0 0.5 0.7313152550300903
128.0 0.875187814442521 1.0 0.5 4.161890374256847
129.0 0.4331447487608374 1.0 0.5 1.1353025933318837
130.0 0.40669672646934574 1.0 0.5 1.0440991764725864
131.0 0.10105613827873039 1.0 0.5 0.21306938341833667
132.0 0.7598058191143243 1.0 0.5 2.852615191501923
133.0 0.7882552857444408 1.0 0.5 3.104747815909758
134.0 0.41196255767852374 1.0 0.5 1.0619293113867083
135.0 0.23956793737837967 1.0 0.5 0.5477370075782519
136.0 0.301117813053034 1.0 0.5 0.716546192187808
137.0 0.4359866364410945 1.0 0.5 1.1453546670228079
138.0 0.9682651399507317 1.0 0.5 6.90067903242789
139.0 0.10678335714273168 1.0 0.5 0.22585225268919112
140.0 0.2693226978676214 1.0 0.5 0.6275667277003328
141.0 0.5668302775070247 1.0 0.5 1.6732513179468083
142.0 0.7096151948853401 1.0 0.5 2.473096642771549
143.0 0.7574375459472653 1.0 0.5 2.8329921185549365
144.0 0.49769652658104957 1.0 0.5 1.3771016264425564
145.0 0.45884572648841415 1.0 0.5 1.2281017543594028
146.0 0.3288386747446713 1.0 0.5 0.7974914915764556
147.0 0.5410136911709724 1.0 0.5 1.557469795251325
148.0 0.6336220553800798 1.0 0.5 2.008179685617141
149.0 0.375647544465191 1.0 0.5 0.9420804749655175
150.0 0.10142418148506294 1.0 0.5 0.21388838577034947
151.0 0.4721728293756773 1.0 0.5 1.2779727544450452
152.0 0.7518331384524283 1.0 0.5 2.787307860488268
153.0 6.676079335730689e-2 1.0 0.5 0.13818745319668635
154.0 0.8053497028664404 1.0 0.5 3.2731013568502365
155.0 0.6436250826649516 1.0 0.5 2.063543927419815
156.0 0.28432165233043427 1.0 0.5 0.6690488961123614
157.0 0.33131329522029473 1.0 0.5 0.8048792646192418
158.0 0.4390246975576103 1.0 0.5 1.1561567971907922
159.0 0.9576167619712271 1.0 0.5 6.322004648835221
160.0 0.2191897706358752 1.0 0.5 0.4948462856734829
161.0 1.1385964425825512e-2 1.0 0.5 2.2902561570486413e-2
162.0 0.679111841181116 1.0 0.5 2.2733252629142697
163.0 0.3189329784940914 1.0 0.5 0.768189122733912
164.0 0.5494024842158357 1.0 0.5 1.5943615282559738
165.0 0.4995339525325778 1.0 0.5 1.3844310395116766
166.0 0.6133797107105055 1.0 0.5 1.900624464472158
167.0 0.18020899363866738 1.0 0.5 0.3974116829996968
168.0 0.3549472573452819 1.0 0.5 0.8768463879435472
169.0 0.6992620601216817 1.0 0.5 2.403032050173198
170.0 0.24085612119427668 1.0 0.5 0.5511279118150403
171.0 0.1609790935708849 1.0 0.5 0.3510393091093769
172.0 0.9711366383834527 1.0 0.5 7.090364504579701
173.0 0.38455734034855193 1.0 0.5 0.9708269965922631
174.0 0.7140149247000265 1.0 0.5 2.503631307579515
175.0 0.6231707003505403 1.0 0.5 1.9519259602967969
176.0 0.6056033420465197 1.0 0.5 1.8607962600766825
177.0 0.9191984318132235 1.0 0.5 5.03151781078248
178.0 0.31549310135748787 1.0 0.5 0.7581131118739614
179.0 0.4450415722231543 1.0 0.5 1.1777241458955992
180.0 0.4583485174404076 1.0 0.5 1.2262650109539877
181.0 0.8948048795370758 1.0 0.5 4.503876726373103
182.0 0.5068846132533013 1.0 0.5 1.4140241642575553
183.0 0.474099338611806 1.0 0.5 1.2852858815130643
184.0 3.968996187382612e-2 1.0 0.5 8.099818055602134e-2
185.0 0.3812923011104965 1.0 0.5 0.9602446657347301
186.0 0.4490455490374048 1.0 0.5 1.1922062787516934
187.0 0.18885603597795153 1.0 0.5 0.4186194528265905
188.0 0.14835262533228888 1.0 0.5 0.32116543464514347
189.0 1.0239721160210324e-2 1.0 0.5 2.0585015521643695e-2
190.0 0.7812863611722196 1.0 0.5 3.0399839801249593
191.0 0.40315501297127665 1.0 0.5 1.032195705046974
192.0 0.27623054102229216 1.0 0.5 0.6465647282627558
193.0 0.3476188563715197 1.0 0.5 0.8542526234724834
194.0 0.40005917714351136 1.0 0.5 1.0218485144052543
195.0 0.690531564629077 1.0 0.5 2.3457983558717395
196.0 0.6243976540207664 1.0 0.5 1.9584485714328679
197.0 0.6936108435709636 1.0 0.5 2.365798463973219
198.0 0.5580754032112615 1.0 0.5 1.6332320139161962
199.0 0.5077201201493545 1.0 0.5 1.4174157254902722
200.0 0.24217287516689856 1.0 0.5 0.5545999737072358
201.0 0.5866156019146013 1.0 0.5 1.7667547458541368
202.0 0.13480908234777678 1.0 0.5 0.289610164710414
203.0 0.8592340571612042 1.0 0.5 3.921313495527709
204.0 0.5015919278028333 1.0 0.5 1.3926722308356132
205.0 0.9524596166650006 1.0 0.5 6.092351507324665
206.0 0.7897861372493181 1.0 0.5 3.1192597448504493
207.0 0.992502482003315 1.0 0.5 9.786366493971752
208.0 0.7190312712917515 1.0 0.5 2.539023803153757
209.0 4.905914294075553e-2 1.0 0.5 0.10060681726863402
210.0 7.292405751548614e-2 1.0 0.5 0.15143958783801956
211.0 0.7448249635342986 1.0 0.5 2.731611103575813
212.0 7.024810923770186e-2 1.0 0.5 0.14567502510922456
213.0 0.6499895525785409 1.0 0.5 2.0995845503371515
214.0 0.2347304081263114 1.0 0.5 0.5350541991171558
215.0 0.5554391604460018 1.0 0.5 1.62133672301354
216.0 0.45655849903065526 1.0 0.5 1.2196664242497346
217.0 0.7734426024060143 1.0 0.5 2.969513910302441
218.0 0.13396935067038884 1.0 0.5 0.28766995842079884
219.0 0.44732092861928796 1.0 0.5 1.1859555740131458
220.0 0.532360601482588 1.0 0.5 1.5201155921058849
221.0 0.8353842261129955 1.0 0.5 3.6082823273928657
222.0 0.4415319449291001 1.0 0.5 1.1651157196663489
223.0 7.107670903097285e-2 1.0 0.5 0.14745823038641734
224.0 0.2587810776672368 1.0 0.5 0.5989185111514972
225.0 0.8783986898097359 1.0 0.5 4.214015069834256
226.0 0.8772054215086009 1.0 0.5 4.194484826673072
227.0 0.8792794678306639 1.0 0.5 4.228554112475122
228.0 0.9704733519907857 1.0 0.5 7.04492420208042
229.0 0.5911949898493493 1.0 0.5 1.7890339688352386
230.0 0.1881415659970821 1.0 0.5 0.4168585927615873
231.0 0.27280409460696464 1.0 0.5 0.6371187335647226
232.0 0.8997405595900834 1.0 0.5 4.599988097103155
233.0 0.805703299381296 1.0 0.5 3.2767378072078768
234.0 0.12469160466325713 1.0 0.5 0.26635800581530467
235.0 4.5007500538482015e-2 1.0 0.5 9.210358499849247e-2
236.0 0.5406049480217902 1.0 0.5 1.5556895188057671
237.0 0.7089850749112344 1.0 0.5 2.4687614483220965
238.0 0.4050350886413143 1.0 0.5 1.038505695363729
239.0 0.18681323647475456 1.0 0.5 0.4135889487659769
240.0 0.23557258393827696 1.0 0.5 0.5372564022794455
241.0 0.32077303736600393 1.0 0.5 0.7735998942749642
242.0 0.27136665743377386 1.0 0.5 0.6331692658855377
243.0 8.600287997937284e-2 1.0 0.5 0.1798557169901321
244.0 0.7600332087019175 1.0 0.5 2.8545094696108473
245.0 0.41783858737032487 1.0 0.5 1.0820150568291664
246.0 0.8293413803867148 1.0 0.5 3.5361801888515507
247.0 0.7333405374926266 1.0 0.5 2.6435657118891944
248.0 0.8772160342203914 1.0 0.5 4.194657687243259
249.0 5.301719603632349e-2 1.0 0.5 0.10894868878842578
250.0 0.9026197915984311 1.0 0.5 4.658264576287863
251.0 0.23914978744357662 1.0 0.5 0.5466375404979962
252.0 0.4968410398019236 1.0 0.5 1.3736982691137887
253.0 0.5384099353933083 1.0 0.5 1.5461561756710942
254.0 0.8907377100572391 1.0 0.5 4.428007915156274
255.0 0.9066080833593035 1.0 0.5 4.741900966190897
256.0 0.6829340520390256 1.0 0.5 2.297290978019848
257.0 0.6571961620790489 1.0 0.5 2.1411937930382208
258.0 0.3669337202760652 1.0 0.5 0.9143603100291875
259.0 0.5097789017273943 1.0 0.5 1.4257975373650602
260.0 0.19359708351354943 1.0 0.5 0.4303435299938143
261.0 0.4198903553742862 1.0 0.5 1.0890763016996372
262.0 0.8275841161941834 1.0 0.5 3.515691583104315
263.0 0.5245014108343904 1.0 0.5 1.486782728111085
264.0 0.20212413144380958 1.0 0.5 0.45160449363942295
265.0 0.6588746438800428 1.0 0.5 2.1510105119936225
266.0 0.6090021282726809 1.0 0.5 1.8781063243284435
267.0 0.8237249377890233 1.0 0.5 3.4714193009141487
268.0 0.39616901908028135 1.0 0.5 1.0089219062444619
269.0 0.46974976524528655 1.0 0.5 1.268812485625708
270.0 0.1430991547459871 1.0 0.5 0.30886613379677225
271.0 0.8900411063855386 1.0 0.5 4.415297354889731
272.0 0.8908538606807918 1.0 0.5 4.430135134053363
273.0 0.7571966906626759 1.0 0.5 2.8310071799990957
274.0 0.45373865486682496 1.0 0.5 1.2093155273309903
275.0 0.5105750301805768 1.0 0.5 1.429048215969818
276.0 0.8703161512938904 1.0 0.5 4.085311447017532
277.0 0.6263910497078812 1.0 0.5 1.9690912320594496
278.0 0.8879229935650624 1.0 0.5 4.377138172983162
279.0 0.4592765782031528 1.0 0.5 1.2296947319737286
280.0 0.3332564208219061 1.0 0.5 0.8106994919909759
281.0 0.7769330816977306 1.0 0.5 3.000566940929362
282.0 0.47688504943059673 1.0 0.5 1.2959080966079761
283.0 0.5519970113210297 1.0 0.5 1.6059107508619763
284.0 0.6116679748262741 1.0 0.5 1.8917891406149387
285.0 0.23344992857646873 1.0 0.5 0.5317105161007432
286.0 0.547367711693101 1.0 0.5 1.5853504174370916
287.0 0.45229676089796134 1.0 0.5 1.2040433464044202
288.0 0.2232542399926749 1.0 0.5 0.5052843787124497
289.0 4.812719615823391e-2 1.0 0.5 9.864772505442727e-2
290.0 0.9924754840764293 1.0 0.5 9.779177599019986
291.0 0.23112957413067814 1.0 0.5 0.525665641185302
292.0 0.7136348699646448 1.0 0.5 2.500975207955907
293.0 0.7097521146725535 1.0 0.5 2.474039888248458
294.0 0.2534528100999812 1.0 0.5 0.584592898262904
295.0 0.14159162922836588 1.0 0.5 0.30535067223059725
296.0 0.286451779155965 1.0 0.5 0.6750105216507689
297.0 0.9194163349443866 1.0 0.5 5.0369186336261
298.0 0.8565261729771216 1.0 0.5 3.8832053010040535
299.0 0.9963446427954837 1.0 0.5 11.223122920363782
300.0 0.44312606197302895 1.0 0.5 1.1708327755623118
301.0 0.3333780003343948 1.0 0.5 0.8110642217087809
302.0 8.100442373331274e-2 1.0 0.5 0.16894794055205103
303.0 0.9114279295358697 1.0 0.5 4.847877405697818
304.0 0.1420851500734669 1.0 0.5 0.30650085385781334
305.0 0.3998938086649432 1.0 0.5 1.0212973077353178
306.0 0.43509561875462044 1.0 0.5 1.1421975977833791
307.0 0.2607501670030833 1.0 0.5 0.6042386923167598
308.0 0.7861629300585208 1.0 0.5 3.0850818187043214
309.0 0.4238639225351366 1.0 0.5 1.1028228011782435
310.0 0.8296205577621936 1.0 0.5 3.5394546320186806
311.0 0.797111503088613 1.0 0.5 3.190197454292849
312.0 4.847906767173793e-2 1.0 0.5 9.93871863877833e-2
313.0 0.2272307227002427 1.0 0.5 0.5155495038419591
314.0 0.28798275880438495 1.0 0.5 0.6793063054019258
315.0 0.9119630135350312 1.0 0.5 4.859996504134525
316.0 0.9247506337150422 1.0 0.5 5.173895593701935
317.0 0.313064117705499 1.0 0.5 0.7510286422175019
318.0 0.10267561230063371 1.0 0.5 0.2166756921335689
319.0 0.7800056454356652 1.0 0.5 3.0283067880604637
320.0 0.9880505590690435 1.0 0.5 8.854141571438799
321.0 0.5199897620784429 1.0 0.5 1.4678956926088331
322.0 0.9631286266437556 1.0 0.5 6.6006396376399366
323.0 0.6526508389996869 1.0 0.5 2.1148495545527686
324.0 0.44331946385558707 1.0 0.5 1.1715274946406817
325.0 0.7657175467075138 1.0 0.5 2.9024556523792184
326.0 0.8587810198761535 1.0 0.5 3.914887085632034
327.0 0.17717500338441594 1.0 0.5 0.39002348344727783
328.0 0.6400146315652561 1.0 0.5 2.043383783189525
329.0 0.5429950331288752 1.0 0.5 1.5661220394400488
330.0 0.1519419896098827 1.0 0.5 0.3296124741021507
331.0 0.2317505808062127 1.0 0.5 0.5272816679676412
332.0 0.9587236527128663 1.0 0.5 6.374931295970532
333.0 0.3957876337227971 1.0 0.5 1.0076590860947048
334.0 0.7520930392631228 1.0 0.5 2.7894035230513716
335.0 0.5219702075466132 1.0 0.5 1.4761644422492128
336.0 0.2718748554726389 1.0 0.5 0.6345646874711566
337.0 0.43339022569610974 1.0 0.5 1.1361688818668743
338.0 0.654264591604089 1.0 0.5 2.124163024174615
339.0 0.21929573754620202 1.0 0.5 0.4951177321724933
340.0 0.6463525037251117 1.0 0.5 2.0789092703893584
341.0 0.40363690799123597 1.0 0.5 1.0338111652659434
342.0 0.5464987531537895 1.0 0.5 1.5815145200909522
343.0 0.2794928368714429 1.0 0.5 0.6555998434128101
344.0 0.9679988160115437 1.0 0.5 6.883964754455241
345.0 0.9374750976583118 1.0 0.5 5.5443807282558
346.0 0.5043382898350185 1.0 0.5 1.403723241814482
347.0 0.37940066231801983 1.0 0.5 0.9541391883810038
348.0 0.16327499528946765 1.0 0.5 0.35651962241911506
349.0 0.6814882638496493 1.0 0.5 2.2881919129060675
350.0 0.7593963453274154 1.0 0.5 2.8492085714581132
351.0 8.2716537875273e-2 1.0 0.5 0.17267747098244784
352.0 0.9864630812678177 1.0 0.5 8.604669210362268
353.0 0.10362777838201431 1.0 0.5 0.2187990527194605
354.0 0.3018065167087475 1.0 0.5 0.7185180358786611
355.0 0.1981827289480086 1.0 0.5 0.4417490773130338
356.0 0.2519352721846343 1.0 0.5 0.5805315404780675
357.0 0.37720491978724313 1.0 0.5 0.947075477038406
358.0 3.334532342207808e-2 1.0 0.5 6.782791058537331e-2
359.0 0.49142274606532255 1.0 0.5 1.3522762997820723
360.0 0.7658697744126436 1.0 0.5 2.9037555976399063
361.0 0.430584327777621 1.0 0.5 1.1262891608345273
362.0 0.18774246417057594 1.0 0.5 0.41587565350859623
363.0 0.43213770208564395 1.0 0.5 1.131752645804099
364.0 0.5254311249185892 1.0 0.5 1.4906970370036838
365.0 0.21632961088151903 1.0 0.5 0.48753353815321687
366.0 0.5866314734106438 1.0 0.5 1.766831535403086
367.0 0.2127018826329221 1.0 0.5 0.47829660009371444
368.0 0.762880957964817 1.0 0.5 2.8783859537652954
369.0 0.7092177159493649 1.0 0.5 2.4703609132000657
370.0 0.4668447454243504 1.0 0.5 1.25788522569854
371.0 8.984189541128584e-2 1.0 0.5 0.18827390651246967
372.0 0.8401841637115331 1.0 0.5 3.6674662997626886
373.0 0.1769541258232804 1.0 0.5 0.3894866793361383
374.0 0.32759234424821526 1.0 0.5 0.793780983603854
375.0 0.7549436630804378 1.0 0.5 2.812534296521244
376.0 0.5406091390043264 1.0 0.5 1.5557077645471398
377.0 7.226167164454322e-2 1.0 0.5 0.15001111942581233
378.0 3.9174989741246e-2 1.0 0.5 7.992595578900699e-2
379.0 0.43530038855865494 1.0 0.5 1.1429227007667369
380.0 0.19425051459560916 1.0 0.5 0.4319647938819565
381.0 0.2690512431721227 1.0 0.5 0.6268238435762967
382.0 0.6122531354155542 1.0 0.5 1.894805126272543
383.0 0.8144904991435312 1.0 0.5 3.3692983613822673
384.0 0.44435200950498954 1.0 0.5 1.1752405917023965
385.0 0.40334065577595324 1.0 0.5 1.0328178822819034
386.0 0.6712465016160815 1.0 0.5 2.2248941081495746
387.0 0.610470870145168 1.0 0.5 1.8856332573010395
388.0 0.3753417849616416 1.0 0.5 0.941101269529212
389.0 0.5760552709957159 1.0 0.5 1.7163043767384967
390.0 0.8958499208801377 1.0 0.5 4.523844703206438
391.0 0.6375933030298327 1.0 0.5 2.0299764509716054
392.0 0.4996734547364764 1.0 0.5 1.3849886064074164
393.0 0.43886175915693537 1.0 0.5 1.1555759704008648
394.0 2.1262190388847357e-2 1.0 0.5 4.298297362707392e-2
395.0 0.2612612193574123 1.0 0.5 0.6056217946491596
396.0 0.9053544127651678 1.0 0.5 4.715232048676575
397.0 5.715293130681975e-3 1.0 0.5 1.146337583128797e-2
398.0 0.2947471489241186 1.0 0.5 0.6983977729250015
399.0 8.460986179878727e-2 1.0 0.5 0.17680984806639513
400.0 0.30069220409765574 1.0 0.5 0.7153285923659113
401.0 0.997746334354857 1.0 0.5 12.190394425627364
402.0 0.18308241899251243 1.0 0.5 0.40443413850132504
403.0 0.3105228234689785 1.0 0.5 0.7436433675489958
404.0 0.9179013483983409 1.0 0.5 4.999667373023489
405.0 0.11926274283498617 1.0 0.5 0.2539918600578725
406.0 0.43776630003690786 1.0 0.5 1.1516753585822221
407.0 0.4762249664302428 1.0 0.5 1.2933860241922412
408.0 0.8482098508688078 1.0 0.5 3.770512619720418
409.0 0.4567392533274949 1.0 0.5 1.2203317557106708
410.0 0.4435608409662263 1.0 0.5 1.1723948842501484
411.0 0.50408147116895 1.0 0.5 1.4026872442755594
412.0 0.36104698819880265 1.0 0.5 0.8958487225315878
413.0 0.4194713065185254 1.0 0.5 1.0876321003142069
414.0 7.486133824518293e-2 1.0 0.5 0.1556232962089628
415.0 3.373382017468085e-2 1.0 0.5 6.863186850542395e-2
416.0 0.4932147269781292 1.0 0.5 1.3593357794290557
417.0 0.8616586394474591 1.0 0.5 3.956062042024912
418.0 0.4117184281160471 1.0 0.5 1.0610991639078917
419.0 9.116459643129304e-2 1.0 0.5 0.19118255076481538
420.0 0.5890322019489482 1.0 0.5 1.7784808355923856
421.0 0.43778596825837024 1.0 0.5 1.1517453243828897
422.0 0.5541973559190224 1.0 0.5 1.6157578539111792
423.0 0.5236632829365838 1.0 0.5 1.4832605720870944
424.0 0.6204546477584022 1.0 0.5 1.9375623680773675
425.0 0.970316394356556 1.0 0.5 7.034320768236008
426.0 0.43993687089356626 1.0 0.5 1.1594115421186992
427.0 0.8405879195529187 1.0 0.5 3.6725254570044403
428.0 0.749280638128116 1.0 0.5 2.766842091120008
429.0 0.5488427514547121 1.0 0.5 1.5918786677038552
430.0 0.13747140435906435 1.0 0.5 0.29577395251982774
431.0 0.4576343120245375 1.0 0.5 1.2236296079783713
432.0 0.8148665411500688 1.0 0.5 3.3733566295966297
433.0 0.19547202902357552 1.0 0.5 0.4349990900088173
434.0 0.4890095869756548 1.0 0.5 1.3428089003184602
435.0 0.12715136653541503 1.0 0.5 0.27198624962848195
436.0 0.2032311331013058 1.0 0.5 0.45438129228481317
437.0 0.8787527473448604 1.0 0.5 4.21984681587113
438.0 0.4663010675042861 1.0 0.5 1.2558467916792808
439.0 0.3142004342512348 1.0 0.5 0.7543397443148356
440.0 0.5376680285543044 1.0 0.5 1.5429441860463613
441.0 0.8288823435429962 1.0 0.5 3.530807819241641
442.0 0.5381362365823195 1.0 0.5 1.5449706315293206
443.0 0.8741054855972965 1.0 0.5 4.144621819895548
444.0 0.9650736097727945 1.0 0.5 6.709025137110639
445.0 8.401495565683514e-2 1.0 0.5 0.17551048315515766
446.0 0.16014272925069362 1.0 0.5 0.34904663471346736
447.0 0.6761260538348454 1.0 0.5 2.254801787874353
448.0 0.30491746315485757 1.0 0.5 0.7274493648359186
449.0 0.8823536465498564 1.0 0.5 4.280144318376048
450.0 0.35138375129442345 1.0 0.5 0.8658280669121068
451.0 0.8162562408450885 1.0 0.5 3.388426210497536
452.0 0.673617698352461 1.0 0.5 2.2393717605117374
453.0 8.256976107323988e-2 1.0 0.5 0.1723574716228483
454.0 0.8365768515057421 1.0 0.5 3.6228248778772634
455.0 0.48971308441437955 1.0 0.5 1.3455642637453662
456.0 8.774182190296687e-2 1.0 0.5 0.18366447790309529
457.0 0.24099238723353444 1.0 0.5 0.5514869432829278
458.0 0.5907862348164701 1.0 0.5 1.787035212429029
459.0 0.9282830732565702 1.0 0.5 5.270056963848408
460.0 0.32874248016649343 1.0 0.5 0.7972048609806637
461.0 0.7759823021398251 1.0 0.5 2.9920604438874734
462.0 0.9906880008613337 1.0 0.5 9.352902960980467
463.0 0.35519401347986057 1.0 0.5 0.8776116070547805
464.0 0.22036578800170115 1.0 0.5 0.4978608565413814
465.0 0.8023870524533302 1.0 0.5 3.242889943586732
466.0 0.6555700243159146 1.0 0.5 2.131728945611721
467.0 0.6966117625572236 1.0 0.5 2.385483963919468
468.0 0.31199672354331665 1.0 0.5 0.7479233575368842
469.0 0.10874684309305482 1.0 0.5 0.23025353029665035
470.0 0.7768279542152332 1.0 0.5 2.999624598436637
471.0 0.5194659966765868 1.0 0.5 1.465714573067321
472.0 3.387321287945699e-2 1.0 0.5 6.892040754981558e-2
473.0 0.9137616097231142 1.0 0.5 4.901279675232361
474.0 0.9310800753319032 1.0 0.5 5.349619920714008
475.0 0.8956753753595035 1.0 0.5 4.520495700986587
476.0 0.9734569283996768 1.0 0.5 7.257973044045264
477.0 0.3100378260015375 1.0 0.5 0.7422370063712049
478.0 0.9004067891568347 1.0 0.5 4.613322561880238
479.0 0.3595142946826074 1.0 0.5 0.8910569518000615
480.0 0.5858555389814262 1.0 0.5 1.7630808527274318
481.0 0.7207027332090898 1.0 0.5 2.5509571840094765
482.0 0.5207773901843563 1.0 0.5 1.4711801017479904
483.0 0.5010641338355079 1.0 0.5 1.3905554324221692
484.0 0.7386177898402442 1.0 0.5 2.683543072229971
485.0 0.7514865091276058 1.0 0.5 2.784516291388268
486.0 0.996791280204512 1.0 0.5 11.48376647798819
487.0 0.31973896223026976 1.0 0.5 0.7705573508031445
488.0 0.5409498257000886 1.0 0.5 1.557191525390985
489.0 0.2351915468213719 1.0 0.5 0.5362597290194078
490.0 0.5722823786456511 1.0 0.5 1.6985841286612482
491.0 0.8872393295593034 1.0 0.5 4.364975334044577
492.0 0.7466377111677412 1.0 0.5 2.745869685758634
493.0 0.8944045014489479 1.0 0.5 4.496279071952017
494.0 0.7761279146229962 1.0 0.5 2.993360875321733
495.0 6.282087728304298e-4 1.0 0.5 1.2568123572811955e-3
496.0 2.1755806290161828e-2 1.0 0.5 4.399190658802096e-2
497.0 0.25822043228050306 1.0 0.5 0.5974063169929631
498.0 0.36706789505445514 1.0 0.5 0.9147842435207847
499.0 0.8535706465084604 1.0 0.5 3.8424243911227456
500.0 0.9583607379261688 1.0 0.5 6.357423513924509
501.0 0.1736332737734787 1.0 0.5 0.38143325101594394
502.0 0.7191057722209122 1.0 0.5 2.539554188214649
503.0 0.5866772207662699 1.0 0.5 1.7670528869782172
504.0 0.44342504955089734 1.0 0.5 1.171906870972165
505.0 0.8638825079861409 1.0 0.5 3.988473708673089
506.0 0.19206484030065873 1.0 0.5 0.42654694315586256
507.0 6.329398370441452e-2 1.0 0.5 0.1307715918497558
508.0 0.8324305296152746 1.0 0.5 3.5727145302718077
509.0 0.788341172013531 1.0 0.5 3.105559205156182
510.0 0.9968069620813552 1.0 0.5 11.493564979531474
511.0 0.5738675981141458 1.0 0.5 1.70601035690584
512.0 2.1924901743684888e-2 1.0 0.5 4.433764862438196e-2
513.0 0.31475857342097047 1.0 0.5 0.755968110508673
514.0 0.5840924030390661 1.0 0.5 1.7545843321676697
515.0 0.7770937124350712 1.0 0.5 3.0020076619607927
516.0 0.7130309607190969 1.0 0.5 2.496761892223379
517.0 0.3991683439699586 1.0 0.5 1.0188809802465286
518.0 0.48509787688675254 1.0 0.5 1.3275568971757934
519.0 0.45169086393350866 1.0 0.5 1.2018320683571915
520.0 0.12902719463817103 1.0 0.5 0.2762890498682689
521.0 0.2592134704552379 1.0 0.5 0.6000855589507411
522.0 0.2813001484016546 1.0 0.5 0.660622921987986
523.0 0.3762566475369137 1.0 0.5 0.9440325786940167
524.0 0.9267694189625785 1.0 0.5 5.228284343045507
525.0 0.15197347800388006 1.0 0.5 0.32968673548099053
526.0 0.14593597548755854 1.0 0.5 0.3154982356972103
527.0 0.35991105880863383 1.0 0.5 0.8922962833448616
528.0 0.3071108301936344 1.0 0.5 0.7337704414228866
529.0 0.18406488587857806 1.0 0.5 0.40684088837547255
530.0 0.5136711150110314 1.0 0.5 1.4417403317355608
531.0 0.6056599490894785 1.0 0.5 1.8610833370818218
532.0 0.44302266378392197 1.0 0.5 1.1704614578045645
533.0 0.7453946147476727 1.0 0.5 2.736080882533261
534.0 0.35502683979054106 1.0 0.5 0.8770931502610587
535.0 0.8797839338461947 1.0 0.5 4.236929207935352
536.0 6.238712029644411e-2 1.0 0.5 0.12883624673709432
537.0 0.9424758304767943 1.0 0.5 5.711100159925468
538.0 0.5704103694439081 1.0 0.5 1.689849747036119
539.0 0.9158448954522559 1.0 0.5 4.950187400162322
540.0 0.8873811703242918 1.0 0.5 4.367492702015337
541.0 0.6216382152888731 1.0 0.5 1.9438088773652653
542.0 0.48827370203072595 1.0 0.5 1.3399307423143256
543.0 0.4572473011375716 1.0 0.5 1.2222029953319737
544.0 3.967393021768029e-2 1.0 0.5 8.096479233410842e-2
545.0 0.29505351687188286 1.0 0.5 0.6992667790155687
546.0 0.5639878272499856 1.0 0.5 1.6601702337428519
547.0 0.48965142848521204 1.0 0.5 1.3453226263340796
548.0 0.8749613569725964 1.0 0.5 4.15826489047167
549.0 0.9256239598413039 1.0 0.5 5.19724285977426
550.0 0.7569605924580269 1.0 0.5 2.8290633556705096
551.0 0.3844172120051691 1.0 0.5 0.9703716742615802
552.0 0.1362858511639865 1.0 0.5 0.29302682234878386
553.0 0.37983323803435165 1.0 0.5 0.9555337323937093
554.0 0.26566735487098103 1.0 0.5 0.6175863160615908
555.0 0.36961293921650573 1.0 0.5 0.9228425321120206
556.0 9.63913755811967e-2 1.0 0.5 0.2027178998486325
557.0 0.18788147800222665 1.0 0.5 0.4162179728411676
558.0 0.26504942094508055 1.0 0.5 0.6159040428220617
559.0 0.739578089934357 1.0 0.5 2.6909044643005315
560.0 0.6457524310661318 1.0 0.5 2.075518526013794
561.0 0.9092071659989257 1.0 0.5 4.798349834364611
562.0 0.210969342425946 1.0 0.5 0.4739002053005348
563.0 0.9875371965277739 1.0 0.5 8.770013586320161
564.0 5.026001823606596e-2 1.0 0.5 0.10313407051509839
565.0 0.12100530799389475 1.0 0.5 0.2579528399771316
566.0 0.5890018173984741 1.0 0.5 1.7783329727795534
567.0 0.7224532694248171 1.0 0.5 2.563531923007902
568.0 0.8883622267112601 1.0 0.5 4.384991631947751
569.0 1.997234871111797e-2 1.0 0.5 4.0348984229344e-2
570.0 0.2212019516532856 1.0 0.5 0.5000070229243507
571.0 0.4273320266042193 1.0 0.5 1.1148983665533385
572.0 0.9981606891187609 1.0 0.5 12.596728597154938
573.0 0.24173972097342367 1.0 0.5 0.5534571525106269
574.0 0.30996923292210077 1.0 0.5 0.7420381848339302
575.0 0.5586292644735815 1.0 0.5 1.635740173145147
576.0 0.5710479605847417 1.0 0.5 1.6928203250772282
577.0 0.7716668116970227 1.0 0.5 2.953898729115331
578.0 0.1347753271289409 1.0 0.5 0.2895321367059855
579.0 0.7338594799945437 1.0 0.5 2.647461677978153
580.0 0.11653928663743118 1.0 0.5 0.2478169105193333
581.0 0.939970706008818 1.0 0.5 5.6258452054414265
582.0 0.6523955046706064 1.0 0.5 2.1133799063928125
583.0 0.8032152138335183 1.0 0.5 3.2512892068337553
584.0 0.6707576127357098 1.0 0.5 2.22192212014176
585.0 0.706492182007378 1.0 0.5 2.451702005911791
586.0 0.7647771000645677 1.0 0.5 2.894443408052288
587.0 0.8173666289040515 1.0 0.5 3.400549144677044
588.0 0.21872300084295448 1.0 0.5 0.49365103921530656
589.0 0.7310001086753175 1.0 0.5 2.626088606755685
590.0 0.8697372961374548 1.0 0.5 4.076404137303028
591.0 0.16400157324713815 1.0 0.5 0.35825709554754664
592.0 0.443313209241608 1.0 0.5 1.1715050236598006
593.0 0.8053657385685586 1.0 0.5 3.2732661278566844
594.0 0.30079618388942353 1.0 0.5 0.7156259936633084
595.0 0.45365879994299696 1.0 0.5 1.2090231797639022
596.0 0.8069809893677921 1.0 0.5 3.2899331884862204
597.0 0.8245884511775761 1.0 0.5 3.4812407168767363
598.0 0.41234621682526684 1.0 0.5 1.063234617242673
599.0 0.7968250346184004 1.0 0.5 3.1873755454599793
600.0 0.3927417451741644 1.0 0.5 0.9976022348148476
601.0 0.2728256265562098 1.0 0.5 0.6371779535572102
602.0 8.203703710226784e-2 1.0 0.5 0.1711964692057045
603.0 0.37776869105901545 1.0 0.5 0.9488867520931888
604.0 0.629411417011517 1.0 0.5 1.9853255448725573
605.0 0.7501910378551001 1.0 0.5 2.774117609305619
606.0 0.5996333900313177 1.0 0.5 1.8307492534099181
607.0 6.970492186242305e-2 1.0 0.5 0.14450690968030883
608.0 0.8940723635978487 1.0 0.5 4.489998186900931
609.0 0.6914380476986998 1.0 0.5 2.3516652759309613
610.0 0.3650550811756098 1.0 0.5 0.9084340517211708
611.0 6.128389132423373e-2 1.0 0.5 0.12648435832908939
612.0 0.7680345331232672 1.0 0.5 2.9223335361285874
613.0 0.23058140936561866 1.0 0.5 0.5242402528938145
614.0 0.18527936511039267 1.0 0.5 0.40982000756014936
615.0 0.28710359124883345 1.0 0.5 0.676838316784801
616.0 0.2108511727487865 1.0 0.5 0.4736006964588179
617.0 0.4624966724507077 1.0 0.5 1.241640656420202
618.0 0.9811961480020145 1.0 0.5 7.947387073248349
619.0 0.8245811182215507 1.0 0.5 3.4811571100355176
620.0 0.8168888824501829 1.0 0.5 3.3953242213722077
621.0 0.6208021859846258 1.0 0.5 1.9393945466905502
622.0 0.6514815007857316 1.0 0.5 2.108127935592991
623.0 0.8002695403068458 1.0 0.5 3.221573045869622
624.0 0.44461502006124476 1.0 0.5 1.176187496315193
625.0 0.24944701714221795 1.0 0.5 0.5738900673091492
626.0 0.15074825367641687 1.0 0.5 0.32679923126166255
627.0 0.48159464793185214 1.0 0.5 1.3139956195836684
628.0 0.7293846186875164 1.0 0.5 2.614113446702638
629.0 0.22027782974542087 1.0 0.5 0.49763522946247984
630.0 0.20798244662851184 1.0 0.5 0.46634344813095197
631.0 0.6919106866218325 1.0 0.5 2.354731119087316
632.0 0.9720879966592072 1.0 0.5 7.1573969108149464
633.0 0.9555225762947214 1.0 0.5 6.2255471020245
634.0 0.9266176357074408 1.0 0.5 5.22414328144902
635.0 0.3345233531787639 1.0 0.5 0.8145034658807747
636.0 0.718429616730576 1.0 0.5 2.5347456665564865
637.0 0.8878295863454977 1.0 0.5 4.375472027171012
638.0 0.3092083755044568 1.0 0.5 0.7398341142762942
639.0 0.7848160471899103 1.0 0.5 3.0725240444024844
640.0 0.4053789118552892 1.0 0.5 1.0396618058885414
641.0 0.7411589342475445 1.0 0.5 2.7030821027672483
642.0 0.45881127046875336 1.0 0.5 1.2279744157261765
643.0 0.22682375665456067 1.0 0.5 0.5144965144587033
644.0 0.16776368155499566 1.0 0.5 0.3672776837982627
645.0 0.5154869010668474 1.0 0.5 1.449221624070085
646.0 0.34454745235530915 1.0 0.5 0.8448587389647154
647.0 0.7272962306454143 1.0 0.5 2.5987383337541456
648.0 0.9326344100560882 1.0 0.5 5.395241852776035
649.0 0.29777872274027883 1.0 0.5 0.7070134297056129
650.0 0.9174126215561729 1.0 0.5 4.987796826948644
651.0 4.5376575536940744e-2 1.0 0.5 9.28766723998495e-2
652.0 0.4810458793989424 1.0 0.5 1.3118795986726604
653.0 0.2950958156948137 1.0 0.5 0.6993867883865484
654.0 0.2212183176044329 1.0 0.5 0.5000490521080256
655.0 0.8206110378697538 1.0 0.5 3.436397715675071
656.0 0.5629205916000906 1.0 0.5 1.6552807756173478
657.0 0.6994457934362445 1.0 0.5 2.4042543067509254
658.0 0.9830737705685453 1.0 0.5 8.15778164570834
659.0 0.8325491011982105 1.0 0.5 3.5741302243464643
660.0 0.2556320014497683 1.0 0.5 0.5904394894534792
661.0 0.5735719811333211 1.0 0.5 1.7046233960032402
662.0 0.3675775710486384 1.0 0.5 0.916395415751471
663.0 0.34003954250576196 1.0 0.5 0.8311507172880653
664.0 0.11876686109163148 1.0 0.5 0.2528661163846483
665.0 0.4006303818268926 1.0 0.5 1.0237536248988528
666.0 0.6505245015357007 1.0 0.5 2.10264364860553
667.0 0.10086413330967303 1.0 0.5 0.21264225003430867
668.0 0.5732670526062165 1.0 0.5 1.7031937546945186
669.0 0.11878163120957308 1.0 0.5 0.25289963814199007
670.0 0.10072655638961314 1.0 0.5 0.21233625313017732
671.0 0.5618155656093103 1.0 0.5 1.6502307483050531
672.0 0.4500194541428453 1.0 0.5 1.1957447451000092
673.0 0.3981179573374246 1.0 0.5 1.0153875905870227
674.0 0.3056380605496083 1.0 0.5 0.7295238556749573
675.0 0.30445908406220024 1.0 0.5 0.7261308796389632
676.0 0.3632627258496999 1.0 0.5 0.9027963019039356
677.0 0.9360322656138116 1.0 0.5 5.49875294592944
678.0 9.829392285480298e-2 1.0 0.5 0.20693333769178202
679.0 0.16857186470900742 1.0 0.5 0.3692208237524054
680.0 0.6851865756088779 1.0 0.5 2.3115502383155535
681.0 6.0746870332459846e-2 1.0 0.5 0.12534052488294534
682.0 0.13633830378369793 1.0 0.5 0.29314828432216455
683.0 7.392456123744273e-2 1.0 0.5 0.15359916061613507
684.0 0.5086610045902572 1.0 0.5 1.4212419421338762
685.0 6.49975666739836e-2 1.0 0.5 0.13441229441823688
686.0 0.5965150506093662 1.0 0.5 1.8152321842298589
687.0 0.4605739048163946 1.0 0.5 1.2344989825581794
688.0 6.864473076963751e-2 1.0 0.5 0.14222894978542783
689.0 0.8344360964556317 1.0 0.5 3.596796069113207
690.0 8.732363913477414e-2 1.0 0.5 0.18274788003816578
691.0 0.21142843578856352 1.0 0.5 0.4750642335181355
692.0 0.7222864812254323 1.0 0.5 2.56233040927018
693.0 0.8184225707114926 1.0 0.5 3.41214621719645
694.0 0.21034070512424763 1.0 0.5 0.4723073977097867
695.0 0.3162647360277784 1.0 0.5 0.7603689545111227
696.0 0.790802361192664 1.0 0.5 3.1289516672537636
697.0 0.13344125555833664 1.0 0.5 0.28645075407773934
698.0 0.7007503099963927 1.0 0.5 2.4129539409113554
699.0 0.9187168349404677 1.0 0.5 5.019632711418354
700.0 0.4599361344660652 1.0 0.5 1.2321357538196342
701.0 0.27682148640453996 1.0 0.5 0.6481983610575905
702.0 1.800784163218272e-3 1.0 0.5 3.604815048388172e-3
703.0 0.7228478637519237 1.0 0.5 2.566377390466142
704.0 0.2985911645520416 1.0 0.5 0.7093286889612735
705.0 0.17315276773821076 1.0 0.5 0.38027065243919844
706.0 0.14367496112886713 1.0 0.5 0.3102105132154968
707.0 0.8032824900526222 1.0 0.5 3.2519730780123863
708.0 0.9263217228455575 1.0 0.5 5.216094540240102
709.0 0.14390022398042068 1.0 0.5 0.3107366977250743
710.0 0.16040391518009045 1.0 0.5 0.349668708391516
711.0 0.23371462343815053 1.0 0.5 0.5324012487287254
712.0 0.5919728166898646 1.0 0.5 1.7928429620744737
713.0 0.103304290572939 1.0 0.5 0.2180774117665795
714.0 0.9472027518538018 1.0 0.5 5.8825924161427
715.0 2.606352915311938e-2 1.0 0.5 5.2818404940095244e-2
716.0 0.3644003382289155 1.0 0.5 0.9063727529217371
717.0 0.8078186466096073 1.0 0.5 3.298631607703358
718.0 0.945005788294678 1.0 0.5 5.801054682018765
719.0 0.3026751927307447 1.0 0.5 0.7210079384190151
720.0 0.13192709639852174 1.0 0.5 0.28295915504898594
721.0 0.2566043774869836 1.0 0.5 0.5930538192083015
722.0 0.10698594605754641 1.0 0.5 0.22630592066398597
723.0 0.6145249789812167 1.0 0.5 1.9065577687955066
724.0 8.930234303466789e-2 1.0 0.5 0.18708863439196044
725.0 0.5078727259176272 1.0 0.5 1.4180358175685772
726.0 0.6074906579312169 1.0 0.5 1.87038988118759
727.0 0.4328926795524597 1.0 0.5 1.1344134309597795
728.0 0.9199649411490993 1.0 0.5 5.0505810093383765
729.0 0.9554407909442231 1.0 0.5 6.221872867230832
730.0 0.25047456653555367 1.0 0.5 0.5766300562133851
731.0 0.8421247486490246 1.0 0.5 3.6919002124484552
732.0 7.259025420929721e-2 1.0 0.5 0.15071959671184512
733.0 0.11620186500134255 1.0 0.5 0.24705319299034392
734.0 0.30850615207588095 1.0 0.5 0.7378020492564494
735.0 0.1883626739567803 1.0 0.5 0.4174033627979661
736.0 0.6623776199438104 1.0 0.5 2.171654453643791
737.0 0.11290896034135722 1.0 0.5 0.2396153284366351
738.0 0.7422642656298815 1.0 0.5 2.7116410087728458
739.0 0.7587318490143916 1.0 0.5 2.8436926086943526
740.0 0.530336944600492 1.0 0.5 1.5114794895629295
741.0 0.6223687487469611 1.0 0.5 1.9476741705662395
742.0 0.5630377543656311 1.0 0.5 1.6558169640962446
743.0 0.6774789767908294 1.0 0.5 2.2631739132509616
744.0 0.7134140595880138 1.0 0.5 2.499433642548651
745.0 0.10002976757404214 1.0 0.5 0.2107871825741759
746.0 0.567848281252265 1.0 0.5 1.677957103179304
747.0 0.4060863958044679 1.0 0.5 1.0420428353605442
748.0 9.50513656846318e-2 1.0 0.5 0.19975418911112916
749.0 0.16631249236543122 1.0 0.5 0.36379327584656745
750.0 0.8411217147036525 1.0 0.5 3.6792337423769124
751.0 0.8261179212585096 1.0 0.5 3.49875583579596
752.0 2.270068052664842e-2 1.0 0.5 4.5924615942012824e-2
753.0 0.794409914691346 1.0 0.5 3.163741939541678
754.0 9.042111886289728e-2 1.0 0.5 0.18954710912519077
755.0 0.8703489330265705 1.0 0.5 4.0858170747733435
756.0 0.4310407173673936 1.0 0.5 1.1278928138744269
757.0 0.3363067143343986 1.0 0.5 0.819870310803085
758.0 0.5130758701244038 1.0 0.5 1.4392939176921202
759.0 0.7908192098998476 1.0 0.5 3.1291127530653498
760.0 0.13285818054236243 1.0 0.5 0.28510548131242014
761.0 0.20374760571336736 1.0 0.5 0.45567813029380005
762.0 0.5394576445781261 1.0 0.5 1.5507009009747217
763.0 6.022815649686475e-2 1.0 0.5 0.12423630571358278
764.0 6.998298713513784e-2 1.0 0.5 0.1451047991981602
765.0 0.8970007092256013 1.0 0.5 4.546066352923313
766.0 0.4229521552684008 1.0 0.5 1.0996601921991296
767.0 0.8670835830456738 1.0 0.5 4.036069584532981
768.0 0.4225403174878275 1.0 0.5 1.0982333057100466
769.0 0.7514278370027265 1.0 0.5 2.784044162493016
770.0 0.3166625910490667 1.0 0.5 0.7615330624342808
771.0 0.35844011299274825 1.0 0.5 0.8877054892696948
772.0 0.6478614003000068 1.0 0.5 2.08746086347037
773.0 0.7201698321036184 1.0 0.5 2.547144806123709
774.0 0.36834307496040686 1.0 0.5 0.9188177447070995
775.0 0.8093749686530289 1.0 0.5 3.3148939343546955
776.0 0.11152824342387613 1.0 0.5 0.2365048393033555
777.0 0.8664817488175403 1.0 0.5 4.027034195017947
778.0 0.5335069631739435 1.0 0.5 1.525024370448048
779.0 0.3938842132094552 1.0 0.5 1.0013684877054532
780.0 0.10183253557450678 1.0 0.5 0.21479748413816208
781.0 8.053929148343719e-2 1.0 0.5 0.16793593441701318
782.0 0.6987324536890543 1.0 0.5 2.39951310171572
783.0 0.9652504478720477 1.0 0.5 6.719177190917287
784.0 8.352182889441673e-2 1.0 0.5 0.17443405931174336
785.0 0.6848311037778758 1.0 0.5 2.309293210731784
786.0 0.8753831237435886 1.0 0.5 4.165022476660053
787.0 0.5017501580403889 1.0 0.5 1.3933072741604589
788.0 0.5164740417097261 1.0 0.5 1.4533005544713893
789.0 5.34146726412843e-3 1.0 0.5 1.0711567808793232e-2
790.0 0.3318023439651666 1.0 0.5 0.8063425138905206
791.0 0.8980158281288398 1.0 0.5 4.565875310945801
792.0 0.3077912787425361 1.0 0.5 0.7357354970569514
793.0 8.244870505377133e-2 1.0 0.5 0.1720935866356492
794.0 0.9525163323404254 1.0 0.5 6.09473893162687
795.0 0.8150156026591003 1.0 0.5 3.37496759231672
796.0 0.6942073379694466 1.0 0.5 2.3696959635020733
797.0 0.3064154871080699 1.0 0.5 0.7317643647045484
798.0 0.6766043921266462 1.0 0.5 2.257757826055945
799.0 0.8850082431583656 1.0 0.5 4.325789665651913
800.0 0.390824501859813 1.0 0.5 0.9912977570009057
801.0 0.9277232680571199 1.0 0.5 5.254506056261732
802.0 0.9515352841551716 1.0 0.5 6.0538385083107515
803.0 0.931339195694947 1.0 0.5 5.3571535534070165
804.0 0.41693501872311356 1.0 0.5 1.078913277353363
805.0 0.9925072396884476 1.0 0.5 9.787636032854072
806.0 0.6270345104129288 1.0 0.5 1.9725387696659187
807.0 0.9026186077418837 1.0 0.5 4.658240262325699
808.0 0.9572829405210631 1.0 0.5 6.306313838242294
809.0 0.3836448542598979 1.0 0.5 0.9678638925777285
810.0 0.9149835758010022 1.0 0.5 4.929821630573945
811.0 0.9650769640332738 1.0 0.5 6.70921722232391
812.0 0.8333633906893451 1.0 0.5 3.5838796592561692
813.0 0.4659441674707303 1.0 0.5 1.254509780378417
814.0 0.6644565585399186 1.0 0.5 2.1840076964202977
815.0 0.5950530445808047 1.0 0.5 1.8079983894541376
816.0 0.6963681256453612 1.0 0.5 2.383878501957269
817.0 0.7577963228381738 1.0 0.5 2.835952531284403
818.0 5.205609640929987e-2 1.0 0.5 0.10691990381092617
819.0 0.266407912351019 1.0 0.5 0.6196042874911304
820.0 0.2334514658552196 1.0 0.5 0.5317145270071396
821.0 0.3750267027666355 1.0 0.5 0.9400927091701334
822.0 0.6114309357827568 1.0 0.5 1.8905687070019104
823.0 0.15551257370829796 1.0 0.5 0.338050863566619
824.0 0.23813670768097417 1.0 0.5 0.5439762915924459
825.0 0.870266707449991 1.0 0.5 4.084549063402345
826.0 3.154053223157938e-2 1.0 0.5 6.409729506779938e-2
827.0 0.1696763468222191 1.0 0.5 0.3718794212240955
828.0 0.9382537256649148 1.0 0.5 5.5694432798975
829.0 0.5690815690817298 1.0 0.5 1.6836729243990005
830.0 0.40173525398781396 1.0 0.5 1.027443807837522
831.0 0.37414920622824466 1.0 0.5 0.9372865697980035
832.0 0.8470235035676409 1.0 0.5 3.75494197495865
833.0 0.1639959478716596 1.0 0.5 0.35824363773142587
834.0 0.8417875076966232 1.0 0.5 3.6876325230218985
835.0 4.4800017902082656e-2 1.0 0.5 9.166911017102182e-2
836.0 8.371841878440967e-2 1.0 0.5 0.17486311694572496
837.0 0.792681678313694 1.0 0.5 3.1469997619491537
838.0 0.70931724616291 1.0 0.5 2.4710455990059654
839.0 0.9536753385934513 1.0 0.5 6.14416163184868
840.0 0.9602885160673758 1.0 0.5 6.452229730589149
841.0 0.7554874920826832 1.0 0.5 2.8169776284993024
842.0 0.13372214044518893 1.0 0.5 0.28709913578589247
843.0 0.5137668062151739 1.0 0.5 1.442133895114351
844.0 0.7646430480436962 1.0 0.5 2.893303945544842
845.0 0.737797471240314 1.0 0.5 2.677276126613299
846.0 0.2757355366840477 1.0 0.5 0.64519734494416
847.0 0.9070120314664122 1.0 0.5 4.750570329609125
848.0 0.8891902056378072 1.0 0.5 4.399880223610048
849.0 0.6345074545436008 1.0 0.5 2.0130187909368447
850.0 0.7278594124350969 1.0 0.5 2.602872960335896
851.0 0.7746614730325766 1.0 0.5 2.9803028864018035
852.0 0.1615769961852126 1.0 0.5 0.35246505607116085
853.0 0.791392456147658 1.0 0.5 3.134601145736619
854.0 0.6680598448264417 1.0 0.5 2.2056011636299084
855.0 8.13464244932427e-3 1.0 0.5 1.63358183694174e-2
856.0 0.10662505504031572 1.0 0.5 0.2254978301028323
857.0 0.9560295924470773 1.0 0.5 6.248476853892508
858.0 0.852060175832956 1.0 0.5 3.821899362730954
859.0 0.9719898411238275 1.0 0.5 7.150376035205891
860.0 0.2712547072167808 1.0 0.5 0.6328620012818229
861.0 0.5288209915498573 1.0 0.5 1.5050343935333608
862.0 0.7664883160339533 1.0 0.5 2.909046329453154
863.0 0.19497241124386178 1.0 0.5 0.433757460808162
864.0 0.22833492954177637 1.0 0.5 0.5184093393054244
865.0 0.8948424632463157 1.0 0.5 4.504591406380232
866.0 0.8605530887700942 1.0 0.5 3.9401426296279958
867.0 0.15650870586231802 1.0 0.5 0.34041139633305906
868.0 0.45930982890306726 1.0 0.5 1.2298177217350685
869.0 0.3246506528569505 1.0 0.5 0.7850503413401291
870.0 0.9510363593524436 1.0 0.5 6.033354567822288
871.0 0.5038715294705464 1.0 0.5 1.4018407452622141
872.0 5.1203794293428584e-2 1.0 0.5 0.10512249958235921
873.0 0.5544890265721415 1.0 0.5 1.617066801324528
874.0 0.2614676505710716 1.0 0.5 0.6061807474664205
875.0 5.243774821209923e-2 1.0 0.5 0.10772528617673659
876.0 0.7971971719215974 1.0 0.5 3.191042124405132
877.0 0.7919800318693259 1.0 0.5 3.140242406520687
878.0 0.5219283825848018 1.0 0.5 1.4759894609704223
879.0 0.4275949818719734 1.0 0.5 1.1158169290356357
880.0 0.6781991679783914 1.0 0.5 2.267644917806484
881.0 0.8932373960711312 1.0 0.5 4.4742951285035835
882.0 0.5478472624532599 1.0 0.5 1.5874704826077597
883.0 0.5685711063530478 1.0 0.5 1.6813051416100346
884.0 0.9721023498460244 1.0 0.5 7.158425635147378
885.0 0.21573425270663737 1.0 0.5 0.486014705364895
886.0 0.35259191127848954 1.0 0.5 0.8695568868089019
887.0 0.3472690789117947 1.0 0.5 0.853180600685918
888.0 0.5447448280041739 1.0 0.5 1.573794399314694
889.0 0.6727997991506037 1.0 0.5 2.2343661208216705
890.0 0.8696740488652007 1.0 0.5 4.0754333003570125
891.0 0.8734188023436674 1.0 0.5 4.133742596048804
892.0 0.29463161413393557 1.0 0.5 0.6980701589988371
893.0 3.283064353893961e-2 1.0 0.5 6.676332583206068e-2
894.0 0.23328215590600432 1.0 0.5 0.5312728295896356
895.0 0.40670843024467607 1.0 0.5 1.044138629788592
896.0 0.8227097978732368 1.0 0.5 3.45993465796266
897.0 0.7693837137837822 1.0 0.5 2.9340000964909345
898.0 0.5297116607776882 1.0 0.5 1.5088185693552791
899.0 0.7754688592512937 1.0 0.5 2.98748173968772
900.0 0.3248143864258809 1.0 0.5 0.7855352856755076
901.0 0.9401865839181958 1.0 0.5 5.633050587988034
902.0 0.34780122634541877 1.0 0.5 0.8548117918995641
903.0 0.7284097775344618 1.0 0.5 2.6069217674085974
904.0 0.9414922145837621 1.0 0.5 5.677190899121933
905.0 0.9905747699450492 1.0 0.5 9.328730273865226
906.0 0.6248601140341811 1.0 0.5 1.9609125866553052
907.0 2.9604572975377663e-2 1.0 0.5 6.010326765544391e-2
908.0 5.571585670694823e-3 1.0 0.5 1.1174329696467535e-2
909.0 0.6109088431526207 1.0 0.5 1.8878832528951692
910.0 0.4546914044998336 1.0 0.5 1.2128068285824642
911.0 6.989233588498944e-2 1.0 0.5 0.1449098633396298
912.0 7.423451728270214e-2 1.0 0.5 0.1542686696318581
913.0 0.5259803352971397 1.0 0.5 1.4930129428654308
914.0 0.658351708925572 1.0 0.5 2.1479469194904803
915.0 0.7900569250260353 1.0 0.5 3.121837713127503
916.0 0.23734310603381692 1.0 0.5 0.5418940581763712
917.0 0.5669448736548646 1.0 0.5 1.6737804930156697
918.0 0.32179695871984115 1.0 0.5 0.7766171299190336
919.0 0.10866609186678144 1.0 0.5 0.23007233022421117
920.0 0.45705634966886644 1.0 0.5 1.2214994782912616
921.0 0.9167978760940737 1.0 0.5 4.972964807530681
922.0 0.3082714338000597 1.0 0.5 0.7371232913772323
923.0 0.47735097863544884 1.0 0.5 1.2976902549082674
924.0 0.4404786851833078 1.0 0.5 1.161347311537362
925.0 0.7939848260637378 1.0 0.5 3.1596109060410877
926.0 0.2412573034838612 1.0 0.5 0.5521851246673014
927.0 0.3000287671367394 1.0 0.5 0.7134320813856403
928.0 0.6396708208326259 1.0 0.5 2.0414745575053637
929.0 0.7579547542491935 1.0 0.5 2.83726120877795
930.0 0.3396814387067095 1.0 0.5 0.8300657835650016
931.0 0.2892910263130618 1.0 0.5 0.6829845053640449
932.0 0.9011216837211008 1.0 0.5 4.6277306266829745
933.0 0.8210499505161656 1.0 0.5 3.441297130493794
934.0 0.20855830013501853 1.0 0.5 0.4677981203133048
935.0 0.20067661109578638 1.0 0.5 0.4479793460879907
936.0 0.2783975695108384 1.0 0.5 0.6525618840897621
937.0 8.228356433882655e-2 1.0 0.5 0.171733659388771
938.0 0.6509731323562694 1.0 0.5 2.105212750180706
939.0 0.22847862352050963 1.0 0.5 0.5187817997542151
940.0 0.8395983631124934 1.0 0.5 3.6601487571349267
941.0 0.9743748330931115 1.0 0.5 7.328360656210449
942.0 0.9784624250877514 1.0 0.5 7.675912397820349
943.0 0.30092332380443143 1.0 0.5 0.7159896972722992
944.0 0.9500911854862217 1.0 0.5 5.995115296523221
945.0 8.677317380760863e-2 1.0 0.5 0.1815419774519955
946.0 0.7801060191136249 1.0 0.5 3.0292195076905384
947.0 0.8407117298539127 1.0 0.5 3.674079397023548
948.0 2.5783170671583644e-2 1.0 0.5 5.2242765469739556e-2
949.0 0.6060746119884648 1.0 0.5 1.8631875162923288
950.0 0.5958910047385527 1.0 0.5 1.8121412943134505
951.0 0.1746502894487323 1.0 0.5 0.3838961817736315
952.0 0.5840255212924214 1.0 0.5 1.7542627397268897
953.0 0.39662332502701947 1.0 0.5 1.010427217997472
954.0 0.8294609650651269 1.0 0.5 3.5375821291253438
955.0 0.6431589573123884 1.0 0.5 2.060929709875304
956.0 0.985945005032187 1.0 0.5 8.52955486531813
957.0 0.6701686585706427 1.0 0.5 2.218347683497157
958.0 0.9097930895031728 1.0 0.5 4.8112984836026484
959.0 0.9461308232792471 1.0 0.5 5.842393650220309
960.0 5.2337673573452204e-2 1.0 0.5 0.10751407186495446
961.0 0.8460764659780871 1.0 0.5 3.7425986644134888
962.0 0.10514312394105463 1.0 0.5 0.22218297702597922
963.0 0.6975701033741791 1.0 0.5 2.3918115501203125
964.0 0.9576315406611462 1.0 0.5 6.322702154160914
965.0 0.5756726043081537 1.0 0.5 1.714499924122977
966.0 0.14180795869433915 1.0 0.5 0.3058547603470779
967.0 0.476602852426136 1.0 0.5 1.2948294774050015
968.0 0.5735933728030692 1.0 0.5 1.7047237280891907
969.0 0.21074148987963792 1.0 0.5 0.47332273812264397
970.0 0.4040283383810781 1.0 0.5 1.0351243213329395
971.0 0.44809616679520103 1.0 0.5 1.188762926181943
972.0 0.49753260138877997 1.0 0.5 1.376449039078463
973.0 0.3981895324367999 1.0 0.5 1.0156254423601343
974.0 0.4631341447354761 1.0 0.5 1.2440140393123216
975.0 0.7621220718869883 1.0 0.5 2.8719952879613677
976.0 0.35491286990322435 1.0 0.5 0.8767397717764418
977.0 0.5624416059435056 1.0 0.5 1.6530902199238997
978.0 0.9048958001682184 1.0 0.5 4.705564296273839
979.0 0.5871353426885598 1.0 0.5 1.769270891992473
980.0 0.9552974642377905 1.0 0.5 6.215450101021099
981.0 0.11683294268351829 1.0 0.5 0.24848180677799192
982.0 0.804763553103361 1.0 0.5 3.2670878135466657
983.0 0.9017746463190758 1.0 0.5 4.640981825644075
984.0 0.3546593618234335 1.0 0.5 0.8759539607786164
985.0 0.8175329055993971 1.0 0.5 3.4023708537413193
986.0 0.9271651336840998 1.0 0.5 5.239121011041082
987.0 0.43755514801054285 1.0 0.5 1.150924381235035
988.0 0.12335439229044076 1.0 0.5 0.2633049287820745
989.0 0.3823717678509384 1.0 0.5 0.9637371372795477
990.0 0.7134192888551714 1.0 0.5 2.499470136417535
991.0 0.5559806916407091 1.0 0.5 1.6237744603995141
992.0 0.7947950806945909 1.0 0.5 3.167492385499269
993.0 0.8593443260366468 1.0 0.5 3.9228808076956767
994.0 0.9695468897099642 1.0 0.5 6.983134291741286
995.0 9.645307355937993e-2 1.0 0.5 0.20285446358422873
996.0 0.5759218175673997 1.0 0.5 1.7156748964373492
997.0 0.8948271404741518 1.0 0.5 4.504300002523024
998.0 0.8288317043606008 1.0 0.5 3.5302160428926017
999.0 0.7727026977235016 1.0 0.5 2.962992833506503
dfExpRand.describe().show() // look sensible
+-------+-----------------+--------------------+----+----+--------------------+
|summary|               Id|                rand| one|rate|         expo_sample|
+-------+-----------------+--------------------+----+----+--------------------+
|  count|             1000|                1000|1000|1000|                1000|
|   mean|            499.5|  0.5060789944940257| 1.0| 0.5|   2.024647367046763|
| stddev|288.8194360957494| 0.28795893414434537| 0.0| 0.0|  1.9649069025265538|
|    min|                0|6.282087728304298E-4| 1.0| 0.5|0.001256812357281...|
|    max|              999|  0.9981606891187609| 1.0| 0.5|  12.596728597154938|
+-------+-----------------+--------------------+----+----+--------------------+
val expoSamplesDF = spark.range(1000000000).toDF("Id") // just make a DF of 100 row indices
               .select($"Id", rand(seed=1234567) as "rand") // add a column of random numbers in (0,1)
               .withColumn("one",lit(1.0))
               .withColumn("rate",lit(0.5))
               .withColumn("expo_sample", -($"one" / $"rate") * log($"one" - $"rand"))
expoSamplesDF: org.apache.spark.sql.DataFrame = [Id: bigint, rand: double ... 3 more fields]
expoSamplesDF.describe().show()
+-------+--------------------+--------------------+----------+----------+--------------------+
|summary|                  Id|                rand|       one|      rate|         expo_sample|
+-------+--------------------+--------------------+----------+----------+--------------------+
|  count|          1000000000|          1000000000|1000000000|1000000000|          1000000000|
|   mean|4.9999999907595944E8| 0.49999521358240573|       1.0|       0.5|  1.9999814119383708|
| stddev|2.8867513473915565E8|  0.2886816216562552|       0.0|       0.0|  2.0000011916404206|
|    min|                   0|1.584746778249268...|       1.0|       0.5|3.169493556749679...|
|    max|           999999999|  0.9999999996809935|       1.0|       0.5|  43.731619350261035|
+-------+--------------------+--------------------+----------+----------+--------------------+

Using sql.functions and sql.expr for expressions, one can write a much simpler syntax to get Exponetially distributed samples.

See: - spark/sql/expressions/ docs - https://sparkbyexamples.com/spark/spark-sql-functions/

import org.apache.spark.sql.functions._
import org.apache.spark.sql.functions.expr

val expoSamplesDFAsSQLExp = spark.range(1000000000).toDF("Id") // just make a DF of 100 row indices
               .select($"Id", rand(seed=1234567) as "random") // add a column of random numbers in (0,1)
               .withColumn("expo_sample", expr("-(1.0 / 0.5) * log(1.0 - random)"))
import org.apache.spark.sql.functions._
import org.apache.spark.sql.functions.expr
expoSamplesDFAsSQLExp: org.apache.spark.sql.DataFrame = [Id: bigint, random: double ... 1 more field]
expoSamplesDFAsSQLExp.describe().show()
+-------+--------------------+--------------------+--------------------+
|summary|                  Id|              random|         expo_sample|
+-------+--------------------+--------------------+--------------------+
|  count|          1000000000|          1000000000|          1000000000|
|   mean|4.9999999907595944E8| 0.49999521358240573|  1.9999814119383708|
| stddev|2.8867513473915565E8|  0.2886816216562552|  2.0000011916404206|
|    min|                   0|1.584746778249268...|3.169493556749679...|
|    max|           999999999|  0.9999999996809935|  43.731619350261035|
+-------+--------------------+--------------------+--------------------+

Approximating Pi with Monte Carlo simulations

Uisng RDDs directly, let's estimate Pi.

//Calculate pi with Monte Carlo estimation
import scala.math.random

//make a very large unique set of 1 -> n 
val partitions = 2 
val n = math.min(100000L * partitions, Int.MaxValue).toInt 
val xs = 1 until n 

//split up n into the number of partitions we can use 
val rdd = sc.parallelize(xs, partitions).setName("'N values rdd'")

//generate a random set of points within a 2x2 square
val sample = rdd.map { i =>
  val x = random * 2 - 1
  val y = random * 2 - 1
  (x, y)
}.setName("'Random points rdd'")

//points w/in the square also w/in the center circle of r=1
val inside = sample.filter { case (x, y) => (x * x + y * y < 1) }.setName("'Random points inside circle'")
val count = inside.count()
 
//Area(circle)/Area(square) = inside/n => pi=4*inside/n                        
println("Pi is roughly " + 4.0 * count / n)
Pi is roughly 3.1387
import scala.math.random
partitions: Int = 2
n: Int = 200000
xs: scala.collection.immutable.Range = Range 1 until 200000
rdd: org.apache.spark.rdd.RDD[Int] = 'N values rdd' ParallelCollectionRDD[192] at parallelize at command-2971213210276568:10
sample: org.apache.spark.rdd.RDD[(Double, Double)] = 'Random points rdd' MapPartitionsRDD[193] at map at command-2971213210276568:13
inside: org.apache.spark.rdd.RDD[(Double, Double)] = 'Random points inside circle' MapPartitionsRDD[194] at filter at command-2971213210276568:20
count: Long = 156935

Doing it in PySpark is just as easy. This may be needed if there are pyhton libraries you want to take advantage of in Spark.

# # Estimating $\pi$
#
# This PySpark example shows you how to estimate $\pi$ in parallel
# using Monte Carlo integration.

from __future__ import print_function
import sys
from random import random
from operator import add

partitions = 2
n = 100000 * partitions

def f(_):
    x = random() * 2 - 1
    y = random() * 2 - 1
    return 1 if x ** 2 + y ** 2 < 1 else 0

# To access the associated SparkContext
count = spark.sparkContext.parallelize(range(1, n + 1), partitions).map(f).reduce(add)
print("Pi is roughly %f" % (4.0 * count / n))

The following is from this google turotial.

Programming a Monte Carlo simulation in Scala

Monte Carlo, of course, is famous as a gambling destination. In this section, you use Scala to create a simulation that models the mathematical advantage that a casino enjoys in a game of chance. The "house edge" at a real casino varies widely from game to game; it can be over 20% in keno, for example. This tutorial creates a simple game where the house has only a one-percent advantage. Here's how the game works:

  1. The player places a bet, consisting of a number of chips from a bankroll fund.
  • The player rolls a 100-sided die (how cool would that be?).
  • If the result of the roll is a number from 1 to 49, the player wins.
  • For results 50 to 100, the player loses the bet.

You can see that this game creates a one-percent disadvantage for the player: in 51 of the 100 possible outcomes for each roll, the player loses.

Follow these steps to create and run the game:

val STARTING_FUND = 10
val STAKE = 1   // the amount of the bet
val NUMBER_OF_GAMES = 25

def rollDie: Int = {
    val r = scala.util.Random
    r.nextInt(99) + 1
}

def playGame(stake: Int): (Int) = {
    val faceValue = rollDie
    if (faceValue < 50)
        (2*stake)
    else
        (0)
}

// Function to play the game multiple times
// Returns the final fund amount
def playSession(
   startingFund: Int = STARTING_FUND,
   stake: Int = STAKE,
   numberOfGames: Int = NUMBER_OF_GAMES):
   (Int) = {

    // Initialize values
    var (currentFund, currentStake, currentGame) = (startingFund, 0, 1)

    // Keep playing until number of games is reached or funds run out
    while (currentGame <= numberOfGames && currentFund > 0) {

        // Set the current bet and deduct it from the fund
        currentStake = math.min(stake, currentFund)
        currentFund -= currentStake

        // Play the game
        val (winnings) = playGame(currentStake)

        // Add any winnings
        currentFund += winnings

        // Increment the loop counter
        currentGame += 1
    }
    (currentFund)
}
STARTING_FUND: Int = 10
STAKE: Int = 1
NUMBER_OF_GAMES: Int = 25
rollDie: Int
playGame: (stake: Int)Int
playSession: (startingFund: Int, stake: Int, numberOfGames: Int)Int

Enter the following code to play the game 25 times, which is the default value for NUMBER_OF_GAMES.

playSession()
res31: Int = 5

Your bankroll started with a value of 10 units. Is it higher or lower, now?

Now simulate 10,000 players betting 100 chips per game. Play 10,000 games in a session. This Monte Carlo simulation calculates the probability of losing all your money before the end of the session. Enter the follow code:

(sc.parallelize(1 to 10000, 500)
  .map(i => playSession(100000, 100, 250000))
  .map(i => if (i == 0) 1 else 0)
  .reduce(_+_)/10000.0)
res32: Double = 0.9992

Note that the syntax .reduce(_+_) is shorthand in Scala for aggregating by using a summing function.

The preceding code performs the following steps:

  1. Creates an RDD with the results of playing the session.
  • Replaces bankrupt players' results with the number 1 and nonzero results with the number 0.
  • Sums the count of bankrupt players.
  • Divides the count by the number of players.

A typical result might be:

res32: Double = 0.9992

Which represents a near guarantee of losing all your money, even though the casino had only a one-percent advantage.

Project Ideas

Try to create a scalable simulation of interest to you.

Here are some mature projects:

  • https://github.com/zishanfu/GeoSparkSim
  • https://github.com/srbaird/mc-var-spark

See a more complete VaR modeling: - https://databricks.com/blog/2020/05/27/modernizing-risk-management-part-1-streaming-data-ingestion-rapid-model-development-and-monte-carlo-simulations-at-scale.html

ScaDaMaLe Course site and book

Introduction to Machine Learning

Some very useful resources we will weave around for Statistical Learning, Data Mining, Machine Learning:

Deep Learning is a popular method currently (2022) in Machine Learning.

Note: We will focus on intution here and the distributed ML Pipeline in action as most of you already have some exposure to ML concepts and methods.

Summary of Machine Learning at a High Level

  • A rough definition of machine learning.
    • constructing and studying algorithms that learn from and make predictions on data.
  • This broad area involves tools and ideas from various domains, including:
    • computer science,
    • probability and statistics,
    • optimization,
    • linear algebra
    • logic
    • etc.
  • Common examples of ML, include:
    • facial recognition,
    • link prediction,
    • text or document classification, eg.::
      • spam detection,
    • protein structure prediction
    • teaching computers to play games (go!)

Some common terminology

using example of spam detection as a running example.
  • the data points we learn from are call observations:

    • they are items or entities used for::
      • learning or
      • evaluation.
  • in the context of spam detection,

    • emails are our observations.
    • Features are attributes used to represent an observation.
    • Features are typically numeric,
      • and in spam detection, they can be:
      • the length,
      • the date, or
      • the presence or absence of keywords in emails.
    • Labels are values or categories assigned to observations.
      • and in spam detection, they can be:
      • an email being defined as spam or not spam.
  • Training and test data sets are the observations that we use to train and evaluate a learning algorithm.

  • Pop-Quiz

    • What is the difference between supervised and unsupervised learning?

If you are interested, watch this later (12:12) for a Stats@Stanford Hastie-Tibshirani Perspective on Supervised and Unsupervised Learning from https://www.dataschool.io/15-hours-of-expert-machine-learning-videos/ - an effective way to brush up on ML if you are rusty.

ML Pipelines

Expected Reading

Here we will use ML Pipelines to do machine learning at scale.

See https://spark.apache.org/docs/latest/ml-pipeline.html for a quick overview (about 10 minutes of reading).

Read this section for an overview:

ScaDaMaLe Course site and book

Million Song Dataset - Kaggle Challenge

Predict which songs a user will listen to.

SOURCE: This is just a Scala-rification of the Python notebook published in databricks community edition in 2016.

When you first hear a song, do you ever categorize it as slow or fast in your head? Is it even a valid categorization? If so, can one do it automatically? I have always wondered about that. That is why I got excited when I learned about the Million Songs Dataset -Kaggle Challenge.

In this tutorial we will walk through a practical example of a data science project with Apache Spark in Python. We are going to parse, explore and model a sample from the million songs dataset stored on distributed storage. This tutorial is organized into three sections:

  1. ETL: Parses raw texts and creates a cached table
  2. Explore: Explores different aspects of the songs table using graphs
  3. Model: Uses SparkML to cluster songs based on some of their attributes

End to End Data Science

The goal of this tutorial is to prepare you for real world data science projects. Make sure you go through the tutorial in the above order and use the exercises to make yourself familiar further with the API. Also make sure you run these notebooks on a 1.6.x cluster.

1. ETL

The first step of most data science projects is extracting, transforming and loading data into well formated tables. Our example starts with ETL as well. By following the ETL noteboook you can expect to learn about following Spark concepts:

  • RDD: Resilient Distributed Dataset
  • Reading and transforming RDDs
  • Schema in Spark
  • Spark DataFrame
  • Temp tables
  • Caching tables

2. Explore

Exploratory analysis is a key step in any real data project. Data scientists use variety of tools to explore and visualize their data. In the second notebook of this tutorial we introduce several tools in Python and Databricks notebooks that can help you visually explore your large data. By reading this notebook and finishing its exercises you will become familiar with:

  • How to view the schema of a table
  • How to display ggplot and matplotlib figures in Notebooks
  • How to summarize and visualize different aspects of large datasets
  • How to sample and visualize large data

3. Model

The end goal of many data scientists is producing useful models. These models are often used for prediction of new and upcoming events in production. In our third notebook we construct a simple K-means clustering model. In this notebook you will learn about:

  • Feature transformation
  • Fitting a model using SparkML API
  • Applying a model to data
  • Visualizing model results
  • Model tuning

ScaDaMaLe Course site and book

Million Song Dataset - Kaggle Challenge

Predict which songs a user will listen to.

SOURCE: This is just a Scala-rification of the Python notebook published in databricks community edition in 2016.

CAUTION: This notebook is expected to have an error in command 28 (Cmd 28 in databricks notebook). You are meant to learn how to fix this error with simple exception-handling to become a better data scientist. So ignore this warning, if any.

Stage 1: Parsing songs data

This is the first notebook in this tutorial. In this notebook we will read data from DBFS (DataBricks FileSystem). We will parse data and load it as a table that can be readily used in following notebooks.

By going through this notebook you can expect to learn how to read distributed data as an RDD, how to transform RDDs, and how to construct a Spark DataFrame from an RDD and register it as a table.

We first explore different files in our distributed file system. We use a header file to construct a Spark Schema object. We write a function that takes the header and casts strings in each line of our data to corresponding types. Once we run this function on the data we find that it fails on some corner caes. We update our function and finally get a parsed RDD. We combine that RDD and the Schema to construct a DataFame and register it as a temporary table in SparkSQL.

Datasets

Text data files that are a bit larger than the ones in /datasets/sds/songs/data-001/ are stored in dbfs:/databricks-datasets/songs/data-001 in the databricks shard.

You can conveniently list files on distributed file system (DBFS, S3 or HDFS) using %fs commands in databricks.

NOTE: we will work first with the dataset in /datasets/sds/songs/data-001/.

ls /datasets/sds/songs/data-001/
path name size modificationTime
dbfs:/datasets/sds/songs/data-001/header.txt header.txt 377.0 1.664295987e12
dbfs:/datasets/sds/songs/data-001/part-00000 part-00000 52837.0 1.664295981e12
dbfs:/datasets/sds/songs/data-001/part-00001 part-00001 52469.0 1.664295985e12
dbfs:/datasets/sds/songs/data-001/part-00002 part-00002 51778.0 1.664295981e12
dbfs:/datasets/sds/songs/data-001/part-00003 part-00003 50551.0 1.664295993e12
dbfs:/datasets/sds/songs/data-001/part-00004 part-00004 53449.0 1.664295988e12
dbfs:/datasets/sds/songs/data-001/part-00005 part-00005 53301.0 1.664295983e12
dbfs:/datasets/sds/songs/data-001/part-00006 part-00006 54184.0 1.664295991e12
dbfs:/datasets/sds/songs/data-001/part-00007 part-00007 50924.0 1.664295989e12
dbfs:/datasets/sds/songs/data-001/part-00008 part-00008 52533.0 1.664295984e12
dbfs:/datasets/sds/songs/data-001/part-00009 part-00009 54570.0 1.664295981e12
dbfs:/datasets/sds/songs/data-001/part-00010 part-00010 54338.0 1.664295986e12
dbfs:/datasets/sds/songs/data-001/part-00011 part-00011 51836.0 1.664295993e12
dbfs:/datasets/sds/songs/data-001/part-00012 part-00012 52297.0 1.664295986e12
dbfs:/datasets/sds/songs/data-001/part-00013 part-00013 52044.0 1.664295993e12
dbfs:/datasets/sds/songs/data-001/part-00014 part-00014 50704.0 1.664295985e12
dbfs:/datasets/sds/songs/data-001/part-00015 part-00015 54158.0 1.664295995e12
dbfs:/datasets/sds/songs/data-001/part-00016 part-00016 50080.0 1.664295987e12
dbfs:/datasets/sds/songs/data-001/part-00017 part-00017 47708.0 1.66429598e12
dbfs:/datasets/sds/songs/data-001/part-00018 part-00018 8858.0 1.664295987e12
dbfs:/datasets/sds/songs/data-001/part-00019 part-00019 53323.0 1.66429599e12
dbfs:/datasets/sds/songs/data-001/part-00020 part-00020 57877.0 1.664295994e12
dbfs:/datasets/sds/songs/data-001/part-00021 part-00021 52491.0 1.664295988e12
dbfs:/datasets/sds/songs/data-001/part-00022 part-00022 54791.0 1.66429598e12
dbfs:/datasets/sds/songs/data-001/part-00023 part-00023 50682.0 1.664295982e12
dbfs:/datasets/sds/songs/data-001/part-00024 part-00024 52863.0 1.664295988e12
dbfs:/datasets/sds/songs/data-001/part-00025 part-00025 47416.0 1.664295987e12
dbfs:/datasets/sds/songs/data-001/part-00026 part-00026 50130.0 1.664295991e12
dbfs:/datasets/sds/songs/data-001/part-00027 part-00027 53462.0 1.664295989e12
dbfs:/datasets/sds/songs/data-001/part-00028 part-00028 54179.0 1.664295984e12
dbfs:/datasets/sds/songs/data-001/part-00029 part-00029 52738.0 1.664295991e12
dbfs:/datasets/sds/songs/data-001/part-00030 part-00030 54159.0 1.664295993e12
dbfs:/datasets/sds/songs/data-001/part-00031 part-00031 51247.0 1.664295986e12
dbfs:/datasets/sds/songs/data-001/part-00032 part-00032 51610.0 1.664295983e12
dbfs:/datasets/sds/songs/data-001/part-00033 part-00033 53895.0 1.664295981e12
dbfs:/datasets/sds/songs/data-001/part-00034 part-00034 53125.0 1.664295991e12
dbfs:/datasets/sds/songs/data-001/part-00035 part-00035 54066.0 1.664295991e12
dbfs:/datasets/sds/songs/data-001/part-00036 part-00036 54265.0 1.664295993e12
dbfs:/datasets/sds/songs/data-001/part-00037 part-00037 54264.0 1.664295992e12
dbfs:/datasets/sds/songs/data-001/part-00038 part-00038 50540.0 1.664295983e12
dbfs:/datasets/sds/songs/data-001/part-00039 part-00039 55193.0 1.664295994e12
dbfs:/datasets/sds/songs/data-001/part-00040 part-00040 54537.0 1.664295983e12
dbfs:/datasets/sds/songs/data-001/part-00041 part-00041 52402.0 1.664295987e12
dbfs:/datasets/sds/songs/data-001/part-00042 part-00042 54673.0 1.664295988e12
dbfs:/datasets/sds/songs/data-001/part-00043 part-00043 53009.0 1.66429598e12
dbfs:/datasets/sds/songs/data-001/part-00044 part-00044 51789.0 1.664295982e12
dbfs:/datasets/sds/songs/data-001/part-00045 part-00045 52986.0 1.664295988e12
dbfs:/datasets/sds/songs/data-001/part-00046 part-00046 54442.0 1.664295993e12
dbfs:/datasets/sds/songs/data-001/part-00047 part-00047 52971.0 1.664295991e12
dbfs:/datasets/sds/songs/data-001/part-00048 part-00048 53331.0 1.664295985e12
dbfs:/datasets/sds/songs/data-001/part-00049 part-00049 44263.0 1.664295994e12
dbfs:/datasets/sds/songs/data-001/part-00050 part-00050 54841.0 1.664295993e12
dbfs:/datasets/sds/songs/data-001/part-00051 part-00051 54306.0 1.664295982e12
dbfs:/datasets/sds/songs/data-001/part-00052 part-00052 53610.0 1.664295986e12
dbfs:/datasets/sds/songs/data-001/part-00053 part-00053 53573.0 1.66429598e12
dbfs:/datasets/sds/songs/data-001/part-00054 part-00054 53854.0 1.664295994e12
dbfs:/datasets/sds/songs/data-001/part-00055 part-00055 54236.0 1.664295989e12
dbfs:/datasets/sds/songs/data-001/part-00056 part-00056 54455.0 1.664295989e12
dbfs:/datasets/sds/songs/data-001/part-00057 part-00057 52307.0 1.664295983e12
dbfs:/datasets/sds/songs/data-001/part-00058 part-00058 52313.0 1.664295992e12
dbfs:/datasets/sds/songs/data-001/part-00059 part-00059 52446.0 1.664295992e12
dbfs:/datasets/sds/songs/data-001/part-00060 part-00060 51958.0 1.664295986e12
dbfs:/datasets/sds/songs/data-001/part-00061 part-00061 53859.0 1.664295987e12
dbfs:/datasets/sds/songs/data-001/part-00062 part-00062 53698.0 1.664295981e12
dbfs:/datasets/sds/songs/data-001/part-00063 part-00063 54482.0 1.66429599e12
dbfs:/datasets/sds/songs/data-001/part-00064 part-00064 40182.0 1.664295979e12
dbfs:/datasets/sds/songs/data-001/part-00065 part-00065 54410.0 1.66429598e12
dbfs:/datasets/sds/songs/data-001/part-00066 part-00066 49123.0 1.66429598e12
dbfs:/datasets/sds/songs/data-001/part-00067 part-00067 50796.0 1.664295992e12
dbfs:/datasets/sds/songs/data-001/part-00068 part-00068 49561.0 1.664295986e12
dbfs:/datasets/sds/songs/data-001/part-00069 part-00069 52294.0 1.664295994e12
dbfs:/datasets/sds/songs/data-001/part-00070 part-00070 51250.0 1.66429598e12
dbfs:/datasets/sds/songs/data-001/part-00071 part-00071 58942.0 1.664295986e12
dbfs:/datasets/sds/songs/data-001/part-00072 part-00072 54589.0 1.664295986e12
dbfs:/datasets/sds/songs/data-001/part-00073 part-00073 54233.0 1.66429599e12
dbfs:/datasets/sds/songs/data-001/part-00074 part-00074 54725.0 1.664295982e12
dbfs:/datasets/sds/songs/data-001/part-00075 part-00075 54877.0 1.66429599e12
dbfs:/datasets/sds/songs/data-001/part-00076 part-00076 54333.0 1.664295984e12
dbfs:/datasets/sds/songs/data-001/part-00077 part-00077 51927.0 1.664295984e12
dbfs:/datasets/sds/songs/data-001/part-00078 part-00078 51744.0 1.664295994e12
dbfs:/datasets/sds/songs/data-001/part-00079 part-00079 53187.0 1.664295986e12
dbfs:/datasets/sds/songs/data-001/part-00080 part-00080 43246.0 1.664295985e12
dbfs:/datasets/sds/songs/data-001/part-00081 part-00081 54269.0 1.664295993e12
dbfs:/datasets/sds/songs/data-001/part-00082 part-00082 48464.0 1.66429599e12
dbfs:/datasets/sds/songs/data-001/part-00083 part-00083 52144.0 1.664295982e12
dbfs:/datasets/sds/songs/data-001/part-00084 part-00084 53375.0 1.664295981e12
dbfs:/datasets/sds/songs/data-001/part-00085 part-00085 55139.0 1.664295983e12
dbfs:/datasets/sds/songs/data-001/part-00086 part-00086 50924.0 1.664295985e12
dbfs:/datasets/sds/songs/data-001/part-00087 part-00087 52013.0 1.664295982e12
dbfs:/datasets/sds/songs/data-001/part-00088 part-00088 54262.0 1.664295992e12
dbfs:/datasets/sds/songs/data-001/part-00089 part-00089 53007.0 1.664295989e12
dbfs:/datasets/sds/songs/data-001/part-00090 part-00090 55142.0 1.664295979e12
dbfs:/datasets/sds/songs/data-001/part-00091 part-00091 52049.0 1.664295991e12
dbfs:/datasets/sds/songs/data-001/part-00092 part-00092 54714.0 1.664295987e12
dbfs:/datasets/sds/songs/data-001/part-00093 part-00093 52906.0 1.664295991e12
dbfs:/datasets/sds/songs/data-001/part-00094 part-00094 52188.0 1.664295985e12
dbfs:/datasets/sds/songs/data-001/part-00095 part-00095 50768.0 1.664295988e12
dbfs:/datasets/sds/songs/data-001/part-00096 part-00096 55242.0 1.66429598e12
dbfs:/datasets/sds/songs/data-001/part-00097 part-00097 52059.0 1.664295988e12
dbfs:/datasets/sds/songs/data-001/part-00098 part-00098 52982.0 1.664295989e12
dbfs:/datasets/sds/songs/data-001/part-00099 part-00099 52015.0 1.664295982e12
dbfs:/datasets/sds/songs/data-001/part-00100 part-00100 51467.0 1.664295983e12
dbfs:/datasets/sds/songs/data-001/part-00101 part-00101 50926.0 1.664295984e12
dbfs:/datasets/sds/songs/data-001/part-00102 part-00102 55018.0 1.664295994e12
dbfs:/datasets/sds/songs/data-001/part-00103 part-00103 50043.0 1.664295981e12
dbfs:/datasets/sds/songs/data-001/part-00104 part-00104 51936.0 1.664295992e12
dbfs:/datasets/sds/songs/data-001/part-00105 part-00105 57311.0 1.664295984e12
dbfs:/datasets/sds/songs/data-001/part-00106 part-00106 55090.0 1.66429599e12
dbfs:/datasets/sds/songs/data-001/part-00107 part-00107 54396.0 1.664295984e12
dbfs:/datasets/sds/songs/data-001/part-00108 part-00108 56594.0 1.664295987e12
dbfs:/datasets/sds/songs/data-001/part-00109 part-00109 53260.0 1.664295992e12
dbfs:/datasets/sds/songs/data-001/part-00110 part-00110 42007.0 1.664295984e12
dbfs:/datasets/sds/songs/data-001/part-00119 part-00119 0.0 1.664295989e12

As you can see in the listing we have data files and a single header file. The header file seems interesting and worth a first inspection at first. The file is 377 bytes, therefore it is safe to collect the entire content of the file in the notebook.

sc.textFile("/datasets/sds/songs/data-001/header.txt").collect() 
res1: Array[String] = Array(artist_id:string, artist_latitude:double, artist_longitude:double, artist_location:string, artist_name:string, duration:double, end_of_fade_in:double, key:int, key_confidence:double, loudness:double, release:string, song_hotnes:double, song_id:string, start_of_fade_out:double, tempo:double, time_signature:double, time_signature_confidence:double, title:string, year:double, partial_sequence:int)

Remember you can collect() a huge RDD and crash the driver program - so it is a good practise to take a couple lines and count the number of lines, especially if you have no idea what file you are trying to read.

sc.textFile("/datasets/sds/songs/data-001/header.txt").take(2)
res2: Array[String] = Array(artist_id:string, artist_latitude:double)
sc.textFile("/datasets/sds/songs/data-001/header.txt").count()
res3: Long = 20
sc.textFile("/datasets/sds/songs/data-001/header.txt").collect.map(println) // uncomment to see line-by-line
artist_id:string
artist_latitude:double
artist_longitude:double
artist_location:string
artist_name:string
duration:double
end_of_fade_in:double
key:int
key_confidence:double
loudness:double
release:string
song_hotnes:double
song_id:string
start_of_fade_out:double
tempo:double
time_signature:double
time_signature_confidence:double
title:string
year:double
partial_sequence:int
res4: Array[Unit] = Array((), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), ())

As seen above each line in the header consists of a name and a type separated by colon. We will need to parse the header file as follows:

val header = sc.textFile("/datasets/sds/songs/data-001/header.txt").map(
      line => {
                val headerElement = line.split(":")
                (headerElement(0), headerElement(1))
            }
           ).collect()
header: Array[(String, String)] = Array((artist_id,string), (artist_latitude,double), (artist_longitude,double), (artist_location,string), (artist_name,string), (duration,double), (end_of_fade_in,double), (key,int), (key_confidence,double), (loudness,double), (release,string), (song_hotnes,double), (song_id,string), (start_of_fade_out,double), (tempo,double), (time_signature,double), (time_signature_confidence,double), (title,string), (year,double), (partial_sequence,int))

Let's define a case class called Song that will be used to represent each row of data in the files:

  • /databricks-datasets/songs/data-001/part-00000 through /databricks-datasets/songs/data-001/part-00119 or the last .../part-***** file.
case class Song(artist_id: String, artist_latitude: Double, artist_longitude: Double, artist_location: String, artist_name: String, duration: Double, end_of_fade_in: Double, key: Int, key_confidence: Double, loudness: Double, release: String, song_hotness: Double, song_id: String, start_of_fade_out: Double, tempo: Double, time_signature: Double, time_signature_confidence: Double, title: String, year: Double, partial_sequence: Int)
defined class Song

Now we turn to data files. First, step is inspecting the first line of data to inspect its format.

// this is loads all the data - a subset of the 1M songs dataset
val dataRDD = sc.textFile("/datasets/sds/songs/data-001/part-*") 
dataRDD: org.apache.spark.rdd.RDD[String] = /datasets/sds/songs/data-001/part-* MapPartitionsRDD[209] at textFile at command-2971213210276292:2
dataRDD.count // number of songs
res5: Long = 31369
dataRDD.take(3)
res6: Array[String] = Array(AR81V6H1187FB48872	nan	nan		Earl Sixteen	213.7073	0.0	11	0.419	-12.106	Soldier of Jah Army	nan	SOVNZSZ12AB018A9B8	208.289	125.882	1	0.0	Rastaman	2003	--, ARVVZQP11E2835DBCB	nan	nan		Wavves	133.25016	0.0	0	0.282	0.596	Wavvves	0.471578247701	SOJTQHQ12A8C143C5F	128.116	89.519	1	0.0	I Want To See You (And Go To The Movies)	2009	--, ARFG9M11187FB3BBCB	nan	nan	Nashua USA	C-Side	247.32689	0.0	9	0.612	-4.896	Santa Festival Compilation 2008 vol.1	nan	SOAJSQL12AB0180501	242.196	171.278	5	1.0	Loose on the Dancefloor	0	225261)

Each line of data consists of multiple fields separated by \t. With that information and what we learned from the header file, we set out to parse our data.

  • We have already created a case class based on the header (which seems to agree with the 3 lines above).
  • Next, we will create a function that takes each line as input and returns the case class as output.
// let's do this 'by hand' to re-flex our RDD-muscles :)
// although this is not a robust way to read from a data engineering perspective (without fielding exceptions)
def parseLine(line: String): Song = {
  
  val tokens = line.split("\t")
  Song(tokens(0), tokens(1).toDouble, tokens(2).toDouble, tokens(3), tokens(4), tokens(5).toDouble, tokens(6).toDouble, tokens(7).toInt, tokens(8).toDouble, tokens(9).toDouble, tokens(10), tokens(11).toDouble, tokens(12), tokens(13).toDouble, tokens(14).toDouble, tokens(15).toDouble, tokens(16).toDouble, tokens(17), tokens(18).toDouble, tokens(19).toInt)
}
parseLine: (line: String)Song

With this function we can transform the dataRDD to another RDD that consists of Song case classes

val parsedRDD = dataRDD.map(parseLine)
parsedRDD: org.apache.spark.rdd.RDD[Song] = MapPartitionsRDD[210] at map at command-2971213210276298:1

To convert an RDD of case classes to a DataFrame, we just need to call the toDF method

val df = parsedRDD.toDF
df: org.apache.spark.sql.DataFrame = [artist_id: string, artist_latitude: double ... 18 more fields]

Once we get a DataFrame we can register it as a temporary table. That will allow us to use its name in SQL queries.

df.createOrReplaceTempView("songsTable")

We can now cache our table. So far all operations have been lazy. This is the first time Spark will attempt to actually read all our data and apply the transformations.

If you are running Spark 1.6+ the next command will throw a parsing error.

cache table songsTable

The error means that we are trying to convert a missing value to a Double. Here is an updated version of the parseLine function to deal with missing values.

// good data engineering science practise
def parseLine(line: String): Song = {
  
  
  def toDouble(value: String, defaultVal: Double): Double = {
    try {
       value.toDouble
    } catch {
      case e: Exception => defaultVal
    }
  }

  def toInt(value: String, defaultVal: Int): Int = {
    try {
       value.toInt
      } catch {
      case e: Exception => defaultVal
    }
  }
  
  val tokens = line.split("\t")
  Song(tokens(0), toDouble(tokens(1), 0.0), toDouble(tokens(2), 0.0), tokens(3), tokens(4), toDouble(tokens(5), 0.0), toDouble(tokens(6), 0.0), toInt(tokens(7), -1), toDouble(tokens(8), 0.0), toDouble(tokens(9), 0.0), tokens(10), toDouble(tokens(11), 0.0), tokens(12), toDouble(tokens(13), 0.0), toDouble(tokens(14), 0.0), toDouble(tokens(15), 0.0), toDouble(tokens(16), 0.0), tokens(17), toDouble(tokens(18), 0.0), toInt(tokens(19), -1))
}
parseLine: (line: String)Song
val df = dataRDD.map(parseLine).toDF
df.createOrReplaceTempView("songsTable")
df: org.apache.spark.sql.DataFrame = [artist_id: string, artist_latitude: double ... 18 more fields]

And let's try caching the table. We are going to access this data multiple times in following notebooks, therefore it is a good idea to cache it in memory for faster subsequent access.

cache table songsTable

From now on we can easily query our data using the temporary table we just created and cached in memory. Since it is registered as a table we can conveniently use SQL as well as Spark API to access it.

select * from songsTable limit 10
artist_id artist_latitude artist_longitude artist_location artist_name duration end_of_fade_in key key_confidence loudness release song_hotness song_id start_of_fade_out tempo time_signature time_signature_confidence title year partial_sequence
AR81V6H1187FB48872 0.0 0.0 Earl Sixteen 213.7073 0.0 11.0 0.419 -12.106 Soldier of Jah Army 0.0 SOVNZSZ12AB018A9B8 208.289 125.882 1.0 0.0 Rastaman 2003.0 -1.0
ARVVZQP11E2835DBCB 0.0 0.0 Wavves 133.25016 0.0 0.0 0.282 0.596 Wavvves 0.471578247701 SOJTQHQ12A8C143C5F 128.116 89.519 1.0 0.0 I Want To See You (And Go To The Movies) 2009.0 -1.0
ARFG9M11187FB3BBCB 0.0 0.0 Nashua USA C-Side 247.32689 0.0 9.0 0.612 -4.896 Santa Festival Compilation 2008 vol.1 0.0 SOAJSQL12AB0180501 242.196 171.278 5.0 1.0 Loose on the Dancefloor 0.0 225261.0
ARK4Z2O1187FB45FF0 0.0 0.0 Harvest 337.05751 0.247 4.0 0.46 -9.092 Underground Community 0.0 SOTDRVW12AB018BEB9 327.436 84.986 4.0 0.673 No Return 0.0 101619.0
AR4VQSG1187FB57E18 35.25082 -91.74015 Searcy, AR Gossip 430.23628 0.0 2.0 3.4e-2 -6.846 Yr Mangled Heart 0.0 SOTVOCL12A8AE478DD 424.06 121.998 4.0 0.847 Yr Mangled Heart 2006.0 740623.0
ARNBV1X1187B996249 0.0 0.0 Alex 186.80118 0.0 4.0 0.641 -16.108 Jolgaledin 0.0 SODTGRY12AB0182438 166.156 140.735 4.0 5.5e-2 Mariu Sonur Jesus 0.0 673970.0
ARXOEZX1187B9B82A1 0.0 0.0 Elie Attieh 361.89995 0.0 7.0 0.863 -4.919 ELITE 0.0 SOIINTJ12AB0180BA6 354.476 128.024 4.0 0.399 Fe Yom We Leila 0.0 280304.0
ARXPUIA1187B9A32F1 0.0 0.0 Rome, Italy Simone Cristicchi 220.00281 2.119 4.0 0.486 -6.52 Dall'Altra Parte Del Cancello 0.484225272411 SONHXJK12AAF3B5290 214.761 99.954 1.0 0.928 L'Italiano 2007.0 745962.0
ARNPPTH1187B9AD429 51.4855 -0.37196 Heston, Middlesex, England Jimmy Page 156.86485 0.334 7.0 0.493 -9.962 No Introduction Necessary [Deluxe Edition] 0.0 SOGUHGW12A58A80E06 149.269 162.48 4.0 0.534 Wailing Sounds 2004.0 599250.0
AROGWRA122988FEE45 0.0 0.0 Christos Dantis 256.67873 2.537 9.0 0.742 -13.404 Daktilika Apotipomata 0.0 SOJJOYI12A8C13399D 248.912 134.944 4.0 0.162 Stin Proigoumeni Zoi 0.0 611396.0

Next up is exploring this data. Click on the Exploration notebook to continue the tutorial.

ScaDaMaLe Course site and book

Million Song Dataset - Kaggle Challenge

Predict which songs a user will listen to.

SOURCE: This is just a Scala-rification of the Python notebook published in databricks community edition in 2016.

Stage 2: Exploring songs data

This is the second notebook in this tutorial. In this notebook we do what any data scientist does with their data right after parsing it: exploring and understanding different aspect of data. Make sure you understand how we get the songsTable by reading and running the ETL notebook. In the ETL notebook we created and cached a temporary table named songsTable

Let's Do all the main bits in Stage 1 now before doing Stage 2 in this Notebook.

// Let's quickly do everything to register the tempView of the table here

// fill in comment ... EXERCISE!
case class Song(artist_id: String, artist_latitude: Double, artist_longitude: Double, artist_location: String, artist_name: String, duration: Double, end_of_fade_in: Double, key: Int, key_confidence: Double, loudness: Double, release: String, song_hotness: Double, song_id: String, start_of_fade_out: Double, tempo: Double, time_signature: Double, time_signature_confidence: Double, title: String, year: Double, partial_sequence: Int)

def parseLine(line: String): Song = {
  // fill in comment ...
  
  def toDouble(value: String, defaultVal: Double): Double = {
    try {
       value.toDouble
    } catch {
      case e: Exception => defaultVal
    }
  }

  def toInt(value: String, defaultVal: Int): Int = {
    try {
       value.toInt
      } catch {
      case e: Exception => defaultVal
    }
  }
  // fill in comment ...
  val tokens = line.split("\t")
  Song(tokens(0), toDouble(tokens(1), 0.0), toDouble(tokens(2), 0.0), tokens(3), tokens(4), toDouble(tokens(5), 0.0), toDouble(tokens(6), 0.0), toInt(tokens(7), -1), toDouble(tokens(8), 0.0), toDouble(tokens(9), 0.0), tokens(10), toDouble(tokens(11), 0.0), tokens(12), toDouble(tokens(13), 0.0), toDouble(tokens(14), 0.0), toDouble(tokens(15), 0.0), toDouble(tokens(16), 0.0), tokens(17), toDouble(tokens(18), 0.0), toInt(tokens(19), -1))
}

// this is loads all the data - a subset of the 1M songs dataset
val dataRDD = sc.textFile("/datasets/sds/songs/data-001/part-*") 

// .. fill in comment
val df = dataRDD.map(parseLine).toDF

// .. fill in comment
df.createOrReplaceTempView("songsTable")
defined class Song
parseLine: (line: String)Song
dataRDD: org.apache.spark.rdd.RDD[String] = /datasets/sds/songs/data-001/part-* MapPartitionsRDD[236] at textFile at command-2971213210276755:30
df: org.apache.spark.sql.DataFrame = [artist_id: string, artist_latitude: double ... 18 more fields]
spark.catalog.listTables.show(false) // make sure the temp view of our table is there
+----------------------------+--------+-----------+---------+-----------+
|name                        |database|description|tableType|isTemporary|
+----------------------------+--------+-----------+---------+-----------+
|all_prices                  |default |null       |MANAGED  |false      |
|bitcoin_normed_window       |default |null       |MANAGED  |false      |
|bitcoin_reversals_window    |default |null       |MANAGED  |false      |
|countrycodes                |default |null       |EXTERNAL |false      |
|gold_normed_window          |default |null       |MANAGED  |false      |
|gold_reversals_window       |default |null       |MANAGED  |false      |
|ltcar_locations_2_csv       |default |null       |MANAGED  |false      |
|magellan                    |default |null       |MANAGED  |false      |
|mobile_sample               |default |null       |EXTERNAL |false      |
|oil_normed_window           |default |null       |MANAGED  |false      |
|oil_reversals_window        |default |null       |MANAGED  |false      |
|oil_reversals_window2       |default |null       |MANAGED  |false      |
|over300all_2_txt            |default |null       |MANAGED  |false      |
|person                      |default |null       |MANAGED  |false      |
|personer                    |default |null       |MANAGED  |false      |
|persons                     |default |null       |MANAGED  |false      |
|simple_range                |default |null       |MANAGED  |false      |
|social_media_usage          |default |null       |MANAGED  |false      |
|social_media_usage_csv_gui  |default |null       |MANAGED  |false      |
|voronoi20191213uppsla1st_txt|default |null       |MANAGED  |false      |
+----------------------------+--------+-----------+---------+-----------+
only showing top 20 rows

A first inspection

A first step to any data exploration is viewing sample data. For this purpose we can use a simple SQL query that returns first 10 rows.

select * from songsTable limit 10
artist_id artist_latitude artist_longitude artist_location artist_name duration end_of_fade_in key key_confidence loudness release song_hotness song_id start_of_fade_out tempo time_signature time_signature_confidence title year partial_sequence
AR81V6H1187FB48872 0.0 0.0 Earl Sixteen 213.7073 0.0 11.0 0.419 -12.106 Soldier of Jah Army 0.0 SOVNZSZ12AB018A9B8 208.289 125.882 1.0 0.0 Rastaman 2003.0 -1.0
ARVVZQP11E2835DBCB 0.0 0.0 Wavves 133.25016 0.0 0.0 0.282 0.596 Wavvves 0.471578247701 SOJTQHQ12A8C143C5F 128.116 89.519 1.0 0.0 I Want To See You (And Go To The Movies) 2009.0 -1.0
ARFG9M11187FB3BBCB 0.0 0.0 Nashua USA C-Side 247.32689 0.0 9.0 0.612 -4.896 Santa Festival Compilation 2008 vol.1 0.0 SOAJSQL12AB0180501 242.196 171.278 5.0 1.0 Loose on the Dancefloor 0.0 225261.0
ARK4Z2O1187FB45FF0 0.0 0.0 Harvest 337.05751 0.247 4.0 0.46 -9.092 Underground Community 0.0 SOTDRVW12AB018BEB9 327.436 84.986 4.0 0.673 No Return 0.0 101619.0
AR4VQSG1187FB57E18 35.25082 -91.74015 Searcy, AR Gossip 430.23628 0.0 2.0 3.4e-2 -6.846 Yr Mangled Heart 0.0 SOTVOCL12A8AE478DD 424.06 121.998 4.0 0.847 Yr Mangled Heart 2006.0 740623.0
ARNBV1X1187B996249 0.0 0.0 Alex 186.80118 0.0 4.0 0.641 -16.108 Jolgaledin 0.0 SODTGRY12AB0182438 166.156 140.735 4.0 5.5e-2 Mariu Sonur Jesus 0.0 673970.0
ARXOEZX1187B9B82A1 0.0 0.0 Elie Attieh 361.89995 0.0 7.0 0.863 -4.919 ELITE 0.0 SOIINTJ12AB0180BA6 354.476 128.024 4.0 0.399 Fe Yom We Leila 0.0 280304.0
ARXPUIA1187B9A32F1 0.0 0.0 Rome, Italy Simone Cristicchi 220.00281 2.119 4.0 0.486 -6.52 Dall'Altra Parte Del Cancello 0.484225272411 SONHXJK12AAF3B5290 214.761 99.954 1.0 0.928 L'Italiano 2007.0 745962.0
ARNPPTH1187B9AD429 51.4855 -0.37196 Heston, Middlesex, England Jimmy Page 156.86485 0.334 7.0 0.493 -9.962 No Introduction Necessary [Deluxe Edition] 0.0 SOGUHGW12A58A80E06 149.269 162.48 4.0 0.534 Wailing Sounds 2004.0 599250.0
AROGWRA122988FEE45 0.0 0.0 Christos Dantis 256.67873 2.537 9.0 0.742 -13.404 Daktilika Apotipomata 0.0 SOJJOYI12A8C13399D 248.912 134.944 4.0 0.162 Stin Proigoumeni Zoi 0.0 611396.0
table("songsTable").printSchema()
root
 |-- artist_id: string (nullable = true)
 |-- artist_latitude: double (nullable = false)
 |-- artist_longitude: double (nullable = false)
 |-- artist_location: string (nullable = true)
 |-- artist_name: string (nullable = true)
 |-- duration: double (nullable = false)
 |-- end_of_fade_in: double (nullable = false)
 |-- key: integer (nullable = false)
 |-- key_confidence: double (nullable = false)
 |-- loudness: double (nullable = false)
 |-- release: string (nullable = true)
 |-- song_hotness: double (nullable = false)
 |-- song_id: string (nullable = true)
 |-- start_of_fade_out: double (nullable = false)
 |-- tempo: double (nullable = false)
 |-- time_signature: double (nullable = false)
 |-- time_signature_confidence: double (nullable = false)
 |-- title: string (nullable = true)
 |-- year: double (nullable = false)
 |-- partial_sequence: integer (nullable = false)
select count(*) from songsTable
count(1)
31369.0
table("songsTable").count() // or equivalently with DataFrame API - recall table("songsTable") is a DataFrame
res4: Long = 31369
display(sqlContext.sql("SELECT duration, year FROM songsTable")) // Aggregation is set to 'Average' in 'Plot Options'
duration year
213.7073 2003.0
133.25016 2009.0
247.32689 0.0
337.05751 0.0
430.23628 2006.0
186.80118 0.0
361.89995 0.0
220.00281 2007.0
156.86485 2004.0
256.67873 0.0
204.64281 0.0
112.48281 0.0
170.39628 0.0
215.95383 0.0
303.62077 0.0
266.60526 0.0
326.19057 1997.0
51.04281 2009.0
129.4624 0.0
253.33506 2003.0
237.76608 2004.0
132.96281 0.0
399.35955 2006.0
168.75057 1991.0
396.042 0.0
192.10404 1968.0
12.2771 2006.0
367.56853 0.0
189.93587 0.0
233.50812 0.0
462.68036 0.0
202.60526 0.0
241.52771 0.0
275.64363 1992.0
350.69342 2007.0
166.55628 1968.0
249.49506 1983.0
53.86404 1992.0
233.76934 2001.0
275.12118 2009.0
191.13751 2006.0
299.07546 0.0
468.74077 0.0
110.34077 0.0
234.78812 2003.0
705.25342 2006.0
383.52934 0.0
196.10077 0.0
299.20608 1998.0
94.04036 0.0
28.08118 2006.0
207.93424 2006.0
152.0322 1999.0
207.96036 2002.0
371.25179 0.0
288.93995 2002.0
235.93751 2004.0
505.70404 0.0
177.57995 0.0
376.842 2004.0
266.84036 2004.0
270.8371 2006.0
178.18077 0.0
527.17669 0.0
244.27057 0.0
436.47955 2006.0
236.79955 0.0
134.53016 2005.0
181.002 0.0
239.41179 1999.0
72.98567 0.0
214.36036 2001.0
150.59546 2007.0
152.45016 1970.0
218.17424 0.0
290.63791 0.0
149.05424 0.0
440.21506 0.0
212.34893 1988.0
278.67383 0.0
269.60934 1974.0
182.69995 2002.0
207.882 2007.0
102.50404 0.0
437.60281 0.0
216.11057 2009.0
193.25342 0.0
234.16118 2009.0
695.77098 0.0
297.58649 1996.0
265.37751 2000.0
182.85669 1990.0
202.23955 0.0
390.08608 2009.0
242.78159 2000.0
242.54649 2002.0
496.66567 2004.0
395.36281 0.0
234.89261 1999.0
237.84444 2005.0
313.57342 2009.0
489.22077 2001.0
239.98649 2004.0
128.65261 0.0
193.07057 0.0
144.19546 0.0
196.96281 2006.0
222.06649 1997.0
58.38322 0.0
346.14812 1998.0
406.54322 0.0
304.09098 2009.0
180.21832 2003.0
213.41995 0.0
323.44771 0.0
54.7522 2009.0
437.02812 1994.0
268.7473 2009.0
104.75057 0.0
248.60689 2006.0
221.41342 0.0
237.81832 1991.0
216.34567 2009.0
78.94159 0.0
47.22893 2005.0
202.00444 2007.0
293.56363 0.0
206.44526 1986.0
267.78077 2003.0
187.27138 2008.0
249.05098 2009.0
221.51791 0.0
452.88444 0.0
163.76118 1992.0
257.17506 0.0
235.78077 0.0
257.82812 1996.0
195.34322 0.0
478.1971 0.0
268.01587 1997.0
136.93342 1983.0
397.53098 0.0
194.69016 2001.0
580.80608 0.0
177.71057 2006.0
257.43628 1999.0
184.13669 0.0
64.57424 2001.0
123.92444 1993.0
257.07057 0.0
219.48036 1996.0
679.41832 0.0
252.29016 1995.0
311.90159 2004.0
252.76036 1998.0
138.94485 0.0
428.64281 0.0
295.31383 0.0
212.03546 0.0
426.50077 0.0
197.11955 0.0
191.55546 0.0
187.53261 2006.0
184.97261 2004.0
388.41424 2009.0
218.90567 0.0
246.49098 0.0
452.88444 0.0
223.18975 0.0
245.2371 0.0
148.92363 0.0
362.81424 2005.0
171.44118 0.0
207.72526 2005.0
191.29424 0.0
208.50893 0.0
240.24771 1995.0
373.44608 2002.0
172.01587 0.0
153.25995 2007.0
242.36363 1994.0
177.55383 0.0
263.20934 1994.0
191.03302 2007.0
232.77669 0.0
220.65587 0.0
132.57098 2002.0
189.6224 1993.0
32.522 1997.0
173.94893 0.0
268.01587 2006.0
91.97669 0.0
215.77098 0.0
195.47383 0.0
234.81424 1977.0
110.78485 0.0
155.74159 0.0
172.5122 0.0
227.76118 1995.0
233.01179 2007.0
298.89261 0.0
245.36771 1994.0
276.08771 2005.0
375.77098 2003.0
273.71057 0.0
226.92526 0.0
196.46649 0.0
199.65342 1995.0
243.40853 0.0
207.62077 2006.0
252.73424 0.0
244.32281 0.0
152.65914 0.0
203.88526 2003.0
120.16281 0.0
214.77832 1977.0
204.9824 0.0
118.30812 1996.0
205.26975 0.0
499.22567 0.0
217.83465 2005.0
192.57424 2005.0
328.09751 0.0
298.03057 1968.0
501.49832 0.0
276.40118 0.0
507.55873 2006.0
191.08526 2008.0
324.38812 0.0
218.56608 0.0
232.30649 0.0
295.05261 1972.0
225.74975 2003.0
522.00444 0.0
245.86404 1967.0
263.67955 0.0
556.61669 2009.0
227.94404 1998.0
83.82649 1964.0
242.85995 0.0
233.09016 2008.0
201.74322 0.0
476.15955 0.0
370.93832 2005.0
229.17179 0.0
288.07791 2001.0
91.34975 0.0
230.79138 2005.0
256.46975 2003.0
203.44118 0.0
230.81751 2003.0
272.29995 0.0
201.22077 2008.0
204.93016 2010.0
372.84526 0.0
63.65995 2005.0
412.15955 0.0
270.10567 0.0
104.6722 0.0
214.25587 1970.0
230.05995 0.0
155.74159 0.0
218.04363 2008.0
357.77261 2007.0
318.27546 1985.0
444.55138 2010.0
509.07383 0.0
176.95302 0.0
95.34649 0.0
207.67302 0.0
256.67873 1994.0
252.78649 0.0
234.60526 0.0
167.65342 0.0
266.16118 0.0
188.05506 0.0
229.14567 2009.0
227.00363 2004.0
74.50077 1992.0
222.09261 0.0
212.68853 1984.0
155.74159 0.0
153.65179 0.0
548.51873 0.0
445.90975 2003.0
317.49179 1999.0
140.32934 0.0
309.4722 0.0
142.91546 0.0
429.24363 2007.0
172.19873 0.0
215.562 0.0
290.79465 2009.0
197.04118 0.0
309.44608 0.0
265.01179 1999.0
257.64526 2000.0
203.54567 0.0
161.56689 0.0
177.84118 0.0
260.04853 2004.0
195.00363 1988.0
268.042 0.0
195.97016 1991.0
351.92118 0.0
119.35302 0.0
177.24036 0.0
259.83955 0.0
222.51057 2008.0
163.97016 2004.0
139.49342 0.0
158.77179 0.0
193.4624 2000.0
131.082 1963.0
190.95465 1998.0
413.3873 2005.0
134.73914 1966.0
162.40281 1965.0
243.59138 1965.0
180.84526 0.0
315.14077 0.0
221.51791 1994.0
122.53995 2008.0
243.43465 1990.0
200.202 1982.0
95.50322 2000.0
200.4371 1998.0
186.93179 0.0
492.22485 1999.0
359.33995 1972.0
89.39057 1990.0
212.81914 0.0
315.03628 1996.0
214.69995 0.0
137.92608 1993.0
559.49016 0.0
382.14485 1991.0
430.31465 2008.0
171.25832 0.0
210.12853 2002.0
53.18485 2005.0
78.65424 1993.0
209.162 2008.0
237.60934 2006.0
184.47628 2009.0
323.02975 1997.0
158.27546 0.0
213.86404 0.0
470.69995 0.0
229.79873 2005.0
392.22812 0.0
196.62322 0.0
80.97914 0.0
124.55138 1989.0
230.32118 1971.0
132.51873 0.0
112.95302 1994.0
131.52608 0.0
153.25995 2010.0
211.01669 0.0
218.93179 2008.0
175.0722 2010.0
116.61016 1997.0
251.45424 2001.0
269.50485 2004.0
231.47057 0.0
298.37016 1996.0
314.122 2005.0
263.99302 0.0
480.91383 2001.0
305.10975 0.0
280.16281 0.0
295.65342 1999.0
411.45424 2007.0
265.97832 0.0
153.96526 0.0
210.31138 1970.0
241.44934 0.0
235.33669 0.0
352.65261 0.0
293.35465 0.0
243.66975 2003.0
133.22404 0.0
233.03791 0.0
339.93098 0.0
249.80853 1993.0
253.72689 2004.0
94.35383 1981.0
130.63791 0.0
195.36934 0.0
229.25016 2007.0
314.64444 2007.0
329.1424 1998.0
224.46975 1990.0
215.562 1987.0
236.85179 1990.0
197.11955 1957.0
251.76771 2004.0
183.50975 0.0
268.01587 2005.0
413.02159 0.0
385.17506 2000.0
358.16444 0.0
164.77995 0.0
253.36118 2004.0
196.49261 2007.0
157.6224 1999.0
310.93506 0.0
434.96444 1991.0
157.04771 1991.0
266.16118 2007.0
267.59791 1977.0
303.90812 0.0
277.18485 2009.0
272.22159 0.0
155.95057 0.0
127.00689 1997.0
152.86812 2005.0
224.7571 1990.0
175.41179 0.0
151.97995 0.0
199.99302 0.0
251.53261 0.0
252.96934 2004.0
181.13261 1984.0
195.49995 0.0
328.202 2001.0
187.71546 0.0
166.94812 1985.0
242.72934 1988.0
218.80118 2005.0
205.68771 0.0
146.93832 1996.0
449.4624 2000.0
503.40526 0.0
181.34159 0.0
143.90812 0.0
406.36036 0.0
269.87057 0.0
265.29914 0.0
242.88608 0.0
110.39302 0.0
262.84363 0.0
334.00118 1990.0
173.81832 2007.0
608.78322 0.0
197.22404 0.0
163.94404 2008.0
93.09995 2001.0
206.75873 0.0
183.50975 0.0
402.442 0.0
735.79057 1986.0
233.19465 1997.0
326.55628 0.0
525.50485 0.0
396.19873 0.0
171.12771 0.0
318.1971 2006.0
323.70893 2002.0
526.99383 0.0
161.09669 1991.0
168.41098 1990.0
249.57342 0.0
405.4722 0.0
271.0722 2010.0
190.69342 2009.0
151.61424 2001.0
121.57342 0.0
117.08036 0.0
244.24444 2008.0
246.85669 0.0
144.03873 2007.0
169.79546 1988.0
193.93261 2004.0
325.77261 0.0
337.34485 0.0
143.67302 2009.0
211.69587 0.0
299.4673 1978.0
159.76444 0.0
337.31873 0.0
259.18649 2007.0
221.64853 0.0
164.54485 0.0
56.34567 0.0
184.21506 0.0
249.23383 2010.0
127.29424 1994.0
306.6771 1980.0
168.98567 0.0
290.2722 0.0
182.33424 2004.0
180.92363 0.0
233.76934 1990.0
423.70567 0.0
139.36281 0.0
289.72363 2005.0
100.96281 2005.0
153.05098 2009.0
129.25342 0.0
190.11873 1993.0
158.1971 0.0
234.94485 2000.0
256.02567 0.0
279.84934 0.0
217.7824 2005.0
271.62077 2005.0
372.34893 0.0
264.88118 0.0
270.18404 1984.0
42.86649 0.0
247.27465 0.0
185.10322 1990.0
333.94893 0.0
380.49914 1999.0
517.72036 0.0
208.95302 2006.0
359.73179 0.0
378.72281 1995.0
110.41914 0.0
237.37424 2003.0
136.30649 0.0
153.73016 2005.0
209.8673 2007.0
224.86159 0.0
202.34404 0.0
229.43302 0.0
300.56444 2003.0
264.35873 0.0
213.9424 0.0
164.77995 2004.0
206.75873 0.0
249.73016 2009.0
521.11628 2002.0
240.09098 0.0
347.89832 0.0
224.96608 1993.0
250.25261 0.0
419.00363 0.0
593.3971 1958.0
269.89669 1999.0
235.12771 2009.0
180.76689 0.0
304.03873 2004.0
253.36118 2006.0
311.74485 2006.0
353.43628 0.0
337.00526 0.0
305.00526 2006.0
113.76281 2007.0
379.74159 0.0
258.76853 1993.0
157.64853 0.0
352.28689 0.0
221.51791 0.0
249.44281 0.0
205.42649 0.0
166.922 0.0
250.25261 0.0
224.73098 2003.0
316.83873 2002.0
269.34812 2007.0
188.02893 0.0
276.87138 2001.0
263.02649 0.0
320.44363 0.0
531.43465 2005.0
126.85016 2008.0
232.01914 0.0
243.87873 0.0
288.60036 2004.0
817.57995 2007.0
200.9073 0.0
229.48526 2009.0
263.65342 1971.0
209.71057 2008.0
430.54975 2007.0
531.9571 0.0
277.39383 0.0
253.41342 1999.0
538.5922 0.0
187.34975 0.0
189.67465 2006.0
247.66649 0.0
196.15302 2008.0
248.45016 0.0
266.26567 2005.0
174.41914 0.0
241.21424 1996.0
213.39383 0.0
201.66485 1956.0
141.16526 0.0
198.76526 2010.0
234.03057 2002.0
293.77261 0.0
149.83791 0.0
193.09669 0.0
416.62649 2007.0
206.18404 2008.0
292.15302 0.0
209.55383 1997.0
303.46404 0.0
284.31628 0.0
209.34485 0.0
131.34322 2010.0
127.16363 0.0
228.98893 1983.0
18.18077 0.0
202.762 1999.0
475.21914 1989.0
434.52036 2002.0
306.36363 0.0
251.84608 2007.0
392.80281 1999.0
191.63383 0.0
207.90812 0.0
298.86649 0.0
195.36934 0.0
236.06812 1995.0
315.76771 2009.0
214.5171 0.0
140.90404 0.0
147.66975 0.0
230.50404 0.0
259.99628 2010.0
234.70975 1994.0
191.97342 1992.0
305.6322 0.0
197.53751 1997.0
152.05832 0.0
360.82893 1998.0
440.37179 0.0
211.09506 2009.0
362.60526 1998.0
364.64281 1997.0
267.12771 0.0
380.81261 2007.0
248.13669 1995.0
253.20444 0.0
244.03546 0.0
159.13751 0.0
246.12526 0.0
40.95955 2005.0
200.04526 2007.0
155.08853 0.0
144.66567 0.0
170.86649 0.0
286.71955 2001.0
333.19138 1996.0
542.1971 0.0
222.37995 0.0
195.68281 2003.0
440.00608 0.0
223.08526 0.0
378.98404 0.0
91.45424 1983.0
114.65098 2009.0
218.80118 0.0
242.36363 0.0
143.0722 1962.0
242.78159 2007.0
256.31302 0.0
244.37506 0.0
36.54485 2007.0
401.94567 1999.0
178.65098 2003.0
277.002 2009.0
288.70485 2002.0
228.91057 2006.0
204.06812 0.0
212.40118 0.0
224.31302 2008.0
195.7873 1985.0
244.63628 2005.0
241.81506 0.0
224.10404 2001.0
132.75383 2008.0
113.3971 0.0
237.03465 0.0
162.58567 1987.0
247.24853 2008.0
285.30893 0.0
318.24934 0.0
375.53587 2007.0
188.78649 0.0
108.79955 0.0
270.91546 0.0
249.23383 0.0
192.80934 1984.0
295.20934 0.0
177.84118 2006.0
242.6771 0.0
245.28934 1999.0
105.61261 0.0
329.29914 0.0
207.46404 0.0
225.51465 2007.0
123.8722 0.0
270.10567 2008.0
174.86322 0.0
377.28608 0.0
220.18567 2005.0
1190.53016 0.0
1518.65424 0.0
438.64771 2008.0
344.842 2001.0
76.48608 1994.0
174.52363 2002.0
581.14567 0.0
177.68444 0.0
125.962 0.0
160.39138 2006.0
211.27791 0.0
182.88281 0.0
261.53751 2005.0
285.80526 0.0
263.44444 1991.0
133.32853 1998.0
313.99138 1990.0
199.18322 0.0
200.98567 0.0
170.84036 2009.0
194.48118 0.0
241.65832 0.0
245.15873 1970.0
262.66077 2002.0
307.46077 1999.0
295.20934 0.0
259.52608 0.0
347.19302 0.0
206.91546 0.0
399.51628 2008.0
271.25506 0.0
172.7473 1991.0
231.65342 1993.0
208.1171 1991.0
195.76118 1983.0
723.27791 1970.0
282.95791 0.0
153.12934 0.0
207.15057 0.0
174.41914 0.0
269.29587 2005.0
275.3824 0.0
149.41995 0.0
108.35546 1963.0
243.69587 0.0
308.27057 1996.0
204.90404 2007.0
311.24853 2001.0
164.77995 0.0
449.51465 0.0
140.93016 0.0
165.22404 2005.0
53.26322 2007.0
218.80118 2005.0
300.85179 1991.0
388.75383 2007.0
150.77832 1970.0
293.11955 0.0
177.71057 0.0
184.11057 2005.0
225.17506 2009.0
272.19546 2002.0
157.67465 0.0
204.61669 0.0
93.98812 0.0
204.45995 0.0
307.1473 0.0
347.0624 1970.0
184.73751 2005.0
146.65098 0.0
513.90649 2001.0
293.85098 1970.0
121.73016 2003.0
86.72608 0.0
171.25832 2007.0
264.95955 2007.0
411.68934 0.0
190.79791 1971.0
159.65995 0.0
162.89914 0.0
205.97506 2006.0
204.59057 0.0
117.02812 0.0
135.28771 0.0
163.65669 0.0
254.95465 0.0
178.31138 2001.0
150.77832 2001.0
410.53995 2001.0
222.30159 0.0
314.74893 0.0
233.11628 0.0
226.21995 0.0
441.67791 0.0
120.99873 2009.0
157.75302 0.0
203.65016 0.0
287.73832 0.0
226.7424 1997.0
69.56363 1993.0
174.52363 2007.0
363.67628 0.0
136.48934 0.0
390.60853 0.0
284.60363 0.0
291.81342 1990.0
502.7522 0.0
197.27628 0.0
329.53424 2009.0
340.1922 2003.0
170.94485 0.0
113.57995 0.0
205.24363 2009.0
169.22077 1994.0
285.70077 1980.0
221.23057 0.0
310.38649 0.0
353.48853 2008.0
415.92118 0.0
150.59546 0.0
236.90404 0.0
227.42159 1981.0
229.8771 1995.0
359.3922 0.0
403.17342 1998.0
296.59383 1997.0
117.65506 0.0
241.3971 0.0
34.92526 0.0
188.31628 0.0
409.02485 2002.0
335.5424 0.0
354.63791 0.0
213.31546 2007.0
238.62812 0.0
193.33179 1972.0
225.33179 0.0
166.84363 0.0
79.96036 1990.0
158.69342 2000.0
176.53506 0.0
347.61098 1999.0
106.39628 1994.0
147.93098 0.0
446.92853 0.0
360.22812 0.0
214.56934 0.0
325.35465 0.0
413.23057 0.0
218.04363 2001.0
215.30077 2002.0
57.44281 0.0
247.48363 2006.0
793.25995 0.0
467.3824 0.0
327.00036 1984.0
232.72444 2006.0
251.68934 0.0
197.3024 0.0
193.88036 0.0
383.32036 2004.0
269.71383 0.0
255.05914 0.0
337.18812 2009.0
240.92689 0.0
206.18404 2002.0
143.22893 0.0
244.27057 1980.0
83.56526 0.0
428.40771 0.0
261.11955 2007.0
208.37832 2008.0
369.78893 0.0
47.17669 2006.0
239.3073 0.0
17.37098 1993.0
257.04444 0.0
198.63465 0.0
208.40444 2002.0
338.28526 2005.0
175.15057 0.0
234.97098 0.0
275.06893 0.0
186.46159 0.0
201.74322 0.0
237.58322 0.0
219.402 0.0
461.29587 0.0
196.67546 0.0
290.63791 0.0
328.22812 0.0
260.64934 1981.0
245.83791 0.0
97.54077 0.0
248.0322 0.0
175.33342 1998.0
199.57506 0.0
229.45914 2005.0
902.26893 2000.0
271.12444 1991.0
211.17342 0.0
179.3824 1967.0
156.96934 0.0
281.0771 1998.0
291.97016 0.0
392.85506 0.0
223.00689 0.0
269.94893 1987.0
36.64934 1996.0
309.26322 0.0
178.41587 0.0
206.75873 2006.0
155.68934 1971.0
254.71955 1993.0
133.11955 0.0
260.362 0.0
135.28771 1984.0
158.27546 2005.0
154.93179 0.0
205.84444 2005.0
276.21832 0.0
193.61914 0.0
153.73016 1997.0
389.11955 0.0
195.23873 2007.0
210.72934 1995.0
336.06485 0.0
263.02649 0.0
230.26893 2001.0
40.6722 2007.0
255.92118 2009.0
305.60608 1995.0
177.8673 0.0
361.11628 0.0
357.66812 0.0
196.49261 2004.0
218.40934 1992.0
91.58485 0.0
185.25995 0.0
282.80118 0.0
244.68853 0.0
215.40526 1993.0
211.19955 1978.0
327.75791 0.0
510.40608 2005.0
212.74077 2009.0
120.86812 2008.0
507.08853 2001.0
265.11628 0.0
183.06567 0.0
199.54893 1982.0
41.92608 0.0
164.75383 0.0
267.33669 0.0
208.74404 1984.0
253.09995 2007.0
244.50567 0.0
195.73506 2007.0
160.07791 2007.0
327.70567 0.0
174.86322 0.0
272.92689 2005.0
251.53261 0.0
216.99873 0.0
195.3171 0.0
247.11791 0.0
101.3024 0.0
315.97669 2003.0
449.67138 0.0
173.16526 1998.0
394.44853 0.0
226.69016 2007.0
219.11465 0.0
240.92689 1997.0
227.91791 1999.0
119.84934 0.0
109.92281 1997.0
116.08771 0.0
187.71546 1975.0
191.65995 0.0
116.32281 1979.0
482.45506 0.0
262.71302 2003.0
208.97914 2005.0
209.81506 1975.0
129.85424 2002.0
219.0624 0.0
500.4273 2010.0
224.7571 0.0
274.85995 2003.0
145.162 1993.0
211.27791 0.0
167.49669 1981.0
415.7122 0.0
346.33098 0.0
399.69914 1999.0
136.56771 0.0

Exercises

  1. Why do you think average song durations increase dramatically in 70's?
  2. Add error bars with standard deviation around each average point in the plot.
  3. How did average loudness change over time?
  4. How did tempo change over time?
  5. What other aspects of songs can you explore with this technique?

Sampling and visualizing

You can dive deep into Scala visualisations here: - https://docs.databricks.com/notebooks/visualizations/charts-and-graphs-scala.html

You can also use R and Python for visualisations in the same notebook: - https://docs.databricks.com/notebooks/visualizations/index.html

ScaDaMaLe Course site and book

Million Song Dataset - Kaggle Challenge

Predict which songs a user will listen to.

SOURCE: This is just a Scala-rification of the Python notebook published in databricks community edition in 2016.

Stage 3: Modeling Songs via k-means

Model

This is the third step into our project. In the first step we parsed raw text files and created a table. Then we explored different aspects of data and learned that things have been changing over time. In this step we attempt to gain deeper understanding of our data by categorizing (a.k.a. clustering) our data. For the sake of training we pick a fairly simple model based on only three parameters. We leave more sophisticated modeling as exercies to the reader

We pick the most commonly used and simplest clustering algorithm (KMeans) for our job. The SparkML KMeans implementation expects input in a vector column. Fortunately, there are already utilities in SparkML that can help us convert existing columns in our table to a vector field. It is called VectorAssembler. Here we import that functionality and use it to create a new DataFrame

// Let's quickly do everything to register the tempView of the table here

// this is a case class for our row objects
case class Song(artist_id: String, artist_latitude: Double, artist_longitude: Double, artist_location: String, artist_name: String, duration: Double, end_of_fade_in: Double, key: Int, key_confidence: Double, loudness: Double, release: String, song_hotness: Double, song_id: String, start_of_fade_out: Double, tempo: Double, time_signature: Double, time_signature_confidence: Double, title: String, year: Double, partial_sequence: Int)

def parseLine(line: String): Song = {
  // this is robust parsing by try-catching type exceptions
  
  def toDouble(value: String, defaultVal: Double): Double = {
    try {
       value.toDouble
    } catch {
      case e: Exception => defaultVal
    }
  }

  def toInt(value: String, defaultVal: Int): Int = {
    try {
       value.toInt
      } catch {
      case e: Exception => defaultVal
    }
  }
  // splitting the sting of each line by the delimiter TAB character '\t'
  val tokens = line.split("\t")
  
  // making song objects
  Song(tokens(0), toDouble(tokens(1), 0.0), toDouble(tokens(2), 0.0), tokens(3), tokens(4), toDouble(tokens(5), 0.0), toDouble(tokens(6), 0.0), toInt(tokens(7), -1), toDouble(tokens(8), 0.0), toDouble(tokens(9), 0.0), tokens(10), toDouble(tokens(11), 0.0), tokens(12), toDouble(tokens(13), 0.0), toDouble(tokens(14), 0.0), toDouble(tokens(15), 0.0), toDouble(tokens(16), 0.0), tokens(17), toDouble(tokens(18), 0.0), toInt(tokens(19), -1))
}

// this is loads all the data - a subset of the 1M songs dataset
val dataRDD = sc.textFile("/datasets/sds/songs/data-001/part-*") 

// .. fill in comment
val df = dataRDD.map(parseLine).toDF

// .. fill in comment
df.createOrReplaceTempView("songsTable")
defined class Song
parseLine: (line: String)Song
dataRDD: org.apache.spark.rdd.RDD[String] = /datasets/sds/songs/data-001/part-* MapPartitionsRDD[380] at textFile at command-2971213210277067:32
df: org.apache.spark.sql.DataFrame = [artist_id: string, artist_latitude: double ... 18 more fields]
import org.apache.spark.ml.feature.VectorAssembler

val trainingData = new VectorAssembler()
                      .setInputCols(Array("duration", "tempo", "loudness"))
                      .setOutputCol("features")
                      .transform(table("songsTable"))
import org.apache.spark.ml.feature.VectorAssembler
trainingData: org.apache.spark.sql.DataFrame = [artist_id: string, artist_latitude: double ... 19 more fields]

All we have done above with the VectorAssembler method is:

  • created a DataFrame called trainingData
  • that transformed our table called songsTable
  • by adding an output column named features using setOutputCol("features")
  • that was obtained from an Array of the songsTable's columns named duration, tempo and loudness using
    • setInputCols(Array("duration", "tempo", "loudness")).
trainingData.take(3) // see first 3 rows of trainingData DataFrame, notice the vectors in the last column
res3: Array[org.apache.spark.sql.Row] = Array([AR81V6H1187FB48872,0.0,0.0,,Earl Sixteen,213.7073,0.0,11,0.419,-12.106,Soldier of Jah Army,0.0,SOVNZSZ12AB018A9B8,208.289,125.882,1.0,0.0,Rastaman,2003.0,-1,[213.7073,125.882,-12.106]], [ARVVZQP11E2835DBCB,0.0,0.0,,Wavves,133.25016,0.0,0,0.282,0.596,Wavvves,0.471578247701,SOJTQHQ12A8C143C5F,128.116,89.519,1.0,0.0,I Want To See You (And Go To The Movies),2009.0,-1,[133.25016,89.519,0.596]], [ARFG9M11187FB3BBCB,0.0,0.0,Nashua USA,C-Side,247.32689,0.0,9,0.612,-4.896,Santa Festival Compilation 2008 vol.1,0.0,SOAJSQL12AB0180501,242.196,171.278,5.0,1.0,Loose on the Dancefloor,0.0,225261,[247.32689,171.278,-4.896]])

Transformers

A Transformer is an abstraction that includes feature transformers and learned models. Technically, a Transformer implements a method transform(), which converts one DataFrame into another, generally by appending one or more columns. For example:

  • A feature transformer might take a DataFrame, read a column (e.g., text), map it into a new column (e.g., feature vectors), and output a new DataFrame with the mapped column appended.
  • A learning model might take a DataFrame, read the column containing feature vectors, predict the label for each feature vector, and output a new DataFrame with predicted labels appended as a column.

Estimators

An Estimator abstracts the concept of a learning algorithm or any algorithm that fits or trains on data.

Technically, an Estimator implements a method fit(), which accepts a DataFrame and produces a Model, which is a Transformer.

For example, a learning algorithm such as LogisticRegression is an Estimator, and calling fit() trains a LogisticRegressionModel, which is a Model and hence a Transformer.

display(trainingData.select("duration", "tempo", "loudness", "features").limit(5)) // see features in more detail

Demonstration of the standard algorithm

(1) (2) (3) (4)

  1. k initial "means" (in this case k=3) are randomly generated within the data domain (shown in color).
  • k clusters are created by associating every observation with the nearest mean. The partitions here represent the Voronoi diagram generated by the means.
  • The centroid of each of the k clusters becomes the new mean.
  • Steps 2 and 3 are repeated until local convergence has been reached.

The "assignment" step 2 is also referred to as expectation step, the "update step" 3 as maximization step, making this algorithm a variant of the generalized expectation-maximization algorithm.

Caveats: As k-means is a heuristic algorithm, there is no guarantee that it will converge to the global optimum, and the result may depend on the initial clusters. As the algorithm is usually very fast, it is common to run it multiple times with different starting conditions. However, in the worst case, k-means can be very slow to converge. For more details see https://en.wikipedia.org/wiki/K-means_clustering that is also embedded in-place below.

CAUTION!

Iris flower data set, clustered using

  • k-means (left) and
  • true species in the data set (right).

k-means clustering result for the Iris flower data set and actual species visualized using ELKI. Cluster means are marked using larger, semi-transparent symbols.

Note that k-means is non-determinicstic, so results vary. Cluster means are visualized using larger, semi-transparent markers. The visualization was generated using ELKI.

With some cautionary tales we go ahead with applying k-means to our dataset next.

We can now pass this new DataFrame to the KMeans model and ask it to categorize different rows in our data to two different classes (setK(2)). We place the model in a immutable value named model.

Note: This command performs multiple spark jobs (one job per iteration in the KMeans algorithm). You will see the progress bar starting over and over again.

import org.apache.spark.ml.clustering.KMeans
val model = new KMeans().setK(2).fit(trainingData) // 37 seconds in 5 workers cluster
import org.apache.spark.ml.clustering.KMeans
model: org.apache.spark.ml.clustering.KMeansModel = KMeansModel: uid=kmeans_7370bad07a6f, k=2, distanceMeasure=euclidean, numFeatures=3
//model. // uncomment and place cursor next to . and hit Tab to see all methods on model
model.clusterCenters // get cluster centres
res5: Array[org.apache.spark.ml.linalg.Vector] = Array([208.72069181761955,124.38376303683947,-9.986137113920133], [441.1413218945455,123.00973381818183,-10.560375818181816])
val modelTransformed = model.transform(trainingData) // to get predictions as last column
modelTransformed: org.apache.spark.sql.DataFrame = [artist_id: string, artist_latitude: double ... 20 more fields]

Remember that ML Pipelines works with DataFrames. So, our trainingData and modelTransformed are both DataFrames

trainingData.printSchema
root
 |-- artist_id: string (nullable = true)
 |-- artist_latitude: double (nullable = false)
 |-- artist_longitude: double (nullable = false)
 |-- artist_location: string (nullable = true)
 |-- artist_name: string (nullable = true)
 |-- duration: double (nullable = false)
 |-- end_of_fade_in: double (nullable = false)
 |-- key: integer (nullable = false)
 |-- key_confidence: double (nullable = false)
 |-- loudness: double (nullable = false)
 |-- release: string (nullable = true)
 |-- song_hotness: double (nullable = false)
 |-- song_id: string (nullable = true)
 |-- start_of_fade_out: double (nullable = false)
 |-- tempo: double (nullable = false)
 |-- time_signature: double (nullable = false)
 |-- time_signature_confidence: double (nullable = false)
 |-- title: string (nullable = true)
 |-- year: double (nullable = false)
 |-- partial_sequence: integer (nullable = false)
 |-- features: vector (nullable = true)
modelTransformed.printSchema
root
 |-- artist_id: string (nullable = true)
 |-- artist_latitude: double (nullable = false)
 |-- artist_longitude: double (nullable = false)
 |-- artist_location: string (nullable = true)
 |-- artist_name: string (nullable = true)
 |-- duration: double (nullable = false)
 |-- end_of_fade_in: double (nullable = false)
 |-- key: integer (nullable = false)
 |-- key_confidence: double (nullable = false)
 |-- loudness: double (nullable = false)
 |-- release: string (nullable = true)
 |-- song_hotness: double (nullable = false)
 |-- song_id: string (nullable = true)
 |-- start_of_fade_out: double (nullable = false)
 |-- tempo: double (nullable = false)
 |-- time_signature: double (nullable = false)
 |-- time_signature_confidence: double (nullable = false)
 |-- title: string (nullable = true)
 |-- year: double (nullable = false)
 |-- partial_sequence: integer (nullable = false)
 |-- features: vector (nullable = true)
 |-- prediction: integer (nullable = false)
  • The column features that we specified as output column to our VectorAssembler contains the features
  • The new column prediction in modelTransformed contains the predicted output
val transformed = modelTransformed.select("duration", "tempo", "loudness", "prediction")
transformed: org.apache.spark.sql.DataFrame = [duration: double, tempo: double ... 2 more fields]

To comfortably visualize the data we produce a random sample. Remember the display() function? We can use it to produce a nicely rendered table of transformed DataFrame.

// just sampling the fraction 0.005 of all the rows at random, 
// 'false' argument to sample is for sampling without replacement
display(transformed.sample(false, fraction = 0.005, 12988934L)) 
duration tempo loudness prediction
265.97832 129.987 -5.065 0.0
306.36363 127.529 -8.273 0.0
195.73506 115.191 -6.327 0.0
257.82812 92.892 -13.621 0.0
177.55383 149.853 -10.969 0.0
224.9922 97.98 -5.921 0.0
528.09098 160.022 -5.956 1.0
213.68118 100.219 -4.528 0.0
35.52608 121.349 -18.721 0.0
213.68118 120.581 -10.633 0.0
300.53832 139.017 -13.319 0.0
138.81424 160.044 -11.138 0.0
413.962 89.588 -13.143 1.0
292.17914 188.543 -5.389 0.0
419.34322 140.008 -5.389 1.0
261.61587 152.951 -12.447 0.0
168.64608 99.617 -8.164 0.0
446.27546 196.005 -6.621 1.0
343.92771 122.877 -10.264 1.0
261.69424 145.129 -4.733 0.0
408.47628 61.259 -11.244 1.0
243.3824 161.778 -6.88 0.0
184.00608 111.461 -9.788 0.0
67.39546 188.723 -3.239 0.0
165.51138 81.125 -18.692 0.0
214.85669 144.174 -17.989 0.0
185.96526 186.897 -6.041 0.0
170.05669 75.356 -16.486 0.0
193.72363 117.131 -9.822 0.0
227.23873 91.953 -11.221 0.0
177.6322 150.962 -7.288 0.0
117.21098 100.021 -10.782 0.0
422.42567 91.214 -8.872 1.0
145.162 95.388 -10.166 0.0
242.93832 112.015 -7.135 0.0
366.00118 65.05 -13.768 1.0
601.15546 70.623 -11.179 1.0
196.17914 121.563 -5.434 0.0
399.35955 124.963 -3.415 1.0
287.73832 161.648 -14.721 0.0
285.09995 132.86 -10.23 0.0
358.32118 132.874 -6.071 1.0
407.71873 85.996 -10.103 1.0
463.25506 95.083 -6.4 1.0
295.91465 93.515 -8.987 0.0
273.8673 190.044 -10.556 0.0
280.73751 113.363 -6.893 0.0
142.65424 206.067 -7.996 0.0
197.38077 84.023 -10.964 0.0
226.24608 166.768 -5.941 0.0
152.47628 153.528 -7.393 0.0
315.32363 139.919 -7.438 0.0
329.03791 180.059 -6.473 1.0
296.88118 137.976 -5.49 0.0
250.77506 84.543 -18.058 0.0
48.14322 52.814 -11.617 0.0
290.16771 141.24 -14.009 0.0
406.04689 133.997 -9.685 1.0
124.57751 161.237 -12.314 0.0
280.45016 154.003 -8.094 0.0
472.31955 219.371 -6.08 1.0
267.4673 152.123 -18.457 0.0
216.21506 88.022 -7.096 0.0
31.00689 237.737 -11.538 0.0
283.21914 132.934 -11.153 0.0
284.21179 110.585 -15.384 0.0
154.87955 157.881 -4.377 0.0
431.46404 113.905 -8.651 1.0
215.87546 124.572 -7.67 0.0
161.43628 43.884 -14.936 0.0
29.09995 135.146 -1.837 0.0
301.68771 123.672 -9.293 0.0
170.10893 124.022 -9.589 0.0
281.96526 63.544 -8.25 0.0
484.54485 149.565 -5.501 1.0
135.1571 92.749 -7.881 0.0
180.45342 137.899 -5.246 0.0
142.44526 85.406 -11.305 0.0
209.3971 93.233 -13.079 0.0
319.9473 122.936 -5.98 0.0
55.82322 249.325 -8.656 0.0
192.88771 124.006 -5.745 0.0
624.14322 128.988 -7.872 1.0
188.49914 107.264 -13.24 0.0
148.32281 150.075 -5.793 0.0
195.00363 49.31 -14.54 0.0
130.61179 100.208 -10.487 0.0
212.11383 111.048 -4.749 0.0
204.56444 92.076 -7.906 0.0
292.04853 135.932 -9.004 0.0
377.83465 73.336 -13.457 1.0
246.96118 116.761 -8.117 0.0
90.30485 39.3 -15.444 0.0
201.92608 123.558 -9.857 0.0
282.06975 136.09 -6.202 0.0
194.55955 119.488 -16.454 0.0
318.4322 140.467 -6.375 0.0
55.45751 121.476 -7.891 0.0
275.30404 90.024 -6.191 0.0
422.24281 131.994 -8.786 1.0
269.47873 88.921 -4.419 0.0
186.01751 55.271 -16.153 0.0
221.17832 94.967 -6.591 0.0
275.66975 94.999 -16.843 0.0
335.28118 90.129 -13.33 1.0
288.88771 102.96 -10.967 0.0
190.71955 88.269 -13.167 0.0
211.17342 126.741 -10.398 0.0
116.92363 140.09 -7.578 0.0
310.282 181.753 -17.61 0.0
184.21506 112.336 -8.764 0.0
248.21506 101.988 -6.487 0.0
116.00934 84.793 -9.057 0.0
299.88526 143.66 -7.279 0.0
1376.78322 107.066 -7.893 1.0
182.85669 191.559 -10.367 0.0
238.2624 48.592 -9.687 0.0
239.5424 105.47 -9.258 0.0
195.16036 127.911 -7.054 0.0
149.73342 118.643 -10.526 0.0
424.30649 62.8 -22.35 1.0
221.77914 104.983 -7.908 0.0
407.7971 126.983 -11.675 1.0
175.04608 120.542 -17.484 0.0
306.65098 120.0 -18.973 0.0
315.0624 85.82 -11.858 0.0
88.5024 211.429 -11.543 0.0
101.61587 19.215 -26.402 0.0
132.04853 186.123 -7.21 0.0
146.25914 200.16 -15.88 0.0
147.3824 104.658 -8.836 0.0
156.26404 135.353 -8.245 0.0
66.2722 115.129 -16.416 0.0
247.43138 124.991 -11.79 0.0
282.90567 115.472 -12.448 0.0
401.05751 125.015 -9.465 1.0
156.08118 88.128 -16.916 0.0
198.08608 133.961 -8.055 0.0
214.09914 84.353 -12.991 0.0
269.73995 161.953 -3.091 0.0
199.44444 169.922 -6.241 0.0
149.65506 190.802 -30.719 0.0
227.23873 120.14 -12.39 0.0

To generate a scatter plot matrix, click on the plot button bellow the table and select scatter. That will transform your table to a scatter plot matrix. It automatically picks all numeric columns as values. To include predicted clusters, click on Plot Options and drag prediction to the list of Keys. You will get the following plot. On the diagonal panels you see the PDF of marginal distribution of each variable. Non-diagonal panels show a scatter plot between variables of the two variables of the row and column. For example the top right panel shows the scatter plot between duration and loudness. Each point is colored according to the cluster it is assigned to.

display(transformed.sample(false, fraction = 0.01)) // try fraction=1.0 as this dataset is small
duration tempo loudness prediction
244.27057 112.731 -10.505 0.0
195.47383 97.965 -11.452 0.0
63.65995 104.664 -17.248 0.0
200.202 200.191 -10.104 0.0
306.36363 127.529 -8.273 0.0
196.49261 42.746 -7.608 0.0
202.89261 131.021 -4.434 0.0
203.33669 157.886 -2.236 0.0
182.85669 157.139 -7.1 0.0
205.50485 95.979 -7.698 0.0
109.73995 113.462 -20.321 0.0
163.23873 83.005 -13.396 0.0
224.9922 97.98 -5.921 0.0
176.61342 94.052 -8.77 0.0
443.66322 125.979 -5.778 1.0
298.26567 169.845 -7.725 0.0
184.42404 78.437 -12.727 0.0
267.17995 180.542 -6.627 0.0
253.30893 94.987 -7.692 0.0
200.46322 106.733 -12.94 0.0
253.36118 86.342 -6.782 0.0
138.73587 155.904 -5.893 0.0
121.52118 86.994 -6.913 0.0
85.81179 89.253 -5.191 0.0
289.43628 95.95 -13.052 0.0
262.37342 165.932 -6.124 0.0
467.09506 138.769 -10.777 1.0
191.84281 180.105 -11.451 0.0
300.40771 163.844 -7.44 0.0
271.51628 144.111 -6.032 0.0
213.91628 105.987 -3.815 0.0
452.57098 125.01 -12.88 1.0
195.94404 56.525 -16.71 0.0
111.17669 146.334 -10.847 0.0
278.85669 112.459 -11.918 0.0
290.58567 131.844 -7.134 0.0
246.17751 95.323 -7.515 0.0
180.37506 192.659 -6.815 0.0
268.38159 156.076 -4.435 0.0
495.98649 120.467 -11.189 1.0
605.33506 145.803 -13.557 1.0
343.92771 122.877 -10.264 1.0
313.28608 137.929 -9.179 0.0
279.74485 103.98 -7.026 0.0
183.11791 101.679 -24.065 0.0
270.62812 96.544 -7.089 0.0
235.4673 111.282 -12.93 0.0
143.20281 101.104 -4.278 0.0
213.21098 110.858 -10.904 0.0
248.55465 99.389 -5.273 0.0
211.27791 106.629 -5.518 0.0
297.53424 125.142 -6.341 0.0
252.57751 98.328 -12.207 0.0
230.63465 150.118 -4.63 0.0
234.91873 100.022 -3.952 0.0
482.5073 145.1 -12.697 1.0
133.69424 145.629 -11.526 0.0
221.83138 146.375 -6.363 0.0
243.61751 131.243 -10.148 0.0
662.93506 113.008 -10.187 1.0
254.92853 111.017 -9.153 0.0
121.41669 100.339 -8.565 0.0
176.06485 125.435 -10.29 0.0
332.43383 103.119 -13.376 1.0
437.26322 104.97 -14.029 1.0
134.81751 39.42 -15.975 0.0
226.37669 140.502 -7.333 0.0
184.842 152.671 -7.156 0.0
191.45098 84.029 -9.696 0.0
248.31955 137.923 -1.57 0.0
132.91057 86.912 -10.106 0.0
252.86485 133.005 -5.409 0.0
249.10322 98.047 -6.547 0.0
170.00444 112.46 -9.011 0.0
307.59138 122.547 -12.767 0.0
200.80281 130.182 -6.988 0.0
292.64934 106.006 -3.538 0.0
139.36281 103.898 -3.788 0.0
262.13832 180.04 -6.318 0.0
214.7522 107.956 -2.691 0.0
245.4722 124.999 -6.846 0.0
268.53832 132.01 -6.298 0.0
187.14077 161.933 -10.074 0.0
215.66649 140.381 -5.111 0.0
176.92689 117.172 -9.213 0.0
555.04934 110.119 -5.311 1.0
80.48281 149.108 -11.616 0.0
162.63791 164.106 -22.073 0.0
159.65995 156.785 -12.696 0.0
198.26893 131.377 -8.376 0.0
167.33995 150.654 -7.907 0.0
183.58812 133.9 -17.413 0.0
288.70485 79.198 -12.843 0.0
77.63546 106.902 -18.099 0.0
141.26975 124.414 -8.835 0.0
276.16608 95.231 -8.471 0.0
272.56118 200.29 -11.23 0.0
207.96036 88.026 -13.496 0.0
282.06975 74.975 -11.123 0.0
526.44526 119.559 -37.527 1.0
259.97016 125.149 -12.906 0.0
159.65995 207.66 -6.344 0.0
300.7473 224.518 -6.432 0.0
304.97914 106.716 -9.78 0.0
214.04689 99.189 -4.772 0.0
231.88853 80.091 -5.629 0.0
237.97506 116.126 -10.743 0.0
182.54322 72.894 -17.837 0.0
52.11383 168.794 -6.383 0.0
158.92853 165.406 -9.687 0.0
267.33669 112.741 -25.091 0.0
261.69424 191.883 -24.9 0.0
343.06567 123.951 -6.143 1.0
534.93506 91.53 -7.688 1.0
227.83955 125.951 -6.689 0.0
186.69669 86.635 -6.139 0.0
216.18893 130.325 -12.527 0.0
230.42567 116.913 -12.477 0.0
159.55546 105.245 -23.254 0.0
202.39628 55.307 -6.039 0.0
215.74485 106.31 -8.126 0.0
336.22159 142.252 -9.546 1.0
207.67302 153.947 -4.633 0.0
289.59302 90.51 -27.653 0.0
133.32853 125.883 -10.795 0.0
183.06567 104.177 -6.329 0.0
227.082 90.997 -6.716 0.0
245.65506 160.077 -3.661 0.0
128.67873 144.519 -9.05 0.0
445.07383 124.982 -5.163 1.0
260.57098 122.819 -12.271 0.0
257.51465 142.945 -8.397 0.0
170.81424 132.335 -3.687 0.0
183.66649 87.833 -15.591 0.0
424.82893 173.814 -6.585 1.0
135.1571 92.749 -7.881 0.0
153.0771 104.976 -5.611 0.0
307.90485 147.753 -4.254 0.0
217.15546 99.508 -11.413 0.0
190.27546 127.754 -4.402 0.0
234.26567 86.654 -8.753 0.0
295.02649 127.96 -7.766 0.0
420.28363 139.991 -13.264 1.0
166.71302 208.839 -18.976 0.0
225.72363 110.028 -4.573 0.0
161.85424 91.393 -8.609 0.0
232.41098 126.606 -6.709 0.0
437.41995 147.984 -6.066 1.0
205.13914 115.028 -5.83 0.0
174.70649 100.886 -12.613 0.0
254.30159 85.012 -11.373 0.0
184.99873 119.071 -17.613 0.0
198.47791 168.829 -14.589 0.0
224.46975 124.459 -7.934 0.0
188.86485 145.123 -6.104 0.0
41.35138 173.793 -12.26 0.0
309.39383 89.986 -12.035 0.0
149.52444 173.984 -12.84 0.0
187.79383 112.146 -21.23 0.0
191.00689 146.664 -6.587 0.0
216.5024 119.576 -8.772 0.0
176.8224 73.616 -19.386 0.0
225.30567 105.067 -6.96 0.0
226.66404 91.386 -7.419 0.0
237.89669 143.888 -14.289 0.0
279.92771 124.046 -13.476 0.0
207.3073 198.496 -11.67 0.0
202.39628 93.366 -18.305 0.0
406.9873 128.419 -14.869 1.0
220.73424 157.958 -9.327 0.0
237.21751 130.013 -3.837 0.0
253.17832 89.702 -5.557 0.0
152.42404 141.991 -11.27 0.0
440.89424 127.935 -10.072 1.0
144.40444 91.946 -7.005 0.0
169.69098 103.956 -11.004 0.0
217.10322 90.379 -13.479 0.0
394.78812 127.996 -7.112 1.0
185.52118 134.03 -5.529 0.0
260.98893 85.0 -5.263 0.0
132.25751 97.619 -3.397 0.0
242.78159 149.953 -6.236 0.0
298.03057 84.896 -8.511 0.0
180.13995 92.063 -9.866 0.0
72.82893 135.059 -17.814 0.0
305.47546 130.016 -10.648 0.0
49.99791 94.143 -12.105 0.0
213.60281 157.762 -12.58 0.0
332.48608 156.616 -8.777 1.0
386.35057 120.513 -21.297 1.0
260.30975 190.015 -5.148 0.0
229.19791 164.202 -6.88 0.0
473.25995 159.997 -7.717 1.0
233.22077 101.313 -6.339 0.0
235.2322 98.591 -9.746 0.0
172.61669 102.747 -9.067 0.0
246.49098 75.408 -5.108 0.0
326.42567 36.489 -26.396 1.0
243.3824 103.205 -9.898 0.0
425.24689 131.368 -8.297 1.0
221.25669 135.04 -5.154 0.0
190.9024 107.104 -10.353 0.0
172.32934 160.707 -8.875 0.0
166.71302 127.945 -18.645 0.0
183.97995 115.659 -11.091 0.0
237.97506 116.167 -6.36 0.0
223.52934 154.645 -9.71 0.0
298.50077 126.038 -5.151 0.0
465.31873 175.035 -4.044 1.0
138.55302 85.67 -12.052 0.0
240.40444 120.03 -8.459 0.0
341.99465 141.156 -21.177 1.0
157.02159 141.477 -4.464 0.0
288.78322 95.049 -7.796 0.0
184.08444 122.905 -14.019 0.0
248.99873 211.264 -10.24 0.0
174.2624 127.693 -12.39 0.0
315.8722 143.013 -15.79 0.0
247.40526 141.204 -8.753 0.0
295.44444 85.545 -3.997 0.0
321.33179 130.964 -13.273 0.0
361.22077 133.027 -2.875 1.0
322.58567 121.964 -7.198 0.0
75.07546 116.339 -15.41 0.0
228.64934 128.01 -10.045 0.0
153.3122 101.93 -22.817 0.0
218.53995 126.607 -9.678 0.0
289.69751 107.998 -7.901 0.0
213.62893 184.052 -9.174 0.0
363.4673 114.397 -11.772 1.0
219.71546 93.135 -9.806 0.0
179.19955 129.99 -9.664 0.0
293.35465 144.596 -7.363 0.0
180.94975 157.921 -5.232 0.0
277.89016 57.623 -17.473 0.0
210.99057 163.841 -16.969 0.0
264.202 120.034 -19.802 0.0
194.42893 188.35 -9.564 0.0
258.61179 92.829 -8.928 0.0
176.37832 99.829 -11.923 0.0
247.11791 134.445 -2.932 0.0
252.3424 164.599 -7.585 0.0
159.21587 104.799 -10.143 0.0
479.11138 125.125 -12.127 1.0
268.9824 140.062 -10.898 0.0
374.77832 180.044 -10.436 1.0
428.22485 127.982 -17.48 1.0
817.05751 145.897 -5.303 1.0
198.63465 166.593 -3.315 0.0
192.36526 90.019 -6.396 0.0
151.77098 187.791 -8.472 0.0
164.20526 191.878 -4.388 0.0
301.73995 112.045 -17.254 0.0
282.30485 83.331 -10.754 0.0
371.48689 104.993 -9.919 1.0
119.06567 173.919 -6.858 0.0
283.6371 69.909 -17.178 0.0
261.69424 98.007 -21.256 0.0
280.13669 128.037 -4.909 0.0
124.31628 200.182 -7.938 0.0
241.37098 128.527 -4.834 0.0
299.02322 109.944 -9.461 0.0
461.21751 160.027 -13.182 1.0
108.72118 115.168 -12.621 0.0
182.09914 161.077 -6.536 0.0
161.04444 240.577 -5.114 0.0
233.01179 145.232 -10.703 0.0
237.92281 140.481 -7.453 0.0
237.29587 98.184 -8.888 0.0
258.61179 96.752 -13.219 0.0
45.76608 112.436 -20.112 0.0
164.77995 209.448 -0.438 0.0
196.38812 176.511 -6.945 0.0
264.09751 125.995 -11.854 0.0
318.87628 130.011 -6.758 0.0
133.90322 137.567 -4.931 0.0
265.53424 88.519 -11.095 0.0
170.68363 167.807 -9.308 0.0
243.64363 127.97 -7.569 0.0
280.0322 147.816 -4.771 0.0
525.29587 85.619 -12.152 1.0
457.32526 127.983 -6.449 1.0
349.07383 125.798 -11.251 1.0
display(transformed.sample(false, fraction = 0.01)) // try fraction=1.0 as this dataset is small
duration tempo loudness prediction
189.93587 134.957 -12.934 0.0
206.44526 135.26 -11.146 0.0
295.65342 137.904 -7.308 0.0
158.1971 174.831 -12.544 0.0
259.99628 171.094 -12.057 0.0
277.002 88.145 -6.039 0.0
1518.65424 65.003 -19.182 1.0
121.73016 85.041 -8.193 0.0
205.97506 106.952 -6.572 0.0
206.18404 89.447 -9.535 0.0
202.52689 134.13 -6.535 0.0
259.02975 97.948 -11.276 0.0
308.53179 80.017 -12.277 0.0
151.71873 117.179 -12.394 0.0
165.56363 99.187 -11.414 0.0
370.83383 67.495 -20.449 1.0
238.65424 100.071 -9.276 0.0
163.7873 119.924 -5.941 0.0
279.32689 67.371 -26.67 0.0
353.85424 68.405 -8.105 1.0
227.23873 117.62 -7.874 0.0
195.49995 85.916 -8.828 0.0
322.45506 135.826 -5.034 0.0
235.88526 109.773 -10.919 0.0
235.15383 163.924 -9.666 0.0
253.67465 125.014 -7.171 0.0
415.03302 71.991 -15.224 1.0
190.85016 152.805 -2.871 0.0
290.76853 84.841 -6.161 0.0
346.8273 129.981 -10.377 1.0
174.70649 143.446 -11.994 0.0
170.84036 70.033 -7.782 0.0
517.66812 151.948 -12.363 1.0
62.06649 154.406 -9.387 0.0
505.96526 90.59 -19.848 1.0
480.86159 0.0 -11.707 1.0
330.13506 204.534 -9.85 1.0
223.99955 110.3 -12.339 0.0
200.98567 89.215 -3.858 0.0
158.09261 178.826 -13.681 0.0
186.46159 110.102 -16.477 0.0
399.46404 125.03 -10.786 1.0
118.64771 85.747 -34.461 0.0
352.49587 91.139 -9.13 1.0
150.15138 106.364 -7.337 0.0
158.98077 124.54 -17.405 0.0
122.17424 170.018 -9.047 0.0
299.38893 91.976 -6.266 0.0
197.95546 142.744 -8.189 0.0
332.38159 89.071 -5.08 1.0
309.78567 136.05 -15.105 0.0
198.47791 82.546 -12.594 0.0
254.17098 144.01 -9.0 0.0
155.81995 233.022 -8.978 0.0
176.53506 136.255 -9.675 0.0
331.54567 221.511 -13.778 1.0
140.72118 162.44 -10.654 0.0
210.9122 120.039 -5.391 0.0
197.27628 119.396 -22.599 0.0
339.25179 96.842 -16.207 1.0
355.97016 142.777 -5.118 1.0
170.23955 55.107 -17.654 0.0
360.01914 119.997 -7.53 1.0
241.76281 101.938 -3.765 0.0
84.92363 236.863 -15.846 0.0
361.09016 120.121 -5.861 1.0
262.37342 89.924 -4.819 0.0
225.74975 139.994 -11.505 0.0
246.9873 172.147 -16.273 0.0
159.242 166.855 -4.771 0.0
192.86159 148.297 -13.423 0.0
140.90404 92.602 -12.604 0.0
224.20853 71.879 -16.615 0.0
235.78077 180.366 -3.918 0.0
244.45342 105.077 -5.004 0.0
210.57261 200.044 -11.381 0.0
327.3922 112.023 -11.341 1.0
168.38485 99.991 -4.1 0.0
287.13751 137.154 -12.948 0.0
148.63628 121.773 -11.432 0.0
214.7522 124.437 -5.834 0.0
197.43302 92.959 -4.948 0.0
150.17751 112.0 -5.968 0.0
152.86812 120.884 -15.693 0.0
173.322 120.827 -7.96 0.0
235.15383 85.519 -8.172 0.0
299.41506 94.68 -15.486 0.0
222.35383 156.046 -8.885 0.0
235.85914 130.055 -5.341 0.0
276.71465 170.059 -2.926 0.0
136.07138 168.895 -6.971 0.0
205.7922 129.57 -6.113 0.0
268.72118 126.894 -7.142 0.0
390.63465 232.08 -5.493 1.0
242.59873 124.034 -11.24 0.0
274.80771 108.178 -21.456 0.0
157.25669 151.108 -11.678 0.0
203.67628 140.02 -5.939 0.0
302.47138 148.2 -10.428 0.0
292.64934 106.006 -3.538 0.0
245.002 135.997 -10.6 0.0
181.57669 132.89 -5.429 0.0
36.38812 65.132 -12.621 0.0
656.14322 95.469 -8.588 1.0
262.50404 88.025 -4.359 0.0
261.95546 117.93 -5.5 0.0
337.57995 122.08 -6.658 1.0
373.08036 126.846 -10.115 1.0
220.36853 157.934 -13.192 0.0
357.22404 199.889 -9.832 1.0
663.61424 143.681 -9.066 1.0
155.08853 201.152 -7.43 0.0
264.56771 133.7 -11.767 0.0
262.53016 105.041 -3.933 0.0
386.61179 132.644 -8.34 1.0
224.41751 93.333 -12.001 0.0
264.25424 117.547 -6.134 0.0
12.82567 99.229 -29.527 0.0
470.25587 135.99 -7.403 1.0
213.7073 92.584 -8.398 0.0
50.59873 108.989 -10.006 0.0
273.162 114.014 -8.527 0.0
285.1522 101.877 -9.361 0.0
267.88526 123.903 -10.177 0.0
334.54975 138.386 -7.389 1.0
174.0273 95.084 -21.944 0.0
242.15465 87.196 -9.749 0.0
188.96934 188.967 -3.288 0.0
480.67873 127.989 -7.243 1.0
182.54322 72.894 -17.837 0.0
231.1571 126.959 -5.632 0.0
105.37751 136.156 -13.607 0.0
125.88363 93.022 -13.496 0.0
216.99873 151.866 -7.47 0.0
176.50893 142.601 -3.881 0.0
245.57669 123.186 -3.609 0.0
191.37261 145.008 -14.3 0.0
62.11873 80.961 -12.453 0.0
274.80771 83.505 -10.032 0.0
148.29669 92.154 -13.542 0.0
241.47546 115.886 -11.948 0.0
250.40934 100.001 -18.335 0.0
154.56608 96.464 -12.133 0.0
485.14567 84.633 -8.812 1.0
307.22567 63.498 -9.047 0.0
167.78404 122.92 -13.528 0.0
345.10322 130.003 -7.858 1.0
178.9122 111.13 -7.33 0.0
237.29587 111.244 -15.209 0.0
230.16444 74.335 -12.244 0.0
230.50404 98.933 -12.616 0.0
195.16036 131.037 -12.769 0.0
130.01098 99.176 -11.082 0.0
150.02077 97.501 -2.945 0.0
239.64689 89.99 -9.224 0.0
91.6371 71.187 -16.523 0.0
136.88118 121.19 -12.181 0.0
265.29914 167.132 -13.859 0.0
166.84363 76.298 -7.692 0.0
34.79465 109.386 -13.591 0.0
344.29342 138.826 -12.746 1.0
294.71302 123.963 -15.225 0.0
232.9073 100.264 -7.171 0.0
501.68118 126.947 -8.972 1.0
163.00363 154.296 -19.387 0.0
186.51383 89.989 -5.338 0.0
279.30077 130.522 -11.813 0.0
202.78812 79.515 -26.44 0.0
123.45424 129.987 -14.751 0.0
237.08689 82.135 -6.347 0.0
239.75138 169.111 -7.915 0.0
105.87383 145.028 -2.414 0.0
250.46159 123.306 -5.113 0.0
227.68281 132.51 -6.661 0.0
487.44444 100.065 -16.668 1.0
247.17016 165.886 -8.476 0.0
194.92526 99.414 -7.516 0.0
174.602 194.079 -4.611 0.0
199.96689 148.78 -9.657 0.0
278.7522 185.291 -10.58 0.0
147.82649 88.634 -3.83 0.0
166.1122 106.748 -10.875 0.0
150.67383 120.367 -14.628 0.0
237.53098 127.24 -27.291 0.0
174.10567 124.185 -6.983 0.0
84.84526 98.321 -4.167 0.0
287.50322 121.821 -9.951 0.0
142.23628 184.994 -16.834 0.0
85.91628 180.788 -9.972 0.0
217.23383 108.892 -7.211 0.0
233.63873 113.878 -6.394 0.0
291.94404 91.976 -6.998 0.0
502.5171 140.015 -5.285 1.0
316.02893 97.508 -10.52 0.0
408.58077 176.977 -15.701 1.0
244.13995 156.187 -5.985 0.0
146.46812 140.032 -13.347 0.0
131.05587 114.198 -23.084 0.0
175.80363 137.052 -7.147 0.0
230.53016 115.496 -3.953 0.0
247.92771 90.092 -10.103 0.0
207.04608 132.94 -7.325 0.0
163.70893 77.698 -18.806 0.0
179.722 81.884 -40.036 0.0
214.02077 87.003 -4.724 0.0
379.68934 127.986 -8.715 1.0
173.322 74.929 -3.089 0.0
263.81016 131.945 -6.911 0.0
244.21832 109.004 -3.762 0.0
220.1073 99.948 -14.54 0.0
298.37016 87.591 -31.42 0.0
273.97179 169.372 -10.764 0.0
229.74649 117.184 -6.174 0.0
383.68608 127.261 -3.975 1.0
278.02077 47.779 -4.486 0.0
135.75791 164.977 -5.974 0.0
373.75955 129.057 -8.391 1.0
272.40444 162.882 -14.916 0.0
164.93669 120.317 -11.476 0.0
242.99057 103.45 -16.493 0.0
248.24118 116.026 -6.973 0.0
304.61342 212.051 -17.131 0.0
228.91057 91.879 -23.314 0.0
308.50567 118.188 -7.159 0.0
419.83955 125.007 -11.017 1.0
189.67465 193.129 -8.674 0.0
242.28526 69.129 -16.121 0.0
213.02812 126.919 -8.439 0.0
290.16771 135.96 -7.305 0.0
143.12444 100.706 -12.15 0.0
278.22975 103.227 -7.35 0.0
260.30975 190.015 -5.148 0.0
112.53506 128.054 -18.969 0.0
248.78975 102.113 -7.149 0.0
178.33751 147.659 -3.494 0.0
242.83383 72.278 -11.75 0.0
226.97751 100.012 -4.935 0.0
172.61669 102.747 -9.067 0.0
188.96934 110.208 -7.915 0.0
129.35791 183.983 -7.223 0.0
169.45587 91.872 -5.507 0.0
57.67791 104.328 -9.213 0.0
294.47791 107.29 -6.285 0.0
372.79302 124.018 -8.312 1.0
226.82077 132.001 -5.636 0.0
171.25832 111.129 -10.311 0.0
130.61179 204.936 -9.571 0.0
123.48036 171.624 -7.069 0.0
230.86975 154.048 -4.541 0.0
181.26322 120.07 -3.623 0.0
102.79138 113.374 -13.804 0.0
385.64526 116.331 -6.748 1.0
193.69751 112.542 -4.375 0.0
249.20771 146.99 -7.306 0.0
172.64281 119.993 -9.333 0.0
152.45016 95.981 -12.144 0.0
142.75873 86.66 -14.115 0.0
413.20444 123.564 -10.417 1.0
208.87465 134.331 -14.099 0.0
200.51546 165.825 -12.445 0.0
337.6322 115.649 -11.181 1.0
222.9024 75.527 -15.198 0.0
221.77914 104.983 -7.908 0.0
262.922 156.13 -13.043 0.0
206.602 236.05 -3.612 0.0
277.9424 147.967 -8.768 0.0
139.4673 159.421 -18.781 0.0
167.73179 161.62 -11.271 0.0
205.71383 190.11 -3.171 0.0
308.55791 92.008 -11.944 0.0
184.89424 111.551 -11.777 0.0
162.42893 83.324 -15.155 0.0
150.04689 119.14 -23.358 0.0
217.15546 128.463 -3.67 0.0
156.49914 155.053 -3.135 0.0
720.74404 113.527 -11.96 1.0
429.84444 146.456 -10.661 1.0
258.61179 92.829 -8.928 0.0
210.31138 86.073 -16.77 0.0
263.02649 98.531 -27.825 0.0
167.49669 90.052 -10.736 0.0
358.08608 63.867 -12.322 1.0
326.19057 140.026 -4.9 1.0
418.42893 85.351 -7.587 1.0
192.13016 147.428 -8.522 0.0
180.61016 89.582 -12.25 0.0
194.21995 137.415 -21.924 0.0
194.5073 169.757 -10.502 0.0
260.64934 193.875 -7.698 0.0
246.38649 142.081 -7.517 0.0
237.40036 196.665 -9.895 0.0
183.71873 124.706 -28.112 0.0
125.64853 94.467 -4.691 0.0
217.0771 98.966 -4.5 0.0
297.22077 107.963 -16.542 0.0
153.57342 93.931 -15.579 0.0
258.35057 145.774 -7.775 0.0
213.13261 86.633 -7.306 0.0
215.66649 111.961 -5.529 0.0
84.4273 74.848 -22.231 0.0
215.87546 105.793 -8.988 0.0
165.48526 127.001 -13.785 0.0
399.33342 161.057 -3.206 1.0
367.93424 119.991 -6.123 1.0
313.44281 129.342 -10.202 0.0
295.67955 114.641 -9.913 0.0
196.5971 96.798 -14.001 0.0
191.4771 100.248 -5.114 0.0
313.44281 102.699 -7.444 0.0
205.11302 93.238 -6.034 0.0
81.42322 207.494 -24.804 0.0
188.78649 194.439 -9.626 0.0
308.24444 145.975 -6.359 0.0
411.92444 237.466 -9.633 1.0
256.86159 131.837 -11.147 0.0
38.45179 73.214 -14.797 0.0
264.77669 130.674 -4.721 0.0
212.4273 116.029 -2.106 0.0
displayHTML(frameIt("https://en.wikipedia.org/wiki/Euclidean_space",500)) // make sure you run the cell with first wikipedia article!

Do you see the problem in our clusters based on the plot?

As you can see there is very little "separation" (in the sense of being separable into two point clouds, that represent our two identifed clusters, such that they have minimal overlay of these two features, i.e. tempo and loudness. NOTE that this sense of "pairwise separation" is a 2D projection of all three features in 3D Euclidean Space, i.e. loudness, tempo and duration, that depends directly on their two-dimensional visually sense-making projection of perhaps two important song features, as depicted in the corresponding 2D-scatter-plot of tempo versus loudness within the 2D scatter plot matrix that is helping us to partially visualize in the 2D-plane all of the three features in the three dimensional real-valued feature space that was the input to our K-Means algorithm) between loudness, and tempo and generated clusters. To see that, focus on the panels in the first and second columns of the scatter plot matrix. For varying values of loudness and tempo prediction does not change. Instead, duration of a song alone predicts what cluster it belongs to. Why is that?

To see the reason, let's take a look at the marginal distribution of duration in the next cell.

To produce this plot, we have picked histogram from the plots menu and in Plot Options we chose prediction as key and duration as value. The histogram plot shows significant skew in duration. Basically there are a few very long songs. These data points have large leverage on the mean function (what KMeans uses for clustering).

display(transformed.sample(false, fraction = 1.0).select("duration", "prediction")) // plotting over all results
duration prediction
213.7073 0.0
133.25016 0.0
247.32689 0.0
337.05751 1.0
430.23628 1.0
186.80118 0.0
361.89995 1.0
220.00281 0.0
156.86485 0.0
256.67873 0.0
204.64281 0.0
112.48281 0.0
170.39628 0.0
215.95383 0.0
303.62077 0.0
266.60526 0.0
326.19057 1.0
51.04281 0.0
129.4624 0.0
253.33506 0.0
237.76608 0.0
132.96281 0.0
399.35955 1.0
168.75057 0.0
396.042 1.0
192.10404 0.0
12.2771 0.0
367.56853 1.0
189.93587 0.0
233.50812 0.0
462.68036 1.0
202.60526 0.0
241.52771 0.0
275.64363 0.0
350.69342 1.0
166.55628 0.0
249.49506 0.0
53.86404 0.0
233.76934 0.0
275.12118 0.0
191.13751 0.0
299.07546 0.0
468.74077 1.0
110.34077 0.0
234.78812 0.0
705.25342 1.0
383.52934 1.0
196.10077 0.0
299.20608 0.0
94.04036 0.0
28.08118 0.0
207.93424 0.0
152.0322 0.0
207.96036 0.0
371.25179 1.0
288.93995 0.0
235.93751 0.0
505.70404 1.0
177.57995 0.0
376.842 1.0
266.84036 0.0
270.8371 0.0
178.18077 0.0
527.17669 1.0
244.27057 0.0
436.47955 1.0
236.79955 0.0
134.53016 0.0
181.002 0.0
239.41179 0.0
72.98567 0.0
214.36036 0.0
150.59546 0.0
152.45016 0.0
218.17424 0.0
290.63791 0.0
149.05424 0.0
440.21506 1.0
212.34893 0.0
278.67383 0.0
269.60934 0.0
182.69995 0.0
207.882 0.0
102.50404 0.0
437.60281 1.0
216.11057 0.0
193.25342 0.0
234.16118 0.0
695.77098 1.0
297.58649 0.0
265.37751 0.0
182.85669 0.0
202.23955 0.0
390.08608 1.0
242.78159 0.0
242.54649 0.0
496.66567 1.0
395.36281 1.0
234.89261 0.0
237.84444 0.0
313.57342 0.0
489.22077 1.0
239.98649 0.0
128.65261 0.0
193.07057 0.0
144.19546 0.0
196.96281 0.0
222.06649 0.0
58.38322 0.0
346.14812 1.0
406.54322 1.0
304.09098 0.0
180.21832 0.0
213.41995 0.0
323.44771 0.0
54.7522 0.0
437.02812 1.0
268.7473 0.0
104.75057 0.0
248.60689 0.0
221.41342 0.0
237.81832 0.0
216.34567 0.0
78.94159 0.0
47.22893 0.0
202.00444 0.0
293.56363 0.0
206.44526 0.0
267.78077 0.0
187.27138 0.0
249.05098 0.0
221.51791 0.0
452.88444 1.0
163.76118 0.0
257.17506 0.0
235.78077 0.0
257.82812 0.0
195.34322 0.0
478.1971 1.0
268.01587 0.0
136.93342 0.0
397.53098 1.0
194.69016 0.0
580.80608 1.0
177.71057 0.0
257.43628 0.0
184.13669 0.0
64.57424 0.0
123.92444 0.0
257.07057 0.0
219.48036 0.0
679.41832 1.0
252.29016 0.0
311.90159 0.0
252.76036 0.0
138.94485 0.0
428.64281 1.0
295.31383 0.0
212.03546 0.0
426.50077 1.0
197.11955 0.0
191.55546 0.0
187.53261 0.0
184.97261 0.0
388.41424 1.0
218.90567 0.0
246.49098 0.0
452.88444 1.0
223.18975 0.0
245.2371 0.0
148.92363 0.0
362.81424 1.0
171.44118 0.0
207.72526 0.0
191.29424 0.0
208.50893 0.0
240.24771 0.0
373.44608 1.0
172.01587 0.0
153.25995 0.0
242.36363 0.0
177.55383 0.0
263.20934 0.0
191.03302 0.0
232.77669 0.0
220.65587 0.0
132.57098 0.0
189.6224 0.0
32.522 0.0
173.94893 0.0
268.01587 0.0
91.97669 0.0
215.77098 0.0
195.47383 0.0
234.81424 0.0
110.78485 0.0
155.74159 0.0
172.5122 0.0
227.76118 0.0
233.01179 0.0
298.89261 0.0
245.36771 0.0
276.08771 0.0
375.77098 1.0
273.71057 0.0
226.92526 0.0
196.46649 0.0
199.65342 0.0
243.40853 0.0
207.62077 0.0
252.73424 0.0
244.32281 0.0
152.65914 0.0
203.88526 0.0
120.16281 0.0
214.77832 0.0
204.9824 0.0
118.30812 0.0
205.26975 0.0
499.22567 1.0
217.83465 0.0
192.57424 0.0
328.09751 1.0
298.03057 0.0
501.49832 1.0
276.40118 0.0
507.55873 1.0
191.08526 0.0
324.38812 0.0
218.56608 0.0
232.30649 0.0
295.05261 0.0
225.74975 0.0
522.00444 1.0
245.86404 0.0
263.67955 0.0
556.61669 1.0
227.94404 0.0
83.82649 0.0
242.85995 0.0
233.09016 0.0
201.74322 0.0
476.15955 1.0
370.93832 1.0
229.17179 0.0
288.07791 0.0
91.34975 0.0
230.79138 0.0
256.46975 0.0
203.44118 0.0
230.81751 0.0
272.29995 0.0
201.22077 0.0
204.93016 0.0
372.84526 1.0
63.65995 0.0
412.15955 1.0
270.10567 0.0
104.6722 0.0
214.25587 0.0
230.05995 0.0
155.74159 0.0
218.04363 0.0
357.77261 1.0
318.27546 0.0
444.55138 1.0
509.07383 1.0
176.95302 0.0
95.34649 0.0
207.67302 0.0
256.67873 0.0
252.78649 0.0
234.60526 0.0
167.65342 0.0
266.16118 0.0
188.05506 0.0
229.14567 0.0
227.00363 0.0
74.50077 0.0
222.09261 0.0
212.68853 0.0
155.74159 0.0
153.65179 0.0
548.51873 1.0
445.90975 1.0
317.49179 0.0
140.32934 0.0
309.4722 0.0
142.91546 0.0
429.24363 1.0
172.19873 0.0
215.562 0.0
290.79465 0.0
197.04118 0.0
309.44608 0.0
265.01179 0.0
257.64526 0.0
203.54567 0.0
161.56689 0.0
177.84118 0.0
260.04853 0.0
195.00363 0.0
268.042 0.0
195.97016 0.0
351.92118 1.0
119.35302 0.0
177.24036 0.0
259.83955 0.0
222.51057 0.0
163.97016 0.0
139.49342 0.0
158.77179 0.0
193.4624 0.0
131.082 0.0
190.95465 0.0
413.3873 1.0
134.73914 0.0
162.40281 0.0
243.59138 0.0
180.84526 0.0
315.14077 0.0
221.51791 0.0
122.53995 0.0
243.43465 0.0
200.202 0.0
95.50322 0.0
200.4371 0.0
186.93179 0.0
492.22485 1.0
359.33995 1.0
89.39057 0.0
212.81914 0.0
315.03628 0.0
214.69995 0.0
137.92608 0.0
559.49016 1.0
382.14485 1.0
430.31465 1.0
171.25832 0.0
210.12853 0.0
53.18485 0.0
78.65424 0.0
209.162 0.0
237.60934 0.0
184.47628 0.0
323.02975 0.0
158.27546 0.0
213.86404 0.0
470.69995 1.0
229.79873 0.0
392.22812 1.0
196.62322 0.0
80.97914 0.0
124.55138 0.0
230.32118 0.0
132.51873 0.0
112.95302 0.0
131.52608 0.0
153.25995 0.0
211.01669 0.0
218.93179 0.0
175.0722 0.0
116.61016 0.0
251.45424 0.0
269.50485 0.0
231.47057 0.0
298.37016 0.0
314.122 0.0
263.99302 0.0
480.91383 1.0
305.10975 0.0
280.16281 0.0
295.65342 0.0
411.45424 1.0
265.97832 0.0
153.96526 0.0
210.31138 0.0
241.44934 0.0
235.33669 0.0
352.65261 1.0
293.35465 0.0
243.66975 0.0
133.22404 0.0
233.03791 0.0
339.93098 1.0
249.80853 0.0
253.72689 0.0
94.35383 0.0
130.63791 0.0
195.36934 0.0
229.25016 0.0
314.64444 0.0
329.1424 1.0
224.46975 0.0
215.562 0.0
236.85179 0.0
197.11955 0.0
251.76771 0.0
183.50975 0.0
268.01587 0.0
413.02159 1.0
385.17506 1.0
358.16444 1.0
164.77995 0.0
253.36118 0.0
196.49261 0.0
157.6224 0.0
310.93506 0.0
434.96444 1.0
157.04771 0.0
266.16118 0.0
267.59791 0.0
303.90812 0.0
277.18485 0.0
272.22159 0.0
155.95057 0.0
127.00689 0.0
152.86812 0.0
224.7571 0.0
175.41179 0.0
151.97995 0.0
199.99302 0.0
251.53261 0.0
252.96934 0.0
181.13261 0.0
195.49995 0.0
328.202 1.0
187.71546 0.0
166.94812 0.0
242.72934 0.0
218.80118 0.0
205.68771 0.0
146.93832 0.0
449.4624 1.0
503.40526 1.0
181.34159 0.0
143.90812 0.0
406.36036 1.0
269.87057 0.0
265.29914 0.0
242.88608 0.0
110.39302 0.0
262.84363 0.0
334.00118 1.0
173.81832 0.0
608.78322 1.0
197.22404 0.0
163.94404 0.0
93.09995 0.0
206.75873 0.0
183.50975 0.0
402.442 1.0
735.79057 1.0
233.19465 0.0
326.55628 1.0
525.50485 1.0
396.19873 1.0
171.12771 0.0
318.1971 0.0
323.70893 0.0
526.99383 1.0
161.09669 0.0
168.41098 0.0
249.57342 0.0
405.4722 1.0
271.0722 0.0
190.69342 0.0
151.61424 0.0
121.57342 0.0
117.08036 0.0
244.24444 0.0
246.85669 0.0
144.03873 0.0
169.79546 0.0
193.93261 0.0
325.77261 1.0
337.34485 1.0
143.67302 0.0
211.69587 0.0
299.4673 0.0
159.76444 0.0
337.31873 1.0
259.18649 0.0
221.64853 0.0
164.54485 0.0
56.34567 0.0
184.21506 0.0
249.23383 0.0
127.29424 0.0
306.6771 0.0
168.98567 0.0
290.2722 0.0
182.33424 0.0
180.92363 0.0
233.76934 0.0
423.70567 1.0
139.36281 0.0
289.72363 0.0
100.96281 0.0
153.05098 0.0
129.25342 0.0
190.11873 0.0
158.1971 0.0
234.94485 0.0
256.02567 0.0
279.84934 0.0
217.7824 0.0
271.62077 0.0
372.34893 1.0
264.88118 0.0
270.18404 0.0
42.86649 0.0
247.27465 0.0
185.10322 0.0
333.94893 1.0
380.49914 1.0
517.72036 1.0
208.95302 0.0
359.73179 1.0
378.72281 1.0
110.41914 0.0
237.37424 0.0
136.30649 0.0
153.73016 0.0
209.8673 0.0
224.86159 0.0
202.34404 0.0
229.43302 0.0
300.56444 0.0
264.35873 0.0
213.9424 0.0
164.77995 0.0
206.75873 0.0
249.73016 0.0
521.11628 1.0
240.09098 0.0
347.89832 1.0
224.96608 0.0
250.25261 0.0
419.00363 1.0
593.3971 1.0
269.89669 0.0
235.12771 0.0
180.76689 0.0
304.03873 0.0
253.36118 0.0
311.74485 0.0
353.43628 1.0
337.00526 1.0
305.00526 0.0
113.76281 0.0
379.74159 1.0
258.76853 0.0
157.64853 0.0
352.28689 1.0
221.51791 0.0
249.44281 0.0
205.42649 0.0
166.922 0.0
250.25261 0.0
224.73098 0.0
316.83873 0.0
269.34812 0.0
188.02893 0.0
276.87138 0.0
263.02649 0.0
320.44363 0.0
531.43465 1.0
126.85016 0.0
232.01914 0.0
243.87873 0.0
288.60036 0.0
817.57995 1.0
200.9073 0.0
229.48526 0.0
263.65342 0.0
209.71057 0.0
430.54975 1.0
531.9571 1.0
277.39383 0.0
253.41342 0.0
538.5922 1.0
187.34975 0.0
189.67465 0.0
247.66649 0.0
196.15302 0.0
248.45016 0.0
266.26567 0.0
174.41914 0.0
241.21424 0.0
213.39383 0.0
201.66485 0.0
141.16526 0.0
198.76526 0.0
234.03057 0.0
293.77261 0.0
149.83791 0.0
193.09669 0.0
416.62649 1.0
206.18404 0.0
292.15302 0.0
209.55383 0.0
303.46404 0.0
284.31628 0.0
209.34485 0.0
131.34322 0.0
127.16363 0.0
228.98893 0.0
18.18077 0.0
202.762 0.0
475.21914 1.0
434.52036 1.0
306.36363 0.0
251.84608 0.0
392.80281 1.0
191.63383 0.0
207.90812 0.0
298.86649 0.0
195.36934 0.0
236.06812 0.0
315.76771 0.0
214.5171 0.0
140.90404 0.0
147.66975 0.0
230.50404 0.0
259.99628 0.0
234.70975 0.0
191.97342 0.0
305.6322 0.0
197.53751 0.0
152.05832 0.0
360.82893 1.0
440.37179 1.0
211.09506 0.0
362.60526 1.0
364.64281 1.0
267.12771 0.0
380.81261 1.0
248.13669 0.0
253.20444 0.0
244.03546 0.0
159.13751 0.0
246.12526 0.0
40.95955 0.0
200.04526 0.0
155.08853 0.0
144.66567 0.0
170.86649 0.0
286.71955 0.0
333.19138 1.0
542.1971 1.0
222.37995 0.0
195.68281 0.0
440.00608 1.0
223.08526 0.0
378.98404 1.0
91.45424 0.0
114.65098 0.0
218.80118 0.0
242.36363 0.0
143.0722 0.0
242.78159 0.0
256.31302 0.0
244.37506 0.0
36.54485 0.0
401.94567 1.0
178.65098 0.0
277.002 0.0
288.70485 0.0
228.91057 0.0
204.06812 0.0
212.40118 0.0
224.31302 0.0
195.7873 0.0
244.63628 0.0
241.81506 0.0
224.10404 0.0
132.75383 0.0
113.3971 0.0
237.03465 0.0
162.58567 0.0
247.24853 0.0
285.30893 0.0
318.24934 0.0
375.53587 1.0
188.78649 0.0
108.79955 0.0
270.91546 0.0
249.23383 0.0
192.80934 0.0
295.20934 0.0
177.84118 0.0
242.6771 0.0
245.28934 0.0
105.61261 0.0
329.29914 1.0
207.46404 0.0
225.51465 0.0
123.8722 0.0
270.10567 0.0
174.86322 0.0
377.28608 1.0
220.18567 0.0
1190.53016 1.0
1518.65424 1.0
438.64771 1.0
344.842 1.0
76.48608 0.0
174.52363 0.0
581.14567 1.0
177.68444 0.0
125.962 0.0
160.39138 0.0
211.27791 0.0
182.88281 0.0
261.53751 0.0
285.80526 0.0
263.44444 0.0
133.32853 0.0
313.99138 0.0
199.18322 0.0
200.98567 0.0
170.84036 0.0
194.48118 0.0
241.65832 0.0
245.15873 0.0
262.66077 0.0
307.46077 0.0
295.20934 0.0
259.52608 0.0
347.19302 1.0
206.91546 0.0
399.51628 1.0
271.25506 0.0
172.7473 0.0
231.65342 0.0
208.1171 0.0
195.76118 0.0
723.27791 1.0
282.95791 0.0
153.12934 0.0
207.15057 0.0
174.41914 0.0
269.29587 0.0
275.3824 0.0
149.41995 0.0
108.35546 0.0
243.69587 0.0
308.27057 0.0
204.90404 0.0
311.24853 0.0
164.77995 0.0
449.51465 1.0
140.93016 0.0
165.22404 0.0
53.26322 0.0
218.80118 0.0
300.85179 0.0
388.75383 1.0
150.77832 0.0
293.11955 0.0
177.71057 0.0
184.11057 0.0
225.17506 0.0
272.19546 0.0
157.67465 0.0
204.61669 0.0
93.98812 0.0
204.45995 0.0
307.1473 0.0
347.0624 1.0
184.73751 0.0
146.65098 0.0
513.90649 1.0
293.85098 0.0
121.73016 0.0
86.72608 0.0
171.25832 0.0
264.95955 0.0
411.68934 1.0
190.79791 0.0
159.65995 0.0
162.89914 0.0
205.97506 0.0
204.59057 0.0
117.02812 0.0
135.28771 0.0
163.65669 0.0
254.95465 0.0
178.31138 0.0
150.77832 0.0
410.53995 1.0
222.30159 0.0
314.74893 0.0
233.11628 0.0
226.21995 0.0
441.67791 1.0
120.99873 0.0
157.75302 0.0
203.65016 0.0
287.73832 0.0
226.7424 0.0
69.56363 0.0
174.52363 0.0
363.67628 1.0
136.48934 0.0
390.60853 1.0
284.60363 0.0
291.81342 0.0
502.7522 1.0
197.27628 0.0
329.53424 1.0
340.1922 1.0
170.94485 0.0
113.57995 0.0
205.24363 0.0
169.22077 0.0
285.70077 0.0
221.23057 0.0
310.38649 0.0
353.48853 1.0
415.92118 1.0
150.59546 0.0
236.90404 0.0
227.42159 0.0
229.8771 0.0
359.3922 1.0
403.17342 1.0
296.59383 0.0
117.65506 0.0
241.3971 0.0
34.92526 0.0
188.31628 0.0
409.02485 1.0
335.5424 1.0
354.63791 1.0
213.31546 0.0
238.62812 0.0
193.33179 0.0
225.33179 0.0
166.84363 0.0
79.96036 0.0
158.69342 0.0
176.53506 0.0
347.61098 1.0
106.39628 0.0
147.93098 0.0
446.92853 1.0
360.22812 1.0
214.56934 0.0
325.35465 1.0
413.23057 1.0
218.04363 0.0
215.30077 0.0
57.44281 0.0
247.48363 0.0
793.25995 1.0
467.3824 1.0
327.00036 1.0
232.72444 0.0
251.68934 0.0
197.3024 0.0
193.88036 0.0
383.32036 1.0
269.71383 0.0
255.05914 0.0
337.18812 1.0
240.92689 0.0
206.18404 0.0
143.22893 0.0
244.27057 0.0
83.56526 0.0
428.40771 1.0
261.11955 0.0
208.37832 0.0
369.78893 1.0
47.17669 0.0
239.3073 0.0
17.37098 0.0
257.04444 0.0
198.63465 0.0
208.40444 0.0
338.28526 1.0
175.15057 0.0
234.97098 0.0
275.06893 0.0
186.46159 0.0
201.74322 0.0
237.58322 0.0
219.402 0.0
461.29587 1.0
196.67546 0.0
290.63791 0.0
328.22812 1.0
260.64934 0.0
245.83791 0.0
97.54077 0.0
248.0322 0.0
175.33342 0.0
199.57506 0.0
229.45914 0.0
902.26893 1.0
271.12444 0.0
211.17342 0.0
179.3824 0.0
156.96934 0.0
281.0771 0.0
291.97016 0.0
392.85506 1.0
223.00689 0.0
269.94893 0.0
36.64934 0.0
309.26322 0.0
178.41587 0.0
206.75873 0.0
155.68934 0.0
254.71955 0.0
133.11955 0.0
260.362 0.0
135.28771 0.0
158.27546 0.0
154.93179 0.0
205.84444 0.0
276.21832 0.0
193.61914 0.0
153.73016 0.0
389.11955 1.0
195.23873 0.0
210.72934 0.0
336.06485 1.0
263.02649 0.0
230.26893 0.0
40.6722 0.0
255.92118 0.0
305.60608 0.0
177.8673 0.0
361.11628 1.0
357.66812 1.0
196.49261 0.0
218.40934 0.0
91.58485 0.0
185.25995 0.0
282.80118 0.0
244.68853 0.0
215.40526 0.0
211.19955 0.0
327.75791 1.0
510.40608 1.0
212.74077 0.0
120.86812 0.0
507.08853 1.0
265.11628 0.0
183.06567 0.0
199.54893 0.0
41.92608 0.0
164.75383 0.0
267.33669 0.0
208.74404 0.0
253.09995 0.0
244.50567 0.0
195.73506 0.0
160.07791 0.0
327.70567 1.0
174.86322 0.0
272.92689 0.0
251.53261 0.0
216.99873 0.0
195.3171 0.0
247.11791 0.0
101.3024 0.0
315.97669 0.0
449.67138 1.0
173.16526 0.0
394.44853 1.0
226.69016 0.0
219.11465 0.0
240.92689 0.0
227.91791 0.0
119.84934 0.0
109.92281 0.0
116.08771 0.0
187.71546 0.0
191.65995 0.0
116.32281 0.0
482.45506 1.0
262.71302 0.0
208.97914 0.0
209.81506 0.0
129.85424 0.0
219.0624 0.0
500.4273 1.0
224.7571 0.0
274.85995 0.0
145.162 0.0
211.27791 0.0
167.49669 0.0
415.7122 1.0
346.33098 1.0
399.69914 1.0
136.56771 0.0

There are known techniques for dealing with skewed features. A simple technique is applying a power transformation. We are going to use the simplest and most common power transformation: logarithm.

In following cell we repeat the clustering experiment with a transformed DataFrame that includes a new column called log_duration.

val df = table("songsTable").selectExpr("tempo", "loudness", "log(duration) as log_duration")
val trainingData2 = new VectorAssembler().
                  setInputCols(Array("log_duration", "tempo", "loudness")).
                  setOutputCol("features").
                  transform(df)
val model2 = new KMeans().setK(2).fit(trainingData2)
val transformed2 = model2.transform(trainingData2).select("log_duration", "tempo", "loudness", "prediction")
display(transformed2.sample(false, fraction = 0.1))
log_duration tempo loudness prediction
4.892228263795702 89.519 0.596 1.0
5.321266069167063 99.722 -12.339 1.0
4.890069465059506 77.072 -19.018 1.0
5.128421707524712 149.709 -9.086 0.0
5.981520266236513 125.086 -8.858 1.0
3.9864630938537244 102.771 -8.348 1.0
5.4586834904217785 81.03 -4.351 1.0
4.901788411822545 104.155 -9.995 1.0
5.3676585240430414 121.879 -6.676 1.0
4.629902212435873 107.065 -5.793 1.0
5.695704905423108 133.245 -15.968 0.0
5.098409146993903 109.509 -11.688 1.0
5.274758113962512 160.093 -9.8 0.0
5.271409371809784 125.722 -11.383 1.0
5.220207760063188 178.457 -5.111 0.0
5.4080223065135975 115.051 -4.391 1.0
5.253812766217677 100.846 -17.772 1.0
5.450079581978073 123.436 -7.885 1.0
5.1587617503861605 104.546 -17.661 1.0
4.707590032112409 123.436 -7.661 1.0
5.532338501851636 79.327 -9.448 1.0
5.419427084876769 99.071 -6.437 1.0
5.574734540105573 131.984 -3.124 0.0
5.451425331508477 81.996 -5.243 1.0
5.30699570063741 117.089 -7.265 1.0
6.165752987143742 124.985 -9.327 1.0
5.315376921332985 172.282 -11.732 0.0
5.322669238165966 178.637 -5.65 0.0
5.367170955002224 153.471 -5.629 0.0
5.3359648235518415 152.604 -16.311 0.0
5.863407230069623 133.41 -11.714 0.0
5.177506777473437 105.835 -13.759 1.0
5.752687806796722 90.654 -7.9 1.0
5.343109071331969 155.839 -13.898 0.0
6.154220842182319 124.993 -9.335 1.0
4.394191590641474 81.892 -17.253 1.0
4.824718321534403 96.931 -25.969 1.0
5.4394747695975 115.32 -27.166 1.0
4.879205158949818 167.916 -10.475 0.0
5.57592266340285 66.84 -17.105 1.0
5.583414801700688 129.987 -5.065 1.0
5.212267799598076 126.594 -11.339 1.0
5.624684612142528 150.15 -2.945 0.0
5.049539098064766 106.711 -9.961 1.0
5.793629272482639 229.55 -11.221 0.0
5.234927305677438 101.512 -15.01 1.0
5.580858019525172 84.452 -15.906 1.0
5.571559292617606 131.909 -13.378 0.0
5.788602307521884 141.122 -8.686 0.0
4.970082221746526 152.041 -3.942 0.0
6.049039039652957 73.965 -6.694 1.0
5.030771068507152 122.206 -4.552 1.0
5.383496399152903 87.535 -8.193 1.0
5.59910335642404 202.202 -9.769 0.0
3.7580904018205405 144.656 -21.759 0.0
5.510499662196736 91.734 -7.787 1.0
5.415949635284104 88.669 -13.021 1.0
5.5224708477113715 147.009 -12.932 0.0
5.867703214491927 123.972 -8.218 1.0
5.93949099508187 135.225 -7.149 0.0
5.325088257046393 170.058 -7.167 0.0
5.414904042406895 115.039 -3.915 1.0
5.5960046693360805 133.809 -7.065 0.0
5.302843607646548 95.944 -14.027 1.0
5.535022226232155 109.03 -7.646 1.0
5.512083042725035 114.308 -5.128 1.0
4.949931260793479 76.955 -9.919 1.0
5.68280603270908 120.029 -8.123 1.0
5.5288181072501965 123.362 -12.138 1.0
5.755006848335441 96.66 -5.153 1.0
5.4583496443886625 95.173 -8.032 1.0
5.888403967900819 75.822 -20.6 1.0
5.497313542602982 148.228 -7.631 0.0
5.404387405434715 213.22 -6.547 0.0
5.40755403022849 130.008 -5.239 1.0
5.358476844907908 89.546 -5.737 1.0
5.762835163594046 135.286 -11.203 0.0
5.240616693947672 116.085 -15.192 1.0
4.689507198383877 196.218 -5.037 0.0
5.334958023447545 122.167 -14.249 1.0
5.1640040683149815 128.976 -10.014 1.0
5.933003732571149 96.627 -25.713 1.0
7.082153999499342 70.198 -20.06 1.0
6.083696607997674 96.715 -6.698 1.0
5.843086341116113 111.976 -7.519 1.0
5.3531743758536185 173.791 -8.575 0.0
5.749365533302135 126.926 -10.405 1.0
5.595810663643512 182.629 -4.415 0.0
5.1801562156651 202.819 -6.508 0.0
5.215536501039555 84.913 -9.411 1.0
6.242041322834571 106.155 -20.058 1.0
5.676114625435545 121.843 -5.426 1.0
5.141340989863751 122.12 -11.558 1.0
4.7325069942308415 112.172 -19.122 1.0
5.99936679196512 102.913 -5.725 1.0
5.871097297119184 164.057 -7.287 0.0
6.024005718051915 126.089 -7.56 1.0
4.050789844156208 92.502 -21.488 1.0
4.425627883486494 198.038 -4.413 0.0
5.823889504042276 127.869 -5.024 1.0
5.617021720803423 102.532 -21.859 1.0
5.056050499653188 204.32 -33.671 0.0
5.598232792959459 119.752 -6.199 1.0
4.891247596658531 137.639 -7.418 0.0
5.265893033592153 161.881 -11.354 0.0
4.517265864988051 174.526 -1.968 0.0
6.228685603732306 132.484 -10.758 0.0
5.423584151189881 99.976 -6.921 1.0
5.4844935264715495 125.023 -12.544 1.0
4.7543460260807855 66.166 -19.338 1.0
4.7563691709899825 194.894 -15.227 0.0
5.389356620738077 120.119 -6.989 1.0
6.215462333459528 140.038 -7.024 0.0
4.916820535591926 162.84 -21.235 0.0
5.67360501441859 167.627 -14.819 0.0
4.9297436261579115 131.889 -19.341 0.0
5.559460924718209 180.063 -8.458 0.0
5.6208132082285225 65.726 -18.979 1.0
5.717756350350775 99.095 -11.938 1.0
5.881794174009387 90.194 -11.13 1.0
5.750861938316315 142.684 -34.187 0.0
6.124023041620579 66.856 -18.342 1.0
4.959141137431965 110.091 -4.261 1.0
4.96097301974927 151.719 -12.37 0.0
5.312676824285775 131.021 -4.434 0.0
5.080219439635137 212.067 -6.545 0.0
5.395538310588208 122.881 -9.178 1.0
5.077128279024546 167.543 -27.615 0.0
5.360688133553469 191.044 -6.615 0.0
5.165496806936141 72.821 -22.331 1.0
5.330414836847097 117.99 -12.271 1.0
5.516713145004406 181.216 -10.646 0.0
5.291467207691819 141.057 -4.902 0.0
5.337849809954547 146.124 -9.33 0.0
5.639836453511393 94.363 -10.975 1.0
5.292518736943963 149.03 -7.679 0.0
5.3942338170785735 187.495 -9.851 0.0
5.480800285322447 106.475 -12.97 1.0
5.560968705190409 141.892 -6.395 0.0
4.587209351549678 100.152 -7.49 1.0
5.882449835222424 125.015 -6.138 1.0
5.12609700051445 95.002 -12.737 1.0
5.743273792218448 117.694 -13.517 1.0
5.680758751195347 127.045 -3.325 1.0
5.185287796501603 121.236 -7.65 1.0
5.667122570497586 109.965 -6.519 1.0
5.850632972880582 108.969 -8.918 1.0
5.168921752645453 114.372 -13.792 1.0
5.443888273735132 99.821 -6.999 1.0
5.667483810822177 168.042 -6.125 0.0
5.830661908645668 94.324 -4.089 1.0
5.641876503095035 143.837 -5.964 0.0
5.929118873255758 109.973 -13.02 1.0
5.858123107869744 127.977 -5.467 1.0
5.658048889386408 229.909 -5.407 0.0
6.1138473210629245 227.001 -16.889 0.0
5.221195796527836 127.304 -17.207 1.0
5.3080310357356755 106.987 -4.381 1.0
5.693683888480423 64.531 -8.135 1.0
5.024779393055371 126.968 -3.041 1.0
5.286457313335375 90.21 -5.072 1.0
5.628259435100028 125.06 -9.314 1.0
4.863794002154297 99.352 -11.506 1.0
5.105720054556155 128.73 -13.708 1.0
5.443210556309651 106.409 -13.678 1.0
5.586650576963475 187.973 -3.6 0.0
5.423584151189881 79.583 -11.749 1.0
5.50573446287648 90.984 -8.763 1.0
5.996381912027348 146.091 -10.571 0.0
5.378927989850037 96.081 -5.866 1.0
5.263055769740461 102.959 -5.813 1.0
4.994801464692383 77.26 -16.736 1.0
5.87741203189931 125.916 -4.355 1.0
5.021683965446997 66.09 -11.861 1.0
5.309194495513895 160.067 -3.026 0.0
5.312161690119503 137.979 -3.415 0.0
5.473482250340327 160.075 -5.482 0.0
6.172641657606361 199.772 -8.871 0.0
5.714574233587672 92.008 -6.051 1.0
5.395419802936953 171.865 -8.63 0.0
4.844858199794328 96.873 -19.552 1.0
5.060202299303682 104.551 -4.231 1.0
4.748930818586818 115.094 -17.793 1.0
5.314349167717073 149.229 -10.206 0.0
5.269932346654381 68.629 -15.055 1.0
5.9277973529214725 127.997 -4.827 1.0
5.43492773924482 129.895 -6.047 1.0
4.994270518609824 91.863 -14.203 1.0
5.095693709742171 105.907 -10.031 1.0
5.672617347966057 137.165 -7.992 0.0
5.5347129603785135 92.352 -10.665 1.0
5.327374538139593 127.007 -5.728 1.0
5.288833536866274 92.78 -8.946 1.0
5.484818758978618 133.085 -4.901 0.0
5.873672073907065 168.195 -3.712 0.0
5.944636977040216 173.331 -14.65 0.0
5.378566422161142 120.003 -7.086 1.0
5.103976627903757 135.011 -6.256 0.0
5.464009755293217 137.912 -9.125 0.0
5.081842591930373 70.493 -13.819 1.0
5.24199941706601 122.322 -16.949 1.0
5.3975509759903 127.839 -7.259 1.0
5.180009168017768 142.4 -11.379 0.0
5.514611191961615 174.931 -13.835 0.0
5.405444091539472 207.5 -14.066 0.0
5.312934267254636 119.386 -7.572 1.0
5.277695744967576 133.256 -8.598 0.0
5.434585866125362 99.652 -12.738 1.0
5.708526172177688 131.914 -7.071 0.0
5.991822533023377 105.729 -8.32 1.0
5.093932699490288 93.755 -11.965 1.0
4.676943535028833 133.688 -25.357 0.0
5.255177375047388 99.933 -17.731 1.0
5.473591859344723 127.986 -5.204 1.0
5.06845460431089 137.476 -20.349 0.0
6.269861975338076 125.036 -9.35 1.0
4.6061773785992814 107.049 -17.63 1.0
5.811613665680493 96.005 -8.276 1.0
5.37518557930167 144.646 -4.768 0.0
5.407202667843807 127.865 -6.744 1.0
5.10935559222606 89.513 -8.42 1.0
6.3119724941522355 80.637 -21.579 1.0
4.60068212971353 171.133 -7.373 0.0
5.302843607646548 146.46 -9.778 0.0
5.313963475320257 172.222 -5.742 0.0
5.945594651051933 91.964 -18.118 1.0
5.481561789037084 115.205 -14.74 1.0
5.240755041735268 119.842 -8.305 1.0
5.88121099672321 62.239 -11.823 1.0
5.417110114495573 169.442 -9.472 0.0
5.6501791457712125 117.221 -11.272 1.0
5.629667005038476 86.954 -5.186 1.0
5.153340899640642 106.959 -16.133 1.0
5.637140908112494 139.016 -3.58 0.0
4.536195814330017 89.495 -9.888 1.0
5.357123064536815 134.136 -4.418 0.0
4.956570935784844 124.498 -4.068 1.0
5.176622106863231 106.504 -17.826 1.0
6.215462333459528 140.004 -3.739 0.0
6.124080233101131 85.715 -11.73 1.0
5.496242551087362 186.035 -4.3 0.0
5.617970959362721 154.859 -8.951 0.0
4.89477353660241 180.719 -13.166 0.0
6.112748824037213 137.977 -6.56 0.0
6.09500688588351 158.965 -7.366 0.0
6.09459461717037 137.956 -5.248 0.0
5.4849271324832785 146.145 -11.286 0.0
5.786600466126096 103.014 -7.489 1.0
6.091644939062009 168.511 -1.296 0.0
5.459573173642483 105.409 -9.947 1.0
5.433445502449236 165.389 -14.098 0.0
5.265893033592153 116.564 -4.325 1.0
5.460239895734497 163.924 -9.666 0.0
5.6821833846868 109.337 -10.829 1.0
5.433559588618923 140.073 -2.28 0.0
5.139658682588309 95.939 -15.853 1.0
5.913426759488363 85.337 -10.002 1.0
5.651464515127707 80.394 -11.654 1.0
5.707051791278539 148.899 -9.717 0.0
5.268049377893244 89.584 -9.583 1.0
5.364485091062758 100.219 -4.528 1.0
5.174702584264729 161.441 -4.071 0.0
5.293700374625018 152.3 -5.655 0.0
5.377118888885022 89.335 -12.522 1.0
5.276762010119172 96.441 -15.351 1.0
5.335713194456806 74.808 -11.763 1.0
5.052215593031031 122.819 -5.179 1.0
5.574139929699739 104.013 -9.321 1.0
5.413740954228259 104.069 -6.998 1.0
5.837464901707784 154.916 -5.063 0.0
5.564477992630099 84.732 -13.35 1.0
6.413348475654663 135.016 -9.955 0.0
4.786017489938488 127.304 -14.125 1.0
5.323815800718434 88.023 -4.729 1.0
5.986914310465229 152.857 -17.676 0.0
5.589973519371366 115.341 -4.88 1.0
5.54853737950824 180.153 -4.271 0.0
5.732417387460131 152.865 -6.536 0.0
5.03008812165755 92.959 -11.161 1.0
5.133363062166066 148.873 -11.132 0.0
5.566777436858224 114.514 -9.754 1.0
5.237845445572235 87.652 -15.15 1.0
5.364485091062758 120.581 -10.633 1.0
5.281156456841302 136.499 -7.225 0.0
5.974304781873222 116.977 -5.82 1.0
5.712591031821589 96.74 -16.773 1.0
4.768201034433 163.559 -7.325 0.0
5.246961543889845 86.97 -3.22 1.0
5.848525642277589 135.013 -6.84 0.0
5.262785106679844 114.559 -16.931 1.0
5.715263119130469 89.991 -8.187 1.0
5.91891896148484 104.962 -8.96 1.0
5.752604892273739 98.979 -5.167 1.0
3.8280990755466293 120.914 -13.748 1.0
5.44422698189371 40.559 -16.461 1.0
5.775072248464427 141.395 -5.066 0.0
5.727072250071925 89.141 -7.753 1.0
5.099843744640108 243.768 -11.206 0.0
5.445467902438007 154.563 -7.677 0.0
5.863481448480461 150.891 -10.697 0.0
5.4541114095996726 88.904 -5.66 1.0
5.1318214806084255 129.198 -17.277 1.0
5.056549644534826 101.825 -12.092 1.0
5.568971940469297 90.02 -8.901 1.0
5.831275313524761 167.31 -6.281 0.0
5.435724974434051 122.089 -9.126 1.0
5.371307757297379 133.107 -21.615 0.0
5.0493715309354785 142.034 -5.804 0.0
5.0006231393320295 101.266 -11.025 1.0
5.138892996898216 143.89 -9.4 0.0
5.607958929769235 160.884 -10.113 0.0
5.114234780051099 101.722 -17.746 1.0
5.5619726050421585 82.061 -20.423 1.0
5.905558558950945 74.663 -16.268 1.0
5.559159087919424 160.04 -6.269 0.0
5.673425495622962 98.749 -9.197 1.0
5.5975552131122885 78.017 -10.212 1.0
4.068369957397399 85.893 -10.422 1.0
5.663049608108374 144.369 -16.004 0.0
5.745364212498396 106.679 -9.803 1.0
5.381695597481382 136.542 -8.01 0.0
5.6928919542966945 90.645 -9.302 1.0
5.8151253204408455 128.342 -10.902 1.0
5.611307435373474 92.365 -8.088 1.0
5.497741626441108 241.9 -7.06 0.0
5.483734294400877 100.05 -8.816 1.0
4.463356820883433 178.097 -20.59 0.0
6.009616032607714 120.021 -4.022 1.0
5.443323533906124 126.076 -4.774 1.0
4.51897582060811 99.609 -18.533 1.0
5.2034029884039 140.032 -13.016 0.0
5.327628225432808 105.253 -15.568 1.0
5.172927427877826 185.86 -24.732 0.0
5.241584779677972 98.853 -9.131 1.0
5.2885697626443715 127.053 -5.689 1.0
5.57404080623269 90.029 -5.921 1.0
5.988291041862788 146.713 -12.065 0.0
5.563576782171857 121.147 -7.329 1.0
4.800088568576119 86.994 -6.913 1.0
5.490007979677294 96.037 -6.355 1.0
5.705922882348458 45.29 -4.764 1.0
5.9032786988787525 130.906 -9.294 0.0
4.983234429165613 138.528 -13.315 0.0
5.32864242853564 142.029 -8.286 0.0
5.826203420044363 124.649 -6.772 1.0
5.346475426219603 87.048 -9.33 1.0
5.6017103980030365 86.005 -4.337 1.0
5.232977190837952 118.591 -22.645 1.0
4.914905953122828 132.841 -4.908 0.0
4.605394160903837 163.073 -7.354 0.0
5.490007979677294 90.417 -5.357 1.0
5.93050805616658 125.067 -7.343 1.0
4.602255241662874 86.067 -11.15 1.0
5.2573569249444265 111.942 -9.924 1.0
6.281461450769486 131.111 -14.636 0.0
5.206414390626549 51.149 -15.564 1.0
5.447270117662992 174.245 -13.962 0.0
5.0583776714334965 101.144 -19.823 1.0
5.123611357715729 159.947 -4.682 0.0
5.191411212562029 180.749 -10.095 0.0
5.52455636202782 85.036 -6.62 1.0
5.3465998780741435 130.047 -8.107 1.0
5.533165036662569 122.851 -8.173 1.0
5.352432281417797 133.252 -11.591 0.0
4.786453370526792 130.029 -9.234 1.0
5.322669238165966 106.696 -6.39 1.0
6.177370567861687 188.507 -5.994 0.0
5.747700248303512 123.554 -10.384 1.0
4.322313917258714 155.171 -22.438 0.0
5.768646067952092 100.014 -9.319 1.0
5.525285235827343 156.019 -5.927 0.0
5.755337701403143 131.966 -7.267 0.0
5.4158334776943535 109.389 -3.559 1.0
5.049706573007874 190.767 -6.435 0.0
5.0782682101517675 158.383 -12.358 0.0
6.0521169097161085 92.548 -7.185 1.0
5.270469694487864 167.866 -8.306 0.0
5.929744237745122 125.005 -11.71 1.0
5.094893657240654 62.415 -16.983 1.0
5.139199353255555 149.999 -11.615 0.0
5.192573332912147 140.193 -11.629 0.0
5.751692283172318 130.003 -7.796 1.0
5.823580575001653 114.618 -5.992 1.0
5.300891351005935 96.945 -7.784 1.0
5.5434394506679086 113.922 -5.388 1.0
4.544834553660172 100.041 -21.365 1.0
5.471507020818305 144.973 -10.508 0.0
5.5207992990407755 107.686 -8.702 1.0
4.946409115285852 108.942 -13.145 1.0
6.380080264819872 72.873 -13.246 1.0
5.393165257695243 92.993 -6.1 1.0
5.371429156963169 86.792 -7.699 1.0
5.964490624933571 115.305 -6.148 1.0
5.416646075519875 105.688 -6.344 1.0
5.711295514294399 93.226 -6.833 1.0
5.181037766646605 145.639 -14.832 0.0
5.336970611029115 191.115 -7.926 0.0
5.520380974933744 95.11 -8.842 1.0
5.046015307863599 109.808 -12.783 1.0
5.5221576350984165 145.29 -4.883 0.0
6.158927002222738 125.589 -8.6 1.0
5.829664300472271 105.233 -7.115 1.0
5.82928035569681 97.345 -11.499 1.0
5.3234337429963565 150.431 -14.729 0.0
5.843843560689231 79.998 -9.381 1.0
5.718185583433604 135.973 -9.091 0.0
5.183677878514388 151.075 -17.056 0.0
6.2489305655005545 123.994 -11.529 1.0
4.801162783465707 149.935 -14.465 0.0
5.679867340584397 140.047 -5.647 0.0
5.726391454576292 172.19 -10.391 0.0
4.950671183261074 64.334 -14.529 1.0
5.580069994537434 73.737 -11.521 1.0
5.633877937728569 88.543 -12.427 1.0
6.074302935529481 112.419 -9.126 1.0
5.515242262040878 98.573 -6.031 1.0
5.2981518028431225 88.983 -4.398 1.0
5.090079730533548 114.11 -16.08 1.0
4.577857260875427 126.393 -12.856 1.0
5.443210556309651 90.877 -20.028 1.0
5.7051405853395805 163.844 -7.44 0.0
5.226963621104301 91.977 -4.739 1.0
5.3436085115214835 116.677 -10.331 1.0
6.072136472167348 170.13 -5.743 0.0
5.312676824285775 70.164 -6.71 1.0
5.569071605770565 119.904 -15.7 1.0
4.879602263678485 57.169 -26.899 1.0
5.361424175775055 121.539 -4.295 1.0
5.539957987406313 175.214 -8.771 0.0
5.449069090750414 116.113 -10.064 1.0
6.39178918226169 119.462 -10.856 1.0
4.898092230774137 131.2 -23.689 1.0
5.146675187799474 180.176 -14.71 0.0
5.570465459051283 98.365 -5.838 1.0
4.637012398680066 117.831 -3.863 1.0
6.043164853654845 101.039 -8.928 1.0
5.6010351712128035 116.092 -5.004 1.0
5.784915818139458 128.608 -13.294 1.0
5.755420389655247 97.126 -9.347 1.0
6.071051466310348 140.007 -5.984 0.0
5.334832065977185 137.951 -3.854 0.0
5.575724721914124 111.492 -14.293 1.0
5.206843867263241 166.771 -13.425 0.0
5.232279802406715 163.892 -4.669 0.0
5.20182193961576 130.02 -4.823 1.0
5.726817030503055 80.231 -13.916 1.0
5.491085665616085 107.381 -14.135 1.0
5.5339908888778595 108.004 -9.795 1.0
6.766217520778982 89.822 -19.157 1.0
5.706965005029758 180.668 -12.834 0.0
5.441853698683162 127.398 -14.408 1.0
5.875873741134217 135.997 -6.62 0.0
5.1883541636466 101.284 -5.788 1.0
5.535228389797455 136.224 -2.943 0.0
3.7023283607776896 163.647 -17.534 0.0
4.715809006851246 136.747 -7.223 0.0
5.842252713576319 97.774 -12.557 1.0
5.119871270445839 122.053 -11.468 1.0
5.476547021251197 197.455 -10.545 0.0
7.29769003979548 160.031 -13.735 0.0
5.212267799598076 96.092 -15.221 1.0
5.027522892507361 120.527 -7.075 1.0
5.964087980307709 147.982 -3.273 0.0
5.194313929642153 177.327 -6.08 0.0
5.235205613758929 120.09 -11.84 1.0
5.3531743758536185 65.392 -16.533 1.0
5.454334902714114 83.76 -6.132 1.0
5.490977957518122 102.659 -4.713 1.0
5.38313652571645 147.487 -2.089 0.0
5.701307146892026 87.303 -6.336 1.0
5.648984132478454 163.031 -4.385 0.0
5.0889531304187505 93.12 -4.397 1.0
5.985535655916327 210.021 -8.131 0.0
5.167582972957962 120.007 -7.847 1.0
6.134096280733756 90.518 -9.769 1.0
4.684211007325698 110.907 -13.362 1.0
5.057048540395142 142.979 -16.184 0.0
4.874227540136429 173.551 -10.198 0.0
5.173519496873623 136.255 -9.675 0.0
6.1482649632811555 114.385 -6.821 1.0
6.575998134820792 97.952 -10.883 1.0
5.37106486725144 130.003 -5.82 1.0
5.1625090980936195 91.284 -10.212 1.0
5.287514121066575 131.953 -11.937 0.0
5.400975032797074 130.012 -8.769 1.0
5.5118720512729995 154.237 -7.34 0.0
5.339229916967983 98.959 -3.163 1.0
5.435497239117816 124.462 -12.121 1.0
5.334832065977185 92.483 -9.725 1.0
5.027180333628548 112.266 -4.523 1.0
5.831351955349967 106.887 -11.365 1.0
5.478839513708417 159.525 -9.96 0.0
3.867647830833469 104.033 -9.942 1.0
5.261701824986476 194.1 -4.3 0.0
5.206557551732531 99.772 -12.43 1.0
5.119715144445624 36.299 -22.109 1.0
5.20469469210529 119.894 -11.582 1.0
5.481453008551355 133.748 -12.546 0.0
4.99692236688031 121.083 -22.873 1.0
5.162060147947414 86.994 -7.803 1.0
5.731232031348783 110.043 -8.811 1.0
5.372521184108441 112.056 -13.859 1.0
5.566777436858224 92.446 -5.72 1.0
5.824275523795551 120.51 -11.445 1.0
5.599586650851792 102.846 -7.898 1.0
5.479275577741912 119.922 -8.373 1.0
5.083301136404237 78.461 -13.798 1.0
5.9151903650301545 76.072 -9.454 1.0
5.659779244812856 136.148 -8.394 0.0
5.865113031652334 86.034 -16.263 1.0
6.245339882354565 94.557 -7.916 1.0
5.771254033978842 125.757 -12.297 1.0
4.38901689577076 126.156 -7.754 1.0
5.695002409108728 66.264 -14.232 1.0
5.507219386966034 167.92 -5.221 0.0
5.245860974972483 186.697 -9.365 0.0
5.6208132082285225 158.8 -9.679 0.0
6.407851345829801 124.995 -6.92 1.0
5.604406865514699 220.697 -5.316 0.0
5.80376556785929 221.511 -13.778 0.0
5.314349167717073 118.004 -6.349 1.0
6.345254533555875 121.533 -11.372 1.0
5.301672731011365 132.67 -5.925 0.0
5.270738285863943 83.702 -23.316 1.0
5.466441490053851 163.937 -4.379 0.0
5.994365335749508 122.241 -11.11 1.0
5.142867977095725 122.183 -4.372 1.0
5.218935952671551 153.253 -22.082 0.0
5.240755041735268 195.997 -12.009 0.0
4.798367387974085 174.479 -28.719 0.0
5.183091795289894 184.937 -4.113 0.0
5.187624939257254 191.88 -10.798 0.0
6.188747496998347 129.979 -8.072 1.0
5.800608989092355 215.644 -15.482 0.0
5.2727501941416905 141.364 -11.059 0.0
3.464087670210369 148.661 -16.007 0.0
5.421623256463088 144.502 -9.495 0.0
5.129040713809273 124.967 -3.605 1.0
5.0006231393320295 84.205 -12.463 1.0
5.474796891858358 163.236 -12.258 0.0
5.1877708155139 86.154 -19.712 1.0
5.830661908645668 85.046 -9.732 1.0
5.489792278278364 169.914 -11.318 0.0
5.062189064556968 106.606 -16.264 1.0
5.3715505418928675 137.395 -6.876 0.0
4.955283318252515 103.193 -27.34 1.0
5.331931526930796 136.835 -12.374 0.0
6.976220349873523 89.058 -9.173 1.0
5.2625144221634805 99.305 -23.979 1.0
5.824352733505806 119.451 -11.391 1.0
5.226683009407633 217.213 -17.298 0.0
5.042816351013717 210.493 -10.655 0.0
5.495063101237499 123.999 -5.145 1.0
4.968630308451178 100.309 -4.012 1.0
5.495170411319036 134.757 -8.431 0.0
4.9477082027968295 100.576 -7.781 1.0
6.208758281558591 183.824 -7.48 0.0
5.521739878948984 169.369 -12.558 0.0
5.08475755662406 109.249 -5.537 1.0
5.509971324552225 111.036 -5.844 1.0
5.487741018652274 159.984 -9.817 0.0
4.585079513210795 106.927 -18.665 1.0
5.497206503249116 135.755 -7.424 0.0
5.534197225661299 86.821 -7.87 1.0
4.914139077895411 170.274 -9.547 0.0
5.241031679903366 84.583 -21.428 1.0
5.634811317219212 150.033 -5.412 0.0
5.582333904127796 165.465 -3.384 0.0
5.219642706004484 62.586 -20.636 1.0
5.56187226807967 94.05 -5.058 1.0
5.415601210962535 122.002 -8.926 1.0
5.321393698049809 147.628 -10.107 0.0
5.355274093383862 159.163 -16.636 0.0
5.583021872946544 138.174 -12.248 0.0
5.105561703300366 91.173 -15.527 1.0
6.218537428483649 130.097 -5.685 1.0
5.5424167623007925 156.889 -7.987 0.0
5.063676599821411 207.965 -5.222 0.0
5.774666756298699 103.84 -14.444 1.0
5.8748469071142 142.777 -5.118 0.0
4.812054590855806 109.219 -6.767 1.0
5.277162267073541 111.806 -8.802 1.0
5.20569822265645 160.686 -9.063 0.0
6.206548688450743 120.467 -11.189 1.0
5.624213299292985 73.536 -9.517 1.0
5.892738309215478 196.909 -22.759 0.0
5.40755403022849 120.04 -12.557 1.0
5.1477386330514046 189.559 -4.416 0.0
5.127802317834028 99.617 -8.164 1.0
5.573048916820139 145.024 -7.266 0.0
5.6244961280916925 86.97 -6.875 1.0
5.885358726001259 135.322 -9.147 0.0
5.771498193152581 77.546 -26.015 1.0
5.172927427877826 201.438 -23.14 0.0
5.4992384988300875 96.119 -15.96 1.0
5.139964745919678 84.774 -9.253 1.0
5.272884218579013 100.222 -4.278 1.0
5.423123107406227 195.391 -18.105 0.0
5.4624591684756965 125.754 -11.187 1.0
4.891247596658531 106.712 -6.241 1.0
4.971169740305285 95.764 -10.343 1.0
5.598329584361599 105.539 -11.365 1.0
5.752521970875367 150.74 -11.409 0.0
4.906051143655614 81.263 -13.755 1.0
5.540983231364382 88.327 -14.618 1.0
4.540942443220586 111.522 -22.854 1.0
5.840431489940934 122.877 -10.264 1.0
4.716977625501516 121.601 -11.847 1.0
5.6704590661683625 85.965 -8.232 1.0
5.295273739410578 171.934 -6.797 0.0
6.303021733454967 102.874 -9.574 1.0
5.632943722006943 120.018 -6.493 1.0
5.071408798946709 89.803 -4.474 1.0
5.055884083884031 115.957 -4.313 1.0
5.802504131779203 120.783 -6.07 1.0
5.372399916950057 148.113 -6.821 0.0
5.619961385101719 128.005 -5.02 1.0
5.597361508030061 117.384 -12.507 1.0
5.622514716915152 125.075 -9.747 1.0
5.620907802420415 175.036 -17.373 0.0
5.553002142155581 146.02 -2.758 0.0
4.973883477375123 115.076 -25.03 1.0
5.461128195938892 139.014 -13.208 0.0
5.209273999190886 137.968 -3.682 0.0
5.478948537110532 105.101 -9.257 1.0
5.912508457184818 120.006 -9.817 1.0
4.935767700169621 224.168 -4.118 0.0
5.8511591195715145 98.018 -7.316 1.0
5.217095977001863 203.536 -5.012 0.0
5.918075966130367 126.679 -7.866 1.0
5.743859551794383 132.226 -6.22 0.0
4.652329783410577 80.952 -9.428 1.0
4.846501257092688 152.828 -10.117 0.0
5.427150018610761 140.022 -8.666 0.0
5.938389745726143 126.896 -8.268 1.0
5.305570349956937 165.071 -6.987 0.0
5.0360481025678565 96.369 -10.233 1.0
5.976561064878677 130.082 -7.592 1.0
5.362527177416307 135.122 -8.42 0.0
5.102706841247405 122.77 -7.029 1.0
5.688657635429779 93.599 -7.747 1.0
5.514505988311902 163.746 -6.083 0.0
5.5721554009981205 110.946 -12.825 1.0
5.228785492682541 100.101 -5.655 1.0
5.976693642436394 107.667 -14.245 1.0
4.882971605159166 152.978 -10.637 0.0
5.629667005038476 81.091 -16.247 1.0
5.2261216034182745 116.854 -11.529 1.0
5.494633868982558 161.778 -6.88 0.0
5.812317007786956 146.907 -8.42 0.0
5.577405806789707 115.884 -5.74 1.0
5.345229959659761 156.364 -11.807 0.0
5.219218692301358 121.962 -8.005 1.0
5.197786170929668 99.705 -7.341 1.0
5.21992524590593 104.392 -12.048 1.0
3.6527962139408547 41.35 -23.844 1.0
5.495063101237499 143.899 -4.766 0.0
4.852026748288437 123.659 -8.514 1.0
5.670549079024892 142.517 -5.021 0.0
5.435383373805797 95.03 -12.839 1.0
5.820021029326741 124.992 -7.268 1.0
5.881429735039414 183.054 -17.493 0.0
5.345229959659761 73.95 -18.446 1.0
7.321494872253953 68.261 -23.546 1.0
6.022487398465634 141.698 -18.521 0.0
5.678707303899785 214.793 -6.437 0.0
5.474796891858358 175.59 -5.836 0.0
5.946004783492934 175.813 -12.149 0.0
5.720671547947515 133.604 -4.943 0.0
5.8116918591861175 140.085 -17.522 0.0
5.349334192721773 95.18 -10.21 1.0
5.207130046067124 102.432 -10.55 1.0
5.3080310357356755 111.98 -10.477 1.0
5.21070071550793 90.069 -9.896 1.0
5.461572050312247 111.282 -12.93 1.0
5.3699712477394845 188.077 -2.44 0.0
5.382896492177674 130.014 -8.025 1.0
5.054384966781395 81.619 -16.783 1.0
6.024005718051915 132.043 -8.854 0.0
5.478839513708417 120.12 -6.536 1.0
5.96375233636642 70.005 -8.163 1.0
5.153038845796511 131.943 -6.733 0.0
5.396012246148784 63.958 -9.75 1.0
5.716123542777973 130.017 -9.825 1.0
5.639929265305522 112.043 -8.633 1.0
5.503928356814888 148.041 -7.276 0.0
5.607000171810274 111.365 -10.116 1.0
5.422661850963155 131.378 -16.48 0.0
5.884414271275885 90.104 -12.29 1.0
5.530165601932363 124.072 -8.523 1.0
5.813332034006042 101.357 -14.142 1.0
5.754924125879842 142.785 -13.831 0.0
5.22218291169532 124.969 -6.707 1.0
6.120757401055048 130.004 -10.715 1.0
5.4360664584111635 154.461 -8.014 0.0
5.124544227693321 103.274 -5.609 1.0
6.140755810501547 127.983 -9.151 1.0
5.698947538500373 143.929 -7.615 0.0
5.462015707766298 104.959 -6.832 1.0
6.048298936235371 135.999 -5.845 0.0
5.210558146357011 115.936 -20.443 1.0
5.439814975694829 73.099 -19.293 1.0
5.515662740875034 99.389 -5.273 1.0
5.312419265723114 105.096 -9.143 1.0
5.520590138844219 104.019 -6.168 1.0
5.59590768975971 86.879 -7.154 1.0
5.29775986117079 119.383 -13.538 1.0
5.265488187950617 119.05 -14.293 1.0
5.032987413771107 149.967 -17.245 0.0
5.156657138568294 125.669 -9.773 1.0
5.459350805751235 107.244 -12.316 1.0
4.327844566531178 111.022 -11.143 1.0
6.003117709498463 94.353 -4.723 1.0
5.40026758875988 102.654 -4.451 1.0
5.465115810845681 200.007 -2.279 0.0
4.986986110278029 130.116 -18.077 1.0
5.831964937226711 107.301 -14.613 1.0
5.569868342129439 88.06 -5.256 1.0
6.167287911306899 132.329 -8.917 0.0
5.4739206562390805 102.869 -5.441 1.0
5.994104833482265 120.009 -16.17 1.0
5.302323381743563 95.79 -8.603 1.0
6.6315375194469555 116.65 -7.073 1.0
5.443888273735132 118.562 -5.283 1.0
5.02837867842324 180.874 -12.504 0.0
5.055551169240041 119.965 -14.589 1.0
7.093021778505688 113.487 -22.016 1.0
6.1961189425446355 134.995 -5.432 0.0
5.013729502093481 161.374 -3.537 0.0
5.168475672890415 100.162 -4.317 1.0
5.965161305025012 107.205 -13.267 1.0
5.603059559058559 116.989 -9.141 1.0
5.4125765563014685 71.879 -16.615 1.0
5.96971012630147 85.231 -11.807 1.0
5.328515721513685 130.042 -10.653 1.0
5.9024224095191435 131.37 -8.168 0.0
5.669288057615403 160.371 -4.355 0.0
6.150384215780737 101.745 -6.087 1.0
4.841770152276834 98.718 -12.394 1.0
5.500199568748536 127.232 -5.098 1.0
4.8930121206612265 130.275 -6.172 1.0
5.512715669405525 102.72 -8.132 1.0
5.440948103038991 129.765 -6.458 1.0
6.022550701770231 157.299 -14.304 0.0
5.870065544214879 145.781 -6.364 0.0
5.248472811704074 125.033 -7.126 1.0
5.27114096064532 114.179 -15.265 1.0
5.186164893232419 43.871 -19.915 1.0
5.278628659762669 147.463 -15.299 0.0
5.440834856737833 150.118 -4.63 0.0
5.496885316425803 92.33 -14.265 1.0
6.095065761101785 113.609 -10.615 1.0
6.338215331576072 137.947 -8.37 0.0
6.516728435671002 150.119 -7.031 0.0
5.39530128123997 157.772 -11.69 0.0
5.604214520046329 40.925 -29.594 1.0
5.4470449967586525 174.542 -4.122 0.0
5.033327924314677 160.027 -11.308 0.0
5.541495439837404 139.051 -5.808 0.0
5.955391985321944 60.029 -13.5 1.0
5.498811055436358 109.986 -6.547 1.0
5.0488688535069 110.305 -21.996 1.0
5.316660105195753 141.646 -17.401 0.0
5.179126709407211 95.161 -9.088 1.0
4.569770961636226 137.145 -7.001 0.0
5.363751299185053 96.92 -11.98 1.0
5.460239895734497 90.061 -9.326 1.0
5.455340089536665 89.41 -20.371 1.0
5.324961050170624 130.293 -12.07 1.0
6.362931616127083 112.493 -12.219 1.0
5.780732034244935 87.52 -6.887 1.0
5.321138423993106 61.559 -25.038 1.0
5.216670936098296 86.813 -12.724 1.0
4.9303098797983 115.033 -5.961 1.0
5.837617262918279 119.713 -8.219 1.0
5.656589464357225 129.915 -4.602 1.0
4.786453370526792 172.839 -11.03 0.0
4.919304054466615 88.034 -7.413 1.0
5.730808363040245 158.546 -4.839 0.0
5.422661850963155 99.944 -11.273 1.0
5.388879519564472 196.972 -1.682 0.0
5.6840501328899355 153.878 -4.352 0.0
5.814891615261906 110.284 -13.965 1.0
5.594160261221249 168.372 -9.951 0.0
5.495599413383852 131.243 -10.148 0.0
5.839063406776918 130.462 -7.743 1.0
5.207273104763058 171.76 -7.701 0.0
4.929932413000636 178.874 -4.06 0.0
5.545379728706228 87.931 -25.083 1.0
5.899061552343131 110.555 -6.531 1.0
3.9362407735904275 102.651 -19.475 1.0
5.013555891662754 107.696 -5.334 1.0
5.019787550797372 112.32 -11.828 1.0
5.7743422379268114 88.163 -22.409 1.0
5.348464989905088 118.972 -4.855 1.0
5.1760318725212615 156.503 -10.618 0.0
5.562875300086254 101.336 -16.5 1.0
5.789561773504737 131.846 -13.308 0.0
4.969719475730237 116.272 -9.544 1.0
5.593771532879778 96.243 -13.505 1.0
5.305959292509338 95.283 -13.174 1.0
6.022740611873921 90.211 -20.61 1.0
6.0135843161877975 230.273 -8.474 0.0
5.0251227095366655 88.039 -3.151 1.0
5.624401872742262 125.951 -7.896 1.0
5.090401409675572 105.555 -10.29 1.0
5.484276673697668 131.25 -6.723 0.0
5.283147534265708 97.011 -4.284 1.0
5.659961229933871 137.154 -12.948 0.0
5.397196125936762 100.055 -5.714 1.0
5.138892996898216 149.918 -13.349 0.0
6.271936167869813 105.471 -16.197 1.0
5.846640344336648 132.015 -9.453 0.0
5.780893288526451 120.074 -9.993 1.0
5.1242333478822175 123.788 -3.942 1.0
5.135517221042158 174.99 -13.746 0.0
5.636302886150193 132.04 -4.807 0.0
4.267456479061423 137.389 -4.395 0.0
5.810675135979183 146.426 -5.048 0.0
6.208495494465677 132.007 -8.931 0.0
5.568174489309459 157.041 -8.216 0.0
5.579675749052393 87.447 -7.733 1.0
5.1218988723462795 95.946 -17.03 1.0
6.35551712177877 146.064 -6.331 0.0
5.660870554706838 153.587 -8.91 0.0
6.283316662831049 114.273 -20.792 1.0
5.483842785490134 143.21 -7.974 0.0
5.1625090980936195 80.727 -14.976 1.0
5.029575588906314 120.884 -15.693 1.0
5.155151136154312 120.827 -7.96 1.0
5.34834076996525 91.963 -15.893 1.0
5.477639345770583 133.386 -7.999 0.0
3.9534303645890856 159.893 -22.096 0.0
4.96389701337343 103.823 -9.856 1.0
5.272884218579013 176.549 -13.379 0.0
5.967103768204722 140.024 -9.438 0.0
5.481670516067202 93.537 -5.165 1.0
5.383736288754334 200.374 -10.233 0.0
6.152054124101608 126.748 -5.715 1.0
5.863852486334342 104.587 -12.516 1.0
5.005536316376433 86.797 -13.678 1.0
5.538931730551451 120.05 -6.744 1.0
5.497420611473917 171.487 -6.941 0.0
5.099843744640108 96.857 -7.279 1.0
5.0111219756475744 157.013 -7.22 0.0
4.597001815500064 168.325 -10.217 0.0
5.299718184943652 130.94 -6.372 0.0
5.393284032812886 113.031 -7.892 1.0
5.086534784332229 128.029 -4.363 1.0
5.370214356996374 139.645 -8.873 0.0
5.992148887893402 128.004 -8.36 1.0
5.1254761688016615 140.422 -14.278 0.0
5.762260448974631 101.048 -17.318 1.0
4.886921078717307 156.884 -8.85 0.0
5.412343487161914 145.06 -14.511 0.0
5.647879766205785 75.073 -13.498 1.0
5.68856923797772 146.001 -4.621 0.0
5.654853575863566 140.284 -11.154 0.0
5.4053267071466236 198.06 -5.99 0.0
6.036257303707656 132.001 -9.288 0.0
4.763975558761478 100.021 -10.782 1.0
5.8521354947724085 125.933 -11.969 1.0
6.193987875385685 121.544 -11.663 1.0
4.84032586198911 85.65 -12.166 1.0
5.254768219224744 124.113 -11.111 1.0
6.55877942087373 131.016 -6.231 0.0
6.055369148610952 116.256 -13.986 1.0
5.0759869845220456 103.013 -6.912 1.0
4.781209802648447 122.948 -4.409 1.0
5.186310982615107 65.315 -4.905 1.0
6.508039466952436 155.996 -7.234 0.0
5.517867348720116 83.798 -16.654 1.0
5.335335656146118 116.121 -12.526 1.0
5.498917923186882 127.639 -10.966 1.0
5.10935559222606 108.97 -7.745 1.0
5.888548762879765 86.79 -9.088 1.0
5.075823853912898 89.38 -26.61 1.0
5.200958529678126 90.007 -7.236 1.0
5.83418384470021 125.9 -10.454 1.0
5.734868265796364 179.804 -11.507 0.0
5.1117194391010905 88.518 -11.4 1.0
5.6852039917893995 145.983 -4.189 0.0
5.557043752722271 171.928 -8.569 0.0
4.9477082027968295 129.658 -4.43 1.0
5.418385123573062 133.722 -18.631 0.0
5.758969878813607 110.136 -6.808 1.0
6.077244205426854 125.004 -13.744 1.0
4.962801482475908 116.049 -8.742 1.0
3.7352846336099574 92.736 -18.076 1.0
5.012165788957924 100.234 -17.07 1.0
5.742017477797979 153.876 -11.65 0.0
5.484385105962749 110.301 -12.249 1.0
5.588313409703403 86.415 -12.559 1.0
5.678439401395482 136.869 -6.221 0.0
5.457124616276923 105.985 -7.973 1.0
5.967772724185528 232.08 -5.493 0.0
5.795219831419931 120.349 -13.084 1.0
5.154849628686833 107.51 -10.176 1.0
5.655767554907144 113.624 -7.942 1.0
4.880197701210259 91.039 -12.242 1.0
5.6135017591989005 98.375 -7.397 1.0
5.561470781093142 155.746 -8.475 0.0
5.69086523855581 80.249 -6.368 1.0
5.460462066030494 110.33 -12.56 1.0
5.442758474965817 97.118 -6.476 1.0
6.2260032464103645 136.708 -9.193 0.0
4.235459501926911 163.762 -13.409 0.0
5.708959384637226 136.95 -16.247 0.0
5.297106183361719 63.211 -23.239 1.0
5.385772824085969 133.317 -10.874 0.0
5.413508200907366 121.09 -3.423 1.0
5.6077672663776985 75.419 -16.783 1.0
5.660779666389345 104.417 -10.339 1.0
5.940316136961045 64.287 -17.837 1.0
6.001244021781906 90.182 -9.47 1.0
5.400975032797074 129.749 -12.142 1.0
5.363628963785261 88.222 -6.461 1.0
5.459684317773558 150.979 -19.374 0.0
4.707354232003726 240.409 -9.958 0.0
5.40026758875988 88.922 -7.283 1.0
5.966969938663496 116.631 -19.261 1.0
5.457904357110395 133.973 -12.558 0.0
5.325088257046393 101.662 -10.225 1.0
5.457570250821884 167.909 -6.022 0.0
5.043153531656211 116.918 -6.256 1.0
5.090079730533548 130.771 -10.753 1.0
5.135824554356261 112.46 -9.011 1.0
5.552090486434681 77.483 -9.846 1.0
4.437127676630507 168.791 -12.926 0.0
5.73882765547205 173.908 -4.996 0.0
4.828904202943149 134.731 -12.021 0.0
5.344481896278029 130.863 -6.155 0.0
5.4750158098978945 85.092 -10.397 1.0
5.453328704474266 147.617 -15.986 0.0
4.916629256861545 121.926 -15.981 1.0
5.294749559486927 126.195 -9.953 1.0
5.823117017214163 117.966 -10.669 1.0
4.630666378060994 114.869 -7.877 1.0
5.825741076784775 112.582 -10.447 1.0
5.0921685826096885 125.02 -4.532 1.0
5.258580876404669 144.32 -16.982 0.0
5.016330313312448 97.034 -7.087 1.0
5.255859033956585 160.063 -9.434 0.0
6.4121485579856445 80.067 -14.007 1.0
5.77911821422353 143.499 -12.111 0.0
5.754096429647435 238.327 -7.028 0.0
5.268318568522543 96.792 -6.779 1.0
5.394589765089577 86.031 -9.499 1.0
5.369484805282204 107.956 -2.691 1.0
5.229765094411506 143.875 -12.669 0.0
4.886921078717307 107.077 -6.865 1.0
5.603252126785378 88.77 -15.305 1.0
5.939353392047761 125.872 -7.381 1.0
5.589973519371366 139.881 -11.774 0.0
5.832577543586846 108.428 -8.926 1.0
5.342109442007951 72.719 -6.972 1.0
5.138892996898216 68.997 -18.497 1.0
5.146523191314886 113.846 -10.347 1.0
5.2425519819921025 165.056 -3.491 0.0
5.473372587349946 148.009 -7.561 0.0
5.845507445551246 149.844 -12.284 0.0
5.0334981361160445 77.19 -10.41 1.0
5.559863219284914 191.634 -10.957 0.0
4.955099257607818 86.117 -10.34 1.0
5.777987004052884 200.035 -4.225 0.0
5.259803279675589 76.654 -6.583 1.0
5.221901009044842 146.079 -6.028 0.0
5.763573619815682 145.904 -5.366 0.0
6.0530384358750045 89.98 -5.539 1.0
5.569569630848934 191.269 -4.025 0.0
5.82628048105143 144.995 -7.894 0.0
5.452769272430743 144.119 -7.375 0.0
4.7352630988107265 114.697 -4.575 1.0
5.124699601624018 153.994 -3.267 0.0
5.501266373776714 135.997 -10.6 0.0
5.196340896321897 145.565 -9.9 0.0
5.050543591322241 75.314 -14.662 1.0
5.041972837064726 149.979 -12.687 0.0
5.5109221395078025 93.012 -4.912 1.0
6.018745027789532 130.405 -17.193 1.0
5.59774884361815 122.54 -7.804 1.0
6.053652299540131 89.921 -7.685 1.0
5.519962475758416 154.601 -10.035 0.0
5.262243612520556 112.61 -18.747 1.0
6.41949682365767 122.987 -13.159 1.0
5.48860523287039 205.482 -12.729 0.0
5.314606180567949 124.083 -5.768 1.0
5.816837670187332 85.129 -12.53 1.0
5.1786851597280235 116.436 -12.144 1.0
5.372828928676938 106.837 -24.014 1.0
5.422200381664391 95.014 -3.967 1.0
5.320499904706436 140.125 -6.84 0.0
5.232837762731037 100.021 -19.166 1.0
5.585769137482459 85.753 -15.435 1.0
5.426460857965772 71.021 -8.512 1.0
6.1902475551906875 125.993 -10.421 1.0
5.692275556616212 151.957 -6.651 0.0
5.39530128123997 177.287 -8.019 0.0
5.126717447034353 111.207 -6.467 1.0
5.7766116580794655 106.395 -12.657 1.0

The new clustering model makes much more sense. Songs with high tempo and loudness are put in one cluster and song duration does not affect song categories.

To really understand how the points in 3D behave you need to see them in 3D interactively and understand the limits of its three 2D projections. For this let us spend some time and play in sageMath Worksheet in CoCalc (it is free for light-weight use and perhaps worth the 7 USD a month if you need more serious computing in mathematics, statistics, etc. in multiple languages!).

Let us take a look at this sageMath Worksheet published here:

The point of the above little example is that you need to be able to tell a sensible story with your data science process and not just blindly apply a heuristic, but highly scalable, algorithm which depends on the notion of nearest neighborhoods defined by the metric (Euclidean distances in 3-dimensional real-valued spaces in this example) induced by the features you have engineered or have the power to re/re/...-engineer to increase the meaningfullness of the problem at hand.

Determining Optimal K

There are methods to find the optimal number of clusters. This partly depends on the purpose of the unsupervised learning task.

See here for some metrics in scala for the Irish dataset.

ScaDaMaLe Course site and book

Supervised Clustering with Decision Trees

Visual Introduction to decision trees and application to hand-written digit recognition

SOURCE: This is just a couple of decorations on a notebook published in databricks community edition in 2016.

Decision Trees for handwritten digit recognition

This notebook demonstrates learning a Decision Tree using Spark's distributed implementation. It gives the reader a better understanding of some critical hyperparameters for the tree learning algorithm, using examples to demonstrate how tuning the hyperparameters can improve accuracy.

Background: To learn more about Decision Trees, check out the resources at the end of this notebook. The visual description of ML and Decision Trees provides nice intuition helpful to understand this notebook, and Wikipedia gives lots of details.

Data: We use the classic MNIST handwritten digit recognition dataset. It is from LeCun et al. (1998) and may be found under "mnist" at the LibSVM dataset page.

Goal: Our goal for our data is to learn how to recognize digits (0 - 9) from images of handwriting. However, we will focus on understanding trees, not on this particular learning problem.

Takeaways: Decision Trees take several hyperparameters which can affect the accuracy of the learned model. There is no one "best" setting for these for all datasets. To get the optimal accuracy, we need to tune these hyperparameters based on our data.

Let's Build Intuition for Learning with Decision Trees

Load MNIST training and test datasets

Our datasets are vectors of pixels representing images of handwritten digits. For example:

Image of a digit Image of all 10 digits

These datasets are stored in the popular LibSVM dataset format. We will load them using MLlib's LibSVM dataset reader utility.

//-----------------------------------------------------------------------------------------------------------------
// using RDD-based MLlib - ok for Spark 1.x
// MLUtils.loadLibSVMFile returns an RDD.
//import org.apache.spark.mllib.util.MLUtils
//val trainingRDD = MLUtils.loadLibSVMFile(sc, "/databricks-datasets/mnist-digits/data-001/mnist-digits-train.txt")
//val testRDD = MLUtils.loadLibSVMFile(sc, "/databricks-datasets/mnist-digits/data-001/mnist-digits-test.txt")
// We convert the RDDs to DataFrames to use with ML Pipelines.
//val training = trainingRDD.toDF()
//val test = testRDD.toDF()
// Note: In Spark 1.6 and later versions, Spark SQL has a LibSVM data source.  The above lines can be simplified to:
//// val training = sqlContext.read.format("libsvm").load("/mnt/mllib/mnist-digits-csv/mnist-digits-train.txt")
//// val test = sqlContext.read.format("libsvm").load("/mnt/mllib/mnist-digits-csv/mnist-digits-test.txt")
//-----------------------------------------------------------------------------------------------------------------
val training = spark.read.format("libsvm")
                    .option("numFeatures", "780")
                    .load("/databricks-datasets/mnist-digits/data-001/mnist-digits-train.txt")

val test = spark.read.format("libsvm")
                    .option("numFeatures", "780")
                    .load("/databricks-datasets/mnist-digits/data-001/mnist-digits-test.txt")
// Cache data for multiple uses.
training.cache()
test.cache()

println(s"We have ${training.count} training images and ${test.count} test images.")
We have 60000 training images and 10000 test images.
training: org.apache.spark.sql.DataFrame = [label: double, features: vector]
test: org.apache.spark.sql.DataFrame = [label: double, features: vector]

Display our data. Each image has the true label (the label column) and a vector of features which represent pixel intensities (see below for details of what is in training).

training.printSchema()
root
 |-- label: double (nullable = true)
 |-- features: vector (nullable = true)
training.show(3) // replace 'true' by 'false' to see the whole row hidden by '...'
+-----+--------------------+
|label|            features|
+-----+--------------------+
|  5.0|(780,[152,153,154...|
|  0.0|(780,[127,128,129...|
|  4.0|(780,[160,161,162...|
+-----+--------------------+
only showing top 3 rows
display(training) // this is databricks-specific for interactive visual convenience

The pixel intensities are represented in features as a sparse vector, for example the first observation, as seen in row 1 of the output to display(training) or training.show(2,false) above, has label as 5, i.e. the hand-written image is for the number 5. And this hand-written image is the following sparse vector (just click the triangle to the left of the feature in first row to see the following):

type: 0
size: 780
indices: [152,153,155,...,682,683]
values: [3, 18, 18,18,126,...,132,16]

Here,

  • type: 0 says we have a sparse vector that only represents non-zero entries (as opposed to a dense vector where every entry is represented).
  • size: 780 says the vector has 780 indices in total
  • these indices from 0,...,779 are a unidimensional indexing of the two-dimensional array of pixels in the image
  • indices: [152,153,155,...,682,683] are the indices from the [0,1,...,779] possible indices with non-zero values
    • a value is an integer encoding the gray-level at the pixel index
  • values: [3, 18, 18,18,126,...,132,16] are the actual gray level values, for example:
    • at pixed index 152 the gray-level value is 3,
    • at index 153 the gray-level value is 18,
    • ..., and finally at
    • at index 683 the gray-level value is 18

Train a Decision Tree

We begin by training a decision tree using the default settings. Before training, we want to tell the algorithm that the labels are categories 0-9, rather than continuous values. We use the StringIndexer class to do this. We tie this feature preprocessing together with the tree algorithm using a Pipeline. ML Pipelines are tools Spark provides for piecing together Machine Learning algorithms into workflows. To learn more about Pipelines, check out other ML example notebooks in Databricks and the ML Pipelines user guide. Also See mllib-decision-tree.html#basic-algorithm.

// Import the ML algorithms we will use.
import org.apache.spark.ml.classification.{DecisionTreeClassifier, DecisionTreeClassificationModel}
import org.apache.spark.ml.feature.StringIndexer
import org.apache.spark.ml.Pipeline
import org.apache.spark.ml.classification.{DecisionTreeClassifier, DecisionTreeClassificationModel}
import org.apache.spark.ml.feature.StringIndexer
import org.apache.spark.ml.Pipeline
// StringIndexer: Read input column "label" (digits) and annotate them as categorical values.
val indexer = new StringIndexer().setInputCol("label").setOutputCol("indexedLabel")

// DecisionTreeClassifier: Learn to predict column "indexedLabel" using the "features" column.
val dtc = new DecisionTreeClassifier().setLabelCol("indexedLabel")

// Chain indexer + dtc together into a single ML Pipeline.
val pipeline = new Pipeline().setStages(Array(indexer, dtc))
indexer: org.apache.spark.ml.feature.StringIndexer = strIdx_7ad9a3cadad8
dtc: org.apache.spark.ml.classification.DecisionTreeClassifier = dtc_be3336ba3ef4
pipeline: org.apache.spark.ml.Pipeline = pipeline_518a89c2841c

Now, let's fit a model to our data.

val model = pipeline.fit(training)
model: org.apache.spark.ml.PipelineModel = pipeline_518a89c2841c

We can inspect the learned tree by displaying it using Databricks ML visualization. (Visualization is available for several but not all models.)

// The tree is the last stage of the Pipeline.  Display it!
val tree = model.stages.last.asInstanceOf[DecisionTreeClassificationModel]
display(tree)
treeNode
{"index":31,"featureType":"continuous","prediction":null,"threshold":133.5,"categories":null,"feature":350,"overflow":false}
{"index":15,"featureType":"continuous","prediction":null,"threshold":0.5,"categories":null,"feature":568,"overflow":false}
{"index":7,"featureType":"continuous","prediction":null,"threshold":0.5,"categories":null,"feature":430,"overflow":false}
{"index":3,"featureType":"continuous","prediction":null,"threshold":2.5,"categories":null,"feature":405,"overflow":false}
{"index":1,"featureType":"continuous","prediction":null,"threshold":12.5,"categories":null,"feature":485,"overflow":false}
{"index":0,"featureType":null,"prediction":1.0,"threshold":null,"categories":null,"feature":null,"overflow":false}
{"index":2,"featureType":null,"prediction":4.0,"threshold":null,"categories":null,"feature":null,"overflow":false}
{"index":5,"featureType":"continuous","prediction":null,"threshold":14.5,"categories":null,"feature":516,"overflow":false}
{"index":4,"featureType":null,"prediction":9.0,"threshold":null,"categories":null,"feature":null,"overflow":false}
{"index":6,"featureType":null,"prediction":7.0,"threshold":null,"categories":null,"feature":null,"overflow":false}
{"index":11,"featureType":"continuous","prediction":null,"threshold":34.5,"categories":null,"feature":211,"overflow":false}
{"index":9,"featureType":"continuous","prediction":null,"threshold":0.5,"categories":null,"feature":98,"overflow":false}
{"index":8,"featureType":null,"prediction":8.0,"threshold":null,"categories":null,"feature":null,"overflow":false}
{"index":10,"featureType":null,"prediction":6.0,"threshold":null,"categories":null,"feature":null,"overflow":false}
{"index":13,"featureType":"continuous","prediction":null,"threshold":0.5,"categories":null,"feature":156,"overflow":false}
{"index":12,"featureType":null,"prediction":4.0,"threshold":null,"categories":null,"feature":null,"overflow":false}
{"index":14,"featureType":null,"prediction":6.0,"threshold":null,"categories":null,"feature":null,"overflow":false}
{"index":23,"featureType":"continuous","prediction":null,"threshold":0.5,"categories":null,"feature":435,"overflow":false}
{"index":19,"featureType":"continuous","prediction":null,"threshold":10.5,"categories":null,"feature":489,"overflow":false}
{"index":17,"featureType":"continuous","prediction":null,"threshold":2.5,"categories":null,"feature":380,"overflow":false}
{"index":16,"featureType":null,"prediction":5.0,"threshold":null,"categories":null,"feature":null,"overflow":false}
{"index":18,"featureType":null,"prediction":9.0,"threshold":null,"categories":null,"feature":null,"overflow":false}
{"index":21,"featureType":"continuous","prediction":null,"threshold":0.5,"categories":null,"feature":320,"overflow":false}
{"index":20,"featureType":null,"prediction":3.0,"threshold":null,"categories":null,"feature":null,"overflow":false}
{"index":22,"featureType":null,"prediction":9.0,"threshold":null,"categories":null,"feature":null,"overflow":false}
{"index":27,"featureType":"continuous","prediction":null,"threshold":0.5,"categories":null,"feature":346,"overflow":false}
{"index":25,"featureType":"continuous","prediction":null,"threshold":97.5,"categories":null,"feature":348,"overflow":false}
{"index":24,"featureType":null,"prediction":3.0,"threshold":null,"categories":null,"feature":null,"overflow":false}
{"index":26,"featureType":null,"prediction":7.0,"threshold":null,"categories":null,"feature":null,"overflow":false}
{"index":29,"featureType":"continuous","prediction":null,"threshold":0.5,"categories":null,"feature":655,"overflow":false}
{"index":28,"featureType":null,"prediction":6.0,"threshold":null,"categories":null,"feature":null,"overflow":false}
{"index":30,"featureType":null,"prediction":7.0,"threshold":null,"categories":null,"feature":null,"overflow":false}
{"index":47,"featureType":"continuous","prediction":null,"threshold":36.5,"categories":null,"feature":489,"overflow":false}
{"index":39,"featureType":"continuous","prediction":null,"threshold":26.5,"categories":null,"feature":290,"overflow":false}
{"index":35,"featureType":"continuous","prediction":null,"threshold":100.5,"categories":null,"feature":486,"overflow":false}
{"index":33,"featureType":"continuous","prediction":null,"threshold":129.5,"categories":null,"feature":490,"overflow":false}
{"index":32,"featureType":null,"prediction":2.0,"threshold":null,"categories":null,"feature":null,"overflow":false}
{"index":34,"featureType":null,"prediction":0.0,"threshold":null,"categories":null,"feature":null,"overflow":false}
{"index":37,"featureType":"continuous","prediction":null,"threshold":0.5,"categories":null,"feature":656,"overflow":false}
{"index":36,"featureType":null,"prediction":3.0,"threshold":null,"categories":null,"feature":null,"overflow":false}
{"index":38,"featureType":null,"prediction":7.0,"threshold":null,"categories":null,"feature":null,"overflow":false}
{"index":43,"featureType":"continuous","prediction":null,"threshold":5.5,"categories":null,"feature":297,"overflow":false}
{"index":41,"featureType":"continuous","prediction":null,"threshold":169.5,"categories":null,"feature":486,"overflow":false}
{"index":40,"featureType":null,"prediction":9.0,"threshold":null,"categories":null,"feature":null,"overflow":false}
{"index":42,"featureType":null,"prediction":6.0,"threshold":null,"categories":null,"feature":null,"overflow":false}
{"index":45,"featureType":"continuous","prediction":null,"threshold":0.5,"categories":null,"feature":598,"overflow":false}
{"index":44,"featureType":null,"prediction":4.0,"threshold":null,"categories":null,"feature":null,"overflow":false}
{"index":46,"featureType":null,"prediction":7.0,"threshold":null,"categories":null,"feature":null,"overflow":false}
{"index":55,"featureType":"continuous","prediction":null,"threshold":0.5,"categories":null,"feature":521,"overflow":false}
{"index":51,"featureType":"continuous","prediction":null,"threshold":7.5,"categories":null,"feature":347,"overflow":false}
{"index":49,"featureType":"continuous","prediction":null,"threshold":4.5,"categories":null,"feature":206,"overflow":false}
{"index":48,"featureType":null,"prediction":0.0,"threshold":null,"categories":null,"feature":null,"overflow":false}
{"index":50,"featureType":null,"prediction":3.0,"threshold":null,"categories":null,"feature":null,"overflow":false}
{"index":53,"featureType":"continuous","prediction":null,"threshold":16.5,"categories":null,"feature":514,"overflow":false}
{"index":52,"featureType":null,"prediction":4.0,"threshold":null,"categories":null,"feature":null,"overflow":false}
{"index":54,"featureType":null,"prediction":7.0,"threshold":null,"categories":null,"feature":null,"overflow":false}
{"index":59,"featureType":"continuous","prediction":null,"threshold":0.5,"categories":null,"feature":658,"overflow":false}
{"index":57,"featureType":"continuous","prediction":null,"threshold":8.5,"categories":null,"feature":555,"overflow":false}
{"index":56,"featureType":null,"prediction":6.0,"threshold":null,"categories":null,"feature":null,"overflow":false}
{"index":58,"featureType":null,"prediction":3.0,"threshold":null,"categories":null,"feature":null,"overflow":false}
{"index":61,"featureType":"continuous","prediction":null,"threshold":12.5,"categories":null,"feature":543,"overflow":false}
{"index":60,"featureType":null,"prediction":0.0,"threshold":null,"categories":null,"feature":null,"overflow":false}
{"index":62,"featureType":null,"prediction":7.0,"threshold":null,"categories":null,"feature":null,"overflow":false}

Above, we can see how the tree makes predictions. When classifying a new example, the tree starts at the "root" node (at the top). Each tree node tests a pixel value and goes either left or right. At the bottom "leaf" nodes, the tree predicts a digit as the image's label.

Hyperparameter Tuning

Run the next cell and come back into hyper-parameter tuning for a couple minutes.

Exploring "maxDepth": training trees of different sizes

In this section, we test tuning a single hyperparameter maxDepth, which determines how deep (and large) the tree can be. We will train trees at varying depths and see how it affects the accuracy on our held-out test set.

Note: The next cell can take about 1 minute to run since it is training several trees which get deeper and deeper.

val variedMaxDepthModels = (0 until 8).map { maxDepth =>
  // For this setting of maxDepth, learn a decision tree.
  dtc.setMaxDepth(maxDepth)
  // Create a Pipeline with our feature processing stage (indexer) plus the tree algorithm
  val pipeline = new Pipeline().setStages(Array(indexer, dtc))
  // Run the ML Pipeline to learn a tree.
  pipeline.fit(training)
}
variedMaxDepthModels: scala.collection.immutable.IndexedSeq[org.apache.spark.ml.PipelineModel] = Vector(pipeline_665dda68220e, pipeline_b414c08244ef, pipeline_44a8ad1622ad, pipeline_c5a942b290e4, pipeline_032a64305933, pipeline_92a56b5767ee, pipeline_ab0cc9448943, pipeline_adc5aa7af814)

We will use the default metric to evaluate the performance of our classifier:

// Define an evaluation metric.  In this case, we will use "accuracy".
import org.apache.spark.ml.evaluation.MulticlassClassificationEvaluator
val evaluator = new MulticlassClassificationEvaluator().setLabelCol("indexedLabel").setMetricName("f1") // default MetricName
import org.apache.spark.ml.evaluation.MulticlassClassificationEvaluator
evaluator: org.apache.spark.ml.evaluation.MulticlassClassificationEvaluator = MulticlassClassificationEvaluator: uid=mcEval_eac7c153e73e, metricName=f1, metricLabel=0.0, beta=1.0, eps=1.0E-15
// For each maxDepth setting, make predictions on the test data, and compute the classifier's f1 performance metric.
val f1MetricPerformanceMeasures = (0 until 8).map { maxDepth =>
  val model = variedMaxDepthModels(maxDepth)
  // Calling transform() on the test set runs the fitted pipeline.
  // The learned model makes predictions on each test example.
  val predictions = model.transform(test)
  // Calling evaluate() on the predictions DataFrame computes our performance metric.
  (maxDepth, evaluator.evaluate(predictions))
}.toDF("maxDepth", "f1")
f1MetricPerformanceMeasures: org.apache.spark.sql.DataFrame = [maxDepth: int, f1: double]

We can display our accuracy results and see immediately that deeper, larger trees are more powerful classifiers, achieving higher accuracies.

Note: When you run f1MetricPerformanceMeasures.show(), you will get a table with f1 score getting better (i.e., approaching 1) with depth.

f1MetricPerformanceMeasures.show()
+--------+-------------------+
|maxDepth|                 f1|
+--------+-------------------+
|       0|  0.023138302649304|
|       1|0.07692344325297736|
|       2|0.21454218035530098|
|       3|0.43262516590643385|
|       4| 0.5918539983626627|
|       5| 0.6806954435278861|
|       6| 0.7478698562916142|
|       7| 0.7876393954574569|
+--------+-------------------+

Even though deeper trees are more powerful, they are not always better (recall from the SF/NYC city classification from house features at The visual description of ML and Decision Trees). If we kept increasing the depth on a rich enough dataset, training would take longer and longer. We also might risk overfitting (fitting the training data so well that our predictions get worse on test data); it is important to tune parameters based on held-out data to prevent overfitting. This will ensure that the fitted model generalizes well to yet unseen data, i.e. minimizes generalization error in a mathematical statistical sense.

Exploring "maxBins": discretization for efficient distributed computing

This section explores a more expert-level setting maxBins. For efficient distributed training of Decision Trees, Spark and most other libraries discretize (or "bin") continuous features (such as pixel values) into a finite number of values. This is an important step for the distributed implementation, but it introduces a tradeoff: Larger maxBins mean your data will be more accurately represented, but it will also mean more communication (and slower training).

The default value of maxBins generally works, but it is interesting to explore on our handwritten digit dataset. Remember our digit image from above:

Image of a digit

It is grayscale. But if we set maxBins = 2, then we are effectively making it a black-and-white image, not grayscale. Will that affect the accuracy of our model? Let's see!

Note: The next cell can take about 35 seconds to run since it trains several trees. Read the details on maxBins at mllib-decision-tree.html#split-candidates.

dtc.setMaxDepth(6) // Set maxDepth to a reasonable value.
// now try the maxBins "hyper-parameter" which actually acts as a "coarsener" 
//     mathematical researchers should note that it is a sub-algebra of the finite 
//     algebra of observable pixel images at the finest resolution available to us
// giving a compression of the image to fewer coarsely represented pixels
val f1MetricPerformanceMeasures = Seq(2, 4, 8, 16, 32).map { case maxBins =>
  // For this value of maxBins, learn a tree.
  dtc.setMaxBins(maxBins)
  val pipeline = new Pipeline().setStages(Array(indexer, dtc))
  val model = pipeline.fit(training)
  // Make predictions on test data, and compute accuracy.
  val predictions = model.transform(test)
  (maxBins, evaluator.evaluate(predictions))
}.toDF("maxBins", "f1")
f1MetricPerformanceMeasures: org.apache.spark.sql.DataFrame = [maxBins: int, f1: double]
f1MetricPerformanceMeasures.show()
+-------+------------------+
|maxBins|                f1|
+-------+------------------+
|      2|0.7429289482693366|
|      4|0.7390759023032782|
|      8|0.7443669963407805|
|     16|0.7426765688669141|
|     32|0.7478698562916142|
+-------+------------------+

We can see that extreme discretization (black and white) hurts performance as measured by F1-error, but only a bit. Using more bins increases the accuracy (but also makes learning more costly).

What's next?

  • Explore: Try out tuning other parameters of trees---or even ensembles like Random Forests or Gradient-Boosted Trees.
  • Automated tuning: This type of tuning does not have to be done by hand. (We did it by hand here to show the effects of tuning in detail.) MLlib provides automated tuning functionality via CrossValidator. Check out the other Databricks ML Pipeline guides or the Spark ML user guide for details.

Resources

If you are interested in learning more on these topics, these resources can get you started:

ScaDaMaLe Course site and book

Linear Algebra Review

This is a breeze'y scalarific break-down of:

Using the above resources we'll provide a review of basic linear algebra concepts that will recur throughout the course. These concepts include:

  • Matrices
  • Vectors
  • Arithmetic operations with vectors and matrices

We will see the accompanying Scala computations in the local or non-distributed setting.

Let's get a quick visual geometric interpretation for vectors, matrices and matrix-vector multiplications, eigen systems with real and comples Eigen values NOW from the following interactive visual-cognitive aid at:

Breeze is a linear algebra package in Scala. First, let us import it as follows:

import breeze.linalg._
import breeze.linalg._

1. Matrix: creation and element-access

A matrix is a two-dimensional array.

Let us denote matrices via bold uppercase letters as follows:

For instance, the matrix below is denoted with \(\mathbf{A}\), a capital bold A.

\[ \mathbf{A} = \begin{pmatrix} a_{11} & a_{12} & a_{13} \ a_{21} & a_{22} & a_{23} \ a_{31} & a_{32} & a_{33} \end{pmatrix} \]

We usually put commas between the row and column indexing sub-scripts, to make the possibly multi-digit indices distinguishable as follows:

\[ \mathbf{A} = \begin{pmatrix} a_{1,1} & a_{1,2} & a_{1,3} \ a_{2,1} & a_{2,2} & a_{2,3} \ a_{3,1} & a_{3,2} & a_{3,3} \end{pmatrix} \]

  • \(\mathbf{A}_{i,j}\) denotes the entry in \(i\)-th row and \(j\)-th column of the matrix \(\mathbf{A}\).
  • So for instance,
    • the first entry, the top left entry, is denoted by \(\mathbf{A}_{1,1}\).
    • And the entry in the third row and second column is denoted by \(\mathbf{A}_{3,2}\).
    • We say that a matrix with n rows and m columns is an \(n\) by \(m\) matrix and written as \(n \times m\)
      • The matrix \(\mathbf{A}\) shown above is a generic \(3 \times 3\) (pronounced 3-by-3) matrix.
      • And the matrix in Ameet's example in the video above, having 4 rows and 3 columns, is a 4 by 3 matrix.
    • If a matrix \(\mathbf{A}\) is \(n \times m\), we write:
      • \(\mathbf{A} \in \mathbb{R}^{n \times m}\) and say that \(\mathbf{A}\) is an \(\mathbb{R}\) to the power of the n times m,
        • where, \(\mathbb{R}\) here denotes the set of all real numbers in the line given by the open interval: \((-\infty,+\infty)\).

Let us created a matrix A as a val (that is immutable) in scala. The matrix we want to create is mathematically notated as follows:

\[ \mathbf{A} = \begin{pmatrix} a_{1,1} & a_{1,2} & a_{1,3} \ a_{2,1} & a_{2,2} & a_{2,3} \end{pmatrix}

\begin{pmatrix} 1 & 2 & 3 \ 4 & 5 & 6 \end{pmatrix} \]

val A = DenseMatrix((1, 2, 3), (4, 5, 6)) // let's create this 2 by 3 matrix
A: breeze.linalg.DenseMatrix[Int] =
1  2  3
4  5  6
A.size
res0: Int = 6
A.rows // number of rows
res1: Int = 2
A.size / A.rows // num of columns
res2: Int = 3
A.cols // also say
res3: Int = 3

Now, let's access the element \(a_{1,1}\), i.e., the element from the first row and first column of \(\mathbf{A}\), which in our val A matrix is the integer of type Int equalling 1.

A(0, 0) // Remember elements are indexed by zero in scala
res4: Int = 1

Gotcha: indices in breeze matrices start at 0 as in numpy of python and not at 1 as in MATLAB!

Of course if you assign the same dense matrix to a mutable var B then its entries can be modified as follows:

var B = DenseMatrix((1, 2, 3), (4, 5, 6))
B: breeze.linalg.DenseMatrix[Int] =
1  2  3
4  5  6
B(0,0)=999; B(1,1)=969; B(0,2)=666
B
res5: breeze.linalg.DenseMatrix[Int] =
999  2    666
4    969  6
  • A vector is a matrix with many rows and one column.

  • We'll denote a vector by bold lowercase letters: \[\mathbf{a} = \begin{pmatrix} 3.3 \ 1.0 \ 6.3 \ 3.6 \end{pmatrix}\]

    So, the vector above is denoted by \(\mathbf{a}\), the lowercase, bold a.

  • \(a_i\) denotes the i-th entry of a vector. So for instance:

    • \(a_2\) denotes the second entry of the vector and it is 1.0 for our vector.
  • If a vector is m-dimensional, then we say that \(\mathbf{a}\) is in \(\mathbb{R}^m\) and write \(\mathbf{a} \in \ \mathbb{R}^m\).

    • So our \(\mathbf{a} \in \ \mathbb{R}^4\).
val a = DenseVector(3.3, 1.0, 6.3, 3.6) // these are row vectors
a: breeze.linalg.DenseVector[Double] = DenseVector(3.3, 1.0, 6.3, 3.6)
a.size // a is a column vector of size 4
res6: Int = 4
a(1) // the second element of a is indexed by 1 as the first element is indexed by 0
res7: Double = 1.0
val a = DenseVector[Double](5, 4, -1) // this makes a vector of Doubles from input Int
a: breeze.linalg.DenseVector[Double] = DenseVector(5.0, 4.0, -1.0)
val a = DenseVector(5.0, 4.0, -1.0) // this makes a vector of Doubles from type inference . NOTE "5.0" is needed not just "5."
a: breeze.linalg.DenseVector[Double] = DenseVector(5.0, 4.0, -1.0)
val x = DenseVector.zeros[Double](5) // this will output x: breeze.linalg.DenseVector[Double] = DenseVector(0.0, 0.0, 0.0, 0.0, 0.0)
x: breeze.linalg.DenseVector[Double] = DenseVector(0.0, 0.0, 0.0, 0.0, 0.0)
val A = DenseMatrix((1, 4), (6, 1), (3, 5)) // let's create this 2 by 3 matrix
A: breeze.linalg.DenseMatrix[Int] =
1  4
6  1
3  5
A.t // transpose of A
res8: breeze.linalg.DenseMatrix[Int] =
1  6  3
4  1  5
val a = DenseVector(3.0, 4.0, 1.0)
a: breeze.linalg.DenseVector[Double] = DenseVector(3.0, 4.0, 1.0)
a.t
res9: breeze.linalg.Transpose[breeze.linalg.DenseVector[Double]] = Transpose(DenseVector(3.0, 4.0, 1.0))
val A = DenseMatrix((1, 4), (6, 1), (3, 5)) 
A: breeze.linalg.DenseMatrix[Int] =
1  4
6  1
3  5
val B = -A 
B: breeze.linalg.DenseMatrix[Int] =
-1  -4
-6  -1
-3  -5
A + B // should be A-A=0
res10: breeze.linalg.DenseMatrix[Int] =
0  0
0  0
0  0
A - B // should be A+A=2A
res11: breeze.linalg.DenseMatrix[Int] =
2   8
12  2
6   10
B - A // should be -A-A=-2A
res12: breeze.linalg.DenseMatrix[Int] =
-2   -8
-12  -2
-6   -10

Operators

All Tensors support a set of operators, similar to those used in Matlab or Numpy.

For HOMEWORK see: Workspace -> scalable-data-science -> xtraResources -> LinearAlgebra -> LAlgCheatSheet for a list of most of the operators and various operations.

Some of the basic ones are reproduced here, to give you an idea.

OperationBreezeMatlabNumpy
Elementwise additiona + ba + ba + b
Elementwise multiplicationa :* ba .* ba * b
Elementwise comparisona :< ba < b (gives matrix of 1/0 instead of true/false)a < b
Inplace additiona :+= 1.0a += 1a += 1
Inplace elementwise multiplicationa :*= 2.0a *= 2a *= 2
Vector dot producta dot b,a.t * bdot(a,b)dot(a,b)
Elementwise sumsum(a)sum(sum(a))a.sum()
Elementwise maxa.maxmax(a)a.max()
Elementwise argmaxargmax(a)argmax(a)a.argmax()
Ceilingceil(a)ceil(a)ceil(a)
Floorfloor(a)floor(a)floor(a)

Pop Quiz:

  • what is a natural geometric interpretation of scalar multiplication of a vector or a matrix and what about vector matrix multiplication?

Let's get a quick visual geometric interpretation for vectors, matrices and matrix-vector multiplications from the first interactive visual-cognitive aid at:

val A = DenseMatrix((1, 4), (6, 1), (3, 5)) 
A: breeze.linalg.DenseMatrix[Int] =
1  4
6  1
3  5
5 * A
res13: breeze.linalg.DenseMatrix[Int] =
5   20
30  5
15  25
A * 5
res14: breeze.linalg.DenseMatrix[Int] =
5   20
30  5
15  25
val A = DenseMatrix((1, 4), (6, 1), (3, 5)) 
A: breeze.linalg.DenseMatrix[Int] =
1  4
6  1
3  5
val B = DenseMatrix((3, 1), (2, 2), (1, 3)) 
B: breeze.linalg.DenseMatrix[Int] =
3  1
2  2
1  3
A *:* B // element-wise multiplication
res15: breeze.linalg.DenseMatrix[Int] =
3   4
12  2
3   15
val A = DenseMatrix((1, 4), (3, 1)) 
A: breeze.linalg.DenseMatrix[Int] =
1  4
3  1
val a = DenseVector(1, -1) // is a column vector
a: breeze.linalg.DenseVector[Int] = DenseVector(1, -1)
a.size // a is a column vector of size 2
res16: Int = 2
A * a
res17: breeze.linalg.DenseVector[Int] = DenseVector(-3, 2)
val A = DenseMatrix((1,2,3),(1,1,1))
A: breeze.linalg.DenseMatrix[Int] =
1  2  3
1  1  1
val B = DenseMatrix((4, 1), (9, 2), (8, 9))
B: breeze.linalg.DenseMatrix[Int] =
4  1
9  2
8  9
A*B // 4+18+14
res18: breeze.linalg.DenseMatrix[Int] =
46  32
21  12
1*4 + 2*9 + 3*8 // checking first entry of A*B
res19: Int = 46
val A = DenseMatrix((1,2,3),(4,5,6))
A: breeze.linalg.DenseMatrix[Int] =
1  2  3
4  5  6
DenseMatrix.eye[Int](3)
res20: breeze.linalg.DenseMatrix[Int] =
1  0  0
0  1  0
0  0  1
A * DenseMatrix.eye[Int](3)
res21: breeze.linalg.DenseMatrix[Int] =
1  2  3
4  5  6
DenseMatrix.eye[Int](2) * A
res22: breeze.linalg.DenseMatrix[Int] =
1  2  3
4  5  6
val D = DenseMatrix((2.0, 3.0), (4.0, 5.0))
val Dinv = inv(D)
D: breeze.linalg.DenseMatrix[Double] =
2.0  3.0
4.0  5.0
Dinv: breeze.linalg.DenseMatrix[Double] =
-2.5  1.5
2.0   -1.0
D * Dinv
res23: breeze.linalg.DenseMatrix[Double] =
1.0  0.0
0.0  1.0
Dinv * D
res24: breeze.linalg.DenseMatrix[Double] =
1.0  0.0
0.0  1.0
val b = DenseVector(4, 3)
norm(b)
b: breeze.linalg.DenseVector[Int] = DenseVector(4, 3)
res25: Double = 5.0
Math.sqrt(4*4 + 3*3) // check
res26: Double = 5.0

HOMEWORK: read this! https://github.com/scalanlp/breeze/wiki/Quickstart

It is here in markdown'd via wget and pandoc for your convenience.

Scala / nlp / breeze / Quickstart

David Hall edited this page on 24 Dec 2015

Breeze is modeled on Scala, and so if you're familiar with it, you'll be familiar with Breeze. First, import the linear algebra package:

scala> import breeze.linalg._

Let's create a vector:

scala> val x = DenseVector.zeros[Double](5)
x: breeze.linalg.DenseVector[Double] = DenseVector(0.0, 0.0, 0.0, 0.0, 0.0)

Here we make a column vector of zeros of type Double. And there are other ways we could create the vector - such as with a literal DenseVector(1,2,3) or with a call to fill or tabulate. The vector is "dense" because it is backed by an Array[Double], but could as well have created a SparseVector.zeros[Double](5), which would not allocate memory for zeros.

Unlike Scalala, all Vectors are column vectors. Row vectors are represented as Transpose[Vector[T]].

The vector object supports accessing and updating data elements by their index in 0 to x.length-1. Like Numpy, negative indices are supported, with the semantics that for an index i < 0 we operate on the i-th element from the end (x(i) == x(x.length + i)).

scala> x(0)
Double = 0.0

scala> x(1) = 2

scala> x
breeze.linalg.DenseVector[Double] = DenseVector(0.0, 2.0, 0.0, 0.0, 0.0)

Breeze also supports slicing. Note that slices using a Range are much, much faster than those with an arbitrary sequence.

scala> x(3 to 4) := .5
breeze.linalg.DenseVector[Double] = DenseVector(0.5, 0.5)

scala> x
breeze.linalg.DenseVector[Double] = DenseVector(0.0, 2.0, 0.0, 0.5, 0.5)

The slice operator constructs a read-through and write-through view of the given elements in the underlying vector. You set its values using the vectorized-set operator :=. You could as well have set it to a compatibly sized Vector.

scala> x(0 to 1) := DenseVector(.1,.2)

scala> x
breeze.linalg.DenseVector[Double] = DenseVector(0.1, 0.2, 0.0, 0.5, 0.5)

Similarly, a DenseMatrix can be created with a constructor method call, and its elements can be accessed and updated.

scala> val m = DenseMatrix.zeros[Int](5,5)
m: breeze.linalg.DenseMatrix[Int] = 
0  0  0  0  0  
0  0  0  0  0  
0  0  0  0  0  
0  0  0  0  0  
0  0  0  0  0  

The columns of m can be accessed as DenseVectors, and the rows as DenseMatrices.

scala> (m.rows, m.cols)
(Int, Int) = (5,5)

scala> m(::,1)
breeze.linalg.DenseVector[Int] = DenseVector(0, 0, 0, 0, 0)

scala>  m(4,::) := DenseVector(1,2,3,4,5).t  // transpose to match row shape
breeze.linalg.DenseMatrix[Int] = 1  2  3  4  5 

scala> m
breeze.linalg.DenseMatrix[Int] = 
0  0  0  0  0  
0  0  0  0  0  
0  0  0  0  0  
0  0  0  0  0  
1  2  3  4  5   

Assignments with incompatible cardinality or a larger numeric type won't compile.

scala> m := x
<console>:13: error: could not find implicit value for parameter op: breeze.linalg.operators.BinaryUpdateOp[breeze.linalg.DenseMatrix[Int],breeze.linalg.DenseVector[Double],breeze.linalg.operators.OpSet]
              m := x
                ^

Assignments with incompatible size will throw an exception:

scala> m := DenseMatrix.zeros[Int](3,3)
java.lang.IllegalArgumentException: requirement failed: Matrices must have same number of row

Sub-matrices can be sliced and updated, and literal matrices can be specified using a simple tuple-based syntax. Unlike Scalala, only range slices are supported, and only the columns (or rows for a transposed matrix) can have a Range step size different from 1.

scala> m(0 to 1, 0 to 1) := DenseMatrix((3,1),(-1,-2)) 
breeze.linalg.DenseMatrix[Int] = 
3   1   
-1  -2  

scala> m
breeze.linalg.DenseMatrix[Int] = 
3   1   0  0  0  
-1  -2  0  0  0  
0   0   0  0  0  
0   0   0  0  0  
1   2   3  4  5  

Broadcasting

Sometimes we want to apply an operation to every row or column of a matrix, as a unit. For instance, you might want to compute the mean of each row, or add a vector to every column. Adapting a matrix so that operations can be applied column-wise or row-wise is called broadcasting. Languages like R and numpy automatically and implicitly do broadcasting, meaning they won't stop you if you accidentally add a matrix and a vector. In Breeze, you have to signal your intent using the broadcasting operator *. The * is meant to evoke "foreach" visually. Here are some examples:

scala> import breeze.stats.mean

scala> val dm = DenseMatrix((1.0,2.0,3.0),
                            (4.0,5.0,6.0))

scala> val res = dm(::, *) + DenseVector(3.0, 4.0)
breeze.linalg.DenseMatrix[Double] =
4.0  5.0  6.0
8.0  9.0  10.0

scala> res(::, *) := DenseVector(3.0, 4.0)

scala> res
breeze.linalg.DenseMatrix[Double] =
3.0  3.0  3.0
4.0  4.0  4.0

scala> mean(dm(*, ::))
breeze.linalg.DenseVector[Double] = DenseVector(2.0, 5.0)

breeze.stats.distributions

Breeze also provides a fairly large number of probability distributions. These come with access to probability density function for either discrete or continuous distributions. Many distributions also have methods for giving the mean and the variance.

scala> import breeze.stats.distributions._

scala> val poi = new Poisson(3.0);
poi: breeze.stats.distributions.Poisson = <function1>

scala> val s = poi.sample(5);
s: IndexedSeq[Int] = Vector(5, 4, 5, 7, 4)

scala> s map { poi.probabilityOf(_) }
IndexedSeq[Double] = Vector(0.10081881344492458, 0.16803135574154085, 0.10081881344492458, 0.02160403145248382, 0.16803135574154085)

scala> val doublePoi = for(x <- poi) yield x.toDouble // meanAndVariance requires doubles, but Poisson samples over Ints
doublePoi: breeze.stats.distributions.Rand[Double] = breeze.stats.distributions.Rand$$anon$11@1b52e04

scala> breeze.stats.meanAndVariance(doublePoi.samples.take(1000));
breeze.stats.MeanAndVariance = MeanAndVariance(2.9960000000000067,2.9669509509509533,1000)

scala> (poi.mean,poi.variance)
(Double, Double) = (3.0,3.0)

NOTE: Below, there is a possibility of confusion for the term rate in the family of exponential distributions. Breeze parameterizes the distribution with the mean, but refers to it as the rate.

scala> val expo = new Exponential(0.5);
expo: breeze.stats.distributions.Exponential = Exponential(0.5)

scala> expo.rate
Double = 0.5

A characteristic of exponential distributions is its half-life, but we can compute the probability a value falls between any two numbers.

scala> expo.probability(0, log(2) * expo.rate)
Double = 0.5

scala> expo.probability(0.0, 1.5)
Double = 0.950212931632136

This means that approximately 95% of the draws from an exponential distribution fall between 0 and thrice the mean. We could have easily computed this with the cumulative distribution as well

scala> 1 - exp(-3.0)
Double = 0.950212931632136


scala> val samples = expo.sample(2).sorted;
samples: IndexedSeq[Double] = Vector(1.1891135726280517, 2.325607782657507)

scala> expo.probability(samples(0), samples(1));
Double = 0.08316481553047272

scala> breeze.stats.meanAndVariance(expo.samples.take(10000));
breeze.stats.MeanAndVariance = MeanAndVariance(2.029351863973081,4.163267835527843,10000)

scala> (1 / expo.rate, 1 / (expo.rate * expo.rate))
(Double, Double) = (2.0,4.0)

breeze.optimize

TODO: document breeze.optimize.minimize, recommend that instead.

Breeze's optimization package includes several convex optimization routines and a simple linear program solver. Convex optimization routines typically take a DiffFunction[T], which is a Function1 extended to have a gradientAt method, which returns the gradient at a particular point. Most routines will require a breeze.linalg-enabled type: something like a Vector or a Counter.

Here's a simple DiffFunction: a parabola along each vector's coordinate.

scala> import breeze.optimize._

scala>  val f = new DiffFunction[DenseVector[Double]] {
     |               def calculate(x: DenseVector[Double]) = {
     |                 (norm((x - 3d) :^ 2d,1d),(x * 2d) - 6d);
     |               }
     |             }
f: java.lang.Object with breeze.optimize.DiffFunction[breeze.linalg.DenseVector[Double]] = $anon$1@617746b2

Note that this function takes its minimum when all values are 3. (It's just a parabola along each coordinate.)

scala> f.valueAt(DenseVector(3,3,3))
Double = 0.0

scala> f.gradientAt(DenseVector(3,0,1))
breeze.linalg.DenseVector[Double] = DenseVector(0.0, -6.0, -4.0)

scala>  f.calculate(DenseVector(0,0))
(Double, breeze.linalg.DenseVector[Double]) = (18.0,DenseVector(-6.0, -6.0))

You can also use approximate derivatives, if your function is easy enough to compute:

scala> def g(x: DenseVector[Double]) = (x - 3.0):^ 2.0 sum

scala> g(DenseVector(0.,0.,0.))
Double = 27.0

scala> val diffg = new ApproximateGradientFunction(g)

scala> diffg.gradientAt(DenseVector(3,0,1))
breeze.linalg.DenseVector[Double] = DenseVector(1.000000082740371E-5, -5.999990000127297, -3.999990000025377)

Ok, now let's optimize f. The easiest routine to use is just LBFGS, which is a quasi-Newton method that works well for most problems.

scala> val lbfgs = new LBFGS[DenseVector[Double]](maxIter=100, m=3) // m is the memory. anywhere between 3 and 7 is fine. The larger m, the more memory is needed.

scala> val optimum = lbfgs.minimize(f,DenseVector(0,0,0))
optimum: breeze.linalg.DenseVector[Double] = DenseVector(2.9999999999999973, 2.9999999999999973, 2.9999999999999973)

scala> f(optimum)
Double = 2.129924444096732E-29

That's pretty close to 0! You can also use a configurable optimizer, using FirstOrderMinimizer.OptParams. It takes several parameters:

case class OptParams(batchSize:Int = 512,
                     regularization: Double = 1.0,
                     alpha: Double = 0.5,
                     maxIterations:Int = -1,
                     useL1: Boolean = false,
                     tolerance:Double = 1E-4,
                     useStochastic: Boolean= false) {
  // ...
}

batchSize applies to BatchDiffFunctions, which support using small minibatches of a dataset. regularization integrates L2 or L1 (depending on useL1) regularization with constant lambda. alpha controls the initial stepsize for algorithms that need it. maxIterations is the maximum number of gradient steps to be taken (or -1 for until convergence). tolerance controls the sensitivity of the convergence check. Finally, useStochastic determines whether or not batch functions should be optimized using a stochastic gradient algorithm (using small batches), or using LBFGS (using the entire dataset).

OptParams can be controlled using breeze.config.Configuration, which we described earlier.

breeze.optimize.linear

We provide a DSL for solving linear programs, using Apache's Simplex Solver as the backend. This package isn't industrial strength yet by any means, but it's good for simple problems. The DSL is pretty simple:

import breeze.optimize.linear._
val lp = new LinearProgram()
import lp._
val x0 = Real()
val x1 = Real()
val x2 = Real()

val lpp =  ( (x0 +  x1 * 2 + x2 * 3 )
    subjectTo ( x0 * -1 + x1 + x2 <= 20)
    subjectTo ( x0 - x1 * 3 + x2 <= 30)
    subjectTo ( x0 <= 40 )
)

val result = maximize( lpp)

assert( norm(result.result - DenseVector(40.0,17.5,42.5), 2) < 1E-4)

We also have specialized routines for bipartite matching (KuhnMunkres and CompetitiveLinking) and flow problems.

Where to go next?

After reading this quickstart, you can go to other wiki pages, especially Linear Algebra Cheat-Sheet and Data Structures.

Review the following for example:

if you have not experienced or forgotten big-O and big-Omega and big-Theta notation to study the computational efficiency of algorithms.

ScaDaMaLe Course site and book

Let us visit an interactive visual cognitive tool for the basics ideas in linear regression:

Linear Regression by Hastie and Tibshirani

Chapter 3 of https://www.dataschool.io/15-hours-of-expert-machine-learning-videos/

The following video playlist is a very concise and thorough treatment of linear regression for those who have taken the 200-level linear algebra. Others can fully understand it with some effort and revisiting.

Linear Regression PlayList

Ridge regression has a Bayesian interpretation where the weights have a zero-mean Gaussian prior. See 7.5 in Murphy's Machine Learning: A Probabilistic Perspective for details.

Please take notes in mark-down if you want.

For latex math within markdown you can do the following for in-line maths: \(\mathbf{A}_{i,j} \in \mathbb{R}^1\). And to write maths in display mode do the following:

\[\mathbf{A} \in \mathbb{R}^{m \times d} \]

You will need to write such notes for your final project presentation!

Getting our hands dirty with Darren Wilkinson's blog on regression

Let's follow the exposition in:

You need to scroll down the fitst link embedded in iframe below to get to the section on Analysis of quantitative data with Descriptive statistics and Linear regression sub-sections (you can skip the earlier part that shows you how to run everything locally in spark-shell - try this on your own later).

Let's do this live now...

import breeze.stats.distributions._
def x = Gaussian(1.0,2.0).sample(10000)
val xRdd = sc.parallelize(x)
import breeze.stats.distributions._
x: IndexedSeq[Double]
xRdd: org.apache.spark.rdd.RDD[Double] = ParallelCollectionRDD[0] at parallelize at command-2971213210277124:3
println(xRdd.mean)
println(xRdd.sampleVariance)
0.9961211853107911
4.025384520599017
val xStats = xRdd.stats
xStats.mean
xStats.sampleVariance
xStats.sum
xStats: org.apache.spark.util.StatCounter = (count: 10000, mean: 0.996121, stdev: 2.006236, max: 8.326542, min: -6.840659)
res1: Double = 9961.21185310791
val x2 = Gaussian(0.0,1.0).sample(10000) // 10,000 Gaussian samples with mean 0.0 and std dev 1.0
val xx = x zip x2 // creating tuples { (x,x2)_1, ... , (x,x2)_10000}
val lp = xx map {p => 2.0*p._1 + 1.0*p._2 + 1.5} // { lp_i := (2.0*x + 1.0 * x2 + 1.5)_i, i=1,...,10000 }
val eps = Gaussian(0.0,1.0).sample(10000) // standard normal errors
val y = (lp zip eps) map (p => p._1 + p._2)
val yx = (y zip xx) map (p => (p._1, p._2._1, p._2._2))
x2: IndexedSeq[Double] = Vector(0.1510498720110515, -0.21709023201809416, -0.9420189342233366, -0.6050521762158899, 0.48771393128636853, 0.027986752952643124, 0.08206698908429294, -0.7810931162704136, -1.2057806605697985, -0.9176042669882863, 1.1959113751272468, 0.5771223111098949, -0.5030579509564024, 0.05792512611966754, 2.0492117764647917, -1.6192400586380957, -0.28568171141353893, 1.662660432138664, -0.3053683539449641, 0.3879563181609168, -0.7733054017369991, -0.39556455561853454, 1.7717311537878704, 0.33232937623812936, -0.1392031424321576, -0.5587152832826312, -1.7575839385785728, -0.6579581256900572, 2.037190332203657, 0.03462069676057432, -0.3795037160416964, 0.4622268686186779, -1.0897313199516543, -1.6880936202156007, -0.19374927120525648, -0.5509651353004006, -1.7588836379571422, -0.28930357427256465, 0.4020360571731675, -1.6301541413671794, 0.5958281089725639, 0.366330814768569, 0.4073858014158006, 0.16855406345881346, -0.947375008877488, -1.301502215739479, 0.1470275032863848, 1.0019450542117738, -0.5904174670089379, 0.5435130824204192, 0.3257024438513822, 0.7490447645980914, 0.7972538819971793, -3.008935968399453, -0.2458138862820675, 2.2893054863712985, -0.16582870751291443, -0.7663457059098656, -0.02129165082715293, -1.678393618311418, 0.4477301980923963, -1.3761630188037661, 0.8348043252317754, 2.593999513789406, 0.6054528239524932, -0.517937225538966, -0.8704495697165462, 0.7963689735065775, -0.22860472183526676, -0.8133035588543074, 1.1807570202429787, 0.09708549308780165, -0.1255029357381233, -0.23174042403046444, 1.9877912284224935, -1.6162508631493637, -0.1284467343953938, 0.715203575233169, 0.3144454735478882, -0.1848647516127121, -0.5496887866336722, -0.2545756305645813, 0.16750436775298258, -2.4673043543431854, 1.1418851052679557, 0.3748790073641352, -0.817404869860111, -0.8361798593188912, -1.5394267146879406, -0.41572364800501355, -0.1012436049109305, -1.1015184209065036, 1.8240944932710277, -0.028399443888511452, -0.8207026038892242, 0.015061100495787802, 0.18421526981224481, 1.2655676528174074, -1.057100552093993, 0.9714045895202634, 0.7411082212281875, 0.8163373740421433, -0.08103816988370252, 0.5892784701674155, 0.32505574686630534, -0.9962963394557808, 0.484895621648311, 0.9927193853136387, -1.7490403684405513, 1.6202003817264536, -0.2699908354021868, 0.9907548061408172, -0.6242833307164519, 0.4843781855746414, 0.4842034053606869, 0.7600831116212132, -0.6640803417192944, -0.5474019416456044, 0.2700255027168447, -1.3841075813504558, 1.6002816913642322, -0.7092207329917671, -0.08883062902810138, 2.025819363561132, 0.05567161231138376, -1.556067597966872, -0.5832140748557112, 0.31537969362482127, 0.015469743624534625, -1.2740442928737779, 1.3809654728074165, -2.333571571876549, 0.20354188937573037, 1.0247244424109938, -0.25757737278880144, -2.8220962107471803, 0.09738713753633461, 1.89542633873579, -2.6782503894934844, 0.7782540200985733, 0.6414117319660293, 2.264173731050526, -1.5111510345308878, 0.9287758292855764, 0.5055499928507728, 0.16205786373841113, -1.0297014434622302, -1.291377179402119, -0.40663773460337127, -1.2343888551769233, -0.5036902484765656, -0.3721487060577523, -1.987521549256808, 1.175800228965741, -0.00707441417410632, 1.0509376236793728, 0.7494475310558243, -0.38427172332612247, -0.930358252352808, 0.960228212698756, 1.0130821037354474, -0.03770027592004082, -0.9950054698782884, -1.8847718393419073, 1.2260442128311473, 0.8973362086382494, -1.1448274676767252, 1.2547096088120568, -0.9186364033184078, 0.8026832422467616, -0.4758593270796066, -0.830645491686263, -0.5400873564064651, -0.6630169496517384, 0.6381413581264455, -0.7504597023733945, -0.5222934465699843, 1.8847574147176338, 0.6145641448752742, -0.5988311192477164, -0.48271398431423773, 0.5473323912712278, -0.5885123950740869, 1.0174330673374294, 0.9167061097763491, -0.5816363296158883, 0.030959788500977675, -0.5137243911676949, -1.8709170592192632, -1.7472131497273815, -1.1974973880763593, -0.09142445477515819, 0.40624320435362116, -0.40045440389966913, -0.37854644978248697, 0.11830887334108421, 1.4637485338108103, -0.7665087390801844, -0.3760615977493943, -1.5309037473721014, -1.4651567904030773, -0.026798948253209182, 0.2066789574673153, 1.8143254569727947, 2.3406140678357765, 0.18034205783137355, -1.4479109856334291, -1.1294650286779386, 1.2932328016031633, -0.1393663274001316, -0.8468551132460095, 1.2713996676202226, -0.060721411812719187, 0.6928376952914521, 1.0579153298124913, -0.7645892788282653, -1.4263627705259183, 0.5336299350415817, 0.6573179344240204, 0.6654619137191999, -2.123504844254055, 1.4866262970106303, 0.129061989976924, 0.22269040795154907, -0.049559875163616714, -0.9450310180664842, -0.11473631908336672, -0.39245949031895117, 1.5510785871987065, 1.8254864916125728, 2.061530134034693, 0.8418470519782356, 0.06828445075170164, 1.663002872049384, 0.5626537089196723, 1.1924431746135973, 0.37430311472451033, -0.370821637491865, -0.09451085038956872, 1.8818552958789954, -0.5452487096855598, 0.9207216541161212, -0.03840103995077165, 1.3724685915375903, 0.8666584948313616, -1.1444960562771815, 0.2805555937763331, 0.7940128878027313, 0.5091140746762197, 1.5121770072162093, -0.5742888800806798, 2.3581174706724157, 1.7068949917127816, 0.4624349386051622, 0.1225204014240068, 0.9398794428978549, -0.9518050374642764, -1.0522230289227708, 0.8902191043953458, -1.0945928783869934, 0.18036570004934346, -0.8406140101582382, -0.8634555290392517, 0.7792166711410811, 1.289633532883873, -0.4501732830926528, 2.7021303462005424, -0.22262701182155162, 0.6460605038491092, -1.0247372175076013, -1.307280513522457, 1.6404006952919912, -0.0518398187177849, 0.45080433367542755, 0.3719461665317735, -1.4543187272074507, 0.10188821604602745, -0.27296335375143177, 1.2451029860749379, 0.14487479131269917, 0.18201741036674932, 0.03920775130429693, -0.2580100207138237, 1.7047536767840974, 0.29766687892421284, -1.7401156308492993, 0.05515391539227905, -0.27119832477161965, -1.0452547788609865, -1.4984850253735646, -2.079436054773939, 0.44308840473545447, 0.25444206315208995, -0.19417163889547193, -0.5363606084152478, 0.36176129341638513, -0.33671294206693936, -2.2316073845645206, 0.0455416268115695, 1.0401389018577378, -0.3141083536641634, 0.07341971359886727, 1.0284248217766079, 1.278483571961632, -0.7833209611949998, 1.3772836627732903, 0.9700373682532052, -0.8662419500657893, -1.5938783703449753, -0.6174495172524604, -0.7819620808358254, 0.10302666069195707, 1.0028767323240257, -0.10674590158973656, 0.38777338877043965, -1.0509152481698179, -0.06337185419126991, 1.4117521801837538, 0.7613291392405328, 1.0897823589924052, -0.6637558495096709, -1.8157963102001593, 1.2358784007741146, -2.15537358668726, 0.2971613832014052, -0.750050504028126, 0.8329394704642922, -1.071705174325631, -0.9018883675016863, -0.8504391140892998, -1.0078945028740045, -0.44317562320236065, 1.3250813581783045, 0.6196354624287462, -1.278621584064485, 1.9184511848237962, -0.516835702626045, 0.6357213808712543, 0.925579417321024, -0.5545984413834245, -1.3658354424121768, -0.5628777726709475, -0.04769253246241577, -0.6991542495947202, -1.1147192653783664, -0.5166063563392334, -1.7956252514175055, 1.6987454382135425, -0.43821792344869875, 1.022408572973808, 0.3336089209393924, 0.02312505623899069, -0.31233039785382466, -0.824119195846109, 0.13191861079694536, -0.6036888443048509, 0.11668453965551463, -1.2724302084947103, 0.28050518201340424, -1.0824241957346425, -1.1326924749331988, 0.5172393559288399, -0.7220647087293313, -1.2436289736107498, -0.6156240117132562, 1.0406128654122049, -0.6297102775960882, 0.012206672359322898, 0.4525998876038395, -1.0451363444854351, -1.3734168129137967, 0.08679497767122704, -2.04474580239617, -0.19771649973564123, -1.3186299012886857, -0.2761375653147074, 0.5741590875530609, 0.9593237124668771, 1.0961298140479905, 0.4391578691796409, -0.6238036279250703, -0.05430692986877771, -0.11640313781962018, 2.0002028697055154, 0.7350624069633737, -0.17859693817047373, -2.314523014865333, 0.22960402078570183, 0.5724080038056716, -0.07916244301664163, -0.5341143586242104, 1.6460207223980545, 0.3137460006226553, -0.9207927088314583, 0.6967661703270028, 0.5571396449070067, 0.31796421714524625, -0.2228633316357967, -0.5499817903565626, -0.7841758341511148, -0.02401453955427877, -2.3166764321273394, 1.0391140336549198, 0.5498488089121792, 1.2335108771359133, -1.9943985764799559, 0.042171455201203426, -0.7485156690697342, -0.9570963024254994, 1.301620771050323, 0.04031728339000787, -0.6859845801505859, 1.3911313622090693, -1.6605547611122933, 0.6699454108732157, -1.1570517171606756, -0.36244860379594424, -0.09907031133103263, 0.19148521269498425, 0.8267773040085179, -1.3644874947043841, -1.197567110439719, 1.4817262828203837, -0.10843051264695289, 0.08108871807685476, 1.3545724635606313, 0.5100719528278953, 0.057285477365546435, -0.37191016428905793, 0.18281213200485982, -0.8842932261652275, -1.6494429918726925, -0.7764264486783047, -0.3042211935492598, -0.020825036678536985, -0.30368381843937947, 0.7800891562758471, -0.0735325489432372, -0.1679937736476282, -1.79719393467339, 1.0755228066035305, -0.15773836735128086, -0.0783402653348485, -1.719143525921516, 0.8435175129296529, 0.6761343445136715, 0.5244103817082383, 0.8620143952438806, -2.3060336651929445, 1.4304037697137544, -0.7759942408828852, -1.2609787369882242, -1.4478365748347117, 2.0278952751593384, -0.7861955769834937, -0.2479198127035199, -0.6571378828960646, -2.1673373348092366, -1.7499456634223678, 0.19663998656853085, 0.23504549724402013, 0.3638239098400113, -1.3775094864583974, -0.020668102118018273, 0.25664562550595316, 0.28318073789879256, -0.29571052367446293, 0.7681213080895282, 1.5610874049559282, -2.622344889120145, -0.8202101196954132, 0.7748393413408604, 0.508724216091097, -0.3751101664710589, -0.9591972717671285, 0.925165234056263, 1.8459965937810827, 0.27342245677072646, -2.4602979491815096, 0.6963477323668592, 2.167550027845107, -0.19332822247961037, 0.5981380076459031, -0.694964755780304, 0.08919555493105245, -2.0804801088705767, 1.1920101085447832, 1.231750346524178, -1.455653407187848, 1.2328411389316813, -0.39573709387712014, -1.1956194147671937, -0.04302633139042216, 2.0750703846663137, -1.7646202495106422, -0.017144573753570983, 0.1715206676563901, -0.9656202470043257, -1.2648785618794656, -1.3357866485679637, 0.1818276074213889, -0.1742396893961462, -0.6767070415199365, 2.137638188136061, 0.4838102855828845, 0.3075626385768448, -1.3633563499769654, 0.02908534679907131, 2.321245009450074, -0.037890984508530186, -1.3762801283466828, 1.6125793622774343, 0.201560934160273, -0.15731271258242444, 0.6015468376832578, -0.0991480003326356, 0.9603378027154168, 0.5407700164856909, -0.18116162969719404, 1.515039231410728, 1.0516518441747622, -1.108150706054602, -0.0902162047955897, 0.525636626469496, -0.6505154458390053, -0.6385600015638014, -0.03765503579803463, -0.8067465597676813, 0.25298188952694345, -1.2484755253881343, 0.5907884315290602, -0.7407171504354528, 0.09342389392065106, -0.6358631568411891, -0.7990035391904377, 0.7318639477491172, 1.0721139408861649, -0.7709696933298915, 1.4262689270118047, 0.008052693380149429, -0.7675924241217212, -0.875355770610139, 0.3318552144813144, 0.47230162167225975, -0.28845007593399613, 0.33674053005607557, -1.2685836846998517, 0.9973713512813284, -0.14095584542177128, 0.6434211266970435, -1.3166935231718915, 0.5010874593219053, 0.5400322253256449, 0.1131615290866549, 1.1948743843705798, -0.4068064171361299, -0.2145531753251343, -0.8414414845064078, -0.17448661922809763, 0.015039956542559319, -2.00225473143416, 0.7768533690748148, 0.7280781053306761, -0.6814357844622568, 2.4398143015234925, -1.9715384636473667, -1.089089720589046, -1.0771030789727833, -1.1187887124853761, 0.26304747184316635, 0.6104069218328998, 0.814212432670669, -1.1311163095796626, -0.715657837824097, 0.11337791560485909, 1.1903117127474667, 0.8655118045637775, -0.4786300318354617, 1.1374241148097717, 1.3574248394663742, -0.59796895966422, 0.5787074373907313, -1.4837192620796162, 0.15009771866713956, -1.0785198355458125, 0.43654174540174034, 1.367374206941478, 1.1624833124548457, 1.4378845237950593, -0.4752367281036082, -0.6295231876858187, 0.13609988490474167, 1.451172421854568, -0.9690521636819287, -0.4657652028114279, -0.3272245138051527, -0.3254730682226242, -1.1968451698216205, -2.374605096166881, 1.4231065460066927, 0.3339627050188421, -0.37529586334821136, 1.7121288810552737, 0.7740341080806812, -0.08101997848273264, 0.8171553719668059, 1.004037394973044, 0.22996069331921015, -0.135350519278533, -0.4727403129550938, -0.1182151974084787, -1.9468945045910213, 0.4579087802822954, 1.3836409234546432, 0.02325932498935564, 0.475495388508411, -0.37698432805620236, -0.8219848732487407, -1.3951694203634668, 0.0484490852454009, 0.9222291689334502, 1.5679464498188418, 0.810147143385619, 1.9186942393210789, -0.2176761309409645, 1.497682278641026, -0.6745280698091511, -0.14287398549911423, -0.6123313834457077, 0.5533479535312111, 0.17525285583058028, 0.26417401560092896, 0.7989612854266647, -0.6531854416899909, 0.3890137678570137, 1.5942398929174109, 0.29843502966443813, 0.28270288452527464, -1.030296515196584, 0.29004278605641326, 1.1839066433022867, 0.5617980143776449, 0.3177318190024553, -0.17078152902760071, -0.4129031279462113, 1.6509715706618235, -0.27367425727559463, 1.2450208243939591, 1.4063428988232145, 1.6639488103943056, 0.4109699563209272, -2.1509670233572784, 0.2639495116581482, -0.9708523309574577, 1.2588123216998128, -0.6395148239066109, -2.3731627585033115, 0.43524872907522616, 0.6328073362083871, -0.2381862432808314, 0.40492896291344244, -1.0527840343286374, 1.0689442908821987, 0.789255581937264, 1.1724902795494772, 1.2893390188349818, 0.8926054903089587, 1.4246842661952515, 0.21910907895561132, 0.34689263334132264, -0.5771627038699307, -0.04827308490054824, -0.8361201294738408, 0.2776346366703466, -2.583216199463966, -0.5754336242709439, -0.4740298729504418, 0.45528050967309863, -0.937001723779216, 0.12442585999261868, -1.037597020742512, 0.6656497732259127, 0.09718535082910094, 0.472044663569549, 0.01365815985041524, 0.21443946294874028, 0.38540036725618015, 0.7807770362857364, 0.12940125757456059, -0.9556204076037894, -1.0007190699745476, -1.4238233782457508, 0.09834207753278863, -2.5447136959911605, 0.1997331013963162, 1.2806574080505437, 0.9315316175761184, -0.6394107818742375, -1.4099227738716835, -0.21682467720141205, -0.2142482857139384, 1.1299353191945833, 0.26409499420187055, -0.6837618328677663, 1.748176871520828, -0.45137750181529596, 0.2545934586572956, 0.6078542443352412, -0.21436291927129, -0.01807798719673732, 0.9995581200333848, -1.9002339898589569, -0.2693745536442081, 0.27738326061401086, 0.9588088083048624, -2.2809380920777813, 0.38515662164152703, 0.14815918760114763, 0.21892066892130446, 1.2291414798572955, -0.7027138126400151, 0.001101516410189726, -0.19878057656460413, -1.3484820015025956, -1.3475429219400465, -2.0210923601428465, -0.09144126594108812, 0.4059005816276273, 0.9335476898909668, -0.17037852812849555, 1.1797576294046501, -0.9814138435948395, -0.59577026888633, -0.946118594015114, 0.31024225601384786, -0.36715612264555036, -0.9129082906750721, 0.24118225941129226, 1.6953067460054017, -0.44575419487658474, 0.8440499307509399, -0.6987818896793766, -1.6504422204189202, 0.9076290994167842, -0.5720216124887916, -0.3907622872528834, -0.5344435450123501, 0.2434291400674394, -1.3828080206005129, -0.40522439460185156, -0.9329831282017179, 1.5016477371243226, -0.4782955772741999, -0.35933071932718297, -0.013071727079844811, 0.9457197761151667, 0.88547572536491, -0.7284350484475177, 3.34597265464979, -0.6565486096719748, 2.0071882494870747, 1.0595021575719632, -0.6347598710491432, 1.7780817104271445, -0.7474659036256496, 2.274681811945376, -0.16661804033866273, 1.229846682825196, -0.24202493293949087, 1.3043974875572906, 0.6542233003162868, 1.1297955530475419, -0.6421340260679929, 0.6218989933034942, 0.41508966549094883, 0.19856384065980512, -0.9782335050516806, 1.5826472247462247, 0.17887593907764898, -1.3498741915231427, -1.9667878392676454, 3.305663883668763, -0.4350440334262082, -0.4097682527976977, 0.9434336763573686, -0.5436220786767807, -0.018197193698519923, -0.8423313162472719, -0.5537406141818406, -1.3445810021139153, 0.5739597321896511, 0.9027226090601936, 0.9962807601235416, -0.3944869331359751, -0.49948645872557595, -1.592644252527489, -0.8963075632556161, -0.281124928867554, -0.38290172562814223, -0.08623070871608174, 0.8689176122759706, -0.6022076534932924, 0.5023469816085081, -0.696239800321511, 0.9822179345376554, 0.9843867592827164, 1.253737442052706, -0.21561036112503276, 0.4763897291185735, -0.3816621678778997, -1.2726727941938998, 0.7808462914630361, -1.279321770813609, -1.249085767708575, -0.5262007219347724, 2.0375551711803523, 0.35565466738690976, 1.729140884257809, -0.2134341316049298, 1.0661506262996305, 0.14405639612841104, 1.5283790176593852, 1.083286397653919, 0.08705656468813867, 0.12354297653909227, -0.8885387288040731, 0.868850539965121, 0.38468690199897226, 0.10529276620539245, -1.5467019468693028, 0.11134848558121198, 0.5242581436594406, -1.4612754791339186, 0.6170671476298276, 2.404874088438192, 0.4536536350335747, 0.5590316578013409, 1.4722471502737542, -0.7826074583703301, 0.03864057928741479, 0.5409052205287742, -0.91764558020482, 0.2907284432003232, 0.0926246944836777, -0.6715464756911873, 1.6188813415483425, 1.937486011066117, -1.2872213802790935, 0.05028238793779849, 0.34278782978677325, -0.9317921756615996, 0.847157773949496, -1.7309498009428164, 1.131234684816195, 1.42559703424871, -1.1042663027995043, 0.5482757432406922, 0.49093316226965256, 1.4299765283373023, 1.2699610859231685, -0.6885892269356135, -0.6834163635059881, 0.09970998500665039, -0.05252250656608228, -0.5738061460548269, 0.04684493779144785, -2.0403431803564103, -2.3426040850283334, 1.3263987617975324, -1.6066813971687723, -1.3712077945231729, 0.023194145470648, 2.0233789284442305, 0.0552515096510362, -0.1848702031009112, 0.8678035694514004, 2.584641397416784, -1.374802793486839, -0.41275499089901185, 1.757248960282745, -0.9174957372175073, 0.8454219752897207, -0.48424938225642095, -0.9452258787410663, -0.4063011961676097, -0.14610880161061304, -1.191656301348928, -0.05534876749708337, -1.0824577801299335, 0.5065919371099356, -0.7234007146985317, -0.4393685486065214, -0.28713403102892043, 0.4023446222345482, 0.7408646840398053, 1.1735145587625548, -1.4959369385460655, 0.9569777537825604, -1.5309823669985632, -0.32832346606728907, -1.9702457066985795, 0.4915363188477118, 0.6267936755653063, 0.5264923978293093, 0.2793517169291047, 0.699630827386399, -0.48194010545572347, -1.9163915803321179, 0.4917274635159007, -0.8918023989162509, 0.054382578076211927, -0.13063575946183192, -2.963221181278889, -1.930107473646217, 0.27434769083662114, -2.5862229219736177, 0.12021993055087092, -0.6499875101530838, 1.2841140434979073, 1.795232260277804, 0.5983161934190495, 0.14748215452570676, 0.012732674940682266, 1.0596508622852832, 0.2612567028003964, -1.048184716657201, 1.2910337044306555, -0.40112015879164387, -2.474368538289194, 0.3607932548010173, -0.39277746077266656, 0.43117281807232705, -0.780462370732576, 0.004212935254872857, 1.1794924506297337, -0.11782146771505461, -0.9169817156798284, 0.6436607218522247, 1.009270297159163, 1.1191953425233845, -1.3185250855422, -0.06390167874291222, 1.0043732007738526, 0.8901659700461146, -0.09710628953572964, -1.7985358888300125, -0.4017184943845876, -0.49366231492607787, 0.47104211065537627, -0.8011138987145442, -0.5644297030299493, -1.2117395349774904, 1.7752801442541137, -0.06040866197475744, 0.5856200577072064, -2.3049530233040403, -1.2233947361735646, 1.789286715947381, -0.5678735891299862, 0.2884538364881288, 0.596466411038459, 0.1257010162863289, 0.08710239368087719, -0.3976608617928727, 0.03973466759058689, 1.2929183222053455, 0.2995297455403365, -0.4712635910013849, -1.404574175177837, 1.6770901706769825, 2.0017133748539893, 0.1274278689589807, 1.3587051209065415, 0.24268281140561118, -1.4595561645069262, 0.6652637699287584, -1.0625231499800574, -0.5489552263804611, 0.011217276797261928, -0.4537248029565897, 0.5114095357826577, 1.110198956335098, 0.417931247837064, -0.5197879191519639, 0.8908423822038136, -0.05428396733277234, -1.6971217632848712, -0.27867393472168944, 0.9007900540298039, -0.20140571160773263, -0.05687271801962116, -0.3743529665542792, -0.5108114271524771, -0.227006519061247, 0.12787523499272155, -0.303674313770039, 0.21916688186617306, 1.5129638774909924, 0.5287700042827598, -0.7887173081259768)
xx: IndexedSeq[(Double, Double)] = Vector((1.6983876233282715,0.1510498720110515), (1.9306937118935266,-0.21709023201809416), (-3.613579039093624,-0.9420189342233366), (1.4774128627063305,-0.6050521762158899), (0.49536920319327216,0.48771393128636853), (2.619266385545484,0.027986752952643124), (-1.6216138344745752,0.08206698908429294), (1.2511380715559544,-0.7810931162704136), (-0.6891022233658615,-1.2057806605697985), (2.7890847095863527,-0.9176042669882863), (-0.8384317817611013,1.1959113751272468), (-0.39702300426389736,0.5771223111098949), (-0.20341459413042506,-0.5030579509564024), (1.940354690386933,0.05792512611966754), (3.1686700336304794,2.0492117764647917), (-0.015718251511384507,-1.6192400586380957), (3.5222633033548227,-0.28568171141353893), (-1.7700416261712641,1.662660432138664), (-1.276616299487233,-0.3053683539449641), (2.847017612404211,0.3879563181609168), (-2.2095588075327264,-0.7733054017369991), (0.12398381308330297,-0.39556455561853454), (-0.889038019080473,1.7717311537878704), (1.2682927214864042,0.33232937623812936), (-1.5242980017423502,-0.1392031424321576), (-1.1047188228499718,-0.5587152832826312), (1.7722204452187196,-1.7575839385785728), (0.04169431488122677,-0.6579581256900572), (0.008442861000104274,2.037190332203657), (2.129861454185579,0.03462069676057432), (-1.3075615522200312,-0.3795037160416964), (2.640226790983577,0.4622268686186779), (1.8115120733853414,-1.0897313199516543), (-2.4269557944745266,-1.6880936202156007), (0.25161494380013494,-0.19374927120525648), (0.6972213441690793,-0.5509651353004006), (-1.4249662489137846,-1.7588836379571422), (-2.8058490335385198,-0.28930357427256465), (3.8366909938243237,0.4020360571731675), (3.110632056495419,-1.6301541413671794), (3.7294439220903084,0.5958281089725639), (-0.003590308691806099,0.366330814768569), (0.6670448231750639,0.4073858014158006), (0.7077886272690928,0.16855406345881346), (4.810852253296299,-0.947375008877488), (1.537026192682279,-1.301502215739479), (1.5778035760893996,0.1470275032863848), (0.8034872067976389,1.0019450542117738), (2.1781007920189275,-0.5904174670089379), (2.1582500596745224,0.5435130824204192), (1.5702056724507172,0.3257024438513822), (0.6273909939411992,0.7490447645980914), (2.9737351998521557,0.7972538819971793), (0.19226769228505514,-3.008935968399453), (0.7040906058297841,-0.2458138862820675), (1.7748793746647895,2.2893054863712985), (0.817755138729894,-0.16582870751291443), (5.098321911797599,-0.7663457059098656), (3.72224257935207,-0.02129165082715293), (2.819825663241845,-1.678393618311418), (-1.0541007736252888,0.4477301980923963), (-1.9931816211815754,-1.3761630188037661), (2.053200357360071,0.8348043252317754), (2.6504828464040466,2.593999513789406), (0.7635959419715312,0.6054528239524932), (-0.6985217947431726,-0.517937225538966), (1.0200787394354123,-0.8704495697165462), (0.9900523144691149,0.7963689735065775), (-2.636058289151889,-0.22860472183526676), (-0.006865612686181466,-0.8133035588543074), (-1.9369303943736362,1.1807570202429787), (0.8207830907828872,0.09708549308780165), (2.9960365323274516,-0.1255029357381233), (-1.4598715511713443,-0.23174042403046444), (-1.6850847827294002,1.9877912284224935), (1.8660345919208075,-1.6162508631493637), (3.4665378645024973,-0.1284467343953938), (-0.5413207856162352,0.715203575233169), (2.0812024732066883,0.3144454735478882), (1.0478641099166173,-0.1848647516127121), (0.09764242478884722,-0.5496887866336722), (2.455169809100939,-0.2545756305645813), (3.929354758370917,0.16750436775298258), (3.050688866390247,-2.4673043543431854), (5.053919984936024,1.1418851052679557), (0.6709281732489789,0.3748790073641352), (0.4881210472750994,-0.817404869860111), (3.6510567194061876,-0.8361798593188912), (1.146503253972402,-1.5394267146879406), (-1.255812790663824,-0.41572364800501355), (0.5596948430990623,-0.1012436049109305), (0.6787285726710425,-1.1015184209065036), (1.5295781767138816,1.8240944932710277), (0.9792294583717878,-0.028399443888511452), (2.5772503164411127,-0.8207026038892242), (3.5067014361379223,0.015061100495787802), (1.0530086719680942,0.18421526981224481), (3.1546436554171695,1.2655676528174074), (2.5666446000164393,-1.057100552093993), (-0.25408644443838413,0.9714045895202634), (5.094415707144548,0.7411082212281875), (-0.5842186502529905,0.8163373740421433), (0.27046894035259084,-0.08103816988370252), (-0.1900912387832303,0.5892784701674155), (0.19119860102738795,0.32505574686630534), (1.342435075277992,-0.9962963394557808), (2.01576225946382,0.484895621648311), (-1.3315732630965176,0.9927193853136387), (4.651801823771725,-1.7490403684405513), (0.40875990335626267,1.6202003817264536), (-0.6688861808540578,-0.2699908354021868), (-1.2112344110158406,0.9907548061408172), (-0.273739139868751,-0.6242833307164519), (0.008955401325448697,0.4843781855746414), (-0.4364876411254188,0.4842034053606869), (-0.5943099209874005,0.7600831116212132), (1.211946845667774,-0.6640803417192944), (1.5083366446138549,-0.5474019416456044), (0.31043238086970926,0.2700255027168447), (-0.026444982031816222,-1.3841075813504558), (5.594258068053623,1.6002816913642322), (1.7386180400754943,-0.7092207329917671), (3.234629000567968,-0.08883062902810138), (0.07317713975488005,2.025819363561132), (-1.7615858067511803,0.05567161231138376), (2.903921478619658,-1.556067597966872), (2.1095663416536077,-0.5832140748557112), (0.8984342190126537,0.31537969362482127), (-1.2562548556289594,0.015469743624534625), (0.70371421222917,-1.2740442928737779), (6.682663984938959,1.3809654728074165), (2.8144107440089066,-2.333571571876549), (-0.8992433388942302,0.20354188937573037), (3.472636066658491,1.0247244424109938), (1.6891867366656383,-0.25757737278880144), (2.5374071736508563,-2.8220962107471803), (4.690232337846138,0.09738713753633461), (0.12067267908807089,1.89542633873579), (2.7169593848024887,-2.6782503894934844), (1.8062659512087649,0.7782540200985733), (-0.01845293657257696,0.6414117319660293), (-0.4462823816579564,2.264173731050526), (1.7946315433961588,-1.5111510345308878), (-0.4798514257428741,0.9287758292855764), (-1.2555272864460045,0.5055499928507728), (0.4590668877631503,0.16205786373841113), (1.3155977358341158,-1.0297014434622302), (2.9623034849030443,-1.291377179402119), (0.7177622753575823,-0.40663773460337127), (4.726242809142292,-1.2343888551769233), (0.40501124104084163,-0.5036902484765656), (0.671193674673483,-0.3721487060577523), (0.07291534205751815,-1.987521549256808), (3.0132477799937103,1.175800228965741), (1.5800876523474532,-0.00707441417410632), (0.7578218048199775,1.0509376236793728), (-1.0013372637909774,0.7494475310558243), (2.4973399203372537,-0.38427172332612247), (2.7430757646823727,-0.930358252352808), (0.9420574052414756,0.960228212698756), (1.6907242105347866,1.0130821037354474), (0.5383478390341173,-0.03770027592004082), (-0.8776876240450338,-0.9950054698782884), (-2.176789802349519,-1.8847718393419073), (1.438183108689277,1.2260442128311473), (4.2808350483606805,0.8973362086382494), (1.4736191295860737,-1.1448274676767252), (-1.0596070355961702,1.2547096088120568), (1.2806057245712048,-0.9186364033184078), (1.699538265086482,0.8026832422467616), (2.4523729028460886,-0.4758593270796066), (-2.076551861641827,-0.830645491686263), (0.3829213050954927,-0.5400873564064651), (2.526475840066497,-0.6630169496517384), (-2.0435565279682697,0.6381413581264455), (1.0949799154339852,-0.7504597023733945), (2.9295011827611033,-0.5222934465699843), (-1.423740168713263,1.8847574147176338), (0.017436888071446166,0.6145641448752742), (-3.5813526640199997,-0.5988311192477164), (0.41775620625790433,-0.48271398431423773), (3.85232854616207,0.5473323912712278), (0.8559247574537103,-0.5885123950740869), (-1.004205312524907,1.0174330673374294), (-0.3466207150003797,0.9167061097763491), (2.6655511325842545,-0.5816363296158883), (-1.3576480411223657,0.030959788500977675), (0.6570353947095654,-0.5137243911676949), (0.4292434709946844,-1.8709170592192632), (1.0774815292368056,-1.7472131497273815), (1.1870324868533702,-1.1974973880763593), (0.2095199581899425,-0.09142445477515819), (0.010174654351863599,0.40624320435362116), (2.2901710235045103,-0.40045440389966913), (2.863966697515529,-0.37854644978248697), (3.688198186591751,0.11830887334108421), (2.0169458626980523,1.4637485338108103), (-1.505319168869295,-0.7665087390801844), (1.8372698368751088,-0.3760615977493943), (1.8008952595300867,-1.5309037473721014), (-1.546114129410773,-1.4651567904030773), (-0.841091525148669,-0.026798948253209182), (3.3919309207490786,0.2066789574673153), (2.088811112176163,1.8143254569727947), (-2.8769838245667856,2.3406140678357765), (0.4322984726888067,0.18034205783137355), (1.303043972931992,-1.4479109856334291), (-0.8423009866321116,-1.1294650286779386), (2.3991460284110797,1.2932328016031633), (-1.2931723513142943,-0.1393663274001316), (2.0843200968397437,-0.8468551132460095), (1.588879714937239,1.2713996676202226), (0.16628786148190622,-0.060721411812719187), (3.381916527851547,0.6928376952914521), (-1.4139426566326065,1.0579153298124913), (-1.9182803080402397,-0.7645892788282653), (3.4030209272918843,-1.4263627705259183), (2.348169386628692,0.5336299350415817), (2.7108694994929197,0.6573179344240204), (3.526692155778424,0.6654619137191999), (1.9363458607956388,-2.123504844254055), (1.2676248599666975,1.4866262970106303), (0.6250180966831009,0.129061989976924), (0.5133381875585852,0.22269040795154907), (4.062846560502843,-0.049559875163616714), (-1.0584402793210144,-0.9450310180664842), (-1.3944570089945305,-0.11473631908336672), (5.159311184253761,-0.39245949031895117), (1.05473696332479,1.5510785871987065), (0.15029838928005657,1.8254864916125728), (-4.3831809540558195,2.061530134034693), (-0.5446931918197788,0.8418470519782356), (1.7932009992060465,0.06828445075170164), (2.873840491469598,1.663002872049384), (-2.392423493455181,0.5626537089196723), (-2.246490718314186,1.1924431746135973), (3.051289545082127,0.37430311472451033), (2.921558256207268,-0.370821637491865), (3.9054719498051775,-0.09451085038956872), (0.30648948283890143,1.8818552958789954), (0.28062132301179654,-0.5452487096855598), (-0.6636405711277971,0.9207216541161212), (-0.23995842176230187,-0.03840103995077165), (-3.091235716784537,1.3724685915375903), (-1.4940558643511443,0.8666584948313616), (1.9003814806931487,-1.1444960562771815), (2.8178532836819334,0.2805555937763331), (0.37928684873689544,0.7940128878027313), (3.586810316002774,0.5091140746762197), (3.4620802514921007,1.5121770072162093), (0.0576382324555591,-0.5742888800806798), (2.3444623732611887,2.3581174706724157), (4.446712694084447,1.7068949917127816), (0.11914364217820061,0.4624349386051622), (1.0378949464259808,0.1225204014240068), (3.1306376315369757,0.9398794428978549), (3.2980072200625696,-0.9518050374642764), (-0.2975742780145032,-1.0522230289227708), (2.4125155391923037,0.8902191043953458), (-0.009450198942695609,-1.0945928783869934), (-0.4114802634876489,0.18036570004934346), (-1.039046520029077,-0.8406140101582382), (0.03977909071980956,-0.8634555290392517), (3.84686114196863,0.7792166711410811), (-0.4466827723217275,1.289633532883873), (1.1955794181366715,-0.4501732830926528), (3.305267656565898,2.7021303462005424), (0.5920837478263631,-0.22262701182155162), (1.8041012458041257,0.6460605038491092), (1.0663497873352485,-1.0247372175076013), (0.46091153333898405,-1.307280513522457), (0.7938864878059918,1.6404006952919912), (1.1094190243389264,-0.0518398187177849), (-0.641191315654986,0.45080433367542755), (-2.2044702809494647,0.3719461665317735), (1.0625161889548376,-1.4543187272074507), (3.9153759785005255,0.10188821604602745), (-0.31526297573578144,-0.27296335375143177), (6.7096374220372565,1.2451029860749379), (1.0132384508094343,0.14487479131269917), (2.1110257417957357,0.18201741036674932), (1.7567294506702076,0.03920775130429693), (2.2859862705949117,-0.2580100207138237), (3.0561313373519234,1.7047536767840974), (1.676678150633316,0.29766687892421284), (1.937200165306161,-1.7401156308492993), (1.7306597418522667,0.05515391539227905), (-0.7687330306969606,-0.27119832477161965), (1.6133041783818296,-1.0452547788609865), (-0.45709897470234107,-1.4984850253735646), (-0.11760611625946105,-2.079436054773939), (1.6931561226134122,0.44308840473545447), (-3.120132757148525,0.25444206315208995), (2.4874329799865276,-0.19417163889547193), (-2.071286380736543,-0.5363606084152478), (1.2245794297058403,0.36176129341638513), (1.5561427304696545,-0.33671294206693936), (-2.2132167533079596,-2.2316073845645206), (-0.1806519997812015,0.0455416268115695), (-1.8531519070689244,1.0401389018577378), (-1.4251005245889679,-0.3141083536641634), (-0.12116861831588355,0.07341971359886727), (-0.16311082359616202,1.0284248217766079), (1.1452304838866687,1.278483571961632), (0.16439959613142852,-0.7833209611949998), (2.372898903650935,1.3772836627732903), (-1.620865721699925,0.9700373682532052), (0.36995107938907257,-0.8662419500657893), (1.3699125246227284,-1.5938783703449753), (2.48540066183223,-0.6174495172524604), (1.7700634670756181,-0.7819620808358254), (-1.4895838800008887,0.10302666069195707), (-2.2924674968350516,1.0028767323240257), (1.7961909211171703,-0.10674590158973656), (5.272881180606573,0.38777338877043965), (-0.25483551061368104,-1.0509152481698179), (-0.6889539664067525,-0.06337185419126991), (4.8051377193993385,1.4117521801837538), (2.9847454768322432,0.7613291392405328), (-0.24298275058801688,1.0897823589924052), (0.4450211079339286,-0.6637558495096709), (3.9757632460215255,-1.8157963102001593), (3.1943058250078,1.2358784007741146), (1.6029441920839047,-2.15537358668726), (0.34496068898614773,0.2971613832014052), (-0.701365313565937,-0.750050504028126), (2.8797174467601363,0.8329394704642922), (-0.13811245773318692,-1.071705174325631), (-0.4071920336779187,-0.9018883675016863), (-0.980614720236086,-0.8504391140892998), (2.049070837825484,-1.0078945028740045), (-0.6656569729544988,-0.44317562320236065), (1.6714981157456288,1.3250813581783045), (3.3730612370932245,0.6196354624287462), (3.0056576612532875,-1.278621584064485), (1.5115584507080988,1.9184511848237962), (1.7299939794801924,-0.516835702626045), (2.578275842879262,0.6357213808712543), (2.6052371080790184,0.925579417321024), (-2.250831271025072,-0.5545984413834245), (2.6102577747003695,-1.3658354424121768), (-0.6857732802886782,-0.5628777726709475), (2.68127965494721,-0.04769253246241577), (-0.23756253168905261,-0.6991542495947202), (2.933572585641892,-1.1147192653783664), (0.5614839385686299,-0.5166063563392334), (3.225346367977653,-1.7956252514175055), (-0.004972800365140584,1.6987454382135425), (2.3788301806207484,-0.43821792344869875), (-2.039370915599196,1.022408572973808), (2.0463606707908997,0.3336089209393924), (-0.4145554379817833,0.02312505623899069), (0.08116934207464666,-0.31233039785382466), (-0.5477934703182952,-0.824119195846109), (-2.1370441042978534,0.13191861079694536), (0.25420113532525435,-0.6036888443048509), (1.0360988579414563,0.11668453965551463), (1.8638704589133164,-1.2724302084947103), (4.753630548842833,0.28050518201340424), (-3.3515189565291017,-1.0824241957346425), (1.5594601410586848,-1.1326924749331988), (3.1996282995078142,0.5172393559288399), (-2.898934616162431,-0.7220647087293313), (0.954273115625876,-1.2436289736107498), (0.28240108595091895,-0.6156240117132562), (0.7716522151389817,1.0406128654122049), (3.5094764570608667,-0.6297102775960882), (-2.7297328544947694,0.012206672359322898), (3.1669548682515365,0.4525998876038395), (-1.4851752825309625,-1.0451363444854351), (1.737419298693093,-1.3734168129137967), (1.7310067105728377,0.08679497767122704), (2.5247654346540447,-2.04474580239617), (1.7264929904926656,-0.19771649973564123), (3.4257461180577016,-1.3186299012886857), (-2.5422136030597478,-0.2761375653147074), (0.4542310289448179,0.5741590875530609), (-3.195921668005856,0.9593237124668771), (0.7587040179222494,1.0961298140479905), (1.4084546036945158,0.4391578691796409), (-1.0057668147395509,-0.6238036279250703), (-0.49303951955178493,-0.05430692986877771), (-1.1278958812038873,-0.11640313781962018), (-0.5550385126005621,2.0002028697055154), (-1.327368897717546,0.7350624069633737), (0.6693045410982479,-0.17859693817047373), (0.9549634686422886,-2.314523014865333), (1.500290442382846,0.22960402078570183), (-1.062055316386933,0.5724080038056716), (4.17217815778416,-0.07916244301664163), (2.678008750316924,-0.5341143586242104), (-0.8407983093249223,1.6460207223980545), (0.1875458897850375,0.3137460006226553), (-1.4179172686232406,-0.9207927088314583), (-0.49483409094368813,0.6967661703270028), (3.0009788765530763,0.5571396449070067), (2.0247746940707065,0.31796421714524625), (-0.2532041121084554,-0.2228633316357967), (3.652347645598589,-0.5499817903565626), (0.7886575879739799,-0.7841758341511148), (1.8099012750189574,-0.02401453955427877), (2.6230258299791482,-2.3166764321273394), (-0.717877434770809,1.0391140336549198), (-0.061241279683518,0.5498488089121792), (5.075089912736638,1.2335108771359133), (-0.8661311149639208,-1.9943985764799559), (-0.4069254685974877,0.042171455201203426), (4.929354815737875,-0.7485156690697342), (1.5066515864634513,-0.9570963024254994), (-1.509352007807196,1.301620771050323), (-0.17664963489668062,0.04031728339000787), (-0.4992194165794621,-0.6859845801505859), (-1.113404970974071,1.3911313622090693), (0.09081039944017699,-1.6605547611122933), (-1.109106884499735,0.6699454108732157), (0.6485386309736403,-1.1570517171606756), (7.436914934152387,-0.36244860379594424), (0.4579796383680059,-0.09907031133103263), (0.43490753215458244,0.19148521269498425), (1.5924776792705433,0.8267773040085179), (1.5577372417716786,-1.3644874947043841), (-0.1383846240201141,-1.197567110439719), (1.102472332306647,1.4817262828203837), (-0.5007687156746798,-0.10843051264695289), (2.746605165951965,0.08108871807685476), (1.1354991842453341,1.3545724635606313), (0.5494189005690517,0.5100719528278953), (-0.06026129274218861,0.057285477365546435), (4.089663482193665,-0.37191016428905793), (0.726791148499311,0.18281213200485982), (2.4464995994435466,-0.8842932261652275), (0.15700154458188786,-1.6494429918726925), (1.272472165346263,-0.7764264486783047), (-3.195988699113852,-0.3042211935492598), (3.520246085692976,-0.020825036678536985), (1.3375848973775626,-0.30368381843937947), (0.15355688719653504,0.7800891562758471), (0.3017504926614425,-0.0735325489432372), (1.210549152793178,-0.1679937736476282), (2.722259220076117,-1.79719393467339), (2.145916964295476,1.0755228066035305), (1.2838598063485724,-0.15773836735128086), (-0.47498086044457755,-0.0783402653348485), (-1.5584264763520719,-1.719143525921516), (2.0902157221330726,0.8435175129296529), (0.14776584386725267,0.6761343445136715), (3.954333236916723,0.5244103817082383), (0.5686484060482982,0.8620143952438806), (0.5252372312948147,-2.3060336651929445), (1.0577965808033563,1.4304037697137544), (0.9412615679730147,-0.7759942408828852), (3.5989366916799774,-1.2609787369882242), (2.919020206007784,-1.4478365748347117), (0.7075735919201673,2.0278952751593384), (-1.7988006346520633,-0.7861955769834937), (-0.1702629410006551,-0.2479198127035199), (-1.8327114024097777,-0.6571378828960646), (-2.4320883864687493,-2.1673373348092366), (1.5506981243634088,-1.7499456634223678), (-1.6486363495756167,0.19663998656853085), (-0.07210328541259714,0.23504549724402013), (3.3359309494368614,0.3638239098400113), (-1.9661523473680842,-1.3775094864583974), (-1.5234912819808697,-0.020668102118018273), (3.6096747834567844,0.25664562550595316), (3.792600951806,0.28318073789879256), (5.445353546258513,-0.29571052367446293), (3.5440273579163764,0.7681213080895282), (0.9197396037638609,1.5610874049559282), (3.811849778098893,-2.622344889120145), (2.7332345459673975,-0.8202101196954132), (-0.5818046844472109,0.7748393413408604), (-0.5281115636440643,0.508724216091097), (1.5044235562058499,-0.3751101664710589), (2.873650376809124,-0.9591972717671285), (1.8129440785275448,0.925165234056263), (2.0179287591118342,1.8459965937810827), (0.8322142722701716,0.27342245677072646), (-0.4285731224378031,-2.4602979491815096), (2.4399636602901773,0.6963477323668592), (-0.9106687544606735,2.167550027845107), (2.2303985755555713,-0.19332822247961037), (1.3790259597005396,0.5981380076459031), (3.7996185186834577,-0.694964755780304), (1.2956010771846629,0.08919555493105245), (1.538146993149411,-2.0804801088705767), (0.34956131459239337,1.1920101085447832), (2.324890219256198,1.231750346524178), (-0.007461769742674651,-1.455653407187848), (-0.25687852714004933,1.2328411389316813), (-0.10083857130927787,-0.39573709387712014), (-0.4576304833103986,-1.1956194147671937), (3.5460429684560597,-0.04302633139042216), (2.3895059706818245,2.0750703846663137), (0.6141642991105689,-1.7646202495106422), (2.7461944701594874,-0.017144573753570983), (-0.9026983960663617,0.1715206676563901), (0.7378437996873302,-0.9656202470043257), (1.66416214705831,-1.2648785618794656), (0.27509031436823117,-1.3357866485679637), (-1.1687533676873079,0.1818276074213889), (-0.3868893758816525,-0.1742396893961462), (4.421141775966374,-0.6767070415199365), (2.3562673999312493,2.137638188136061), (-1.4191111968198054,0.4838102855828845), (1.2100382115048613,0.3075626385768448), (3.9433787679288734,-1.3633563499769654), (3.4523083260238985,0.02908534679907131), (0.5931106981807055,2.321245009450074), (0.5323635042903148,-0.037890984508530186), (0.6432548496942007,-1.3762801283466828), (1.7830049160784451,1.6125793622774343), (3.343550972317695,0.201560934160273), (0.3058331091080799,-0.15731271258242444), (3.5132026769406743,0.6015468376832578), (-2.971225740597245,-0.0991480003326356), (1.3624546339392878,0.9603378027154168), (-0.8015108509863962,0.5407700164856909), (-2.1839032564232803,-0.18116162969719404), (-0.304110507108742,1.515039231410728), (3.3539330766126354,1.0516518441747622), (1.3933519433178922,-1.108150706054602), (2.734409447480007,-0.0902162047955897), (1.4442418533781687,0.525636626469496), (4.870497710752748,-0.6505154458390053), (0.27599486504010007,-0.6385600015638014), (1.249763671657228,-0.03765503579803463), (2.8900482496931597,-0.8067465597676813), (0.35997271322967783,0.25298188952694345), (1.6204223282918582,-1.2484755253881343), (0.17015908552188153,0.5907884315290602), (-0.17656545289416115,-0.7407171504354528), (4.73815324418716,0.09342389392065106), (-2.4335528485721105,-0.6358631568411891), (3.4290423053083563,-0.7990035391904377), (-2.204366994061862,0.7318639477491172), (-2.9824782737280255,1.0721139408861649), (1.559154053243073,-0.7709696933298915), (1.7355575197273223,1.4262689270118047), (1.11638805377925,0.008052693380149429), (4.6951872993892,-0.7675924241217212), (2.737373852455214,-0.875355770610139), (-1.151456200240173,0.3318552144813144), (3.0152094819448543,0.47230162167225975), (2.0959843639444466,-0.28845007593399613), (0.33596546387727444,0.33674053005607557), (1.040331737541483,-1.2685836846998517), (2.431166696911837,0.9973713512813284), (2.230055598607015,-0.14095584542177128), (1.3700666149073755,0.6434211266970435), (-0.4327077332358864,-1.3166935231718915), (-1.6077594316454586,0.5010874593219053), (-2.3718964441684305,0.5400322253256449), (2.6760922672748455,0.1131615290866549), (1.460158508062642,1.1948743843705798), (4.289535800486267,-0.4068064171361299), (0.7168408537080622,-0.2145531753251343), (-0.354296028077995,-0.8414414845064078), (0.6348900562033981,-0.17448661922809763), (4.50175610250241,0.015039956542559319), (4.007289452214197,-2.00225473143416), (0.5029484622378626,0.7768533690748148), (1.6705288530684772,0.7280781053306761), (-1.9266086884168034,-0.6814357844622568), (0.6563298284821315,2.4398143015234925), (3.8936524199780114,-1.9715384636473667), (-0.5323653052192214,-1.089089720589046), (-2.187378645730113,-1.0771030789727833), (1.4490595169584695,-1.1187887124853761), (-4.570489383235827,0.26304747184316635), (0.15125945754562187,0.6104069218328998), (3.502660482621176,0.814212432670669), (-0.7485242949055997,-1.1311163095796626), (3.5175847260522777,-0.715657837824097), (1.292722602559689,0.11337791560485909), (-1.0688535529107246,1.1903117127474667), (2.610918918455355,0.8655118045637775), (2.165592336786331,-0.4786300318354617), (3.2180039450399307,1.1374241148097717), (2.3110620837831366,1.3574248394663742), (-1.2620670074181475,-0.59796895966422), (-2.022658500226865,0.5787074373907313), (0.4225942665282606,-1.4837192620796162), (-1.8746483642338414,0.15009771866713956), (1.3304121456690439,-1.0785198355458125), (2.528499056420297,0.43654174540174034), (-2.5920035883882417,1.367374206941478), (1.8434672245723738,1.1624833124548457), (2.099308858628433,1.4378845237950593), (-0.8157539314263724,-0.4752367281036082), (-0.5844201825108297,-0.6295231876858187), (3.6001251647036625,0.13609988490474167), (0.9750494830689591,1.451172421854568), (-1.591208358857827,-0.9690521636819287), (2.272688328123594,-0.4657652028114279), (1.088984838199552,-0.3272245138051527), (2.700650297482846,-0.3254730682226242), (0.29059088340060446,-1.1968451698216205), (-0.8790370032378447,-2.374605096166881), (4.604279856177609,1.4231065460066927), (2.722449227993615,0.3339627050188421), (3.587573251254368,-0.37529586334821136), (-1.4412229896551314,1.7121288810552737), (2.0753371457353946,0.7740341080806812), (1.1111154091929833,-0.08101997848273264), (1.7671887536692417,0.8171553719668059), (1.9408459883070575,1.004037394973044), (0.7804144409892885,0.22996069331921015), (-1.8543998116282898,-0.135350519278533), (6.042636547872292,-0.4727403129550938), (2.1280007672692847,-0.1182151974084787), (0.4471612263594835,-1.9468945045910213), (1.2505523478947802,0.4579087802822954), (0.6984945299477181,1.3836409234546432), (-0.8471775601094396,0.02325932498935564), (4.322477962324404,0.475495388508411), (1.4341612180258405,-0.37698432805620236), (6.239615258142803,-0.8219848732487407), (-3.1535278213087903,-1.3951694203634668), (-0.463940144432212,0.0484490852454009), (-0.14771318640324793,0.9222291689334502), (0.20282785933721803,1.5679464498188418), (1.8482316809367179,0.810147143385619), (1.464243976509526,1.9186942393210789), (-2.344895033686407,-0.2176761309409645), (-0.6222382474654642,1.497682278641026), (-2.028256489351115,-0.6745280698091511), (-1.8185091579263823,-0.14287398549911423), (0.7775757995485517,-0.6123313834457077), (2.208419884574348,0.5533479535312111), (-1.510931362400885,0.17525285583058028), (0.15702274793503757,0.26417401560092896), (-0.460045243107128,0.7989612854266647), (3.543882315893044,-0.6531854416899909), (1.1358671646312586,0.3890137678570137), (1.0004036793674747,1.5942398929174109), (-2.229985885404819,0.29843502966443813), (0.27723413696937793,0.28270288452527464), (-1.0586523471937253,-1.030296515196584), (-0.6053699726992356,0.29004278605641326), (-0.9059032244427896,1.1839066433022867), (0.30610586096155024,0.5617980143776449), (-1.1035109557285785,0.3177318190024553), (0.818395734988232,-0.17078152902760071), (1.2887245591289829,-0.4129031279462113), (3.228020724069559,1.6509715706618235), (0.6610048448754513,-0.27367425727559463), (1.5679633903647399,1.2450208243939591), (1.5877868046262307,1.4063428988232145), (1.9799774803293921,1.6639488103943056), (1.8297536930120843,0.4109699563209272), (-0.21778571324236595,-2.1509670233572784), (0.6433445252381844,0.2639495116581482), (-1.261874773876885,-0.9708523309574577), (-1.020712141743926,1.2588123216998128), (-0.942167556946186,-0.6395148239066109), (2.7320211668089156,-2.3731627585033115), (2.812558906168454,0.43524872907522616), (-0.056923496414450714,0.6328073362083871), (-0.6014131312820246,-0.2381862432808314), (-3.5196269653783325,0.40492896291344244), (-1.1067214502928073,-1.0527840343286374), (-0.4736116098154268,1.0689442908821987), (2.6403094933932953,0.789255581937264), (1.5982824524769197,1.1724902795494772), (-0.09123150857004858,1.2893390188349818), (0.3777640975590455,0.8926054903089587), (1.5757168418364564,1.4246842661952515), (-0.24202485980852528,0.21910907895561132), (4.589933486557021,0.34689263334132264), (-2.331742795642637,-0.5771627038699307), (1.0060513913917988,-0.04827308490054824), (-0.4295021770429881,-0.8361201294738408), (-0.21561647198666445,0.2776346366703466), (1.4993086132360396,-2.583216199463966), (1.0627822777545926,-0.5754336242709439), (-2.4095942089088482,-0.4740298729504418), (1.5975461609152366,0.45528050967309863), (2.1565799558529477,-0.937001723779216), (0.0962289023611611,0.12442585999261868), (2.7095641996945012,-1.037597020742512), (-0.9219208363686942,0.6656497732259127), (-1.0338058740520197,0.09718535082910094), (1.6364174103842437,0.472044663569549), (1.2274838964756027,0.01365815985041524), (-0.7303973452135653,0.21443946294874028), (1.6471043795729972,0.38540036725618015), (0.13612088488197083,0.7807770362857364), (-4.201610226957669,0.12940125757456059), (0.8225909001565422,-0.9556204076037894), (-0.9482388322224697,-1.0007190699745476), (-1.5523717842885172,-1.4238233782457508), (-1.4048827543540963,0.09834207753278863), (1.5338217310158921,-2.5447136959911605), (2.2987508128497063,0.1997331013963162), (-1.9069233483255275,1.2806574080505437), (-0.48017389975436475,0.9315316175761184), (3.708171200382932,-0.6394107818742375), (1.646362242992558,-1.4099227738716835), (5.344457888650813,-0.21682467720141205), (4.0401870066710455,-0.214248285713938...
val rddLR = sc.parallelize(yx)
rddLR.take(5)
rddLR: org.apache.spark.rdd.RDD[(Double, Double, Double)] = ParallelCollectionRDD[4] at parallelize at command-2971213210277128:1
res2: Array[(Double, Double, Double)] = Array((5.677461671611596,1.6983876233282715,0.1510498720110515), (6.5963106438672625,1.9306937118935266,-0.21709023201809416), (-6.457080480280965,-3.613579039093624,-0.9420189342233366), (5.725199404014689,1.4774128627063305,-0.6050521762158899), (5.2485124653727215,0.49536920319327216,0.48771393128636853))
val dfLR = rddLR.toDF("y","x1","x2")
dfLR.show
dfLR.show(5)
+-------------------+--------------------+--------------------+
|                  y|                  x1|                  x2|
+-------------------+--------------------+--------------------+
|  5.677461671611596|  1.6983876233282715|  0.1510498720110515|
| 6.5963106438672625|  1.9306937118935266|-0.21709023201809416|
| -6.457080480280965|  -3.613579039093624| -0.9420189342233366|
|  5.725199404014689|  1.4774128627063305| -0.6050521762158899|
| 5.2485124653727215| 0.49536920319327216| 0.48771393128636853|
|  6.147100844408568|   2.619266385545484|0.027986752952643124|
|-0.7268042607303868| -1.6216138344745752| 0.08206698908429294|
| 5.5363351738375695|  1.2511380715559544| -0.7810931162704136|
|-0.1828379004896784| -0.6891022233658615| -1.2057806605697985|
|  6.488199218865876|  2.7890847095863527| -0.9176042669882863|
| 1.3969322930903634| -0.8384317817611013|  1.1959113751272468|
|  1.468434023004454|-0.39702300426389736|  0.5771223111098949|
|-0.6234341966751746|-0.20341459413042506| -0.5030579509564024|
|  6.452061108539848|   1.940354690386933| 0.05792512611966754|
|  9.199371261060582|  3.1686700336304794|  2.0492117764647917|
|0.07256979343692907|-0.01571825151138...| -1.6192400586380957|
|  9.589528428542355|  3.5222633033548227|-0.28568171141353893|
| 1.1696257215909478| -1.7700416261712641|   1.662660432138664|
|-0.8138719762638745|  -1.276616299487233| -0.3053683539449641|
|  9.309926019422797|   2.847017612404211|  0.3879563181609168|
+-------------------+--------------------+--------------------+
only showing top 20 rows

+------------------+-------------------+--------------------+
|                 y|                 x1|                  x2|
+------------------+-------------------+--------------------+
| 5.677461671611596| 1.6983876233282715|  0.1510498720110515|
|6.5963106438672625| 1.9306937118935266|-0.21709023201809416|
|-6.457080480280965| -3.613579039093624| -0.9420189342233366|
| 5.725199404014689| 1.4774128627063305| -0.6050521762158899|
|5.2485124653727215|0.49536920319327216| 0.48771393128636853|
+------------------+-------------------+--------------------+
only showing top 5 rows

dfLR: org.apache.spark.sql.DataFrame = [y: double, x1: double ... 1 more field]
// importing for regression
import org.apache.spark.ml.regression.LinearRegression
import org.apache.spark.ml.linalg._

val lm = new LinearRegression
lm.explainParams
lm.getStandardization
lm.setStandardization(false)
lm.getStandardization
lm.explainParams
import org.apache.spark.ml.regression.LinearRegression
import org.apache.spark.ml.linalg._
lm: org.apache.spark.ml.regression.LinearRegression = linReg_fd18c4adb9af
res5: String =
aggregationDepth: suggested depth for treeAggregate (>= 2) (default: 2)
elasticNetParam: the ElasticNet mixing parameter, in range [0, 1]. For alpha = 0, the penalty is an L2 penalty. For alpha = 1, it is an L1 penalty (default: 0.0)
epsilon: The shape parameter to control the amount of robustness. Must be > 1.0. (default: 1.35)
featuresCol: features column name (default: features)
fitIntercept: whether to fit an intercept term (default: true)
labelCol: label column name (default: label)
loss: The loss function to be optimized. Supported options: squaredError, huber. (Default squaredError) (default: squaredError)
maxBlockSizeInMB: Maximum memory in MB for stacking input data into blocks. Data is stacked within partitions. If more than remaining data size in a partition then it is adjusted to the data size. Default 0.0 represents choosing optimal value, depends on specific algorithm. Must be >= 0. (default: 0.0)
maxIter: maximum number of iterations (>= 0) (default: 100)
predictionCol: prediction column name (default: prediction)
regParam: regularization parameter (>= 0) (default: 0.0)
solver: The solver algorithm for optimization. Supported options: auto, normal, l-bfgs. (Default auto) (default: auto)
standardization: whether to standardize the training features before fitting the model (default: true, current: false)
tol: the convergence tolerance for iterative algorithms (>= 0) (default: 1.0E-6)
weightCol: weight column name. If this is not set or empty, we treat all instance weights as 1.0 (undefined)
// Transform data frame to required format
val dflr = (dfLR map {row => (row.getDouble(0), 
           Vectors.dense(row.getDouble(1),row.getDouble(2)))}).
           toDF("label","features")
dflr.show(5)
+------------------+--------------------+
|             label|            features|
+------------------+--------------------+
| 5.677461671611596|[1.69838762332827...|
|6.5963106438672625|[1.93069371189352...|
|-6.457080480280965|[-3.6135790390936...|
| 5.725199404014689|[1.47741286270633...|
|5.2485124653727215|[0.49536920319327...|
+------------------+--------------------+
only showing top 5 rows

dflr: org.apache.spark.sql.DataFrame = [label: double, features: vector]
// Fit model
val fit = lm.fit(dflr)
fit.intercept
fit: org.apache.spark.ml.regression.LinearRegressionModel = LinearRegressionModel: uid=linReg_fd18c4adb9af, numFeatures=2
res8: Double = 1.4942320912612896
fit.coefficients
res9: org.apache.spark.ml.linalg.Vector = [1.9996093571014764,1.0144075351786204]
val summ = fit.summary
summ: org.apache.spark.ml.regression.LinearRegressionTrainingSummary = org.apache.spark.ml.regression.LinearRegressionTrainingSummary@b34e84f
summ.r2
res10: Double = 0.9436414660418528
summ.rootMeanSquaredError
res11: Double = 1.0026971017612039
summ.coefficientStandardErrors
res12: Array[Double] = Array(0.005018897596822849, 0.009968316877946075, 0.01123197045538135)
summ.pValues
res13: Array[Double] = Array(0.0, 0.0, 0.0)
summ.tValues
res14: Array[Double] = Array(398.4160502432455, 101.76317101464718, 133.03383384038267)
summ.predictions.show(5)
+------------------+--------------------+------------------+
|             label|            features|        prediction|
+------------------+--------------------+------------------+
| 5.677461671611596|[1.69838762332827...| 5.043570003209616|
|6.5963106438672625|[1.93069371189352...| 5.134647336087737|
|-6.457080480280965|[-3.6135790390936...|-6.687105473093168|
| 5.725199404014689|[1.47741286270633...| 3.834711189101326|
|5.2485124653727215|[0.49536920319327...|2.9795176720949392|
+------------------+--------------------+------------------+
only showing top 5 rows
summ.residuals.show(5)
+-------------------+
|          residuals|
+-------------------+
| 0.6338916684019802|
| 1.4616633077795251|
|0.23002499281220334|
|  1.890488214913363|
| 2.2689947932777823|
+-------------------+
only showing top 5 rows

This gives you more on doing generalised linear modelling in Scala. But let's go back to out pipeline using the power-plant data.

Exercise: Writing your own Spark program for the least squares fit

Your task is to use the syntactic sugar below to write your own linear regression function using reduce and broadcast operations

How would you write your own Spark program to find the least squares fit on the following 1000 data points in RDD rddLR, where the variable y is the response variable, and X1 and X2 are independent variables?

More precisely, find \(w_1, w_2\), such that,

\(\sum_{i=1}^{10} (w_1 X1_i + w_2 X2_i - y_i)^2\) is minimized.

Report \(w_1\), \(w_2\), and the Root Mean Square Error and submit code in Spark. Analyze the resulting algorithm in terms of all-to-all, one-to-all, and all-to-one communication patterns.

rddLR.count
res17: Long = 10000
rddLR.take(10)
res18: Array[(Double, Double, Double)] = Array((5.677461671611596,1.6983876233282715,0.1510498720110515), (6.5963106438672625,1.9306937118935266,-0.21709023201809416), (-6.457080480280965,-3.613579039093624,-0.9420189342233366), (5.725199404014689,1.4774128627063305,-0.6050521762158899), (5.2485124653727215,0.49536920319327216,0.48771393128636853), (6.147100844408568,2.619266385545484,0.027986752952643124), (-0.7268042607303868,-1.6216138344745752,0.08206698908429294), (5.5363351738375695,1.2511380715559544,-0.7810931162704136), (-0.1828379004896784,-0.6891022233658615,-1.2057806605697985), (6.488199218865876,2.7890847095863527,-0.9176042669882863))
val dfLR = rddLR.toDF("y","x1","x2")
dfLR.show(10)
+-------------------+-------------------+--------------------+
|                  y|                 x1|                  x2|
+-------------------+-------------------+--------------------+
|  5.677461671611596| 1.6983876233282715|  0.1510498720110515|
| 6.5963106438672625| 1.9306937118935266|-0.21709023201809416|
| -6.457080480280965| -3.613579039093624| -0.9420189342233366|
|  5.725199404014689| 1.4774128627063305| -0.6050521762158899|
| 5.2485124653727215|0.49536920319327216| 0.48771393128636853|
|  6.147100844408568|  2.619266385545484|0.027986752952643124|
|-0.7268042607303868|-1.6216138344745752| 0.08206698908429294|
| 5.5363351738375695| 1.2511380715559544| -0.7810931162704136|
|-0.1828379004896784|-0.6891022233658615| -1.2057806605697985|
|  6.488199218865876| 2.7890847095863527| -0.9176042669882863|
+-------------------+-------------------+--------------------+
only showing top 10 rows

dfLR: org.apache.spark.sql.DataFrame = [y: double, x1: double ... 1 more field]
rddLR.getNumPartitions
res21: Int = 2
rddLR.map( yx1x2 => (yx1x2._2, yx1x2._3, yx1x2._1) ).take(10)
res22: Array[(Double, Double, Double)] = Array((1.6983876233282715,0.1510498720110515,5.677461671611596), (1.9306937118935266,-0.21709023201809416,6.5963106438672625), (-3.613579039093624,-0.9420189342233366,-6.457080480280965), (1.4774128627063305,-0.6050521762158899,5.725199404014689), (0.49536920319327216,0.48771393128636853,5.2485124653727215), (2.619266385545484,0.027986752952643124,6.147100844408568), (-1.6216138344745752,0.08206698908429294,-0.7268042607303868), (1.2511380715559544,-0.7810931162704136,5.5363351738375695), (-0.6891022233658615,-1.2057806605697985,-0.1828379004896784), (2.7890847095863527,-0.9176042669882863,6.488199218865876))
import breeze.linalg.DenseVector
    val pts = rddLR.map( yx1x2 => DenseVector(yx1x2._2, yx1x2._3, yx1x2._1) ).cache
import breeze.linalg.DenseVector
pts: org.apache.spark.rdd.RDD[breeze.linalg.DenseVector[Double]] = MapPartitionsRDD[40] at map at command-2971213210277150:2

Now all we need to do is one-to-all and all-to-one broadcast of the gradient...

val w = DenseVector(0.0, 0.0, 0.0)
val w_bc = sc.broadcast(w)
val step = 0.1
val max_iter = 100

/*
YouTry: Fix the expressions for grad_w0, grad_w1 and grad_w2 to have w_bc.value be the same as that from ml lib's fit.coefficients
*/    
for (i <- 1 to max_iter) {
        val grad_w0 = pts.map(x => 2*(w_bc.value(0)*1.0 + w_bc.value(1)*x(0) + w_bc.value(2)*x(1) - x(2))*1.0).reduce(_+_)
        val grad_w1 = pts.map(x => 2*(w_bc.value(0)*1.0 + w_bc.value(1)*x(0) + w_bc.value(2)*x(1) - x(2))*x(0)).reduce(_+_)
        val grad_w2 = pts.map(x => 2*(w_bc.value(0)*1.0 + w_bc.value(1)*x(0) + w_bc.value(2)*x(1) - x(2))*x(1)).reduce(_+_)
        w_bc.value(0) = w_bc.value(0) - step*grad_w0
        w_bc.value(1) = w_bc.value(1) - step*grad_w1
        w_bc.value(2) = w_bc.value(2) - step*grad_w2
}
w: breeze.linalg.DenseVector[Double] = DenseVector(703602.5501372493, 2297216.693185762, 194396.78259181185)
w_bc: org.apache.spark.broadcast.Broadcast[breeze.linalg.DenseVector[Double]] = Broadcast(16)
step: Double = 0.1
max_iter: Int = 100
w_bc.value
res24: breeze.linalg.DenseVector[Double] = DenseVector(703602.5501372493, 2297216.693185762, 194396.78259181185)
fit.intercept
res25: Double = 1.4942320912612896
fit.coefficients
res26: org.apache.spark.ml.linalg.Vector = [1.9996093571014764,1.0144075351786204]

Computing each of the gradients requires an all-to-one communication (due to the .reduce(_+_)). There are two of these per iteration. Broadcasting the updated w_bc requires one to all communication.

ScaDaMaLe Course site and book

A more detailed deep dive

We will mostly be using ML algorithms already implemented in Spark's libraries and packages.

However, in order to innovate and devise new algorithms, we need to understand more about distributed linear algebra and optimisation algorithms.

  • read: http://arxiv.org/pdf/1509.02256.pdf (also see References and Appendix A).
  • and go through the notebooks prepended by '19x' on various Data Types for distributed linear algebra.

You may want to follow this course from Stanford for a guided deeper dive. * http://stanford.edu/~rezab/dao/ * see notes here: https://github.com/lamastex/scalable-data-science/blob/master/read/daosu.pdf

Communication Hierarchy

In addition to time and space complexity of an algorithm, in the distributed setting, we also need to take care of communication complexity.

Access rates fall sharply with distance.

  • roughly 50 x gap between reading from memory and reading from either disk or the network.

We must take this communication hierarchy into consideration when developing parallel and distributed algorithms.

Focusing on strategies to reduce communication costs.

  • access rates fall sharply with distance.
  • so this communication hierarchy needs to be accounted for when developing parallel and distributed algorithms.

Lessons:

  • parallelism makes our computation faster

  • but network communication slows us down

  • SOLUTION: perform parallel and in-memory computation.

  • Persisting in memory is a particularly attractive option when working with iterative algorithms that read the same data multiple times, as is the case in gradient descent.

  • Several machine learning algorithms are iterative!

  • Limits of multi-core scaling (powerful multicore machine with several CPUs, and a huge amount of RAM).

    • advantageous:
      • sidestep any network communication when working with a single multicore machine
      • can indeed handle fairly large data sets, and they're an attractive option in many settings.
    • disadvantages:
      • can be quite expensive (due to specialized hardware),
      • not as widely accessible as commodity computing nodes.
      • this approach does have scalability limitations, as we'll eventually hit a wall when the data grows large enough! This is not the case for a distributed environment (like the AWS EC2 cloud under the hood here).

Simple strategies for algorithms in a distributed setting: to reduce network communication, simply keep large objects local

  • In the big n, small d case for linear regression
    • we can solve the problem via a closed form solution.
    • And this requires us to communicate \(O(d)^2\) intermediate data.
    • the largest object in this example is our initial data, which we store in a distributed fashion and never communicate! This is a data parallel setting.
  • In the big n, big d case (n is the sample size and d is the number of features):
    • for linear regression.
      • we use gradient descent to iteratively train our model and are again in a data parallel setting.
      • At each iteration we communicate the current parameter vector \(w_i\) and the required \(O(d)\) communication is feasible even for fairly large d.
  • In the small n, small d case:
    • for ridge regression.
      • we can communicate the small data to all of the workers.
      • this is an example of a model parallel setting where we can train the model for each hyper-parameter in parallel.
  • Linear regression with big n and huge d is an example of both data and model parallelism.

In this setting, since our data is large, we must still store it across multiple machines. We can still use gradient descent, or stochastic variants of gradient descent to train our model, but we may not want to communicate the entire d dimensional parameter vector at each iteration, when we have 10s, or hundreds of millions of features. In this setting we often rely on sparsity to reduce the communication. So far we discussed how we can reduce communication by keeping large data local.

ScaDaMaLe Course site and book

This is an elaboration of the Apache Spark mllib-progamming-guide on mllib-data-types.

Overview

Data Types - MLlib Programming Guide

MLlib supports local vectors and matrices stored on a single machine, as well as distributed matrices backed by one or more RDDs. Local vectors and local matrices are simple data models that serve as public interfaces. The underlying linear algebra operations are provided by Breeze and jblas. A training example used in supervised learning is called a “labeled point” in MLlib.

Why are we going through the basic distributed linear algebra Data Types?

This is to get you to be able to directly use them in a project or to roll your own algorithms.

ScaDaMaLe Course site and book

This is an elaboration of the Apache Spark mllib-progamming-guide on mllib-data-types.

Overview

Data Types - MLlib Programming Guide

MLlib supports local vectors and matrices stored on a single machine, as well as distributed matrices backed by one or more RDDs. Local vectors and local matrices are simple data models that serve as public interfaces. The underlying linear algebra operations are provided by Breeze and jblas. A training example used in supervised learning is called a “labeled point” in MLlib.

Local vector in Scala

A local vector has integer-typed and 0-based indices and double-typed values, stored on a single machine.

MLlib supports two types of local vectors:

  • dense and
  • sparse.

A dense vector is backed by a double array representing its entry values, while a sparse vector is backed by two parallel arrays: indices and values.

For example, a vector (1.0, 0.0, 3.0) can be represented:

  • in dense format as [1.0, 0.0, 3.0] or
  • in sparse format as (3, [0, 2], [1.0, 3.0]), where 3 is the size of the vector.

The base class of local vectors is Vector, and we provide two implementations: DenseVector and SparseVector. We recommend using the factory methods implemented in Vectors to create local vectors. Refer to the Vector Scala docs and Vectors Scala docs for details on the API.

import org.apache.spark.mllib.linalg.{Vector, Vectors}

// Create a dense vector (1.0, 0.0, 3.0).
val dv: Vector = Vectors.dense(1.0, 0.0, 3.0)
import org.apache.spark.mllib.linalg.{Vector, Vectors}
dv: org.apache.spark.mllib.linalg.Vector = [1.0,0.0,3.0]
// Create a sparse vector (1.0, 0.0, 3.0) by specifying its indices and values corresponding to nonzero entries.
val sv1: Vector = Vectors.sparse(3, Array(0, 2), Array(1.0, 3.0))
sv1: org.apache.spark.mllib.linalg.Vector = (3,[0,2],[1.0,3.0])
// Create a sparse vector (1.0, 0.0, 3.0) by specifying its nonzero entries.
val sv2: Vector = Vectors.sparse(3, Seq((0, 1.0), (2, 3.0)))
sv2: org.apache.spark.mllib.linalg.Vector = (3,[0,2],[1.0,3.0])

Note: Scala imports scala.collection.immutable.Vector by default, so you have to import org.apache.spark.mllib.linalg.Vector explicitly to use MLlib’s Vector.

python: MLlib recognizes the following types as dense vectors:

  • NumPy’s array
  • Python’s list, e.g., [1, 2, 3]

and the following as sparse vectors:

We recommend using NumPy arrays over lists for efficiency, and using the factory methods implemented in Vectors to create sparse vectors.

Refer to the Vectors Python docs for more details on the API.

import numpy as np
import scipy.sparse as sps
from pyspark.mllib.linalg import Vectors

# Use a NumPy array as a dense vector.
dv1 = np.array([1.0, 0.0, 3.0])
# Use a Python list as a dense vector.
dv2 = [1.0, 0.0, 3.0]
# Create a SparseVector.
sv1 = Vectors.sparse(3, [0, 2], [1.0, 3.0])
# Use a single-column SciPy csc_matrix as a sparse vector.
sv2 = sps.csc_matrix((np.array([1.0, 3.0]), np.array([0, 2]), np.array([0, 2])), shape = (3, 1))
print (dv1)
print (dv2)
print (sv1)
print (sv2)
[1. 0. 3.]
[1.0, 0.0, 3.0]
(3,[0,2],[1.0,3.0])
  (0, 0)	1.0
  (2, 0)	3.0

ScaDaMaLe Course site and book

This is an elaboration of the Apache Spark mllib-progamming-guide on mllib-data-types.

Overview

Data Types - MLlib Programming Guide

MLlib supports local vectors and matrices stored on a single machine, as well as distributed matrices backed by one or more RDDs. Local vectors and local matrices are simple data models that serve as public interfaces. The underlying linear algebra operations are provided by Breeze and jblas. A training example used in supervised learning is called a “labeled point” in MLlib.

Labeled point in Scala

A labeled point is a local vector, either dense or sparse, associated with a label/response. In MLlib, labeled points are used in supervised learning algorithms.

We use a double to store a label, so we can use labeled points in both regression and classification.

For binary classification, a label should be either 0 (negative) or 1 (positive). For multiclass classification, labels should be class indices starting from zero: 0, 1, 2, ....

A labeled point is represented by the case class LabeledPoint.

Refer to the LabeledPoint Scala docs for details on the API.

//import first
import org.apache.spark.mllib.linalg.Vectors
import org.apache.spark.mllib.regression.LabeledPoint
import org.apache.spark.mllib.linalg.Vectors
import org.apache.spark.mllib.regression.LabeledPoint
// Create a labeled point with a "positive" label and a dense feature vector.
val pos = LabeledPoint(1.0, Vectors.dense(1.0, 0.0, 3.0))
pos: org.apache.spark.mllib.regression.LabeledPoint = (1.0,[1.0,0.0,3.0])
// Create a labeled point with a "negative" label and a sparse feature vector.
val neg = LabeledPoint(0.0, Vectors.sparse(3, Array(0, 2), Array(1.0, 3.0)))
neg: org.apache.spark.mllib.regression.LabeledPoint = (0.0,(3,[0,2],[1.0,3.0]))

Sparse data in Scala

It is very common in practice to have sparse training data. MLlib supports reading training examples stored in LIBSVM format, which is the default format used by LIBSVM and LIBLINEAR. It is a text format in which each line represents a labeled sparse feature vector using the following format:

label index1:value1 index2:value2 ...

where the indices are one-based and in ascending order. After loading, the feature indices are converted to zero-based.

MLUtils.loadLibSVMFile reads training examples stored in LIBSVM format.

Refer to the MLUtils Scala docs for details on the API.

import org.apache.spark.mllib.regression.LabeledPoint
import org.apache.spark.mllib.util.MLUtils
import org.apache.spark.rdd.RDD

//val examples: RDD[LabeledPoint] = MLUtils.loadLibSVMFile(sc, "data/mllib/sample_libsvm_data.txt") // from prog guide but no such data here - can wget from github 
import org.apache.spark.mllib.regression.LabeledPoint
import org.apache.spark.mllib.util.MLUtils
import org.apache.spark.rdd.RDD

Load MNIST training and test datasets

Our datasets are vectors of pixels representing images of handwritten digits. For example:

Image of a digit Image of all 10 digits

display(dbutils.fs.ls("/datasets/sds/mnist-digits/data-001/mnist-digits-train.txt"))
path name size
dbfs:/datasets/sds/mnist-digits/data-001/mnist-digits-train.txt mnist-digits-train.txt 6.9430283e7
val examples: RDD[LabeledPoint] = MLUtils.loadLibSVMFile(sc, "/datasets/sds/mnist-digits/data-001/mnist-digits-train.txt")
examples: org.apache.spark.rdd.RDD[org.apache.spark.mllib.regression.LabeledPoint] = MapPartitionsRDD[246] at map at MLUtils.scala:87
examples.take(1)
res7: Array[org.apache.spark.mllib.regression.LabeledPoint] = Array((5.0,(780,[152,153,154,155,156,157,158,159,160,161,162,163,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,231,232,233,234,235,236,237,238,239,240,241,260,261,262,263,264,265,266,268,269,289,290,291,292,293,319,320,321,322,347,348,349,350,376,377,378,379,380,381,405,406,407,408,409,410,434,435,436,437,438,439,463,464,465,466,467,493,494,495,496,518,519,520,521,522,523,524,544,545,546,547,548,549,550,551,570,571,572,573,574,575,576,577,578,596,597,598,599,600,601,602,603,604,605,622,623,624,625,626,627,628,629,630,631,648,649,650,651,652,653,654,655,656,657,676,677,678,679,680,681,682,683],[3.0,18.0,18.0,18.0,126.0,136.0,175.0,26.0,166.0,255.0,247.0,127.0,30.0,36.0,94.0,154.0,170.0,253.0,253.0,253.0,253.0,253.0,225.0,172.0,253.0,242.0,195.0,64.0,49.0,238.0,253.0,253.0,253.0,253.0,253.0,253.0,253.0,253.0,251.0,93.0,82.0,82.0,56.0,39.0,18.0,219.0,253.0,253.0,253.0,253.0,253.0,198.0,182.0,247.0,241.0,80.0,156.0,107.0,253.0,253.0,205.0,11.0,43.0,154.0,14.0,1.0,154.0,253.0,90.0,139.0,253.0,190.0,2.0,11.0,190.0,253.0,70.0,35.0,241.0,225.0,160.0,108.0,1.0,81.0,240.0,253.0,253.0,119.0,25.0,45.0,186.0,253.0,253.0,150.0,27.0,16.0,93.0,252.0,253.0,187.0,249.0,253.0,249.0,64.0,46.0,130.0,183.0,253.0,253.0,207.0,2.0,39.0,148.0,229.0,253.0,253.0,253.0,250.0,182.0,24.0,114.0,221.0,253.0,253.0,253.0,253.0,201.0,78.0,23.0,66.0,213.0,253.0,253.0,253.0,253.0,198.0,81.0,2.0,18.0,171.0,219.0,253.0,253.0,253.0,253.0,195.0,80.0,9.0,55.0,172.0,226.0,253.0,253.0,253.0,253.0,244.0,133.0,11.0,136.0,253.0,253.0,253.0,212.0,135.0,132.0,16.0])))

Display our data. Each image has the true label (the label column) and a vector of features which represent pixel intensities (see below for details of what is in training).

display(examples.toDF) // covert to DataFrame and display for convenient db visualization

The pixel intensities are represented in features as a sparse vector, for example the first observation, as seen in row 1 of the output to display(training) below, has label as 5, i.e. the hand-written image is for the number 5. And this hand-written image is the following sparse vector (just click the triangle to the left of the feature in first row to see the following):

type: 0
size: 780
indices: [152,153,155,...,682,683]
values: [3, 18, 18,18,126,...,132,16]

Here

  • type: 0 says we hve a sparse vector.
  • size: 780 says the vector has 780 indices in total
  • these indices from 0,...,779 are a unidimensional indexing of the two-dimensional array of pixels in the image
  • indices: [152,153,155,...,682,683] are the indices from the [0,1,...,779] possible indices with non-zero values
    • a value is an integer encoding the gray-level at the pixel index
  • values: [3, 18, 18,18,126,...,132,16] are the actual gray level values, for example:
    • at pixed index 152 the gray-level value is 3,
    • at index 153 the gray-level value is 18,
    • ..., and finally at
    • at index 683 the gray-level value is 18

We could also use the following method as done in notebook 016_* already.

val training = spark.read.format("libsvm")
                    .option("numFeatures", "780")
                    .load("/datasets/sds/mnist-digits/data-001/mnist-digits-train.txt")
training: org.apache.spark.sql.DataFrame = [label: double, features: vector]
display(training)


Labeled point in Python

A labeled point is represented by LabeledPoint.

Refer to the LabeledPoint Python docs for more details on the API.

# import first
from pyspark.mllib.linalg import SparseVector
from pyspark.mllib.regression import LabeledPoint

# Create a labeled point with a positive label and a dense feature vector.
pos = LabeledPoint(1.0, [1.0, 0.0, 3.0])

# Create a labeled point with a negative label and a sparse feature vector.
neg = LabeledPoint(0.0, SparseVector(3, [0, 2], [1.0, 3.0]))

Sparse data in Python

MLUtils.loadLibSVMFile reads training examples stored in LIBSVM format.

Refer to the MLUtils Python docs for more details on the API.

from pyspark.mllib.util import MLUtils

# examples = MLUtils.loadLibSVMFile(sc, "data/mllib/sample_libsvm_data.txt") #from prog guide but no such data here - can wget from github 
examples = MLUtils.loadLibSVMFile(sc, "/datasets/sds/mnist-digits/data-001/mnist-digits-train.txt")
examples.take(1)
res11: Array[org.apache.spark.mllib.regression.LabeledPoint] = Array((5.0,(780,[152,153,154,155,156,157,158,159,160,161,162,163,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,231,232,233,234,235,236,237,238,239,240,241,260,261,262,263,264,265,266,268,269,289,290,291,292,293,319,320,321,322,347,348,349,350,376,377,378,379,380,381,405,406,407,408,409,410,434,435,436,437,438,439,463,464,465,466,467,493,494,495,496,518,519,520,521,522,523,524,544,545,546,547,548,549,550,551,570,571,572,573,574,575,576,577,578,596,597,598,599,600,601,602,603,604,605,622,623,624,625,626,627,628,629,630,631,648,649,650,651,652,653,654,655,656,657,676,677,678,679,680,681,682,683],[3.0,18.0,18.0,18.0,126.0,136.0,175.0,26.0,166.0,255.0,247.0,127.0,30.0,36.0,94.0,154.0,170.0,253.0,253.0,253.0,253.0,253.0,225.0,172.0,253.0,242.0,195.0,64.0,49.0,238.0,253.0,253.0,253.0,253.0,253.0,253.0,253.0,253.0,251.0,93.0,82.0,82.0,56.0,39.0,18.0,219.0,253.0,253.0,253.0,253.0,253.0,198.0,182.0,247.0,241.0,80.0,156.0,107.0,253.0,253.0,205.0,11.0,43.0,154.0,14.0,1.0,154.0,253.0,90.0,139.0,253.0,190.0,2.0,11.0,190.0,253.0,70.0,35.0,241.0,225.0,160.0,108.0,1.0,81.0,240.0,253.0,253.0,119.0,25.0,45.0,186.0,253.0,253.0,150.0,27.0,16.0,93.0,252.0,253.0,187.0,249.0,253.0,249.0,64.0,46.0,130.0,183.0,253.0,253.0,207.0,2.0,39.0,148.0,229.0,253.0,253.0,253.0,250.0,182.0,24.0,114.0,221.0,253.0,253.0,253.0,253.0,201.0,78.0,23.0,66.0,213.0,253.0,253.0,253.0,253.0,198.0,81.0,2.0,18.0,171.0,219.0,253.0,253.0,253.0,253.0,195.0,80.0,9.0,55.0,172.0,226.0,253.0,253.0,253.0,253.0,244.0,133.0,11.0,136.0,253.0,253.0,253.0,212.0,135.0,132.0,16.0])))

ScaDaMaLe Course site and book

This is an elaboration of the Apache Spark mllib-progamming-guide on mllib-data-types.

Overview

Data Types - MLlib Programming Guide

MLlib supports local vectors and matrices stored on a single machine, as well as distributed matrices backed by one or more RDDs. Local vectors and local matrices are simple data models that serve as public interfaces. The underlying linear algebra operations are provided by Breeze and jblas. A training example used in supervised learning is called a “labeled point” in MLlib.

Local Matrix in Scala

A local matrix has integer-typed row and column indices and double-typed values, stored on a single machine. MLlib supports:

  • dense matrices, whose entry values are stored in a single double array in column-major order, and
  • sparse matrices, whose non-zero entry values are stored in the Compressed Sparse Column (CSC) format in column-major order.

For example, the following dense matrix: \[ \begin{pmatrix} 1.0 & 2.0 \\ 3.0 & 4.0 \\ 5.0 & 6.0 \end{pmatrix} \] is stored in a one-dimensional array [1.0, 3.0, 5.0, 2.0, 4.0, 6.0] with the matrix size (3, 2).

The base class of local matrices is Matrix, and we provide two implementations: DenseMatrix, and SparseMatrix. We recommend using the factory methods implemented in Matrices to create local matrices. Remember, local matrices in MLlib are stored in column-major order.

Refer to the Matrix Scala docs and Matrices Scala docs for details on the API.

Int.MaxValue // note the largest value an index can take
res0: Int = 2147483647
import org.apache.spark.mllib.linalg.{Matrix, Matrices}

// Create a dense matrix ((1.0, 2.0), (3.0, 4.0), (5.0, 6.0))
val dm: Matrix = Matrices.dense(3, 2, Array(1.0, 3.0, 5.0, 2.0, 4.0, 6.0))
import org.apache.spark.mllib.linalg.{Matrix, Matrices}
dm: org.apache.spark.mllib.linalg.Matrix =
1.0  2.0
3.0  4.0
5.0  6.0

Next, let us create the following sparse local matrix: \[ \begin{pmatrix} 9.0 & 0.0 \\ 0.0 & 8.0 \\ 0.0 & 6.0 \end{pmatrix} \]

// Create a sparse matrix ((9.0, 0.0), (0.0, 8.0), (0.0, 6.0))
val sm: Matrix = Matrices.sparse(3, 2, Array(0, 1, 3), Array(0, 2, 1), Array(9, 6, 8))
sm: org.apache.spark.mllib.linalg.Matrix =
3 x 2 CSCMatrix
(0,0) 9.0
(2,1) 6.0
(1,1) 8.0

Local Matrix in Python

The base class of local matrices is Matrix, and we provide two implementations: DenseMatrix, and SparseMatrix. We recommend using the factory methods implemented in Matrices to create local matrices. Remember, local matrices in MLlib are stored in column-major order.

Refer to the Matrix Python docs and Matrices Python docs for more details on the API.

from pyspark.mllib.linalg import Matrix, Matrices

# Create a dense matrix ((1.0, 2.0), (3.0, 4.0), (5.0, 6.0))
dm2 = Matrices.dense(3, 2, [1, 2, 3, 4, 5, 6])
dm2
# Create a sparse matrix ((9.0, 0.0), (0.0, 8.0), (0.0, 6.0))
sm = Matrices.sparse(3, 2, [0, 1, 3], [0, 2, 1], [9, 6, 8])
sm

ScaDaMaLe Course site and book

This is an elaboration of the Apache Spark mllib-progamming-guide on mllib-data-types.

Overview

Data Types - MLlib Programming Guide

MLlib supports local vectors and matrices stored on a single machine, as well as distributed matrices backed by one or more RDDs. Local vectors and local matrices are simple data models that serve as public interfaces. The underlying linear algebra operations are provided by Breeze and jblas. A training example used in supervised learning is called a “labeled point” in MLlib.

Distributed matrix in Scala

A distributed matrix has long-typed row and column indices and double-typed values, stored distributively in one or more RDDs.

It is very important to choose the right format to store large and distributed matrices. Converting a distributed matrix to a different format may require a global shuffle, which is quite expensive.

Three types of distributed matrices have been implemented so far.

  1. The basic type is called RowMatrix.
  • A RowMatrix is a row-oriented distributed matrix without meaningful row indices, e.g., a collection of feature vectors. It is backed by an RDD of its rows, where each row is a local vector.
  • We assume that the number of columns is not huge for a RowMatrix so that a single local vector can be reasonably communicated to the driver and can also be stored / operated on using a single node.
  • An IndexedRowMatrix is similar to a RowMatrix but with row indices, which can be used for identifying rows and executing joins.
  • A CoordinateMatrix is a distributed matrix stored in coordinate list (COO) format, backed by an RDD of its entries.

Note

The underlying RDDs of a distributed matrix must be deterministic, because we cache the matrix size. In general the use of non-deterministic RDDs can lead to errors.

Remark: there is a huge difference in the orders of magnitude between the maximum size of local versus distributed matrices!

print(Long.MaxValue.toDouble, Int.MaxValue.toDouble, Long.MaxValue.toDouble / Int.MaxValue.toDouble) // index ranges and ratio for local and distributed matrices

ScaDaMaLe Course site and book

This is an elaboration of the Apache Spark mllib-progamming-guide on mllib-data-types.

Overview

Data Types - MLlib Programming Guide

MLlib supports local vectors and matrices stored on a single machine, as well as distributed matrices backed by one or more RDDs. Local vectors and local matrices are simple data models that serve as public interfaces. The underlying linear algebra operations are provided by Breeze and jblas. A training example used in supervised learning is called a “labeled point” in MLlib.

RowMatrix in Scala

A RowMatrix is a row-oriented distributed matrix without meaningful row indices, backed by an RDD of its rows, where each row is a local vector. Since each row is represented by a local vector, the number of columns is limited by the integer range but it should be much smaller in practice.

A RowMatrix can be created from an RDD[Vector] instance. Then we can compute its column summary statistics and decompositions.

Refer to the RowMatrix Scala docs for details on the API.

import org.apache.spark.mllib.linalg.{Vector, Vectors}
import org.apache.spark.mllib.linalg.distributed.RowMatrix
import org.apache.spark.mllib.linalg.{Vector, Vectors}
import org.apache.spark.mllib.linalg.distributed.RowMatrix
val rows: RDD[Vector] = sc.parallelize(Array(Vectors.dense(12.0, -51.0, 4.0), Vectors.dense(6.0, 167.0, -68.0), Vectors.dense(-4.0, 24.0, -41.0))) // an RDD of local vectors
rows: org.apache.spark.rdd.RDD[org.apache.spark.mllib.linalg.Vector] = ParallelCollectionRDD[3670] at parallelize at command-2972105651606776:1
// Create a RowMatrix from an RDD[Vector].
val mat: RowMatrix = new RowMatrix(rows)
mat: org.apache.spark.mllib.linalg.distributed.RowMatrix = org.apache.spark.mllib.linalg.distributed.RowMatrix@75c66624
mat.rows.collect
res0: Array[org.apache.spark.mllib.linalg.Vector] = Array([12.0,-51.0,4.0], [6.0,167.0,-68.0], [-4.0,24.0,-41.0])
// Get its size.
val m = mat.numRows()
val n = mat.numCols()
m: Long = 3
n: Long = 3
// QR decomposition
val qrResult = mat.tallSkinnyQR(true)
qrResult: org.apache.spark.mllib.linalg.QRDecomposition[org.apache.spark.mllib.linalg.distributed.RowMatrix,org.apache.spark.mllib.linalg.Matrix] =
QRDecomposition(org.apache.spark.mllib.linalg.distributed.RowMatrix@34f5da4f,14.0  21.0                 -14.0
0.0   -174.99999999999997  70.00000000000001
0.0   0.0                  -35.000000000000014  )
qrResult.R
res1: org.apache.spark.mllib.linalg.Matrix =
14.0  21.0                 -14.0
0.0   -174.99999999999997  70.00000000000001
0.0   0.0                  -35.000000000000014


RowMatrix in Python

A RowMatrix can be created from an RDD of vectors.

Refer to the RowMatrix Python docs for more details on the API.

from pyspark.mllib.linalg.distributed import RowMatrix

# Create an RDD of vectors.
rows = sc.parallelize([[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11, 12]])

# Create a RowMatrix from an RDD of vectors.
mat = RowMatrix(rows)

# Get its size.
m = mat.numRows()  # 4
n = mat.numCols()  # 3
print (m,'x',n)

# Get the rows as an RDD of vectors again.
rowsRDD = mat.rows
4 x 3

ScaDaMaLe Course site and book

This is an elaboration of the Apache Spark mllib-progamming-guide on mllib-data-types.

Overview

Data Types - MLlib Programming Guide

MLlib supports local vectors and matrices stored on a single machine, as well as distributed matrices backed by one or more RDDs. Local vectors and local matrices are simple data models that serve as public interfaces. The underlying linear algebra operations are provided by Breeze and jblas. A training example used in supervised learning is called a “labeled point” in MLlib.

IndexedRowMatrix in Scala

An IndexedRowMatrix is similar to a RowMatrix but with meaningful row indices. It is backed by an RDD of indexed rows, so that each row is represented by its index (long-typed) and a local vector.

An IndexedRowMatrix can be created from an RDD[IndexedRow] instance, where IndexedRow is a wrapper over (Long, Vector). An IndexedRowMatrix can be converted to a RowMatrix by dropping its row indices.

Refer to the IndexedRowMatrix Scala docs for details on the API.

import org.apache.spark.mllib.linalg.{Vector, Vectors}
import org.apache.spark.mllib.linalg.distributed.{IndexedRow, IndexedRowMatrix, RowMatrix}
import org.apache.spark.mllib.linalg.{Vector, Vectors}
import org.apache.spark.mllib.linalg.distributed.{IndexedRow, IndexedRowMatrix, RowMatrix}
Vector(12.0, -51.0, 4.0) // note Vector is a scala collection
res0: scala.collection.immutable.Vector[Double] = Vector(12.0, -51.0, 4.0)
Vectors.dense(12.0, -51.0, 4.0) // while this is a mllib.linalg.Vector
res1: org.apache.spark.mllib.linalg.Vector = [12.0,-51.0,4.0]
val rows: RDD[IndexedRow] = sc.parallelize(Array(IndexedRow(2, Vectors.dense(1,3)), IndexedRow(4, Vectors.dense(4,5)))) // an RDD of indexed rows
rows: org.apache.spark.rdd.RDD[org.apache.spark.mllib.linalg.distributed.IndexedRow] = ParallelCollectionRDD[3685] at parallelize at command-2972105651607186:1
// Create an IndexedRowMatrix from an RDD[IndexedRow].
val mat: IndexedRowMatrix = new IndexedRowMatrix(rows)
mat: org.apache.spark.mllib.linalg.distributed.IndexedRowMatrix = org.apache.spark.mllib.linalg.distributed.IndexedRowMatrix@300e1e99
// Get its size.
val m = mat.numRows()
val n = mat.numCols()
m: Long = 5
n: Long = 2
// Drop its row indices.
val rowMat: RowMatrix = mat.toRowMatrix()
rowMat: org.apache.spark.mllib.linalg.distributed.RowMatrix = org.apache.spark.mllib.linalg.distributed.RowMatrix@425fc4a2
rowMat.rows.collect()
res2: Array[org.apache.spark.mllib.linalg.Vector] = Array([1.0,3.0], [4.0,5.0])

IndexedRowMatrix in Python

An IndexedRowMatrix can be created from an RDD of IndexedRows, where IndexedRow is a wrapper over (long, vector). An IndexedRowMatrix can be converted to a RowMatrix by dropping its row indices.

Refer to the IndexedRowMatrix Python docs for more details on the API.

from pyspark.mllib.linalg.distributed import IndexedRow, IndexedRowMatrix

# Create an RDD of indexed rows.
#   - This can be done explicitly with the IndexedRow class:
indexedRows = sc.parallelize([IndexedRow(0, [1, 2, 3]),
                              IndexedRow(1, [4, 5, 6]),
                              IndexedRow(2, [7, 8, 9]),
                              IndexedRow(3, [10, 11, 12])])

#   - or by using (long, vector) tuples:
indexedRows = sc.parallelize([(0, [1, 2, 3]), (1, [4, 5, 6]),
                              (2, [7, 8, 9]), (3, [10, 11, 12])])

# Create an IndexedRowMatrix from an RDD of IndexedRows.
mat = IndexedRowMatrix(indexedRows)

# Get its size.
m = mat.numRows()  # 4
n = mat.numCols()  # 3
print (m,n)

# Get the rows as an RDD of IndexedRows.
rowsRDD = mat.rows

# Convert to a RowMatrix by dropping the row indices.
rowMat = mat.toRowMatrix()

# Convert to a CoordinateMatrix.
coordinateMat = mat.toCoordinateMatrix()

# Convert to a BlockMatrix.
blockMat = mat.toBlockMatrix()
4 3

ScaDaMaLe Course site and book

This is an elaboration of the Apache Spark mllib-progamming-guide on mllib-data-types.

Overview

Data Types - MLlib Programming Guide

MLlib supports local vectors and matrices stored on a single machine, as well as distributed matrices backed by one or more RDDs. Local vectors and local matrices are simple data models that serve as public interfaces. The underlying linear algebra operations are provided by Breeze and jblas. A training example used in supervised learning is called a “labeled point” in MLlib.

CoordinateMatrix in Scala

A CoordinateMatrix is a distributed matrix backed by an RDD of its entries. Each entry is a tuple of (i: Long, j: Long, value: Double), where i is the row index, j is the column index, and value is the entry value. A CoordinateMatrix should be used only when both dimensions of the matrix are huge and the matrix is very sparse.

A CoordinateMatrix can be created from an RDD[MatrixEntry] instance, where MatrixEntry is a wrapper over (Long, Long, Double). A CoordinateMatrix can be converted to an IndexedRowMatrix with sparse rows by calling toIndexedRowMatrix. Other computations for CoordinateMatrix are not currently supported.

Refer to the CoordinateMatrix Scala docs for details on the API.

import org.apache.spark.mllib.linalg.distributed.{CoordinateMatrix, MatrixEntry}
import org.apache.spark.mllib.linalg.distributed.{CoordinateMatrix, MatrixEntry}
val entries: RDD[MatrixEntry] = sc.parallelize(Array(MatrixEntry(0, 0, 1.2), MatrixEntry(1, 0, 2.1), MatrixEntry(6, 1, 3.7))) // an RDD of matrix entries
entries: org.apache.spark.rdd.RDD[org.apache.spark.mllib.linalg.distributed.MatrixEntry] = ParallelCollectionRDD[3712] at parallelize at command-2972105651606627:1
// Create a CoordinateMatrix from an RDD[MatrixEntry].
val mat: CoordinateMatrix = new CoordinateMatrix(entries)
mat: org.apache.spark.mllib.linalg.distributed.CoordinateMatrix = org.apache.spark.mllib.linalg.distributed.CoordinateMatrix@56954954
// Get its size.
val m = mat.numRows()
val n = mat.numCols()
m: Long = 7
n: Long = 2
// Convert it to an IndexRowMatrix whose rows are sparse vectors.
val indexedRowMatrix = mat.toIndexedRowMatrix()
indexedRowMatrix: org.apache.spark.mllib.linalg.distributed.IndexedRowMatrix = org.apache.spark.mllib.linalg.distributed.IndexedRowMatrix@45570b82
indexedRowMatrix.rows.collect()
res0: Array[org.apache.spark.mllib.linalg.distributed.IndexedRow] = Array(IndexedRow(0,(2,[0],[1.2])), IndexedRow(1,(2,[0],[2.1])), IndexedRow(6,(2,[1],[3.7])))

CoordinateMatrix in Scala

A CoordinateMatrix can be created from an RDD of MatrixEntry entries, where MatrixEntry is a wrapper over (long, long, float). A CoordinateMatrix can be converted to a RowMatrix by calling toRowMatrix, or to an IndexedRowMatrix with sparse rows by calling toIndexedRowMatrix.

Refer to the CoordinateMatrix Python docs for more details on the API.

from pyspark.mllib.linalg.distributed import CoordinateMatrix, MatrixEntry

# Create an RDD of coordinate entries.
#   - This can be done explicitly with the MatrixEntry class:
entries = sc.parallelize([MatrixEntry(0, 0, 1.2), MatrixEntry(1, 0, 2.1), MatrixEntry(6, 1, 3.7)])

#   - or using (long, long, float) tuples:
entries = sc.parallelize([(0, 0, 1.2), (1, 0, 2.1), (2, 1, 3.7)])

# Create an CoordinateMatrix from an RDD of MatrixEntries.
mat = CoordinateMatrix(entries)

# Get its size.
m = mat.numRows()  # 3
n = mat.numCols()  # 2
print (m,n)

# Get the entries as an RDD of MatrixEntries.
entriesRDD = mat.entries

# Convert to a RowMatrix.
rowMat = mat.toRowMatrix()

# Convert to an IndexedRowMatrix.
indexedRowMat = mat.toIndexedRowMatrix()

# Convert to a BlockMatrix.
blockMat = mat.toBlockMatrix()
3 2

ScaDaMaLe Course site and book

This is an elaboration of the Apache Spark mllib-progamming-guide on mllib-data-types.

Overview

Data Types - MLlib Programming Guide

MLlib supports local vectors and matrices stored on a single machine, as well as distributed matrices backed by one or more RDDs. Local vectors and local matrices are simple data models that serve as public interfaces. The underlying linear algebra operations are provided by Breeze and jblas. A training example used in supervised learning is called a “labeled point” in MLlib.

BlockMatrix in Scala

A BlockMatrix is a distributed matrix backed by an RDD of MatrixBlocks, where a MatrixBlock is a tuple of ((Int, Int), Matrix), where the (Int, Int) is the index of the block, and Matrix is the sub-matrix at the given index with size rowsPerBlock x colsPerBlock. BlockMatrix supports methods such as add and multiply with another BlockMatrix. BlockMatrix also has a helper function validate which can be used to check whether the BlockMatrix is set up properly.

A BlockMatrix can be most easily created from an IndexedRowMatrix or CoordinateMatrix by calling toBlockMatrix. toBlockMatrix creates blocks of size 1024 x 1024 by default. Users may change the block size by supplying the values through toBlockMatrix(rowsPerBlock, colsPerBlock).

Refer to the BlockMatrix Scala docs for details on the API.

//import org.apache.spark.mllib.linalg.{Matrix, Matrices}
import org.apache.spark.mllib.linalg.distributed.{BlockMatrix, CoordinateMatrix, MatrixEntry}
import org.apache.spark.mllib.linalg.distributed.{BlockMatrix, CoordinateMatrix, MatrixEntry}
val entries: RDD[MatrixEntry] = sc.parallelize(Array(MatrixEntry(0, 0, 1.2), MatrixEntry(1, 0, 2.1), MatrixEntry(6, 1, 3.7))) // an RDD of matrix entries
entries: org.apache.spark.rdd.RDD[org.apache.spark.mllib.linalg.distributed.MatrixEntry] = ParallelCollectionRDD[3746] at parallelize at command-2972105651607062:1
// Create a CoordinateMatrix from an RDD[MatrixEntry].
val coordMat: CoordinateMatrix = new CoordinateMatrix(entries)
coordMat: org.apache.spark.mllib.linalg.distributed.CoordinateMatrix = org.apache.spark.mllib.linalg.distributed.CoordinateMatrix@161a1942
// Transform the CoordinateMatrix to a BlockMatrix
val matA: BlockMatrix = coordMat.toBlockMatrix().cache()
matA: org.apache.spark.mllib.linalg.distributed.BlockMatrix = org.apache.spark.mllib.linalg.distributed.BlockMatrix@1ddf85ce
// Validate whether the BlockMatrix is set up properly. Throws an Exception when it is not valid.
// Nothing happens if it is valid.
matA.validate()
// Calculate A^T A.
val ata = matA.transpose.multiply(matA)
ata: org.apache.spark.mllib.linalg.distributed.BlockMatrix = org.apache.spark.mllib.linalg.distributed.BlockMatrix@18c0eeca
ata.blocks.collect()
res1: Array[((Int, Int), org.apache.spark.mllib.linalg.Matrix)] =
Array(((0,0),5.85  0.0
0.0   13.690000000000001  ))
ata.toLocalMatrix()
res2: org.apache.spark.mllib.linalg.Matrix =
5.85  0.0
0.0   13.690000000000001

BlockMatrix in Scala

A BlockMatrix can be created from an RDD of sub-matrix blocks, where a sub-matrix block is a ((blockRowIndex, blockColIndex), sub-matrix) tuple.

Refer to the BlockMatrix Python docs for more details on the API.

from pyspark.mllib.linalg import Matrices
from pyspark.mllib.linalg.distributed import BlockMatrix

# Create an RDD of sub-matrix blocks.
blocks = sc.parallelize([((0, 0), Matrices.dense(3, 2, [1, 2, 3, 4, 5, 6])),
                         ((1, 0), Matrices.dense(3, 2, [7, 8, 9, 10, 11, 12]))])

# Create a BlockMatrix from an RDD of sub-matrix blocks.
mat = BlockMatrix(blocks, 3, 2)

# Get its size.
m = mat.numRows() # 6
n = mat.numCols() # 2
print (m,n)

# Get the blocks as an RDD of sub-matrix blocks.
blocksRDD = mat.blocks

# Convert to a LocalMatrix.
localMat = mat.toLocalMatrix()

# Convert to an IndexedRowMatrix.
indexedRowMat = mat.toIndexedRowMatrix()

# Convert to a CoordinateMatrix.
coordinateMat = mat.toCoordinateMatrix()
6 2

ScaDaMaLe Course site and book

Power Plant ML Pipeline Application

This is an end-to-end example of using a number of different machine learning algorithms to solve a supervised regression problem.

Table of Contents

  • Step 1: Business Understanding
  • Step 2: Load Your Data
  • Step 3: Explore Your Data
  • Step 4: Visualize Your Data
  • Step 5: Data Preparation
  • Step 6: Data Modeling
  • Step 7: Tuning and Evaluation
  • Step 8: Deployment

We are trying to predict power output given a set of readings from various sensors in a gas-fired power generation plant. Power generation is a complex process, and understanding and predicting power output is an important element in managing a plant and its connection to the power grid.

More information about Peaker or Peaking Power Plants can be found on Wikipedia https://en.wikipedia.org/wiki/Peakingpowerplant

Given this business problem, we need to translate it to a Machine Learning task. The ML task is regression since the label (or target) we are trying to predict is numeric.

The example data is provided by UCI at UCI Machine Learning Repository Combined Cycle Power Plant Data Set

You can read the background on the UCI page, but in summary we have collected a number of readings from sensors at a Gas Fired Power Plant

(also called a Peaker Plant) and now we want to use those sensor readings to predict how much power the plant will generate.

More information about Machine Learning with Spark can be found in the Spark MLLib Programming Guide

Please note this example only works with Spark version 1.4 or higher



To Rerun Steps 1-4 done in the notebook at:

  • Workspace -> PATH_TO -> 009_PowerPlantPipeline_01ETLEDA]

just run the following command as shown in the cell below:

%run "/PATH_TO/009_PowerPlantPipeline_01ETLEDA"
  • Note: If you already evaluated the %run ... command above then:

    • first delete the cell by pressing on x on the top-right corner of the cell and
    • revaluate the run command above.
"../000_1-sds-3-x-sql/009_PowerPlantPipeline_01ETLEDA" 


Now we will do the following Steps:

Step 5: Data Preparation,

Step 6: Modeling, and

Step 7: Tuning and Evaluation

We will do Step 8: Deployment later after we get introduced to SparkStreaming.

Step 5: Data Preparation

The next step is to prepare the data. Since all of this data is numeric and consistent, this is a simple task for us today.

We will need to convert the predictor features from columns to Feature Vectors using the org.apache.spark.ml.feature.VectorAssembler

The VectorAssembler will be the first step in building our ML pipeline.

res2: Int = 321
//Let's quickly recall the schema and make sure our table is here now
table("power_plant_table").printSchema
root
 |-- AT: double (nullable = true)
 |-- V: double (nullable = true)
 |-- AP: double (nullable = true)
 |-- RH: double (nullable = true)
 |-- PE: double (nullable = true)
path name size modificationTime
dbfs:/datasets/sds/power-plant/data/Sheet1.tsv Sheet1.tsv 308693.0 1.664295999e12
dbfs:/datasets/sds/power-plant/data/Sheet2.tsv Sheet2.tsv 308693.0 1.664295998e12
dbfs:/datasets/sds/power-plant/data/Sheet3.tsv Sheet3.tsv 308693.0 1.664295999e12
dbfs:/datasets/sds/power-plant/data/Sheet4.tsv Sheet4.tsv 308693.0 1.664295998e12
dbfs:/datasets/sds/power-plant/data/Sheet5.tsv Sheet5.tsv 308693.0 1.664295998e12
powerPlantDF // make sure we have the DataFrame too
res21: org.apache.spark.sql.DataFrame = [AT: double, V: double ... 3 more fields]
powerPlantRDD: org.apache.spark.rdd.RDD[String] = /datasets/sds/power-plant/data/Sheet1.tsv MapPartitionsRDD[1] at textFile at command-2971213210277530:1
AT	V	AP	RH	PE
14.96	41.76	1024.07	73.17	463.26
25.18	62.96	1020.04	59.08	444.37
5.11	39.4	1012.16	92.14	488.56
20.86	57.32	1010.24	76.64	446.48
powerPlantDF: org.apache.spark.sql.DataFrame = [AT: double, V: double ... 3 more fields]
import org.apache.spark.ml.feature.VectorAssembler

// make a DataFrame called dataset from the table
val dataset = sqlContext.table("power_plant_table") 

val vectorizer =  new VectorAssembler()
                      .setInputCols(Array("AT", "V", "AP", "RH"))
                      .setOutputCol("features")
import org.apache.spark.ml.feature.VectorAssembler
dataset: org.apache.spark.sql.DataFrame = [AT: double, V: double ... 3 more fields]
vectorizer: org.apache.spark.ml.feature.VectorAssembler = VectorAssembler: uid=vecAssembler_38ac3d0b0ea7, handleInvalid=error, numInputCols=4
root
 |-- AT: double (nullable = true)
 |-- V: double (nullable = true)
 |-- AP: double (nullable = true)
 |-- RH: double (nullable = true)
 |-- PE: double (nullable = true)
res9: Long = 9568
+-----+-----+-------+-----+------+
|   AT|    V|     AP|   RH|    PE|
+-----+-----+-------+-----+------+
|14.96|41.76|1024.07|73.17|463.26|
|25.18|62.96|1020.04|59.08|444.37|
| 5.11| 39.4|1012.16|92.14|488.56|
|20.86|57.32|1010.24|76.64|446.48|
|10.82| 37.5|1009.23|96.62| 473.9|
|26.27|59.44|1012.23|58.77|443.67|
|15.89|43.96|1014.02|75.24|467.35|
| 9.48|44.71|1019.12|66.43|478.42|
|14.64| 45.0|1021.78|41.25|475.98|
|11.74|43.56|1015.14|70.72| 477.5|
+-----+-----+-------+-----+------+
only showing top 10 rows
AT V AP RH PE
14.96 41.76 1024.07 73.17 463.26
25.18 62.96 1020.04 59.08 444.37
5.11 39.4 1012.16 92.14 488.56
20.86 57.32 1010.24 76.64 446.48
10.82 37.5 1009.23 96.62 473.9
26.27 59.44 1012.23 58.77 443.67
15.89 43.96 1014.02 75.24 467.35
9.48 44.71 1019.12 66.43 478.42
14.64 45.0 1021.78 41.25 475.98
11.74 43.56 1015.14 70.72 477.5
17.99 43.72 1008.64 75.04 453.02
20.14 46.93 1014.66 64.22 453.99
24.34 73.5 1011.31 84.15 440.29
25.71 58.59 1012.77 61.83 451.28
26.19 69.34 1009.48 87.59 433.99
21.42 43.79 1015.76 43.08 462.19
18.21 45.0 1022.86 48.84 467.54
11.04 41.74 1022.6 77.51 477.2
14.45 52.75 1023.97 63.59 459.85
13.97 38.47 1015.15 55.28 464.3
17.76 42.42 1009.09 66.26 468.27
5.41 40.07 1019.16 64.77 495.24
7.76 42.28 1008.52 83.31 483.8
27.23 63.9 1014.3 47.19 443.61
27.36 48.6 1003.18 54.93 436.06
27.47 70.72 1009.97 74.62 443.25
14.6 39.31 1011.11 72.52 464.16
7.91 39.96 1023.57 88.44 475.52
5.81 35.79 1012.14 92.28 484.41
30.53 65.18 1012.69 41.85 437.89
23.87 63.94 1019.02 44.28 445.11
26.09 58.41 1013.64 64.58 438.86
29.27 66.85 1011.11 63.25 440.98
27.38 74.16 1010.08 78.61 436.65
24.81 63.94 1018.76 44.51 444.26
12.75 44.03 1007.29 89.46 465.86
24.66 63.73 1011.4 74.52 444.37
16.38 47.45 1010.08 88.86 450.69
13.91 39.35 1014.69 75.51 469.02
23.18 51.3 1012.04 78.64 448.86
22.47 47.45 1007.62 76.65 447.14
13.39 44.85 1017.24 80.44 469.18
9.28 41.54 1018.33 79.89 482.8
11.82 42.86 1014.12 88.28 476.7
10.27 40.64 1020.63 84.6 474.99
22.92 63.94 1019.28 42.69 444.22
16.0 37.87 1020.24 78.41 461.33
21.22 43.43 1010.96 61.07 448.06
13.46 44.71 1014.51 50.0 474.6
9.39 40.11 1029.14 77.29 473.05
31.07 73.5 1010.58 43.66 432.06
12.82 38.62 1018.71 83.8 467.41
32.57 78.92 1011.6 66.47 430.12
8.11 42.18 1014.82 93.09 473.62
13.92 39.39 1012.94 80.52 471.81
23.04 59.43 1010.23 68.99 442.99
27.31 64.44 1014.65 57.27 442.77
5.91 39.33 1010.18 95.53 491.49
25.26 61.08 1013.68 71.72 447.46
27.97 58.84 1002.25 57.88 446.11
26.08 52.3 1007.03 63.34 442.44
29.01 65.71 1013.61 48.07 446.22
12.18 40.1 1016.67 91.87 471.49
13.76 45.87 1008.89 87.27 463.5
25.5 58.79 1016.02 64.4 440.01
28.26 65.34 1014.56 43.4 441.03
21.39 62.96 1019.49 72.24 452.68
7.26 40.69 1020.43 90.22 474.91
10.54 34.03 1018.71 74.0 478.77
27.71 74.34 998.14 71.85 434.2
23.11 68.3 1017.83 86.62 437.91
7.51 41.01 1024.61 97.41 477.61
26.46 74.67 1016.65 84.44 431.65
29.34 74.34 998.58 81.55 430.57
10.32 42.28 1008.82 75.66 481.09
22.74 61.02 1009.56 79.41 445.56
13.48 39.85 1012.71 58.91 475.74
25.52 69.75 1010.36 90.06 435.12
21.58 67.25 1017.39 79.0 446.15
27.66 76.86 1001.31 69.47 436.64
26.96 69.45 1013.89 51.47 436.69
12.29 42.18 1016.53 83.13 468.75
15.86 43.02 1012.18 40.33 466.6
13.87 45.08 1024.42 81.69 465.48
24.09 73.68 1014.93 94.55 441.34
20.45 69.45 1012.53 91.81 441.83
15.07 39.3 1019.0 63.62 464.7
32.72 69.75 1009.6 49.35 437.99
18.23 58.96 1015.55 69.61 459.12
35.56 68.94 1006.56 38.75 429.69
18.36 51.43 1010.57 90.17 459.8
26.35 64.05 1009.81 81.24 433.63
25.92 60.95 1014.62 48.46 442.84
8.01 41.66 1014.49 76.72 485.13
19.63 52.72 1025.09 51.16 459.12
20.02 67.32 1012.05 76.34 445.31
10.08 40.72 1022.7 67.3 480.8
27.23 66.48 1005.23 52.38 432.55
23.37 63.77 1013.42 76.44 443.86
18.74 59.21 1018.3 91.55 449.77
14.81 43.69 1017.19 71.9 470.71
23.1 51.3 1011.93 80.05 452.17
10.72 41.38 1021.6 63.77 478.29
29.46 71.94 1006.96 62.26 428.54
8.1 40.64 1020.66 89.04 478.27
27.29 62.66 1007.63 58.02 439.58
17.1 49.69 1005.53 81.82 457.32
11.49 44.2 1018.79 91.14 475.51
23.69 65.59 1010.85 88.92 439.66
13.51 40.89 1011.03 84.83 471.99
9.64 39.35 1015.1 91.76 479.81
25.65 78.92 1010.83 86.56 434.78
21.59 61.87 1011.18 57.21 446.58
27.98 58.33 1013.92 54.25 437.76
18.8 39.72 1001.24 63.8 459.36
18.28 44.71 1016.99 33.71 462.28
13.55 43.48 1016.08 67.25 464.33
22.99 46.21 1010.71 60.11 444.36
23.94 59.39 1014.32 74.55 438.64
13.74 34.03 1018.69 67.34 470.49
21.3 41.1 1001.86 42.75 455.13
27.54 66.93 1017.06 55.2 450.22
24.81 63.73 1009.34 83.61 440.43
4.97 42.85 1014.02 88.78 482.98
15.22 50.88 1014.19 100.12 460.44
23.88 54.2 1012.81 64.52 444.97
33.01 68.67 1005.2 51.41 433.94
25.98 73.18 1012.28 85.78 439.73
28.18 73.88 1005.89 75.41 434.48
21.67 60.84 1017.93 81.63 442.33
17.67 45.09 1014.26 51.92 457.67
21.37 57.76 1018.8 70.12 454.66
28.69 67.25 1017.71 53.83 432.21
16.61 43.77 1012.25 77.23 457.66
27.91 63.76 1010.27 65.67 435.21
20.97 47.43 1007.64 71.18 448.22
10.8 41.66 1013.79 81.96 475.51
20.61 62.91 1013.24 79.54 446.53
25.45 57.32 1011.7 47.09 441.3
30.16 69.34 1007.67 57.69 433.54
4.99 39.04 1020.45 78.89 472.52
10.51 44.78 1012.59 85.29 474.77
33.79 69.05 1001.62 40.13 435.1
21.34 59.8 1016.92 77.06 450.74
23.4 65.06 1014.32 67.38 442.7
32.21 68.14 1003.34 62.44 426.56
14.26 42.32 1016.0 77.43 463.71
27.71 66.93 1016.85 58.77 447.06
21.95 57.76 1018.02 67.72 452.27
25.76 63.94 1018.49 42.14 445.78
23.68 68.3 1017.93 84.16 438.65
8.28 40.77 1011.55 89.79 480.15
23.44 62.52 1016.46 67.21 447.19
25.32 48.41 1008.47 72.14 443.04
3.94 39.9 1008.06 97.49 488.81
17.3 57.76 1016.26 87.74 455.75
18.2 49.39 1018.83 96.3 455.86
21.43 46.97 1013.94 61.25 457.68
11.16 40.05 1014.95 88.38 479.11
30.38 74.16 1007.44 74.77 432.84
23.36 62.52 1016.18 68.18 448.37
21.69 47.45 1007.56 77.2 447.06
23.62 49.21 1014.1 49.54 443.53
21.87 61.45 1011.13 92.22 445.21
29.25 66.51 1015.53 33.65 441.7
20.03 66.86 1013.05 64.59 450.93
18.14 49.78 1002.95 100.09 451.44
24.23 56.89 1012.32 68.04 441.29
18.11 44.85 1014.48 48.94 458.85
6.57 43.65 1018.24 74.47 481.46
12.56 43.41 1016.93 81.02 467.19
13.4 41.58 1020.5 71.17 461.54
27.1 52.84 1006.28 53.85 439.08
14.28 42.74 1028.79 70.67 467.22
16.29 44.34 1019.49 59.36 468.8
31.24 71.98 1004.66 57.17 426.93
10.57 37.73 1024.36 70.29 474.65
13.8 44.21 1022.93 83.37 468.97
25.3 71.58 1010.18 87.36 433.97
18.06 50.16 1009.52 100.09 450.53
25.42 59.04 1011.98 68.78 444.51
15.07 40.69 1015.29 70.98 469.03
11.75 71.14 1019.36 75.68 466.56
20.23 52.05 1012.15 47.49 457.57
27.31 59.54 1006.24 71.99 440.13
28.57 69.84 1003.57 66.55 433.24
17.9 43.72 1008.64 74.73 452.55
23.83 71.37 1002.04 64.78 443.29
27.92 74.99 1005.47 75.13 431.76
17.34 44.78 1007.81 56.38 454.97
17.94 63.07 1012.42 94.35 456.7
6.4 39.9 1007.75 86.55 486.03
11.78 39.96 1011.37 82.95 472.79
20.28 57.25 1010.12 88.42 452.03
21.04 54.2 1012.26 85.61 443.41
25.11 67.32 1014.49 58.39 441.93
30.28 70.98 1007.51 74.28 432.64
8.14 36.24 1013.15 87.85 480.25
16.86 39.63 1004.47 83.5 466.68
6.25 40.07 1020.19 65.24 494.39
22.35 54.42 1012.46 75.01 454.72
17.98 56.85 1012.28 84.52 448.71
21.19 42.48 1013.43 80.52 469.76
20.94 44.89 1009.64 75.14 450.71
24.23 58.79 1009.8 75.75 444.01
19.18 58.2 1017.46 76.72 453.2
20.88 57.85 1012.39 85.47 450.87
23.67 63.86 1019.67 57.95 441.73
14.12 39.52 1018.41 78.32 465.09
25.23 64.63 1020.59 52.2 447.28
6.54 39.33 1011.54 93.69 491.16
20.08 62.52 1017.99 75.74 450.98
24.67 63.56 1013.75 67.56 446.3
27.82 79.74 1008.37 69.46 436.48
15.55 42.03 1017.41 74.58 460.84
24.26 69.51 1013.43 53.23 442.56
13.45 41.49 1020.19 88.72 467.3
11.06 40.64 1021.47 96.16 479.13
24.91 52.3 1008.72 68.26 441.15
22.39 59.04 1011.78 86.39 445.52
11.95 40.69 1015.62 85.34 475.4
14.85 40.69 1014.91 72.64 469.3
10.11 41.62 1017.17 97.82 463.57
23.67 68.67 1006.71 77.22 445.32
16.14 44.21 1020.36 80.59 461.03
15.11 43.13 1014.99 46.91 466.74
24.14 59.87 1018.47 57.76 444.04
30.08 67.25 1017.6 53.09 434.01
14.77 44.9 1020.5 84.31 465.23
27.6 69.34 1009.63 71.58 440.6
13.89 44.84 1023.66 92.97 466.74
26.85 75.6 1017.43 74.55 433.48
12.41 40.96 1023.36 78.96 473.59
13.08 41.74 1020.75 64.44 474.81
18.93 44.06 1017.58 68.23 454.75
20.5 49.69 1009.6 70.81 452.94
30.72 69.13 1009.94 61.66 435.83
7.55 39.22 1014.53 77.76 482.19
13.49 44.47 1030.46 69.49 466.66
15.62 40.12 1013.03 96.26 462.59
24.8 64.63 1020.69 55.74 447.82
10.03 41.62 1014.55 95.61 462.73
22.43 63.21 1012.06 84.75 447.98
14.95 39.31 1009.15 75.3 462.72
24.78 58.46 1016.82 67.5 442.42
23.2 48.41 1008.64 80.92 444.69
14.01 39.0 1016.73 79.23 466.7
19.4 64.63 1020.38 81.1 453.84
30.15 67.32 1013.83 32.8 436.92
6.91 36.08 1021.82 84.31 486.37
29.04 60.07 1015.42 46.15 440.43
26.02 63.07 1010.94 53.96 446.82
5.89 39.48 1005.11 59.83 484.91
26.52 71.64 1008.27 75.3 437.76
28.53 68.08 1013.27 42.53 438.91
16.59 39.54 1007.97 70.58 464.19
22.95 67.79 1009.89 91.69 442.19
23.96 47.43 1008.38 63.55 446.86
17.48 44.2 1018.89 61.51 457.15
6.69 43.65 1020.14 69.55 482.57
10.25 41.26 1007.44 98.08 476.03
28.87 72.58 1008.69 79.34 428.89
12.04 40.23 1018.07 81.28 472.7
22.58 52.3 1009.04 78.99 445.6
15.12 52.05 1014.63 80.38 464.78
25.48 58.95 1017.02 51.16 440.42
27.87 70.79 1003.96 72.17 428.41
23.72 70.47 1010.65 75.39 438.5
25.0 59.43 1007.84 68.91 438.28
8.42 40.64 1022.35 96.38 476.29
22.46 58.49 1011.5 70.54 448.46
29.92 57.19 1008.62 45.8 438.99
11.68 39.22 1017.9 57.95 471.8
14.04 42.44 1012.74 81.89 471.81
19.86 59.14 1016.12 69.32 449.82
25.99 68.08 1013.13 59.14 442.14
23.42 58.79 1009.74 81.54 441.46
10.6 40.22 1011.37 85.81 477.62
20.97 61.87 1011.45 65.41 446.76
14.14 39.82 1012.46 81.15 472.52
8.56 40.71 1021.27 95.87 471.58
24.86 72.39 1001.15 90.24 440.85
29.0 77.54 1011.33 75.13 431.37
27.59 71.97 1008.64 88.22 437.33
10.45 40.71 1015.68 81.48 469.22
8.51 40.78 1023.51 89.84 471.11
29.82 66.51 1010.98 43.57 439.17
22.56 62.26 1012.11 63.16 445.33
11.38 39.22 1018.62 57.14 473.71
20.25 57.76 1016.28 77.76 452.66
22.42 59.43 1007.12 90.56 440.99
14.85 38.91 1014.48 60.98 467.42
25.62 58.82 1010.02 70.31 444.14
19.85 56.53 1020.57 74.05 457.17
13.67 54.3 1015.92 75.42 467.87
24.39 70.72 1009.78 82.25 442.04
16.07 44.58 1019.52 67.95 471.36
11.6 39.1 1009.81 100.09 460.7
31.38 70.83 1010.35 47.28 431.33
29.91 76.86 998.59 72.41 432.6
19.67 59.39 1014.07 77.67 447.61
27.18 64.79 1016.27 63.7 443.87
21.39 52.3 1009.2 79.77 446.87
10.45 41.01 1020.57 93.84 465.74
19.46 56.89 1014.02 84.95 447.86
23.55 62.96 1020.16 70.16 447.65
23.35 63.47 1011.78 84.24 437.87
9.26 41.66 1016.87 73.32 483.51
10.3 41.46 1018.21 86.17 479.65
20.94 58.16 1016.88 65.43 455.16
23.13 71.25 1002.49 94.59 431.91
12.77 41.5 1014.13 86.8 470.68
28.29 69.13 1009.29 58.18 429.28
19.13 59.21 1018.32 89.66 450.81
24.44 73.5 1011.49 87.39 437.73
20.32 44.6 1015.16 36.35 460.21
20.54 69.05 1001.6 79.62 442.86
12.16 45.0 1021.51 50.52 482.99
28.09 65.27 1013.27 51.96 440.0
9.25 41.82 1033.25 74.73 478.48
21.75 49.82 1015.01 78.33 455.28
23.7 66.56 1002.07 85.19 436.94
16.22 37.87 1022.36 83.13 461.06
24.75 69.45 1013.97 53.49 438.28
10.48 39.58 1011.81 88.86 472.61
29.53 70.79 1003.7 60.89 426.85
12.59 39.72 1017.76 61.14 470.18
23.5 54.42 1012.31 68.29 455.38
29.01 66.56 1006.44 57.62 428.32
9.75 42.49 1010.57 83.63 480.35
19.55 56.53 1020.2 78.1 455.56
21.05 58.33 1013.14 66.34 447.66
24.72 68.67 1006.74 79.02 443.06
21.19 58.86 1014.19 68.96 452.43
10.77 41.54 1019.94 71.13 477.81
28.68 73.77 1004.72 87.01 431.66
29.87 73.91 1004.53 74.3 431.8
22.99 68.67 1006.65 77.62 446.67
24.66 60.29 1018.0 59.56 445.26
32.63 69.89 1013.85 41.66 425.72
31.38 72.29 1008.73 73.27 430.58
23.87 60.27 1018.94 77.16 439.86
25.6 59.15 1013.31 67.02 441.11
27.62 71.14 1011.6 52.8 434.72
30.1 67.45 1014.23 39.04 434.01
12.19 41.17 1019.43 65.47 475.64
13.11 41.58 1020.43 74.32 460.44
28.29 68.67 1005.46 69.22 436.4
13.45 40.73 1018.7 93.88 461.03
10.98 41.54 1019.94 69.83 479.08
26.48 69.14 1009.31 84.11 435.76
13.07 45.51 1015.22 78.65 460.14
25.56 75.6 1017.37 69.31 442.2
22.68 50.78 1008.83 70.3 447.69
28.86 73.67 1006.65 68.23 431.15
22.7 63.56 1014.32 71.76 445.0
27.89 73.21 1001.32 85.88 431.59
13.78 44.47 1027.94 71.09 467.22
28.14 51.43 1012.16 52.67 445.33
11.8 45.09 1013.21 89.68 470.57
10.71 39.61 1018.72 73.66 473.77
24.54 60.29 1017.42 58.94 447.67
11.54 40.05 1014.78 87.05 474.29
29.47 71.32 1008.07 67.0 437.14
29.24 69.05 1003.12 43.18 432.56
14.51 41.79 1009.72 80.62 459.14
22.91 60.07 1016.03 59.72 446.19
27.02 71.77 1006.38 72.1 428.1
13.49 44.47 1030.18 69.15 468.46
30.24 66.75 1017.95 55.66 435.02
23.19 48.6 1002.38 61.19 445.52
17.73 40.55 1003.36 74.62 462.69
18.62 61.27 1019.26 73.35 455.75
12.85 40.0 1015.89 68.85 463.74
32.33 69.68 1011.95 39.89 439.79
25.09 58.95 1016.99 53.16 443.26
29.45 69.13 1009.3 52.97 432.04
16.91 43.96 1013.32 79.87 465.86
14.09 45.87 1009.05 84.09 465.6
10.73 25.36 1009.35 100.15 469.43
23.2 49.3 1003.4 79.77 440.75
8.21 38.91 1015.82 88.99 481.32
9.3 40.56 1022.64 76.14 479.87
16.97 39.16 1005.7 69.13 458.59
23.69 71.97 1009.62 93.03 438.62
25.13 59.44 1012.38 77.92 445.59
9.86 43.56 1015.13 74.89 481.87
11.33 41.5 1013.58 88.7 475.01
26.95 48.41 1008.53 62.94 436.54
15.0 40.66 1016.28 89.62 456.63
20.76 62.52 1015.63 81.04 451.69
14.29 39.59 1010.93 94.53 463.04
19.74 67.71 1007.68 64.02 446.1
26.68 59.92 1009.94 70.57 438.67
14.24 41.4 1019.7 70.32 466.88
21.98 48.41 1008.42 84.86 444.6
22.75 59.39 1015.4 81.41 440.26
8.34 40.96 1023.28 89.45 483.92
11.8 41.2 1017.18 82.71 475.19
8.81 44.68 1023.06 93.93 479.24
30.05 73.68 1014.95 70.6 434.92
16.01 65.46 1014.0 87.68 454.16
21.75 58.79 1012.42 87.58 447.58
13.94 41.26 1021.67 74.4 467.9
29.25 69.13 1010.27 67.35 426.29
22.33 45.87 1007.8 63.61 447.02
16.43 41.79 1005.47 76.89 455.85
11.5 40.22 1010.31 78.08 476.46
23.53 68.94 1007.53 69.17 437.48
21.86 49.21 1014.61 53.31 452.77
6.17 39.33 1012.57 93.32 491.54
30.19 64.79 1017.22 42.47 438.41
11.67 41.93 1019.81 82.58 476.1
15.34 36.99 1007.87 94.59 464.58
11.5 40.78 1023.91 86.31 467.74
25.53 57.17 1010.0 72.57 442.12
21.27 57.5 1014.53 80.76 453.34
28.37 69.13 1010.44 71.93 425.29
28.39 51.43 1011.74 47.54 449.63
13.78 45.78 1025.27 95.72 462.88
14.6 42.32 1015.71 77.03 464.67
5.1 35.57 1027.17 80.49 489.96
7.0 38.08 1020.27 77.67 482.38
26.3 77.95 1009.45 78.72 437.95
30.56 71.98 1004.74 58.77 429.2
21.09 46.63 1013.03 74.8 453.34
28.21 70.02 1010.58 51.34 442.47
15.84 49.69 1015.14 90.41 462.6
10.03 40.96 1024.57 91.1 478.79
20.37 52.05 1012.34 62.57 456.11
21.19 50.16 1005.81 84.27 450.33
33.73 69.88 1007.21 42.93 434.83
29.87 73.68 1015.1 40.96 433.43
19.62 62.96 1020.76 76.53 456.02
9.93 40.67 1018.08 69.74 485.23
9.43 37.14 1013.03 74.99 473.57
14.24 39.58 1011.17 70.45 469.94
12.97 49.83 1008.69 91.49 452.07
7.6 41.04 1021.82 88.97 475.32
8.39 36.24 1013.39 89.13 480.69
25.41 48.06 1013.12 46.52 444.01
18.43 56.03 1020.41 60.55 465.17
10.31 39.82 1012.87 88.71 480.61
11.29 41.5 1013.39 89.15 476.04
22.61 49.3 1003.51 83.02 441.76
29.34 71.98 1005.19 75.19 428.24
18.87 67.71 1004.0 87.35 444.77
13.21 45.87 1008.58 85.66 463.1
11.3 44.6 1018.19 91.66 470.5
29.23 72.99 1007.04 63.47 431.0
27.76 69.4 1004.27 72.25 430.68
29.26 67.17 1006.6 70.58 436.42
25.72 49.82 1016.19 60.1 452.33
23.43 63.94 1010.64 89.29 440.16
25.6 63.76 1010.18 67.43 435.75
22.3 44.57 1008.48 67.58 449.74
27.91 72.24 1010.74 70.8 430.73
30.35 77.17 1009.55 63.62 432.75
21.78 47.43 1007.88 66.68 446.79
7.19 41.39 1018.12 90.76 486.35
20.88 59.8 1015.66 75.34 453.18
24.19 50.23 1015.73 59.77 458.31
9.98 41.54 1019.7 80.79 480.26
23.47 51.3 1011.89 74.1 448.65
26.35 49.5 1012.67 41.34 458.41
29.89 64.69 1006.37 58.78 435.39
19.29 50.16 1010.49 97.78 450.21
17.48 43.14 1018.68 74.85 459.59
25.21 75.6 1017.19 69.84 445.84
23.3 48.78 1018.17 75.36 441.08
15.42 37.85 1009.89 85.8 467.33
21.44 63.09 1016.56 90.11 444.19
29.45 68.27 1007.96 61.63 432.96
29.69 47.93 1002.85 44.76 438.09
15.52 36.99 1006.86 89.7 467.9
11.47 43.67 1012.68 72.51 475.72
9.77 34.69 1027.72 74.98 477.51
22.6 69.84 1006.37 79.59 435.13
8.24 39.61 1017.99 78.42 477.9
17.01 44.2 1019.18 61.23 457.26
19.64 44.6 1015.88 47.56 467.53
10.61 41.58 1021.08 93.06 465.15
12.04 40.1 1014.42 89.65 474.28
29.19 65.71 1013.85 50.5 444.49
21.75 45.09 1014.15 44.84 452.84
23.66 77.54 1008.5 85.32 435.38
27.05 75.33 1003.88 82.94 433.57
29.63 69.71 1009.04 67.26 435.27
18.2 39.63 1005.35 79.05 468.49
32.22 70.8 1009.9 62.03 433.07
26.88 73.56 1004.85 94.36 430.63
29.05 65.74 1013.29 60.02 440.74
8.9 39.96 1026.31 95.46 474.49
18.93 48.6 1005.72 84.92 449.74
27.49 63.76 1010.09 62.8 436.73
23.1 70.79 1006.53 90.81 434.58
11.22 43.13 1017.24 80.9 473.93
31.97 79.74 1007.03 55.84 435.99
13.32 43.22 1009.45 75.3 466.83
31.68 68.24 1005.29 37.34 427.22
23.69 63.77 1013.39 79.5 444.07
13.83 41.49 1020.11 87.29 469.57
18.32 66.51 1015.18 81.5 459.89
11.05 40.71 1024.91 76.42 479.59
22.03 64.69 1007.21 75.75 440.92
10.23 41.46 1020.45 84.95 480.87
23.92 66.54 1009.93 62.37 441.9
29.38 69.68 1011.35 49.25 430.2
17.35 42.86 1014.62 74.16 465.16
9.81 44.45 1021.19 90.55 471.32
4.97 40.64 1020.91 94.28 485.43
5.15 40.07 1012.27 63.31 495.35
21.54 58.49 1010.85 78.9 449.12
7.94 42.02 1006.22 90.97 480.53
18.77 50.66 1014.89 87.34 457.07
21.69 69.94 1010.7 80.8 443.67
10.07 44.68 1023.44 90.95 477.52
13.83 39.64 1012.52 69.97 472.95
10.45 39.69 1003.92 89.45 472.54
11.56 40.71 1015.85 76.08 469.17
23.64 70.04 1011.09 83.35 435.21
10.48 40.22 1004.81 92.16 477.78
13.09 39.85 1012.86 58.42 475.89
10.67 40.23 1017.75 85.06 483.9
12.57 39.16 1016.53 88.91 476.2
14.45 43.34 1015.47 83.33 462.16
14.22 37.85 1011.24 88.49 471.05
6.97 41.26 1010.6 96.88 484.71
20.61 63.86 1015.43 73.86 446.34
14.67 42.28 1007.21 65.17 469.02
29.06 72.86 1004.23 69.41 432.12
14.38 40.1 1015.51 81.23 467.28
32.51 69.98 1013.29 54.07 429.66
11.79 45.09 1013.16 89.17 469.49
8.65 40.56 1023.23 78.85 485.87
9.75 40.81 1026.0 84.44 481.95
9.11 40.02 1031.1 83.02 479.03
23.39 69.13 1010.99 90.66 434.5
14.3 54.3 1015.16 75.29 464.9
17.49 63.94 1020.02 82.6 452.71
31.1 69.51 1010.84 45.4 429.74
19.77 56.65 1020.67 66.33 457.09
28.61 72.29 1011.61 45.33 446.77
13.52 41.48 1014.46 67.12 460.76
13.52 40.83 1008.31 84.14 471.95
17.57 46.21 1014.09 80.81 453.29
28.18 60.07 1016.34 49.13 441.61
14.29 46.18 1017.01 87.29 464.73
18.12 43.69 1016.91 52.95 464.68
31.27 73.91 1003.72 68.92 430.59
26.24 77.95 1014.19 85.21 438.01
7.44 41.04 1021.84 88.56 479.08
29.78 74.78 1009.28 55.09 436.39
23.37 65.46 1016.25 48.64 447.07
10.62 39.58 1011.9 87.85 479.91
5.84 43.02 1013.88 87.42 489.05
14.51 53.82 1016.46 62.75 463.17
11.31 42.02 1001.18 94.86 471.26
11.25 40.67 1011.64 63.54 480.49
9.18 39.42 1025.41 69.46 473.78
19.82 58.16 1016.76 74.66 455.5
24.77 58.41 1013.78 80.57 446.27
9.66 41.06 1021.21 84.7 482.2
21.96 59.8 1016.72 72.6 452.48
18.59 43.14 1011.92 52.63 464.48
24.75 69.89 1015.29 82.01 438.1
24.37 63.47 1012.77 75.22 445.6
29.6 67.79 1010.37 51.05 442.43
25.32 61.25 1011.56 80.1 436.67
16.15 41.85 1016.54 81.58 466.56
15.74 71.14 1019.65 65.94 457.29
5.97 36.25 1029.65 86.74 487.03
15.84 52.72 1026.45 62.57 464.93
14.84 44.63 1019.28 57.37 466.0
12.25 48.79 1017.44 88.91 469.52
27.38 70.04 1011.18 72.26 428.88
8.76 41.48 1018.49 74.98 474.3
15.54 39.31 1009.69 71.19 461.06
18.71 39.39 1014.09 62.82 465.57
13.06 41.78 1012.3 55.31 467.67
12.72 40.71 1016.02 71.57 466.99
19.83 39.39 1013.73 59.16 463.72
27.23 49.16 1004.03 40.8 443.78
24.27 68.28 1005.43 67.63 445.23
11.8 40.66 1017.13 97.2 464.43
6.76 36.25 1028.31 91.16 484.36
25.99 63.07 1012.5 64.81 442.16
16.3 39.63 1004.64 85.61 464.11
16.5 49.39 1018.35 93.42 462.48
10.59 42.49 1009.59 77.36 477.49
26.05 65.59 1012.78 67.03 437.04
19.5 40.79 1003.8 89.45 457.09
22.21 45.01 1012.22 54.84 450.6
17.86 45.0 1023.25 53.48 465.78
29.96 70.04 1010.15 54.47 427.1
19.08 44.63 1020.14 43.36 459.81
23.59 47.43 1006.64 48.92 447.36
3.38 39.64 1011.0 81.22 488.92
26.39 66.49 1012.96 60.35 433.36
8.99 39.04 1021.99 75.98 483.35
10.91 41.04 1026.57 74.24 469.53
13.08 39.82 1012.27 85.21 476.96
23.95 58.46 1017.5 68.46 440.75
15.64 43.71 1024.51 78.31 462.55
18.78 54.2 1012.05 89.25 448.04
20.65 50.59 1016.22 68.57 455.24
4.96 40.07 1011.8 67.38 494.75
23.51 57.32 1012.55 53.6 444.58
5.99 35.79 1011.56 91.69 484.82
23.65 66.05 1019.6 78.21 442.9
5.17 39.33 1009.68 94.19 485.46
26.38 49.5 1012.82 37.19 457.81
6.02 43.65 1013.85 83.53 481.92
23.2 61.02 1009.63 79.45 443.23
8.57 39.69 1000.91 99.9 474.29
30.72 71.58 1009.98 50.39 430.46
21.52 50.66 1013.56 74.33 455.71
22.93 62.26 1011.25 83.66 438.34
5.71 41.31 1003.24 89.48 485.83
18.62 44.06 1017.76 64.59 452.82
27.88 68.94 1007.68 75.68 435.04
22.32 59.8 1016.82 64.18 451.21
14.55 42.74 1028.41 70.09 465.81
17.83 44.92 1025.04 70.58 458.42
9.68 39.96 1026.09 99.28 470.22
19.41 49.39 1020.84 81.89 449.24
13.22 44.92 1023.84 87.99 471.43
12.24 44.92 1023.74 88.21 473.26
19.21 58.49 1011.7 91.29 452.82
29.74 70.32 1008.1 52.72 432.69
23.28 60.84 1017.91 67.5 444.13
8.02 41.92 1029.8 92.05 467.21
22.47 48.6 1002.33 63.23 445.98
27.51 73.77 1002.42 90.88 436.91
17.51 44.9 1009.05 74.91 455.01
23.22 66.56 1002.47 85.39 437.11
11.73 40.64 1020.68 96.98 477.06
21.19 67.71 1006.65 56.28 441.71
5.48 40.07 1019.63 65.62 495.76
24.26 66.44 1011.33 55.32 445.63
12.32 41.62 1012.88 88.88 464.72
31.26 68.94 1005.94 39.49 438.03
32.09 72.86 1003.47 54.59 434.78
24.98 60.32 1015.63 57.19 444.67
27.48 61.41 1012.2 45.06 452.24
21.04 45.09 1014.19 40.62 450.92
27.75 70.4 1006.65 90.21 436.53
22.79 71.77 1005.75 90.91 435.53
24.22 68.51 1013.23 74.96 440.01
27.06 64.45 1008.72 54.21 443.1
29.25 71.94 1007.18 63.62 427.49
26.86 68.08 1012.99 50.04 436.25
29.64 67.79 1009.99 51.23 440.74
19.92 63.31 1015.02 82.71 443.54
18.5 51.43 1010.82 92.04 459.42
23.71 60.23 1009.76 90.67 439.66
14.39 44.84 1023.55 91.14 464.15
19.3 56.65 1020.55 70.43 459.1
24.65 52.36 1014.76 66.63 455.68
13.5 45.51 1015.33 86.95 469.08
9.82 41.26 1007.71 96.69 478.02
18.4 44.06 1017.36 70.88 456.8
28.12 44.89 1009.18 47.14 441.13
17.15 43.69 1017.05 63.36 463.88
30.69 73.67 1006.14 60.58 430.45
28.82 65.71 1014.24 54.3 449.18
21.3 48.92 1010.92 65.09 447.89
30.58 70.04 1010.4 48.16 431.59
21.17 52.3 1009.36 81.51 447.5
9.87 41.82 1033.04 68.57 475.58
22.18 59.8 1016.77 73.16 453.24
24.39 63.21 1012.59 80.88 446.4
10.73 44.92 1025.1 85.4 476.81
9.38 40.46 1019.29 75.77 474.1
20.27 57.76 1016.66 75.76 450.71
24.82 66.48 1006.4 70.21 433.62
16.55 41.66 1011.45 55.53 465.14
20.73 59.87 1019.08 80.48 445.18
9.51 39.22 1015.3 72.41 474.12
8.63 43.79 1016.08 83.25 483.91
6.48 40.27 1010.55 82.12 486.68
14.95 43.52 1022.43 94.75 464.98
5.76 45.87 1010.83 95.79 481.4
10.94 39.04 1021.81 86.02 479.2
15.87 41.16 1005.85 78.29 463.86
12.42 38.25 1012.76 82.23 472.3
29.12 58.84 1001.31 52.86 446.51
29.12 51.43 1005.93 60.66 437.71
19.08 41.1 1001.96 62.77 458.94
31.06 67.17 1007.62 65.54 437.91
5.72 39.33 1009.96 95.4 490.76
26.52 65.06 1013.4 51.78 439.66
13.84 44.9 1007.58 63.62 463.27
13.03 39.52 1016.68 83.09 473.99
25.94 66.49 1012.83 61.81 433.38
16.64 53.82 1015.13 68.24 459.01
14.13 40.75 1016.05 72.41 471.44
13.65 39.28 1012.97 79.64 471.91
14.5 44.47 1028.2 66.95 465.15
19.8 51.19 1008.25 91.98 446.66
25.2 63.76 1009.78 64.96 438.15
20.66 51.19 1008.81 88.93 447.14
12.07 43.71 1025.53 85.62 472.32
25.64 70.72 1010.16 84.0 441.68
23.33 72.99 1009.33 89.41 440.04
29.41 64.05 1009.82 67.4 444.82
16.6 53.16 1014.5 76.75 457.26
27.53 72.58 1009.13 89.06 428.83
20.62 43.43 1009.93 64.02 449.07
26.02 71.94 1009.38 64.12 435.21
12.75 44.2 1017.59 81.22 471.03
12.87 48.04 1012.47 100.13 465.56
25.77 62.96 1019.86 58.07 442.83
14.84 41.48 1017.26 63.42 460.3
7.41 40.71 1023.07 83.32 474.25
8.87 41.82 1033.3 74.28 477.97
9.69 40.46 1019.1 71.91 472.16
16.17 46.97 1014.22 85.8 456.08
26.24 49.82 1014.9 55.58 452.41
13.78 43.22 1011.31 69.7 463.71
26.3 67.07 1006.26 63.79 433.72
17.37 57.76 1016.0 86.59 456.4
23.6 48.98 1015.41 48.28 448.43
8.3 36.08 1020.63 80.42 481.6
18.86 42.18 1001.16 98.58 457.07
22.12 49.39 1019.8 72.83 451.0
28.41 75.6 1018.48 56.07 440.28
29.42 71.32 1002.26 67.13 437.47
18.61 67.71 1004.07 84.49 443.57
27.57 69.84 1004.91 68.37 426.6
12.83 41.5 1013.12 86.07 470.87
9.64 39.85 1012.9 83.82 478.37
19.13 58.66 1013.32 74.86 453.92
15.92 40.56 1020.79 53.52 470.22
24.64 72.24 1011.37 80.61 434.54
27.62 63.9 1013.11 43.56 442.89
8.9 36.24 1013.29 89.35 479.03
9.55 43.99 1020.5 97.28 476.06
10.57 36.71 1022.62 80.49 473.88
19.8 57.25 1010.84 88.9 451.75
25.63 56.85 1012.68 49.7 439.2
24.7 58.46 1015.58 68.64 439.7
15.26 46.18 1013.68 98.58 463.6
20.06 52.84 1004.21 82.12 447.47
19.84 56.89 1013.23 78.32 447.92
11.49 44.63 1020.44 86.04 471.08
23.74 72.43 1007.99 91.36 437.55
22.62 51.3 1012.36 81.02 448.27
29.53 72.39 998.47 76.05 431.69
21.32 48.14 1016.57 71.81 449.09
20.3 58.46 1015.93 82.13 448.79
16.97 44.92 1025.21 74.27 460.21
12.07 41.17 1013.54 71.32 479.28
7.46 41.82 1032.67 74.59 483.11
19.2 54.2 1011.46 84.44 450.75
28.64 66.54 1010.43 43.39 437.97
13.56 41.48 1008.53 87.2 459.76
17.4 44.9 1020.5 77.11 457.75
14.08 40.1 1015.48 82.81 469.33
27.11 69.75 1009.74 85.67 433.28
20.92 70.02 1010.23 95.58 444.64
16.18 44.9 1021.3 74.46 463.1
15.57 44.68 1022.01 90.02 460.91
10.37 39.04 1023.95 81.93 479.35
19.6 59.21 1017.65 86.29 449.23
9.22 40.92 1021.83 85.43 474.51
27.76 72.99 1007.81 71.66 435.02
28.68 70.72 1009.43 71.33 435.45
20.95 48.14 1013.3 67.72 452.38
9.06 39.3 1019.73 84.23 480.41
9.21 39.72 1019.54 74.44 478.96
13.65 42.74 1026.58 71.48 468.87
31.79 76.2 1007.89 56.3 434.01
14.32 44.6 1013.85 68.13 466.36
26.28 75.23 1011.44 68.35 435.28
7.69 43.02 1014.51 85.23 486.46
14.44 40.1 1015.51 79.78 468.19
9.19 41.01 1022.14 98.98 468.37
13.35 41.39 1019.17 72.87 474.19
23.04 74.22 1009.52 90.93 440.32
4.83 38.44 1015.35 72.94 485.32
17.29 42.86 1014.38 72.3 464.27
8.73 36.18 1013.66 77.74 479.25
26.21 70.32 1007.0 78.29 430.4
23.72 58.62 1016.65 69.1 447.49
29.27 64.69 1006.85 55.79 438.23
10.4 40.43 1025.46 75.09 492.09
12.19 40.75 1015.13 88.98 475.36
20.4 54.9 1016.68 64.26 452.56
34.3 74.67 1015.98 25.89 427.84
27.56 68.08 1010.8 59.18 433.95
30.9 70.8 1008.48 67.48 435.27
14.85 58.59 1014.04 89.85 454.62
16.42 40.56 1020.36 50.62 472.17
16.45 63.31 1015.96 83.97 452.42
10.14 42.02 1003.19 96.51 472.17
9.53 41.44 1018.01 80.09 481.83
17.01 49.15 1021.83 84.02 458.78
23.94 62.08 1022.47 61.97 447.5
15.95 49.25 1019.04 88.51 463.4
11.15 41.26 1022.67 81.83 473.57
25.56 70.32 1009.07 90.63 433.72
27.16 66.44 1011.2 73.37 431.85
26.71 77.95 1012.13 77.5 433.47
29.56 74.22 1007.45 57.46 432.84
31.19 70.94 1007.29 51.91 436.6
6.86 41.17 1020.12 79.14 490.23
12.36 41.74 1020.58 69.24 477.16
32.82 68.31 1010.44 41.85 441.06
25.3 70.98 1007.22 95.1 440.86
8.71 41.82 1033.08 74.53 477.94
13.34 40.8 1026.56 64.85 474.47
14.2 43.02 1012.18 57.07 470.67
23.74 65.34 1013.7 62.9 447.31
16.9 44.88 1018.14 72.21 466.8
28.54 71.94 1007.4 65.99 430.91
30.15 69.88 1007.2 73.67 434.75
14.33 42.86 1010.82 88.59 469.52
25.57 59.43 1008.88 61.19 438.9
30.55 70.04 1010.51 49.37 429.56
28.04 74.33 1013.53 48.65 432.92
26.39 49.16 1005.68 56.18 442.87
15.3 41.76 1022.57 71.56 466.59
6.03 41.14 1028.04 87.46 479.61
13.49 44.63 1019.12 70.02 471.08
27.67 59.14 1016.51 61.2 433.37
24.19 65.48 1018.8 60.54 443.92
24.44 59.14 1016.74 71.82 443.5
29.86 64.79 1017.37 44.8 439.89
30.2 69.59 1008.9 67.32 434.66
7.99 41.38 1021.95 78.77 487.57
9.93 41.62 1013.76 96.02 464.64
11.03 42.32 1017.26 90.56 470.92
22.34 63.73 1014.37 83.19 444.39
25.33 48.6 1002.54 68.45 442.48
18.87 52.08 1005.25 99.19 449.61
25.97 69.34 1009.43 88.11 435.02
16.58 43.99 1021.81 79.29 458.67
14.35 46.18 1016.63 87.76 461.74
25.06 62.39 1008.09 82.56 438.31
13.85 48.92 1011.68 79.24 462.38
16.09 44.2 1019.39 67.24 460.56
26.34 59.21 1013.37 58.98 439.22
23.01 58.79 1009.71 84.22 444.64
26.39 71.25 999.8 89.12 430.34
31.32 71.29 1008.37 50.07 430.46
16.64 45.87 1009.02 98.86 456.79
13.42 41.23 994.17 95.79 468.82
20.06 44.9 1008.79 70.06 448.51
14.8 44.71 1014.67 41.71 470.77
12.59 41.14 1025.79 86.55 465.74
26.7 66.56 1005.31 71.97 430.21
19.78 50.32 1008.62 96.4 449.23
15.17 49.15 1021.91 91.73 461.89
21.71 61.45 1010.97 91.62 445.72
19.09 39.39 1013.36 59.14 466.13
19.76 51.19 1008.38 92.56 448.71
14.68 41.23 998.43 83.71 469.25
21.3 66.86 1013.04 55.43 450.56
16.73 39.64 1008.94 74.91 464.46
12.26 41.5 1014.87 89.41 471.13
14.77 48.06 1010.92 69.81 461.52
18.26 59.15 1012.04 86.01 451.09
27.1 79.74 1005.43 86.05 431.51
14.72 40.83 1009.65 80.98 469.8
26.3 51.43 1012.05 63.62 442.28
16.48 48.92 1011.84 64.16 458.67
17.99 43.79 1016.13 75.63 462.4
20.34 59.8 1015.18 80.21 453.54
25.53 62.96 1019.81 59.7 444.38
31.59 58.9 1003.39 47.6 440.52
30.8 69.14 1007.68 63.78 433.62
10.75 45.0 1023.68 89.37 481.96
19.3 44.9 1008.89 70.55 452.75
4.71 39.42 1026.4 84.42 481.28
23.1 66.05 1020.28 80.62 439.03
32.63 73.88 1005.64 52.56 435.75
26.63 74.16 1009.72 83.26 436.03
24.35 58.49 1011.03 70.64 445.6
15.11 56.03 1020.27 89.95 462.65
29.1 50.05 1005.87 51.53 438.66
21.24 50.32 1008.54 84.83 447.32
6.16 39.48 1004.85 59.68 484.55
7.36 41.01 1024.9 97.88 476.8
10.44 39.04 1023.99 85.03 480.34
26.76 48.41 1010.53 47.38 440.63
16.79 44.6 1014.27 48.08 459.48
10.76 40.43 1025.98 79.65 490.78
6.07 38.91 1019.25 83.39 483.56
27.33 73.18 1012.26 82.18 429.38
27.15 59.21 1013.49 51.71 440.27
22.35 51.43 1011.34 77.33 445.34
21.82 65.27 1013.86 72.81 447.43
21.11 69.94 1004.37 84.26 439.91
19.95 50.59 1016.11 73.23 459.27
7.45 39.61 1017.88 79.73 478.89
15.36 41.66 1012.41 62.32 466.7
15.65 43.5 1021.39 78.58 463.5
25.31 74.33 1015.04 79.88 436.21
25.88 63.47 1011.95 65.87 443.94
24.6 63.94 1012.87 80.28 439.63
22.58 41.54 1013.21 71.33 460.95
19.69 59.14 1015.99 70.33 448.69
25.85 75.08 1006.24 57.73 444.63
10.06 37.83 1005.49 99.46 473.51
18.59 39.54 1008.56 68.61 462.56
18.27 50.16 1011.07 95.91 451.76
8.85 40.43 1025.68 80.42 491.81
30.04 68.08 1011.04 51.01 429.52
26.06 49.02 1007.59 74.08 437.9
14.8 38.73 1003.18 80.73 467.54
23.93 64.45 1015.35 54.71 449.97
23.72 66.48 1003.61 73.75 436.62
11.44 40.55 1023.37 88.43 477.68
20.28 63.86 1016.04 74.66 447.26
27.9 63.13 1011.8 70.04 439.76
24.74 59.39 1015.23 74.64 437.49
14.8 58.2 1018.29 85.11 455.14
8.22 41.03 1021.76 82.97 485.5
27.56 66.93 1016.81 55.59 444.1
32.07 70.94 1006.91 49.9 432.33
9.53 44.03 1008.87 89.99 471.23
13.61 42.34 1017.93 91.61 463.89
22.2 51.19 1009.2 82.95 445.54
21.36 59.54 1007.99 92.62 446.09
23.25 63.86 1017.82 59.64 445.12
23.5 59.21 1018.29 63.0 443.31
8.46 39.66 1015.14 85.38 484.16
8.19 40.69 1019.86 85.23 477.76
30.67 71.29 1008.36 52.08 430.28
32.48 62.04 1010.39 38.05 446.48
8.99 36.66 1028.11 71.98 481.03
13.77 47.83 1007.41 90.66 466.07
19.05 67.32 1013.2 83.14 447.47
21.19 55.5 1019.83 65.22 455.93
10.12 40.0 1021.15 91.67 479.62
24.93 47.01 1014.28 66.04 455.06
8.47 40.46 1019.87 78.19 475.06
24.52 56.85 1012.59 54.47 438.89
28.55 69.84 1003.38 67.26 432.7
20.58 50.9 1011.89 72.56 452.6
18.31 46.21 1010.46 82.15 451.75
27.18 71.06 1008.16 86.32 430.66
4.43 38.91 1019.04 88.17 491.9
26.02 74.78 1010.04 72.78 439.82
15.75 39.0 1015.91 69.58 460.73
22.99 60.95 1015.14 69.86 449.7
25.52 59.15 1013.88 65.37 439.42
27.04 65.06 1013.33 52.37 439.84
6.42 35.57 1025.58 79.63 485.86
17.04 40.12 1011.81 83.14 458.1
10.79 39.82 1012.89 88.25 479.92
20.41 56.03 1019.94 55.85 458.29
7.36 40.07 1017.29 52.55 489.45
28.08 73.42 1012.17 62.74 434.0
24.74 69.13 1010.69 90.08 431.24
28.32 47.93 1003.26 54.5 439.5
16.71 40.56 1019.48 49.88 467.46
30.7 71.58 1010.0 48.96 429.27
18.42 58.95 1016.95 86.77 452.1
10.62 42.02 999.83 96.66 472.41
22.18 69.05 1002.75 70.84 442.14
22.38 49.3 1003.56 83.83 441.0
13.94 41.58 1020.76 68.22 463.07
21.24 60.84 1017.99 82.22 445.71
6.76 39.81 1017.11 87.9 483.16
26.73 68.84 1010.75 66.83 440.45
7.24 38.06 1020.6 85.36 481.83
10.84 40.62 1015.53 60.9 467.6
19.32 52.84 1004.29 83.51 450.88
29.0 69.13 1001.22 52.96 425.5
23.38 54.42 1013.95 73.02 451.87
31.17 69.51 1010.51 43.11 428.94
26.17 48.6 1002.59 61.41 439.86
30.9 73.42 1011.21 65.32 433.44
24.92 73.68 1015.12 93.68 438.23
32.77 71.32 1007.68 42.39 436.95
14.37 40.56 1021.67 68.18 470.19
8.36 40.22 1011.6 89.18 484.66
31.45 68.27 1007.56 64.79 430.81
31.6 73.17 1010.05 43.48 433.37
17.9 48.98 1014.17 80.4 453.02
20.35 50.9 1012.6 72.43 453.5
16.21 41.23 995.88 80.0 463.09
19.36 44.6 1016.25 45.65 464.56
21.04 65.46 1017.22 63.02 452.12
14.05 40.69 1015.66 74.39 470.9
23.48 64.15 1021.08 57.77 450.89
21.91 63.76 1009.85 76.8 445.04
24.42 63.07 1011.49 67.39 444.72
14.26 40.92 1022.07 73.96 460.38
21.38 58.33 1013.05 72.75 446.8
15.71 44.06 1018.34 71.69 465.05
5.78 40.62 1016.55 84.98 484.13
6.77 39.81 1017.01 87.68 488.27
23.84 49.21 1013.85 50.36 447.09
21.17 58.16 1017.16 68.11 452.02
19.94 58.96 1014.16 66.27 455.55
8.73 41.92 1029.41 89.72 480.99
16.39 41.67 1012.96 61.07 467.68
res12: Long = 9568
+-----------------+--------+-----------+---------+-----------+
|             name|database|description|tableType|isTemporary|
+-----------------+--------+-----------+---------+-----------+
|power_plant_table|    null|       null|TEMPORARY|       true|
+-----------------+--------+-----------+---------+-----------+

Step 6: Data Modeling

Now let's model our data to predict what the power output will be given a set of sensor readings

Our first model will be based on simple linear regression since we saw some linear patterns in our data based on the scatter plots during the exploration stage.

AT V AP RH PE
14.96 41.76 1024.07 73.17 463.26
25.18 62.96 1020.04 59.08 444.37
5.11 39.4 1012.16 92.14 488.56
20.86 57.32 1010.24 76.64 446.48
10.82 37.5 1009.23 96.62 473.9
26.27 59.44 1012.23 58.77 443.67
15.89 43.96 1014.02 75.24 467.35
9.48 44.71 1019.12 66.43 478.42
14.64 45.0 1021.78 41.25 475.98
11.74 43.56 1015.14 70.72 477.5
17.99 43.72 1008.64 75.04 453.02
20.14 46.93 1014.66 64.22 453.99
24.34 73.5 1011.31 84.15 440.29
25.71 58.59 1012.77 61.83 451.28
26.19 69.34 1009.48 87.59 433.99
21.42 43.79 1015.76 43.08 462.19
18.21 45.0 1022.86 48.84 467.54
11.04 41.74 1022.6 77.51 477.2
14.45 52.75 1023.97 63.59 459.85
13.97 38.47 1015.15 55.28 464.3
17.76 42.42 1009.09 66.26 468.27
5.41 40.07 1019.16 64.77 495.24
7.76 42.28 1008.52 83.31 483.8
27.23 63.9 1014.3 47.19 443.61
27.36 48.6 1003.18 54.93 436.06
27.47 70.72 1009.97 74.62 443.25
14.6 39.31 1011.11 72.52 464.16
7.91 39.96 1023.57 88.44 475.52
5.81 35.79 1012.14 92.28 484.41
30.53 65.18 1012.69 41.85 437.89
23.87 63.94 1019.02 44.28 445.11
26.09 58.41 1013.64 64.58 438.86
29.27 66.85 1011.11 63.25 440.98
27.38 74.16 1010.08 78.61 436.65
24.81 63.94 1018.76 44.51 444.26
12.75 44.03 1007.29 89.46 465.86
24.66 63.73 1011.4 74.52 444.37
16.38 47.45 1010.08 88.86 450.69
13.91 39.35 1014.69 75.51 469.02
23.18 51.3 1012.04 78.64 448.86
22.47 47.45 1007.62 76.65 447.14
13.39 44.85 1017.24 80.44 469.18
9.28 41.54 1018.33 79.89 482.8
11.82 42.86 1014.12 88.28 476.7
10.27 40.64 1020.63 84.6 474.99
22.92 63.94 1019.28 42.69 444.22
16.0 37.87 1020.24 78.41 461.33
21.22 43.43 1010.96 61.07 448.06
13.46 44.71 1014.51 50.0 474.6
9.39 40.11 1029.14 77.29 473.05
31.07 73.5 1010.58 43.66 432.06
12.82 38.62 1018.71 83.8 467.41
32.57 78.92 1011.6 66.47 430.12
8.11 42.18 1014.82 93.09 473.62
13.92 39.39 1012.94 80.52 471.81
23.04 59.43 1010.23 68.99 442.99
27.31 64.44 1014.65 57.27 442.77
5.91 39.33 1010.18 95.53 491.49
25.26 61.08 1013.68 71.72 447.46
27.97 58.84 1002.25 57.88 446.11
26.08 52.3 1007.03 63.34 442.44
29.01 65.71 1013.61 48.07 446.22
12.18 40.1 1016.67 91.87 471.49
13.76 45.87 1008.89 87.27 463.5
25.5 58.79 1016.02 64.4 440.01
28.26 65.34 1014.56 43.4 441.03
21.39 62.96 1019.49 72.24 452.68
7.26 40.69 1020.43 90.22 474.91
10.54 34.03 1018.71 74.0 478.77
27.71 74.34 998.14 71.85 434.2
23.11 68.3 1017.83 86.62 437.91
7.51 41.01 1024.61 97.41 477.61
26.46 74.67 1016.65 84.44 431.65
29.34 74.34 998.58 81.55 430.57
10.32 42.28 1008.82 75.66 481.09
22.74 61.02 1009.56 79.41 445.56
13.48 39.85 1012.71 58.91 475.74
25.52 69.75 1010.36 90.06 435.12
21.58 67.25 1017.39 79.0 446.15
27.66 76.86 1001.31 69.47 436.64
26.96 69.45 1013.89 51.47 436.69
12.29 42.18 1016.53 83.13 468.75
15.86 43.02 1012.18 40.33 466.6
13.87 45.08 1024.42 81.69 465.48
24.09 73.68 1014.93 94.55 441.34
20.45 69.45 1012.53 91.81 441.83
15.07 39.3 1019.0 63.62 464.7
32.72 69.75 1009.6 49.35 437.99
18.23 58.96 1015.55 69.61 459.12
35.56 68.94 1006.56 38.75 429.69
18.36 51.43 1010.57 90.17 459.8
26.35 64.05 1009.81 81.24 433.63
25.92 60.95 1014.62 48.46 442.84
8.01 41.66 1014.49 76.72 485.13
19.63 52.72 1025.09 51.16 459.12
20.02 67.32 1012.05 76.34 445.31
10.08 40.72 1022.7 67.3 480.8
27.23 66.48 1005.23 52.38 432.55
23.37 63.77 1013.42 76.44 443.86
18.74 59.21 1018.3 91.55 449.77
14.81 43.69 1017.19 71.9 470.71
23.1 51.3 1011.93 80.05 452.17
10.72 41.38 1021.6 63.77 478.29
29.46 71.94 1006.96 62.26 428.54
8.1 40.64 1020.66 89.04 478.27
27.29 62.66 1007.63 58.02 439.58
17.1 49.69 1005.53 81.82 457.32
11.49 44.2 1018.79 91.14 475.51
23.69 65.59 1010.85 88.92 439.66
13.51 40.89 1011.03 84.83 471.99
9.64 39.35 1015.1 91.76 479.81
25.65 78.92 1010.83 86.56 434.78
21.59 61.87 1011.18 57.21 446.58
27.98 58.33 1013.92 54.25 437.76
18.8 39.72 1001.24 63.8 459.36
18.28 44.71 1016.99 33.71 462.28
13.55 43.48 1016.08 67.25 464.33
22.99 46.21 1010.71 60.11 444.36
23.94 59.39 1014.32 74.55 438.64
13.74 34.03 1018.69 67.34 470.49
21.3 41.1 1001.86 42.75 455.13
27.54 66.93 1017.06 55.2 450.22
24.81 63.73 1009.34 83.61 440.43
4.97 42.85 1014.02 88.78 482.98
15.22 50.88 1014.19 100.12 460.44
23.88 54.2 1012.81 64.52 444.97
33.01 68.67 1005.2 51.41 433.94
25.98 73.18 1012.28 85.78 439.73
28.18 73.88 1005.89 75.41 434.48
21.67 60.84 1017.93 81.63 442.33
17.67 45.09 1014.26 51.92 457.67
21.37 57.76 1018.8 70.12 454.66
28.69 67.25 1017.71 53.83 432.21
16.61 43.77 1012.25 77.23 457.66
27.91 63.76 1010.27 65.67 435.21
20.97 47.43 1007.64 71.18 448.22
10.8 41.66 1013.79 81.96 475.51
20.61 62.91 1013.24 79.54 446.53
25.45 57.32 1011.7 47.09 441.3
30.16 69.34 1007.67 57.69 433.54
4.99 39.04 1020.45 78.89 472.52
10.51 44.78 1012.59 85.29 474.77
33.79 69.05 1001.62 40.13 435.1
21.34 59.8 1016.92 77.06 450.74
23.4 65.06 1014.32 67.38 442.7
32.21 68.14 1003.34 62.44 426.56
14.26 42.32 1016.0 77.43 463.71
27.71 66.93 1016.85 58.77 447.06
21.95 57.76 1018.02 67.72 452.27
25.76 63.94 1018.49 42.14 445.78
23.68 68.3 1017.93 84.16 438.65
8.28 40.77 1011.55 89.79 480.15
23.44 62.52 1016.46 67.21 447.19
25.32 48.41 1008.47 72.14 443.04
3.94 39.9 1008.06 97.49 488.81
17.3 57.76 1016.26 87.74 455.75
18.2 49.39 1018.83 96.3 455.86
21.43 46.97 1013.94 61.25 457.68
11.16 40.05 1014.95 88.38 479.11
30.38 74.16 1007.44 74.77 432.84
23.36 62.52 1016.18 68.18 448.37
21.69 47.45 1007.56 77.2 447.06
23.62 49.21 1014.1 49.54 443.53
21.87 61.45 1011.13 92.22 445.21
29.25 66.51 1015.53 33.65 441.7
20.03 66.86 1013.05 64.59 450.93
18.14 49.78 1002.95 100.09 451.44
24.23 56.89 1012.32 68.04 441.29
18.11 44.85 1014.48 48.94 458.85
6.57 43.65 1018.24 74.47 481.46
12.56 43.41 1016.93 81.02 467.19
13.4 41.58 1020.5 71.17 461.54
27.1 52.84 1006.28 53.85 439.08
14.28 42.74 1028.79 70.67 467.22
16.29 44.34 1019.49 59.36 468.8
31.24 71.98 1004.66 57.17 426.93
10.57 37.73 1024.36 70.29 474.65
13.8 44.21 1022.93 83.37 468.97
25.3 71.58 1010.18 87.36 433.97
18.06 50.16 1009.52 100.09 450.53
25.42 59.04 1011.98 68.78 444.51
15.07 40.69 1015.29 70.98 469.03
11.75 71.14 1019.36 75.68 466.56
20.23 52.05 1012.15 47.49 457.57
27.31 59.54 1006.24 71.99 440.13
28.57 69.84 1003.57 66.55 433.24
17.9 43.72 1008.64 74.73 452.55
23.83 71.37 1002.04 64.78 443.29
27.92 74.99 1005.47 75.13 431.76
17.34 44.78 1007.81 56.38 454.97
17.94 63.07 1012.42 94.35 456.7
6.4 39.9 1007.75 86.55 486.03
11.78 39.96 1011.37 82.95 472.79
20.28 57.25 1010.12 88.42 452.03
21.04 54.2 1012.26 85.61 443.41
25.11 67.32 1014.49 58.39 441.93
30.28 70.98 1007.51 74.28 432.64
8.14 36.24 1013.15 87.85 480.25
16.86 39.63 1004.47 83.5 466.68
6.25 40.07 1020.19 65.24 494.39
22.35 54.42 1012.46 75.01 454.72
17.98 56.85 1012.28 84.52 448.71
21.19 42.48 1013.43 80.52 469.76
20.94 44.89 1009.64 75.14 450.71
24.23 58.79 1009.8 75.75 444.01
19.18 58.2 1017.46 76.72 453.2
20.88 57.85 1012.39 85.47 450.87
23.67 63.86 1019.67 57.95 441.73
14.12 39.52 1018.41 78.32 465.09
25.23 64.63 1020.59 52.2 447.28
6.54 39.33 1011.54 93.69 491.16
20.08 62.52 1017.99 75.74 450.98
24.67 63.56 1013.75 67.56 446.3
27.82 79.74 1008.37 69.46 436.48
15.55 42.03 1017.41 74.58 460.84
24.26 69.51 1013.43 53.23 442.56
13.45 41.49 1020.19 88.72 467.3
11.06 40.64 1021.47 96.16 479.13
24.91 52.3 1008.72 68.26 441.15
22.39 59.04 1011.78 86.39 445.52
11.95 40.69 1015.62 85.34 475.4
14.85 40.69 1014.91 72.64 469.3
10.11 41.62 1017.17 97.82 463.57
23.67 68.67 1006.71 77.22 445.32
16.14 44.21 1020.36 80.59 461.03
15.11 43.13 1014.99 46.91 466.74
24.14 59.87 1018.47 57.76 444.04
30.08 67.25 1017.6 53.09 434.01
14.77 44.9 1020.5 84.31 465.23
27.6 69.34 1009.63 71.58 440.6
13.89 44.84 1023.66 92.97 466.74
26.85 75.6 1017.43 74.55 433.48
12.41 40.96 1023.36 78.96 473.59
13.08 41.74 1020.75 64.44 474.81
18.93 44.06 1017.58 68.23 454.75
20.5 49.69 1009.6 70.81 452.94
30.72 69.13 1009.94 61.66 435.83
7.55 39.22 1014.53 77.76 482.19
13.49 44.47 1030.46 69.49 466.66
15.62 40.12 1013.03 96.26 462.59
24.8 64.63 1020.69 55.74 447.82
10.03 41.62 1014.55 95.61 462.73
22.43 63.21 1012.06 84.75 447.98
14.95 39.31 1009.15 75.3 462.72
24.78 58.46 1016.82 67.5 442.42
23.2 48.41 1008.64 80.92 444.69
14.01 39.0 1016.73 79.23 466.7
19.4 64.63 1020.38 81.1 453.84
30.15 67.32 1013.83 32.8 436.92
6.91 36.08 1021.82 84.31 486.37
29.04 60.07 1015.42 46.15 440.43
26.02 63.07 1010.94 53.96 446.82
5.89 39.48 1005.11 59.83 484.91
26.52 71.64 1008.27 75.3 437.76
28.53 68.08 1013.27 42.53 438.91
16.59 39.54 1007.97 70.58 464.19
22.95 67.79 1009.89 91.69 442.19
23.96 47.43 1008.38 63.55 446.86
17.48 44.2 1018.89 61.51 457.15
6.69 43.65 1020.14 69.55 482.57
10.25 41.26 1007.44 98.08 476.03
28.87 72.58 1008.69 79.34 428.89
12.04 40.23 1018.07 81.28 472.7
22.58 52.3 1009.04 78.99 445.6
15.12 52.05 1014.63 80.38 464.78
25.48 58.95 1017.02 51.16 440.42
27.87 70.79 1003.96 72.17 428.41
23.72 70.47 1010.65 75.39 438.5
25.0 59.43 1007.84 68.91 438.28
8.42 40.64 1022.35 96.38 476.29
22.46 58.49 1011.5 70.54 448.46
29.92 57.19 1008.62 45.8 438.99
11.68 39.22 1017.9 57.95 471.8
14.04 42.44 1012.74 81.89 471.81
19.86 59.14 1016.12 69.32 449.82
25.99 68.08 1013.13 59.14 442.14
23.42 58.79 1009.74 81.54 441.46
10.6 40.22 1011.37 85.81 477.62
20.97 61.87 1011.45 65.41 446.76
14.14 39.82 1012.46 81.15 472.52
8.56 40.71 1021.27 95.87 471.58
24.86 72.39 1001.15 90.24 440.85
29.0 77.54 1011.33 75.13 431.37
27.59 71.97 1008.64 88.22 437.33
10.45 40.71 1015.68 81.48 469.22
8.51 40.78 1023.51 89.84 471.11
29.82 66.51 1010.98 43.57 439.17
22.56 62.26 1012.11 63.16 445.33
11.38 39.22 1018.62 57.14 473.71
20.25 57.76 1016.28 77.76 452.66
22.42 59.43 1007.12 90.56 440.99
14.85 38.91 1014.48 60.98 467.42
25.62 58.82 1010.02 70.31 444.14
19.85 56.53 1020.57 74.05 457.17
13.67 54.3 1015.92 75.42 467.87
24.39 70.72 1009.78 82.25 442.04
16.07 44.58 1019.52 67.95 471.36
11.6 39.1 1009.81 100.09 460.7
31.38 70.83 1010.35 47.28 431.33
29.91 76.86 998.59 72.41 432.6
19.67 59.39 1014.07 77.67 447.61
27.18 64.79 1016.27 63.7 443.87
21.39 52.3 1009.2 79.77 446.87
10.45 41.01 1020.57 93.84 465.74
19.46 56.89 1014.02 84.95 447.86
23.55 62.96 1020.16 70.16 447.65
23.35 63.47 1011.78 84.24 437.87
9.26 41.66 1016.87 73.32 483.51
10.3 41.46 1018.21 86.17 479.65
20.94 58.16 1016.88 65.43 455.16
23.13 71.25 1002.49 94.59 431.91
12.77 41.5 1014.13 86.8 470.68
28.29 69.13 1009.29 58.18 429.28
19.13 59.21 1018.32 89.66 450.81
24.44 73.5 1011.49 87.39 437.73
20.32 44.6 1015.16 36.35 460.21
20.54 69.05 1001.6 79.62 442.86
12.16 45.0 1021.51 50.52 482.99
28.09 65.27 1013.27 51.96 440.0
9.25 41.82 1033.25 74.73 478.48
21.75 49.82 1015.01 78.33 455.28
23.7 66.56 1002.07 85.19 436.94
16.22 37.87 1022.36 83.13 461.06
24.75 69.45 1013.97 53.49 438.28
10.48 39.58 1011.81 88.86 472.61
29.53 70.79 1003.7 60.89 426.85
12.59 39.72 1017.76 61.14 470.18
23.5 54.42 1012.31 68.29 455.38
29.01 66.56 1006.44 57.62 428.32
9.75 42.49 1010.57 83.63 480.35
19.55 56.53 1020.2 78.1 455.56
21.05 58.33 1013.14 66.34 447.66
24.72 68.67 1006.74 79.02 443.06
21.19 58.86 1014.19 68.96 452.43
10.77 41.54 1019.94 71.13 477.81
28.68 73.77 1004.72 87.01 431.66
29.87 73.91 1004.53 74.3 431.8
22.99 68.67 1006.65 77.62 446.67
24.66 60.29 1018.0 59.56 445.26
32.63 69.89 1013.85 41.66 425.72
31.38 72.29 1008.73 73.27 430.58
23.87 60.27 1018.94 77.16 439.86
25.6 59.15 1013.31 67.02 441.11
27.62 71.14 1011.6 52.8 434.72
30.1 67.45 1014.23 39.04 434.01
12.19 41.17 1019.43 65.47 475.64
13.11 41.58 1020.43 74.32 460.44
28.29 68.67 1005.46 69.22 436.4
13.45 40.73 1018.7 93.88 461.03
10.98 41.54 1019.94 69.83 479.08
26.48 69.14 1009.31 84.11 435.76
13.07 45.51 1015.22 78.65 460.14
25.56 75.6 1017.37 69.31 442.2
22.68 50.78 1008.83 70.3 447.69
28.86 73.67 1006.65 68.23 431.15
22.7 63.56 1014.32 71.76 445.0
27.89 73.21 1001.32 85.88 431.59
13.78 44.47 1027.94 71.09 467.22
28.14 51.43 1012.16 52.67 445.33
11.8 45.09 1013.21 89.68 470.57
10.71 39.61 1018.72 73.66 473.77
24.54 60.29 1017.42 58.94 447.67
11.54 40.05 1014.78 87.05 474.29
29.47 71.32 1008.07 67.0 437.14
29.24 69.05 1003.12 43.18 432.56
14.51 41.79 1009.72 80.62 459.14
22.91 60.07 1016.03 59.72 446.19
27.02 71.77 1006.38 72.1 428.1
13.49 44.47 1030.18 69.15 468.46
30.24 66.75 1017.95 55.66 435.02
23.19 48.6 1002.38 61.19 445.52
17.73 40.55 1003.36 74.62 462.69
18.62 61.27 1019.26 73.35 455.75
12.85 40.0 1015.89 68.85 463.74
32.33 69.68 1011.95 39.89 439.79
25.09 58.95 1016.99 53.16 443.26
29.45 69.13 1009.3 52.97 432.04
16.91 43.96 1013.32 79.87 465.86
14.09 45.87 1009.05 84.09 465.6
10.73 25.36 1009.35 100.15 469.43
23.2 49.3 1003.4 79.77 440.75
8.21 38.91 1015.82 88.99 481.32
9.3 40.56 1022.64 76.14 479.87
16.97 39.16 1005.7 69.13 458.59
23.69 71.97 1009.62 93.03 438.62
25.13 59.44 1012.38 77.92 445.59
9.86 43.56 1015.13 74.89 481.87
11.33 41.5 1013.58 88.7 475.01
26.95 48.41 1008.53 62.94 436.54
15.0 40.66 1016.28 89.62 456.63
20.76 62.52 1015.63 81.04 451.69
14.29 39.59 1010.93 94.53 463.04
19.74 67.71 1007.68 64.02 446.1
26.68 59.92 1009.94 70.57 438.67
14.24 41.4 1019.7 70.32 466.88
21.98 48.41 1008.42 84.86 444.6
22.75 59.39 1015.4 81.41 440.26
8.34 40.96 1023.28 89.45 483.92
11.8 41.2 1017.18 82.71 475.19
8.81 44.68 1023.06 93.93 479.24
30.05 73.68 1014.95 70.6 434.92
16.01 65.46 1014.0 87.68 454.16
21.75 58.79 1012.42 87.58 447.58
13.94 41.26 1021.67 74.4 467.9
29.25 69.13 1010.27 67.35 426.29
22.33 45.87 1007.8 63.61 447.02
16.43 41.79 1005.47 76.89 455.85
11.5 40.22 1010.31 78.08 476.46
23.53 68.94 1007.53 69.17 437.48
21.86 49.21 1014.61 53.31 452.77
6.17 39.33 1012.57 93.32 491.54
30.19 64.79 1017.22 42.47 438.41
11.67 41.93 1019.81 82.58 476.1
15.34 36.99 1007.87 94.59 464.58
11.5 40.78 1023.91 86.31 467.74
25.53 57.17 1010.0 72.57 442.12
21.27 57.5 1014.53 80.76 453.34
28.37 69.13 1010.44 71.93 425.29
28.39 51.43 1011.74 47.54 449.63
13.78 45.78 1025.27 95.72 462.88
14.6 42.32 1015.71 77.03 464.67
5.1 35.57 1027.17 80.49 489.96
7.0 38.08 1020.27 77.67 482.38
26.3 77.95 1009.45 78.72 437.95
30.56 71.98 1004.74 58.77 429.2
21.09 46.63 1013.03 74.8 453.34
28.21 70.02 1010.58 51.34 442.47
15.84 49.69 1015.14 90.41 462.6
10.03 40.96 1024.57 91.1 478.79
20.37 52.05 1012.34 62.57 456.11
21.19 50.16 1005.81 84.27 450.33
33.73 69.88 1007.21 42.93 434.83
29.87 73.68 1015.1 40.96 433.43
19.62 62.96 1020.76 76.53 456.02
9.93 40.67 1018.08 69.74 485.23
9.43 37.14 1013.03 74.99 473.57
14.24 39.58 1011.17 70.45 469.94
12.97 49.83 1008.69 91.49 452.07
7.6 41.04 1021.82 88.97 475.32
8.39 36.24 1013.39 89.13 480.69
25.41 48.06 1013.12 46.52 444.01
18.43 56.03 1020.41 60.55 465.17
10.31 39.82 1012.87 88.71 480.61
11.29 41.5 1013.39 89.15 476.04
22.61 49.3 1003.51 83.02 441.76
29.34 71.98 1005.19 75.19 428.24
18.87 67.71 1004.0 87.35 444.77
13.21 45.87 1008.58 85.66 463.1
11.3 44.6 1018.19 91.66 470.5
29.23 72.99 1007.04 63.47 431.0
27.76 69.4 1004.27 72.25 430.68
29.26 67.17 1006.6 70.58 436.42
25.72 49.82 1016.19 60.1 452.33
23.43 63.94 1010.64 89.29 440.16
25.6 63.76 1010.18 67.43 435.75
22.3 44.57 1008.48 67.58 449.74
27.91 72.24 1010.74 70.8 430.73
30.35 77.17 1009.55 63.62 432.75
21.78 47.43 1007.88 66.68 446.79
7.19 41.39 1018.12 90.76 486.35
20.88 59.8 1015.66 75.34 453.18
24.19 50.23 1015.73 59.77 458.31
9.98 41.54 1019.7 80.79 480.26
23.47 51.3 1011.89 74.1 448.65
26.35 49.5 1012.67 41.34 458.41
29.89 64.69 1006.37 58.78 435.39
19.29 50.16 1010.49 97.78 450.21
17.48 43.14 1018.68 74.85 459.59
25.21 75.6 1017.19 69.84 445.84
23.3 48.78 1018.17 75.36 441.08
15.42 37.85 1009.89 85.8 467.33
21.44 63.09 1016.56 90.11 444.19
29.45 68.27 1007.96 61.63 432.96
29.69 47.93 1002.85 44.76 438.09
15.52 36.99 1006.86 89.7 467.9
11.47 43.67 1012.68 72.51 475.72
9.77 34.69 1027.72 74.98 477.51
22.6 69.84 1006.37 79.59 435.13
8.24 39.61 1017.99 78.42 477.9
17.01 44.2 1019.18 61.23 457.26
19.64 44.6 1015.88 47.56 467.53
10.61 41.58 1021.08 93.06 465.15
12.04 40.1 1014.42 89.65 474.28
29.19 65.71 1013.85 50.5 444.49
21.75 45.09 1014.15 44.84 452.84
23.66 77.54 1008.5 85.32 435.38
27.05 75.33 1003.88 82.94 433.57
29.63 69.71 1009.04 67.26 435.27
18.2 39.63 1005.35 79.05 468.49
32.22 70.8 1009.9 62.03 433.07
26.88 73.56 1004.85 94.36 430.63
29.05 65.74 1013.29 60.02 440.74
8.9 39.96 1026.31 95.46 474.49
18.93 48.6 1005.72 84.92 449.74
27.49 63.76 1010.09 62.8 436.73
23.1 70.79 1006.53 90.81 434.58
11.22 43.13 1017.24 80.9 473.93
31.97 79.74 1007.03 55.84 435.99
13.32 43.22 1009.45 75.3 466.83
31.68 68.24 1005.29 37.34 427.22
23.69 63.77 1013.39 79.5 444.07
13.83 41.49 1020.11 87.29 469.57
18.32 66.51 1015.18 81.5 459.89
11.05 40.71 1024.91 76.42 479.59
22.03 64.69 1007.21 75.75 440.92
10.23 41.46 1020.45 84.95 480.87
23.92 66.54 1009.93 62.37 441.9
29.38 69.68 1011.35 49.25 430.2
17.35 42.86 1014.62 74.16 465.16
9.81 44.45 1021.19 90.55 471.32
4.97 40.64 1020.91 94.28 485.43
5.15 40.07 1012.27 63.31 495.35
21.54 58.49 1010.85 78.9 449.12
7.94 42.02 1006.22 90.97 480.53
18.77 50.66 1014.89 87.34 457.07
21.69 69.94 1010.7 80.8 443.67
10.07 44.68 1023.44 90.95 477.52
13.83 39.64 1012.52 69.97 472.95
10.45 39.69 1003.92 89.45 472.54
11.56 40.71 1015.85 76.08 469.17
23.64 70.04 1011.09 83.35 435.21
10.48 40.22 1004.81 92.16 477.78
13.09 39.85 1012.86 58.42 475.89
10.67 40.23 1017.75 85.06 483.9
12.57 39.16 1016.53 88.91 476.2
14.45 43.34 1015.47 83.33 462.16
14.22 37.85 1011.24 88.49 471.05
6.97 41.26 1010.6 96.88 484.71
20.61 63.86 1015.43 73.86 446.34
14.67 42.28 1007.21 65.17 469.02
29.06 72.86 1004.23 69.41 432.12
14.38 40.1 1015.51 81.23 467.28
32.51 69.98 1013.29 54.07 429.66
11.79 45.09 1013.16 89.17 469.49
8.65 40.56 1023.23 78.85 485.87
9.75 40.81 1026.0 84.44 481.95
9.11 40.02 1031.1 83.02 479.03
23.39 69.13 1010.99 90.66 434.5
14.3 54.3 1015.16 75.29 464.9
17.49 63.94 1020.02 82.6 452.71
31.1 69.51 1010.84 45.4 429.74
19.77 56.65 1020.67 66.33 457.09
28.61 72.29 1011.61 45.33 446.77
13.52 41.48 1014.46 67.12 460.76
13.52 40.83 1008.31 84.14 471.95
17.57 46.21 1014.09 80.81 453.29
28.18 60.07 1016.34 49.13 441.61
14.29 46.18 1017.01 87.29 464.73
18.12 43.69 1016.91 52.95 464.68
31.27 73.91 1003.72 68.92 430.59
26.24 77.95 1014.19 85.21 438.01
7.44 41.04 1021.84 88.56 479.08
29.78 74.78 1009.28 55.09 436.39
23.37 65.46 1016.25 48.64 447.07
10.62 39.58 1011.9 87.85 479.91
5.84 43.02 1013.88 87.42 489.05
14.51 53.82 1016.46 62.75 463.17
11.31 42.02 1001.18 94.86 471.26
11.25 40.67 1011.64 63.54 480.49
9.18 39.42 1025.41 69.46 473.78
19.82 58.16 1016.76 74.66 455.5
24.77 58.41 1013.78 80.57 446.27
9.66 41.06 1021.21 84.7 482.2
21.96 59.8 1016.72 72.6 452.48
18.59 43.14 1011.92 52.63 464.48
24.75 69.89 1015.29 82.01 438.1
24.37 63.47 1012.77 75.22 445.6
29.6 67.79 1010.37 51.05 442.43
25.32 61.25 1011.56 80.1 436.67
16.15 41.85 1016.54 81.58 466.56
15.74 71.14 1019.65 65.94 457.29
5.97 36.25 1029.65 86.74 487.03
15.84 52.72 1026.45 62.57 464.93
14.84 44.63 1019.28 57.37 466.0
12.25 48.79 1017.44 88.91 469.52
27.38 70.04 1011.18 72.26 428.88
8.76 41.48 1018.49 74.98 474.3
15.54 39.31 1009.69 71.19 461.06
18.71 39.39 1014.09 62.82 465.57
13.06 41.78 1012.3 55.31 467.67
12.72 40.71 1016.02 71.57 466.99
19.83 39.39 1013.73 59.16 463.72
27.23 49.16 1004.03 40.8 443.78
24.27 68.28 1005.43 67.63 445.23
11.8 40.66 1017.13 97.2 464.43
6.76 36.25 1028.31 91.16 484.36
25.99 63.07 1012.5 64.81 442.16
16.3 39.63 1004.64 85.61 464.11
16.5 49.39 1018.35 93.42 462.48
10.59 42.49 1009.59 77.36 477.49
26.05 65.59 1012.78 67.03 437.04
19.5 40.79 1003.8 89.45 457.09
22.21 45.01 1012.22 54.84 450.6
17.86 45.0 1023.25 53.48 465.78
29.96 70.04 1010.15 54.47 427.1
19.08 44.63 1020.14 43.36 459.81
23.59 47.43 1006.64 48.92 447.36
3.38 39.64 1011.0 81.22 488.92
26.39 66.49 1012.96 60.35 433.36
8.99 39.04 1021.99 75.98 483.35
10.91 41.04 1026.57 74.24 469.53
13.08 39.82 1012.27 85.21 476.96
23.95 58.46 1017.5 68.46 440.75
15.64 43.71 1024.51 78.31 462.55
18.78 54.2 1012.05 89.25 448.04
20.65 50.59 1016.22 68.57 455.24
4.96 40.07 1011.8 67.38 494.75
23.51 57.32 1012.55 53.6 444.58
5.99 35.79 1011.56 91.69 484.82
23.65 66.05 1019.6 78.21 442.9
5.17 39.33 1009.68 94.19 485.46
26.38 49.5 1012.82 37.19 457.81
6.02 43.65 1013.85 83.53 481.92
23.2 61.02 1009.63 79.45 443.23
8.57 39.69 1000.91 99.9 474.29
30.72 71.58 1009.98 50.39 430.46
21.52 50.66 1013.56 74.33 455.71
22.93 62.26 1011.25 83.66 438.34
5.71 41.31 1003.24 89.48 485.83
18.62 44.06 1017.76 64.59 452.82
27.88 68.94 1007.68 75.68 435.04
22.32 59.8 1016.82 64.18 451.21
14.55 42.74 1028.41 70.09 465.81
17.83 44.92 1025.04 70.58 458.42
9.68 39.96 1026.09 99.28 470.22
19.41 49.39 1020.84 81.89 449.24
13.22 44.92 1023.84 87.99 471.43
12.24 44.92 1023.74 88.21 473.26
19.21 58.49 1011.7 91.29 452.82
29.74 70.32 1008.1 52.72 432.69
23.28 60.84 1017.91 67.5 444.13
8.02 41.92 1029.8 92.05 467.21
22.47 48.6 1002.33 63.23 445.98
27.51 73.77 1002.42 90.88 436.91
17.51 44.9 1009.05 74.91 455.01
23.22 66.56 1002.47 85.39 437.11
11.73 40.64 1020.68 96.98 477.06
21.19 67.71 1006.65 56.28 441.71
5.48 40.07 1019.63 65.62 495.76
24.26 66.44 1011.33 55.32 445.63
12.32 41.62 1012.88 88.88 464.72
31.26 68.94 1005.94 39.49 438.03
32.09 72.86 1003.47 54.59 434.78
24.98 60.32 1015.63 57.19 444.67
27.48 61.41 1012.2 45.06 452.24
21.04 45.09 1014.19 40.62 450.92
27.75 70.4 1006.65 90.21 436.53
22.79 71.77 1005.75 90.91 435.53
24.22 68.51 1013.23 74.96 440.01
27.06 64.45 1008.72 54.21 443.1
29.25 71.94 1007.18 63.62 427.49
26.86 68.08 1012.99 50.04 436.25
29.64 67.79 1009.99 51.23 440.74
19.92 63.31 1015.02 82.71 443.54
18.5 51.43 1010.82 92.04 459.42
23.71 60.23 1009.76 90.67 439.66
14.39 44.84 1023.55 91.14 464.15
19.3 56.65 1020.55 70.43 459.1
24.65 52.36 1014.76 66.63 455.68
13.5 45.51 1015.33 86.95 469.08
9.82 41.26 1007.71 96.69 478.02
18.4 44.06 1017.36 70.88 456.8
28.12 44.89 1009.18 47.14 441.13
17.15 43.69 1017.05 63.36 463.88
30.69 73.67 1006.14 60.58 430.45
28.82 65.71 1014.24 54.3 449.18
21.3 48.92 1010.92 65.09 447.89
30.58 70.04 1010.4 48.16 431.59
21.17 52.3 1009.36 81.51 447.5
9.87 41.82 1033.04 68.57 475.58
22.18 59.8 1016.77 73.16 453.24
24.39 63.21 1012.59 80.88 446.4
10.73 44.92 1025.1 85.4 476.81
9.38 40.46 1019.29 75.77 474.1
20.27 57.76 1016.66 75.76 450.71
24.82 66.48 1006.4 70.21 433.62
16.55 41.66 1011.45 55.53 465.14
20.73 59.87 1019.08 80.48 445.18
9.51 39.22 1015.3 72.41 474.12
8.63 43.79 1016.08 83.25 483.91
6.48 40.27 1010.55 82.12 486.68
14.95 43.52 1022.43 94.75 464.98
5.76 45.87 1010.83 95.79 481.4
10.94 39.04 1021.81 86.02 479.2
15.87 41.16 1005.85 78.29 463.86
12.42 38.25 1012.76 82.23 472.3
29.12 58.84 1001.31 52.86 446.51
29.12 51.43 1005.93 60.66 437.71
19.08 41.1 1001.96 62.77 458.94
31.06 67.17 1007.62 65.54 437.91
5.72 39.33 1009.96 95.4 490.76
26.52 65.06 1013.4 51.78 439.66
13.84 44.9 1007.58 63.62 463.27
13.03 39.52 1016.68 83.09 473.99
25.94 66.49 1012.83 61.81 433.38
16.64 53.82 1015.13 68.24 459.01
14.13 40.75 1016.05 72.41 471.44
13.65 39.28 1012.97 79.64 471.91
14.5 44.47 1028.2 66.95 465.15
19.8 51.19 1008.25 91.98 446.66
25.2 63.76 1009.78 64.96 438.15
20.66 51.19 1008.81 88.93 447.14
12.07 43.71 1025.53 85.62 472.32
25.64 70.72 1010.16 84.0 441.68
23.33 72.99 1009.33 89.41 440.04
29.41 64.05 1009.82 67.4 444.82
16.6 53.16 1014.5 76.75 457.26
27.53 72.58 1009.13 89.06 428.83
20.62 43.43 1009.93 64.02 449.07
26.02 71.94 1009.38 64.12 435.21
12.75 44.2 1017.59 81.22 471.03
12.87 48.04 1012.47 100.13 465.56
25.77 62.96 1019.86 58.07 442.83
14.84 41.48 1017.26 63.42 460.3
7.41 40.71 1023.07 83.32 474.25
8.87 41.82 1033.3 74.28 477.97
9.69 40.46 1019.1 71.91 472.16
16.17 46.97 1014.22 85.8 456.08
26.24 49.82 1014.9 55.58 452.41
13.78 43.22 1011.31 69.7 463.71
26.3 67.07 1006.26 63.79 433.72
17.37 57.76 1016.0 86.59 456.4
23.6 48.98 1015.41 48.28 448.43
8.3 36.08 1020.63 80.42 481.6
18.86 42.18 1001.16 98.58 457.07
22.12 49.39 1019.8 72.83 451.0
28.41 75.6 1018.48 56.07 440.28
29.42 71.32 1002.26 67.13 437.47
18.61 67.71 1004.07 84.49 443.57
27.57 69.84 1004.91 68.37 426.6
12.83 41.5 1013.12 86.07 470.87
9.64 39.85 1012.9 83.82 478.37
19.13 58.66 1013.32 74.86 453.92
15.92 40.56 1020.79 53.52 470.22
24.64 72.24 1011.37 80.61 434.54
27.62 63.9 1013.11 43.56 442.89
8.9 36.24 1013.29 89.35 479.03
9.55 43.99 1020.5 97.28 476.06
10.57 36.71 1022.62 80.49 473.88
19.8 57.25 1010.84 88.9 451.75
25.63 56.85 1012.68 49.7 439.2
24.7 58.46 1015.58 68.64 439.7
15.26 46.18 1013.68 98.58 463.6
20.06 52.84 1004.21 82.12 447.47
19.84 56.89 1013.23 78.32 447.92
11.49 44.63 1020.44 86.04 471.08
23.74 72.43 1007.99 91.36 437.55
22.62 51.3 1012.36 81.02 448.27
29.53 72.39 998.47 76.05 431.69
21.32 48.14 1016.57 71.81 449.09
20.3 58.46 1015.93 82.13 448.79
16.97 44.92 1025.21 74.27 460.21
12.07 41.17 1013.54 71.32 479.28
7.46 41.82 1032.67 74.59 483.11
19.2 54.2 1011.46 84.44 450.75
28.64 66.54 1010.43 43.39 437.97
13.56 41.48 1008.53 87.2 459.76
17.4 44.9 1020.5 77.11 457.75
14.08 40.1 1015.48 82.81 469.33
27.11 69.75 1009.74 85.67 433.28
20.92 70.02 1010.23 95.58 444.64
16.18 44.9 1021.3 74.46 463.1
15.57 44.68 1022.01 90.02 460.91
10.37 39.04 1023.95 81.93 479.35
19.6 59.21 1017.65 86.29 449.23
9.22 40.92 1021.83 85.43 474.51
27.76 72.99 1007.81 71.66 435.02
28.68 70.72 1009.43 71.33 435.45
20.95 48.14 1013.3 67.72 452.38
9.06 39.3 1019.73 84.23 480.41
9.21 39.72 1019.54 74.44 478.96
13.65 42.74 1026.58 71.48 468.87
31.79 76.2 1007.89 56.3 434.01
14.32 44.6 1013.85 68.13 466.36
26.28 75.23 1011.44 68.35 435.28
7.69 43.02 1014.51 85.23 486.46
14.44 40.1 1015.51 79.78 468.19
9.19 41.01 1022.14 98.98 468.37
13.35 41.39 1019.17 72.87 474.19
23.04 74.22 1009.52 90.93 440.32
4.83 38.44 1015.35 72.94 485.32
17.29 42.86 1014.38 72.3 464.27
8.73 36.18 1013.66 77.74 479.25
26.21 70.32 1007.0 78.29 430.4
23.72 58.62 1016.65 69.1 447.49
29.27 64.69 1006.85 55.79 438.23
10.4 40.43 1025.46 75.09 492.09
12.19 40.75 1015.13 88.98 475.36
20.4 54.9 1016.68 64.26 452.56
34.3 74.67 1015.98 25.89 427.84
27.56 68.08 1010.8 59.18 433.95
30.9 70.8 1008.48 67.48 435.27
14.85 58.59 1014.04 89.85 454.62
16.42 40.56 1020.36 50.62 472.17
16.45 63.31 1015.96 83.97 452.42
10.14 42.02 1003.19 96.51 472.17
9.53 41.44 1018.01 80.09 481.83
17.01 49.15 1021.83 84.02 458.78
23.94 62.08 1022.47 61.97 447.5
15.95 49.25 1019.04 88.51 463.4
11.15 41.26 1022.67 81.83 473.57
25.56 70.32 1009.07 90.63 433.72
27.16 66.44 1011.2 73.37 431.85
26.71 77.95 1012.13 77.5 433.47
29.56 74.22 1007.45 57.46 432.84
31.19 70.94 1007.29 51.91 436.6
6.86 41.17 1020.12 79.14 490.23
12.36 41.74 1020.58 69.24 477.16
32.82 68.31 1010.44 41.85 441.06
25.3 70.98 1007.22 95.1 440.86
8.71 41.82 1033.08 74.53 477.94
13.34 40.8 1026.56 64.85 474.47
14.2 43.02 1012.18 57.07 470.67
23.74 65.34 1013.7 62.9 447.31
16.9 44.88 1018.14 72.21 466.8
28.54 71.94 1007.4 65.99 430.91
30.15 69.88 1007.2 73.67 434.75
14.33 42.86 1010.82 88.59 469.52
25.57 59.43 1008.88 61.19 438.9
30.55 70.04 1010.51 49.37 429.56
28.04 74.33 1013.53 48.65 432.92
26.39 49.16 1005.68 56.18 442.87
15.3 41.76 1022.57 71.56 466.59
6.03 41.14 1028.04 87.46 479.61
13.49 44.63 1019.12 70.02 471.08
27.67 59.14 1016.51 61.2 433.37
24.19 65.48 1018.8 60.54 443.92
24.44 59.14 1016.74 71.82 443.5
29.86 64.79 1017.37 44.8 439.89
30.2 69.59 1008.9 67.32 434.66
7.99 41.38 1021.95 78.77 487.57
9.93 41.62 1013.76 96.02 464.64
11.03 42.32 1017.26 90.56 470.92
22.34 63.73 1014.37 83.19 444.39
25.33 48.6 1002.54 68.45 442.48
18.87 52.08 1005.25 99.19 449.61
25.97 69.34 1009.43 88.11 435.02
16.58 43.99 1021.81 79.29 458.67
14.35 46.18 1016.63 87.76 461.74
25.06 62.39 1008.09 82.56 438.31
13.85 48.92 1011.68 79.24 462.38
16.09 44.2 1019.39 67.24 460.56
26.34 59.21 1013.37 58.98 439.22
23.01 58.79 1009.71 84.22 444.64
26.39 71.25 999.8 89.12 430.34
31.32 71.29 1008.37 50.07 430.46
16.64 45.87 1009.02 98.86 456.79
13.42 41.23 994.17 95.79 468.82
20.06 44.9 1008.79 70.06 448.51
14.8 44.71 1014.67 41.71 470.77
12.59 41.14 1025.79 86.55 465.74
26.7 66.56 1005.31 71.97 430.21
19.78 50.32 1008.62 96.4 449.23
15.17 49.15 1021.91 91.73 461.89
21.71 61.45 1010.97 91.62 445.72
19.09 39.39 1013.36 59.14 466.13
19.76 51.19 1008.38 92.56 448.71
14.68 41.23 998.43 83.71 469.25
21.3 66.86 1013.04 55.43 450.56
16.73 39.64 1008.94 74.91 464.46
12.26 41.5 1014.87 89.41 471.13
14.77 48.06 1010.92 69.81 461.52
18.26 59.15 1012.04 86.01 451.09
27.1 79.74 1005.43 86.05 431.51
14.72 40.83 1009.65 80.98 469.8
26.3 51.43 1012.05 63.62 442.28
16.48 48.92 1011.84 64.16 458.67
17.99 43.79 1016.13 75.63 462.4
20.34 59.8 1015.18 80.21 453.54
25.53 62.96 1019.81 59.7 444.38
31.59 58.9 1003.39 47.6 440.52
30.8 69.14 1007.68 63.78 433.62
10.75 45.0 1023.68 89.37 481.96
19.3 44.9 1008.89 70.55 452.75
4.71 39.42 1026.4 84.42 481.28
23.1 66.05 1020.28 80.62 439.03
32.63 73.88 1005.64 52.56 435.75
26.63 74.16 1009.72 83.26 436.03
24.35 58.49 1011.03 70.64 445.6
15.11 56.03 1020.27 89.95 462.65
29.1 50.05 1005.87 51.53 438.66
21.24 50.32 1008.54 84.83 447.32
6.16 39.48 1004.85 59.68 484.55
7.36 41.01 1024.9 97.88 476.8
10.44 39.04 1023.99 85.03 480.34
26.76 48.41 1010.53 47.38 440.63
16.79 44.6 1014.27 48.08 459.48
10.76 40.43 1025.98 79.65 490.78
6.07 38.91 1019.25 83.39 483.56
27.33 73.18 1012.26 82.18 429.38
27.15 59.21 1013.49 51.71 440.27
22.35 51.43 1011.34 77.33 445.34
21.82 65.27 1013.86 72.81 447.43
21.11 69.94 1004.37 84.26 439.91
19.95 50.59 1016.11 73.23 459.27
7.45 39.61 1017.88 79.73 478.89
15.36 41.66 1012.41 62.32 466.7
15.65 43.5 1021.39 78.58 463.5
25.31 74.33 1015.04 79.88 436.21
25.88 63.47 1011.95 65.87 443.94
24.6 63.94 1012.87 80.28 439.63
22.58 41.54 1013.21 71.33 460.95
19.69 59.14 1015.99 70.33 448.69
25.85 75.08 1006.24 57.73 444.63
10.06 37.83 1005.49 99.46 473.51
18.59 39.54 1008.56 68.61 462.56
18.27 50.16 1011.07 95.91 451.76
8.85 40.43 1025.68 80.42 491.81
30.04 68.08 1011.04 51.01 429.52
26.06 49.02 1007.59 74.08 437.9
14.8 38.73 1003.18 80.73 467.54
23.93 64.45 1015.35 54.71 449.97
23.72 66.48 1003.61 73.75 436.62
11.44 40.55 1023.37 88.43 477.68
20.28 63.86 1016.04 74.66 447.26
27.9 63.13 1011.8 70.04 439.76
24.74 59.39 1015.23 74.64 437.49
14.8 58.2 1018.29 85.11 455.14
8.22 41.03 1021.76 82.97 485.5
27.56 66.93 1016.81 55.59 444.1
32.07 70.94 1006.91 49.9 432.33
9.53 44.03 1008.87 89.99 471.23
13.61 42.34 1017.93 91.61 463.89
22.2 51.19 1009.2 82.95 445.54
21.36 59.54 1007.99 92.62 446.09
23.25 63.86 1017.82 59.64 445.12
23.5 59.21 1018.29 63.0 443.31
8.46 39.66 1015.14 85.38 484.16
8.19 40.69 1019.86 85.23 477.76
30.67 71.29 1008.36 52.08 430.28
32.48 62.04 1010.39 38.05 446.48
8.99 36.66 1028.11 71.98 481.03
13.77 47.83 1007.41 90.66 466.07
19.05 67.32 1013.2 83.14 447.47
21.19 55.5 1019.83 65.22 455.93
10.12 40.0 1021.15 91.67 479.62
24.93 47.01 1014.28 66.04 455.06
8.47 40.46 1019.87 78.19 475.06
24.52 56.85 1012.59 54.47 438.89
28.55 69.84 1003.38 67.26 432.7
20.58 50.9 1011.89 72.56 452.6
18.31 46.21 1010.46 82.15 451.75
27.18 71.06 1008.16 86.32 430.66
4.43 38.91 1019.04 88.17 491.9
26.02 74.78 1010.04 72.78 439.82
15.75 39.0 1015.91 69.58 460.73
22.99 60.95 1015.14 69.86 449.7
25.52 59.15 1013.88 65.37 439.42
27.04 65.06 1013.33 52.37 439.84
6.42 35.57 1025.58 79.63 485.86
17.04 40.12 1011.81 83.14 458.1
10.79 39.82 1012.89 88.25 479.92
20.41 56.03 1019.94 55.85 458.29
7.36 40.07 1017.29 52.55 489.45
28.08 73.42 1012.17 62.74 434.0
24.74 69.13 1010.69 90.08 431.24
28.32 47.93 1003.26 54.5 439.5
16.71 40.56 1019.48 49.88 467.46
30.7 71.58 1010.0 48.96 429.27
18.42 58.95 1016.95 86.77 452.1
10.62 42.02 999.83 96.66 472.41
22.18 69.05 1002.75 70.84 442.14
22.38 49.3 1003.56 83.83 441.0
13.94 41.58 1020.76 68.22 463.07
21.24 60.84 1017.99 82.22 445.71
6.76 39.81 1017.11 87.9 483.16
26.73 68.84 1010.75 66.83 440.45
7.24 38.06 1020.6 85.36 481.83
10.84 40.62 1015.53 60.9 467.6
19.32 52.84 1004.29 83.51 450.88
29.0 69.13 1001.22 52.96 425.5
23.38 54.42 1013.95 73.02 451.87
31.17 69.51 1010.51 43.11 428.94
26.17 48.6 1002.59 61.41 439.86
30.9 73.42 1011.21 65.32 433.44
24.92 73.68 1015.12 93.68 438.23
32.77 71.32 1007.68 42.39 436.95
14.37 40.56 1021.67 68.18 470.19
8.36 40.22 1011.6 89.18 484.66
31.45 68.27 1007.56 64.79 430.81
31.6 73.17 1010.05 43.48 433.37
17.9 48.98 1014.17 80.4 453.02
20.35 50.9 1012.6 72.43 453.5
16.21 41.23 995.88 80.0 463.09
19.36 44.6 1016.25 45.65 464.56
21.04 65.46 1017.22 63.02 452.12
14.05 40.69 1015.66 74.39 470.9
23.48 64.15 1021.08 57.77 450.89
21.91 63.76 1009.85 76.8 445.04
24.42 63.07 1011.49 67.39 444.72
14.26 40.92 1022.07 73.96 460.38
21.38 58.33 1013.05 72.75 446.8
15.71 44.06 1018.34 71.69 465.05
5.78 40.62 1016.55 84.98 484.13
6.77 39.81 1017.01 87.68 488.27
23.84 49.21 1013.85 50.36 447.09
21.17 58.16 1017.16 68.11 452.02
19.94 58.96 1014.16 66.27 455.55
8.73 41.92 1029.41 89.72 480.99
16.39 41.67 1012.96 61.07 467.68
col_name data_type comment
AT double null
V double null
AP double null
RH double null
PE double null
summary AT V AP RH PE
count 9568 9568 9568 9568 9568
mean 19.65123118729102 54.30580372073601 1013.2590781772603 73.30897784280926 454.3650094063554
stddev 7.4524732296110825 12.707892998326784 5.938783705811581 14.600268756728964 17.066994999803402
min 1.81 25.36 992.89 25.56 420.26
max 37.11 81.56 1033.3 100.16 495.76
Temperature Power
14.96 463.26
25.18 444.37
5.11 488.56
20.86 446.48
10.82 473.9
26.27 443.67
15.89 467.35
9.48 478.42
14.64 475.98
11.74 477.5
17.99 453.02
20.14 453.99
24.34 440.29
25.71 451.28
26.19 433.99
21.42 462.19
18.21 467.54
11.04 477.2
14.45 459.85
13.97 464.3
17.76 468.27
5.41 495.24
7.76 483.8
27.23 443.61
27.36 436.06
27.47 443.25
14.6 464.16
7.91 475.52
5.81 484.41
30.53 437.89
23.87 445.11
26.09 438.86
29.27 440.98
27.38 436.65
24.81 444.26
12.75 465.86
24.66 444.37
16.38 450.69
13.91 469.02
23.18 448.86
22.47 447.14
13.39 469.18
9.28 482.8
11.82 476.7
10.27 474.99
22.92 444.22
16.0 461.33
21.22 448.06
13.46 474.6
9.39 473.05
31.07 432.06
12.82 467.41
32.57 430.12
8.11 473.62
13.92 471.81
23.04 442.99
27.31 442.77
5.91 491.49
25.26 447.46
27.97 446.11
26.08 442.44
29.01 446.22
12.18 471.49
13.76 463.5
25.5 440.01
28.26 441.03
21.39 452.68
7.26 474.91
10.54 478.77
27.71 434.2
23.11 437.91
7.51 477.61
26.46 431.65
29.34 430.57
10.32 481.09
22.74 445.56
13.48 475.74
25.52 435.12
21.58 446.15
27.66 436.64
26.96 436.69
12.29 468.75
15.86 466.6
13.87 465.48
24.09 441.34
20.45 441.83
15.07 464.7
32.72 437.99
18.23 459.12
35.56 429.69
18.36 459.8
26.35 433.63
25.92 442.84
8.01 485.13
19.63 459.12
20.02 445.31
10.08 480.8
27.23 432.55
23.37 443.86
18.74 449.77
14.81 470.71
23.1 452.17
10.72 478.29
29.46 428.54
8.1 478.27
27.29 439.58
17.1 457.32
11.49 475.51
23.69 439.66
13.51 471.99
9.64 479.81
25.65 434.78
21.59 446.58
27.98 437.76
18.8 459.36
18.28 462.28
13.55 464.33
22.99 444.36
23.94 438.64
13.74 470.49
21.3 455.13
27.54 450.22
24.81 440.43
4.97 482.98
15.22 460.44
23.88 444.97
33.01 433.94
25.98 439.73
28.18 434.48
21.67 442.33
17.67 457.67
21.37 454.66
28.69 432.21
16.61 457.66
27.91 435.21
20.97 448.22
10.8 475.51
20.61 446.53
25.45 441.3
30.16 433.54
4.99 472.52
10.51 474.77
33.79 435.1
21.34 450.74
23.4 442.7
32.21 426.56
14.26 463.71
27.71 447.06
21.95 452.27
25.76 445.78
23.68 438.65
8.28 480.15
23.44 447.19
25.32 443.04
3.94 488.81
17.3 455.75
18.2 455.86
21.43 457.68
11.16 479.11
30.38 432.84
23.36 448.37
21.69 447.06
23.62 443.53
21.87 445.21
29.25 441.7
20.03 450.93
18.14 451.44
24.23 441.29
18.11 458.85
6.57 481.46
12.56 467.19
13.4 461.54
27.1 439.08
14.28 467.22
16.29 468.8
31.24 426.93
10.57 474.65
13.8 468.97
25.3 433.97
18.06 450.53
25.42 444.51
15.07 469.03
11.75 466.56
20.23 457.57
27.31 440.13
28.57 433.24
17.9 452.55
23.83 443.29
27.92 431.76
17.34 454.97
17.94 456.7
6.4 486.03
11.78 472.79
20.28 452.03
21.04 443.41
25.11 441.93
30.28 432.64
8.14 480.25
16.86 466.68
6.25 494.39
22.35 454.72
17.98 448.71
21.19 469.76
20.94 450.71
24.23 444.01
19.18 453.2
20.88 450.87
23.67 441.73
14.12 465.09
25.23 447.28
6.54 491.16
20.08 450.98
24.67 446.3
27.82 436.48
15.55 460.84
24.26 442.56
13.45 467.3
11.06 479.13
24.91 441.15
22.39 445.52
11.95 475.4
14.85 469.3
10.11 463.57
23.67 445.32
16.14 461.03
15.11 466.74
24.14 444.04
30.08 434.01
14.77 465.23
27.6 440.6
13.89 466.74
26.85 433.48
12.41 473.59
13.08 474.81
18.93 454.75
20.5 452.94
30.72 435.83
7.55 482.19
13.49 466.66
15.62 462.59
24.8 447.82
10.03 462.73
22.43 447.98
14.95 462.72
24.78 442.42
23.2 444.69
14.01 466.7
19.4 453.84
30.15 436.92
6.91 486.37
29.04 440.43
26.02 446.82
5.89 484.91
26.52 437.76
28.53 438.91
16.59 464.19
22.95 442.19
23.96 446.86
17.48 457.15
6.69 482.57
10.25 476.03
28.87 428.89
12.04 472.7
22.58 445.6
15.12 464.78
25.48 440.42
27.87 428.41
23.72 438.5
25.0 438.28
8.42 476.29
22.46 448.46
29.92 438.99
11.68 471.8
14.04 471.81
19.86 449.82
25.99 442.14
23.42 441.46
10.6 477.62
20.97 446.76
14.14 472.52
8.56 471.58
24.86 440.85
29.0 431.37
27.59 437.33
10.45 469.22
8.51 471.11
29.82 439.17
22.56 445.33
11.38 473.71
20.25 452.66
22.42 440.99
14.85 467.42
25.62 444.14
19.85 457.17
13.67 467.87
24.39 442.04
16.07 471.36
11.6 460.7
31.38 431.33
29.91 432.6
19.67 447.61
27.18 443.87
21.39 446.87
10.45 465.74
19.46 447.86
23.55 447.65
23.35 437.87
9.26 483.51
10.3 479.65
20.94 455.16
23.13 431.91
12.77 470.68
28.29 429.28
19.13 450.81
24.44 437.73
20.32 460.21
20.54 442.86
12.16 482.99
28.09 440.0
9.25 478.48
21.75 455.28
23.7 436.94
16.22 461.06
24.75 438.28
10.48 472.61
29.53 426.85
12.59 470.18
23.5 455.38
29.01 428.32
9.75 480.35
19.55 455.56
21.05 447.66
24.72 443.06
21.19 452.43
10.77 477.81
28.68 431.66
29.87 431.8
22.99 446.67
24.66 445.26
32.63 425.72
31.38 430.58
23.87 439.86
25.6 441.11
27.62 434.72
30.1 434.01
12.19 475.64
13.11 460.44
28.29 436.4
13.45 461.03
10.98 479.08
26.48 435.76
13.07 460.14
25.56 442.2
22.68 447.69
28.86 431.15
22.7 445.0
27.89 431.59
13.78 467.22
28.14 445.33
11.8 470.57
10.71 473.77
24.54 447.67
11.54 474.29
29.47 437.14
29.24 432.56
14.51 459.14
22.91 446.19
27.02 428.1
13.49 468.46
30.24 435.02
23.19 445.52
17.73 462.69
18.62 455.75
12.85 463.74
32.33 439.79
25.09 443.26
29.45 432.04
16.91 465.86
14.09 465.6
10.73 469.43
23.2 440.75
8.21 481.32
9.3 479.87
16.97 458.59
23.69 438.62
25.13 445.59
9.86 481.87
11.33 475.01
26.95 436.54
15.0 456.63
20.76 451.69
14.29 463.04
19.74 446.1
26.68 438.67
14.24 466.88
21.98 444.6
22.75 440.26
8.34 483.92
11.8 475.19
8.81 479.24
30.05 434.92
16.01 454.16
21.75 447.58
13.94 467.9
29.25 426.29
22.33 447.02
16.43 455.85
11.5 476.46
23.53 437.48
21.86 452.77
6.17 491.54
30.19 438.41
11.67 476.1
15.34 464.58
11.5 467.74
25.53 442.12
21.27 453.34
28.37 425.29
28.39 449.63
13.78 462.88
14.6 464.67
5.1 489.96
7.0 482.38
26.3 437.95
30.56 429.2
21.09 453.34
28.21 442.47
15.84 462.6
10.03 478.79
20.37 456.11
21.19 450.33
33.73 434.83
29.87 433.43
19.62 456.02
9.93 485.23
9.43 473.57
14.24 469.94
12.97 452.07
7.6 475.32
8.39 480.69
25.41 444.01
18.43 465.17
10.31 480.61
11.29 476.04
22.61 441.76
29.34 428.24
18.87 444.77
13.21 463.1
11.3 470.5
29.23 431.0
27.76 430.68
29.26 436.42
25.72 452.33
23.43 440.16
25.6 435.75
22.3 449.74
27.91 430.73
30.35 432.75
21.78 446.79
7.19 486.35
20.88 453.18
24.19 458.31
9.98 480.26
23.47 448.65
26.35 458.41
29.89 435.39
19.29 450.21
17.48 459.59
25.21 445.84
23.3 441.08
15.42 467.33
21.44 444.19
29.45 432.96
29.69 438.09
15.52 467.9
11.47 475.72
9.77 477.51
22.6 435.13
8.24 477.9
17.01 457.26
19.64 467.53
10.61 465.15
12.04 474.28
29.19 444.49
21.75 452.84
23.66 435.38
27.05 433.57
29.63 435.27
18.2 468.49
32.22 433.07
26.88 430.63
29.05 440.74
8.9 474.49
18.93 449.74
27.49 436.73
23.1 434.58
11.22 473.93
31.97 435.99
13.32 466.83
31.68 427.22
23.69 444.07
13.83 469.57
18.32 459.89
11.05 479.59
22.03 440.92
10.23 480.87
23.92 441.9
29.38 430.2
17.35 465.16
9.81 471.32
4.97 485.43
5.15 495.35
21.54 449.12
7.94 480.53
18.77 457.07
21.69 443.67
10.07 477.52
13.83 472.95
10.45 472.54
11.56 469.17
23.64 435.21
10.48 477.78
13.09 475.89
10.67 483.9
12.57 476.2
14.45 462.16
14.22 471.05
6.97 484.71
20.61 446.34
14.67 469.02
29.06 432.12
14.38 467.28
32.51 429.66
11.79 469.49
8.65 485.87
9.75 481.95
9.11 479.03
23.39 434.5
14.3 464.9
17.49 452.71
31.1 429.74
19.77 457.09
28.61 446.77
13.52 460.76
13.52 471.95
17.57 453.29
28.18 441.61
14.29 464.73
18.12 464.68
31.27 430.59
26.24 438.01
7.44 479.08
29.78 436.39
23.37 447.07
10.62 479.91
5.84 489.05
14.51 463.17
11.31 471.26
11.25 480.49
9.18 473.78
19.82 455.5
24.77 446.27
9.66 482.2
21.96 452.48
18.59 464.48
24.75 438.1
24.37 445.6
29.6 442.43
25.32 436.67
16.15 466.56
15.74 457.29
5.97 487.03
15.84 464.93
14.84 466.0
12.25 469.52
27.38 428.88
8.76 474.3
15.54 461.06
18.71 465.57
13.06 467.67
12.72 466.99
19.83 463.72
27.23 443.78
24.27 445.23
11.8 464.43
6.76 484.36
25.99 442.16
16.3 464.11
16.5 462.48
10.59 477.49
26.05 437.04
19.5 457.09
22.21 450.6
17.86 465.78
29.96 427.1
19.08 459.81
23.59 447.36
3.38 488.92
26.39 433.36
8.99 483.35
10.91 469.53
13.08 476.96
23.95 440.75
15.64 462.55
18.78 448.04
20.65 455.24
4.96 494.75
23.51 444.58
5.99 484.82
23.65 442.9
5.17 485.46
26.38 457.81
6.02 481.92
23.2 443.23
8.57 474.29
30.72 430.46
21.52 455.71
22.93 438.34
5.71 485.83
18.62 452.82
27.88 435.04
22.32 451.21
14.55 465.81
17.83 458.42
9.68 470.22
19.41 449.24
13.22 471.43
12.24 473.26
19.21 452.82
29.74 432.69
23.28 444.13
8.02 467.21
22.47 445.98
27.51 436.91
17.51 455.01
23.22 437.11
11.73 477.06
21.19 441.71
5.48 495.76
24.26 445.63
12.32 464.72
31.26 438.03
32.09 434.78
24.98 444.67
27.48 452.24
21.04 450.92
27.75 436.53
22.79 435.53
24.22 440.01
27.06 443.1
29.25 427.49
26.86 436.25
29.64 440.74
19.92 443.54
18.5 459.42
23.71 439.66
14.39 464.15
19.3 459.1
24.65 455.68
13.5 469.08
9.82 478.02
18.4 456.8
28.12 441.13
17.15 463.88
30.69 430.45
28.82 449.18
21.3 447.89
30.58 431.59
21.17 447.5
9.87 475.58
22.18 453.24
24.39 446.4
10.73 476.81
9.38 474.1
20.27 450.71
24.82 433.62
16.55 465.14
20.73 445.18
9.51 474.12
8.63 483.91
6.48 486.68
14.95 464.98
5.76 481.4
10.94 479.2
15.87 463.86
12.42 472.3
29.12 446.51
29.12 437.71
19.08 458.94
31.06 437.91
5.72 490.76
26.52 439.66
13.84 463.27
13.03 473.99
25.94 433.38
16.64 459.01
14.13 471.44
13.65 471.91
14.5 465.15
19.8 446.66
25.2 438.15
20.66 447.14
12.07 472.32
25.64 441.68
23.33 440.04
29.41 444.82
16.6 457.26
27.53 428.83
20.62 449.07
26.02 435.21
12.75 471.03
12.87 465.56
25.77 442.83
14.84 460.3
7.41 474.25
8.87 477.97
9.69 472.16
16.17 456.08
26.24 452.41
13.78 463.71
26.3 433.72
17.37 456.4
23.6 448.43
8.3 481.6
18.86 457.07
22.12 451.0
28.41 440.28
29.42 437.47
18.61 443.57
27.57 426.6
12.83 470.87
9.64 478.37
19.13 453.92
15.92 470.22
24.64 434.54
27.62 442.89
8.9 479.03
9.55 476.06
10.57 473.88
19.8 451.75
25.63 439.2
24.7 439.7
15.26 463.6
20.06 447.47
19.84 447.92
11.49 471.08
23.74 437.55
22.62 448.27
29.53 431.69
21.32 449.09
20.3 448.79
16.97 460.21
12.07 479.28
7.46 483.11
19.2 450.75
28.64 437.97
13.56 459.76
17.4 457.75
14.08 469.33
27.11 433.28
20.92 444.64
16.18 463.1
15.57 460.91
10.37 479.35
19.6 449.23
9.22 474.51
27.76 435.02
28.68 435.45
20.95 452.38
9.06 480.41
9.21 478.96
13.65 468.87
31.79 434.01
14.32 466.36
26.28 435.28
7.69 486.46
14.44 468.19
9.19 468.37
13.35 474.19
23.04 440.32
4.83 485.32
17.29 464.27
8.73 479.25
26.21 430.4
23.72 447.49
29.27 438.23
10.4 492.09
12.19 475.36
20.4 452.56
34.3 427.84
27.56 433.95
30.9 435.27
14.85 454.62
16.42 472.17
16.45 452.42
10.14 472.17
9.53 481.83
17.01 458.78
23.94 447.5
15.95 463.4
11.15 473.57
25.56 433.72
27.16 431.85
26.71 433.47
29.56 432.84
31.19 436.6
6.86 490.23
12.36 477.16
32.82 441.06
25.3 440.86
8.71 477.94
13.34 474.47
14.2 470.67
23.74 447.31
16.9 466.8
28.54 430.91
30.15 434.75
14.33 469.52
25.57 438.9
30.55 429.56
28.04 432.92
26.39 442.87
15.3 466.59
6.03 479.61
13.49 471.08
27.67 433.37
24.19 443.92
24.44 443.5
29.86 439.89
30.2 434.66
7.99 487.57
9.93 464.64
11.03 470.92
22.34 444.39
25.33 442.48
18.87 449.61
25.97 435.02
16.58 458.67
14.35 461.74
25.06 438.31
13.85 462.38
16.09 460.56
26.34 439.22
23.01 444.64
26.39 430.34
31.32 430.46
16.64 456.79
13.42 468.82
20.06 448.51
14.8 470.77
12.59 465.74
26.7 430.21
19.78 449.23
15.17 461.89
21.71 445.72
19.09 466.13
19.76 448.71
14.68 469.25
21.3 450.56
16.73 464.46
12.26 471.13
14.77 461.52
18.26 451.09
27.1 431.51
14.72 469.8
26.3 442.28
16.48 458.67
17.99 462.4
20.34 453.54
25.53 444.38
31.59 440.52
30.8 433.62
10.75 481.96
19.3 452.75
4.71 481.28
23.1 439.03
32.63 435.75
26.63 436.03
24.35 445.6
15.11 462.65
29.1 438.66
21.24 447.32
6.16 484.55
7.36 476.8
10.44 480.34
26.76 440.63
16.79 459.48
10.76 490.78
6.07 483.56
27.33 429.38
27.15 440.27
22.35 445.34
21.82 447.43
21.11 439.91
19.95 459.27
7.45 478.89
15.36 466.7
15.65 463.5
25.31 436.21
25.88 443.94
24.6 439.63
22.58 460.95
19.69 448.69
25.85 444.63
10.06 473.51
18.59 462.56
18.27 451.76
8.85 491.81
30.04 429.52
26.06 437.9
14.8 467.54
23.93 449.97
23.72 436.62
11.44 477.68
20.28 447.26
27.9 439.76
24.74 437.49
14.8 455.14
8.22 485.5
27.56 444.1
32.07 432.33
9.53 471.23
13.61 463.89
22.2 445.54
21.36 446.09
23.25 445.12
23.5 443.31
8.46 484.16
8.19 477.76
30.67 430.28
32.48 446.48
8.99 481.03
13.77 466.07
19.05 447.47
21.19 455.93
10.12 479.62
24.93 455.06
8.47 475.06
24.52 438.89
28.55 432.7
20.58 452.6
18.31 451.75
27.18 430.66
4.43 491.9
26.02 439.82
15.75 460.73
22.99 449.7
25.52 439.42
27.04 439.84
6.42 485.86
17.04 458.1
10.79 479.92
20.41 458.29
7.36 489.45
28.08 434.0
24.74 431.24
28.32 439.5
16.71 467.46
30.7 429.27
18.42 452.1
10.62 472.41
22.18 442.14
22.38 441.0
13.94 463.07
21.24 445.71
6.76 483.16
26.73 440.45
7.24 481.83
10.84 467.6
19.32 450.88
29.0 425.5
23.38 451.87
31.17 428.94
26.17 439.86
30.9 433.44
24.92 438.23
32.77 436.95
14.37 470.19
8.36 484.66
31.45 430.81
31.6 433.37
17.9 453.02
20.35 453.5
16.21 463.09
19.36 464.56
21.04 452.12
14.05 470.9
23.48 450.89
21.91 445.04
24.42 444.72
14.26 460.38
21.38 446.8
15.71 465.05
5.78 484.13
6.77 488.27
23.84 447.09
21.17 452.02
19.94 455.55
8.73 480.99
16.39 467.68
ExhaustVaccum Power
41.76 463.26
62.96 444.37
39.4 488.56
57.32 446.48
37.5 473.9
59.44 443.67
43.96 467.35
44.71 478.42
45.0 475.98
43.56 477.5
43.72 453.02
46.93 453.99
73.5 440.29
58.59 451.28
69.34 433.99
43.79 462.19
45.0 467.54
41.74 477.2
52.75 459.85
38.47 464.3
42.42 468.27
40.07 495.24
42.28 483.8
63.9 443.61
48.6 436.06
70.72 443.25
39.31 464.16
39.96 475.52
35.79 484.41
65.18 437.89
63.94 445.11
58.41 438.86
66.85 440.98
74.16 436.65
63.94 444.26
44.03 465.86
63.73 444.37
47.45 450.69
39.35 469.02
51.3 448.86
47.45 447.14
44.85 469.18
41.54 482.8
42.86 476.7
40.64 474.99
63.94 444.22
37.87 461.33
43.43 448.06
44.71 474.6
40.11 473.05
73.5 432.06
38.62 467.41
78.92 430.12
42.18 473.62
39.39 471.81
59.43 442.99
64.44 442.77
39.33 491.49
61.08 447.46
58.84 446.11
52.3 442.44
65.71 446.22
40.1 471.49
45.87 463.5
58.79 440.01
65.34 441.03
62.96 452.68
40.69 474.91
34.03 478.77
74.34 434.2
68.3 437.91
41.01 477.61
74.67 431.65
74.34 430.57
42.28 481.09
61.02 445.56
39.85 475.74
69.75 435.12
67.25 446.15
76.86 436.64
69.45 436.69
42.18 468.75
43.02 466.6
45.08 465.48
73.68 441.34
69.45 441.83
39.3 464.7
69.75 437.99
58.96 459.12
68.94 429.69
51.43 459.8
64.05 433.63
60.95 442.84
41.66 485.13
52.72 459.12
67.32 445.31
40.72 480.8
66.48 432.55
63.77 443.86
59.21 449.77
43.69 470.71
51.3 452.17
41.38 478.29
71.94 428.54
40.64 478.27
62.66 439.58
49.69 457.32
44.2 475.51
65.59 439.66
40.89 471.99
39.35 479.81
78.92 434.78
61.87 446.58
58.33 437.76
39.72 459.36
44.71 462.28
43.48 464.33
46.21 444.36
59.39 438.64
34.03 470.49
41.1 455.13
66.93 450.22
63.73 440.43
42.85 482.98
50.88 460.44
54.2 444.97
68.67 433.94
73.18 439.73
73.88 434.48
60.84 442.33
45.09 457.67
57.76 454.66
67.25 432.21
43.77 457.66
63.76 435.21
47.43 448.22
41.66 475.51
62.91 446.53
57.32 441.3
69.34 433.54
39.04 472.52
44.78 474.77
69.05 435.1
59.8 450.74
65.06 442.7
68.14 426.56
42.32 463.71
66.93 447.06
57.76 452.27
63.94 445.78
68.3 438.65
40.77 480.15
62.52 447.19
48.41 443.04
39.9 488.81
57.76 455.75
49.39 455.86
46.97 457.68
40.05 479.11
74.16 432.84
62.52 448.37
47.45 447.06
49.21 443.53
61.45 445.21
66.51 441.7
66.86 450.93
49.78 451.44
56.89 441.29
44.85 458.85
43.65 481.46
43.41 467.19
41.58 461.54
52.84 439.08
42.74 467.22
44.34 468.8
71.98 426.93
37.73 474.65
44.21 468.97
71.58 433.97
50.16 450.53
59.04 444.51
40.69 469.03
71.14 466.56
52.05 457.57
59.54 440.13
69.84 433.24
43.72 452.55
71.37 443.29
74.99 431.76
44.78 454.97
63.07 456.7
39.9 486.03
39.96 472.79
57.25 452.03
54.2 443.41
67.32 441.93
70.98 432.64
36.24 480.25
39.63 466.68
40.07 494.39
54.42 454.72
56.85 448.71
42.48 469.76
44.89 450.71
58.79 444.01
58.2 453.2
57.85 450.87
63.86 441.73
39.52 465.09
64.63 447.28
39.33 491.16
62.52 450.98
63.56 446.3
79.74 436.48
42.03 460.84
69.51 442.56
41.49 467.3
40.64 479.13
52.3 441.15
59.04 445.52
40.69 475.4
40.69 469.3
41.62 463.57
68.67 445.32
44.21 461.03
43.13 466.74
59.87 444.04
67.25 434.01
44.9 465.23
69.34 440.6
44.84 466.74
75.6 433.48
40.96 473.59
41.74 474.81
44.06 454.75
49.69 452.94
69.13 435.83
39.22 482.19
44.47 466.66
40.12 462.59
64.63 447.82
41.62 462.73
63.21 447.98
39.31 462.72
58.46 442.42
48.41 444.69
39.0 466.7
64.63 453.84
67.32 436.92
36.08 486.37
60.07 440.43
63.07 446.82
39.48 484.91
71.64 437.76
68.08 438.91
39.54 464.19
67.79 442.19
47.43 446.86
44.2 457.15
43.65 482.57
41.26 476.03
72.58 428.89
40.23 472.7
52.3 445.6
52.05 464.78
58.95 440.42
70.79 428.41
70.47 438.5
59.43 438.28
40.64 476.29
58.49 448.46
57.19 438.99
39.22 471.8
42.44 471.81
59.14 449.82
68.08 442.14
58.79 441.46
40.22 477.62
61.87 446.76
39.82 472.52
40.71 471.58
72.39 440.85
77.54 431.37
71.97 437.33
40.71 469.22
40.78 471.11
66.51 439.17
62.26 445.33
39.22 473.71
57.76 452.66
59.43 440.99
38.91 467.42
58.82 444.14
56.53 457.17
54.3 467.87
70.72 442.04
44.58 471.36
39.1 460.7
70.83 431.33
76.86 432.6
59.39 447.61
64.79 443.87
52.3 446.87
41.01 465.74
56.89 447.86
62.96 447.65
63.47 437.87
41.66 483.51
41.46 479.65
58.16 455.16
71.25 431.91
41.5 470.68
69.13 429.28
59.21 450.81
73.5 437.73
44.6 460.21
69.05 442.86
45.0 482.99
65.27 440.0
41.82 478.48
49.82 455.28
66.56 436.94
37.87 461.06
69.45 438.28
39.58 472.61
70.79 426.85
39.72 470.18
54.42 455.38
66.56 428.32
42.49 480.35
56.53 455.56
58.33 447.66
68.67 443.06
58.86 452.43
41.54 477.81
73.77 431.66
73.91 431.8
68.67 446.67
60.29 445.26
69.89 425.72
72.29 430.58
60.27 439.86
59.15 441.11
71.14 434.72
67.45 434.01
41.17 475.64
41.58 460.44
68.67 436.4
40.73 461.03
41.54 479.08
69.14 435.76
45.51 460.14
75.6 442.2
50.78 447.69
73.67 431.15
63.56 445.0
73.21 431.59
44.47 467.22
51.43 445.33
45.09 470.57
39.61 473.77
60.29 447.67
40.05 474.29
71.32 437.14
69.05 432.56
41.79 459.14
60.07 446.19
71.77 428.1
44.47 468.46
66.75 435.02
48.6 445.52
40.55 462.69
61.27 455.75
40.0 463.74
69.68 439.79
58.95 443.26
69.13 432.04
43.96 465.86
45.87 465.6
25.36 469.43
49.3 440.75
38.91 481.32
40.56 479.87
39.16 458.59
71.97 438.62
59.44 445.59
43.56 481.87
41.5 475.01
48.41 436.54
40.66 456.63
62.52 451.69
39.59 463.04
67.71 446.1
59.92 438.67
41.4 466.88
48.41 444.6
59.39 440.26
40.96 483.92
41.2 475.19
44.68 479.24
73.68 434.92
65.46 454.16
58.79 447.58
41.26 467.9
69.13 426.29
45.87 447.02
41.79 455.85
40.22 476.46
68.94 437.48
49.21 452.77
39.33 491.54
64.79 438.41
41.93 476.1
36.99 464.58
40.78 467.74
57.17 442.12
57.5 453.34
69.13 425.29
51.43 449.63
45.78 462.88
42.32 464.67
35.57 489.96
38.08 482.38
77.95 437.95
71.98 429.2
46.63 453.34
70.02 442.47
49.69 462.6
40.96 478.79
52.05 456.11
50.16 450.33
69.88 434.83
73.68 433.43
62.96 456.02
40.67 485.23
37.14 473.57
39.58 469.94
49.83 452.07
41.04 475.32
36.24 480.69
48.06 444.01
56.03 465.17
39.82 480.61
41.5 476.04
49.3 441.76
71.98 428.24
67.71 444.77
45.87 463.1
44.6 470.5
72.99 431.0
69.4 430.68
67.17 436.42
49.82 452.33
63.94 440.16
63.76 435.75
44.57 449.74
72.24 430.73
77.17 432.75
47.43 446.79
41.39 486.35
59.8 453.18
50.23 458.31
41.54 480.26
51.3 448.65
49.5 458.41
64.69 435.39
50.16 450.21
43.14 459.59
75.6 445.84
48.78 441.08
37.85 467.33
63.09 444.19
68.27 432.96
47.93 438.09
36.99 467.9
43.67 475.72
34.69 477.51
69.84 435.13
39.61 477.9
44.2 457.26
44.6 467.53
41.58 465.15
40.1 474.28
65.71 444.49
45.09 452.84
77.54 435.38
75.33 433.57
69.71 435.27
39.63 468.49
70.8 433.07
73.56 430.63
65.74 440.74
39.96 474.49
48.6 449.74
63.76 436.73
70.79 434.58
43.13 473.93
79.74 435.99
43.22 466.83
68.24 427.22
63.77 444.07
41.49 469.57
66.51 459.89
40.71 479.59
64.69 440.92
41.46 480.87
66.54 441.9
69.68 430.2
42.86 465.16
44.45 471.32
40.64 485.43
40.07 495.35
58.49 449.12
42.02 480.53
50.66 457.07
69.94 443.67
44.68 477.52
39.64 472.95
39.69 472.54
40.71 469.17
70.04 435.21
40.22 477.78
39.85 475.89
40.23 483.9
39.16 476.2
43.34 462.16
37.85 471.05
41.26 484.71
63.86 446.34
42.28 469.02
72.86 432.12
40.1 467.28
69.98 429.66
45.09 469.49
40.56 485.87
40.81 481.95
40.02 479.03
69.13 434.5
54.3 464.9
63.94 452.71
69.51 429.74
56.65 457.09
72.29 446.77
41.48 460.76
40.83 471.95
46.21 453.29
60.07 441.61
46.18 464.73
43.69 464.68
73.91 430.59
77.95 438.01
41.04 479.08
74.78 436.39
65.46 447.07
39.58 479.91
43.02 489.05
53.82 463.17
42.02 471.26
40.67 480.49
39.42 473.78
58.16 455.5
58.41 446.27
41.06 482.2
59.8 452.48
43.14 464.48
69.89 438.1
63.47 445.6
67.79 442.43
61.25 436.67
41.85 466.56
71.14 457.29
36.25 487.03
52.72 464.93
44.63 466.0
48.79 469.52
70.04 428.88
41.48 474.3
39.31 461.06
39.39 465.57
41.78 467.67
40.71 466.99
39.39 463.72
49.16 443.78
68.28 445.23
40.66 464.43
36.25 484.36
63.07 442.16
39.63 464.11
49.39 462.48
42.49 477.49
65.59 437.04
40.79 457.09
45.01 450.6
45.0 465.78
70.04 427.1
44.63 459.81
47.43 447.36
39.64 488.92
66.49 433.36
39.04 483.35
41.04 469.53
39.82 476.96
58.46 440.75
43.71 462.55
54.2 448.04
50.59 455.24
40.07 494.75
57.32 444.58
35.79 484.82
66.05 442.9
39.33 485.46
49.5 457.81
43.65 481.92
61.02 443.23
39.69 474.29
71.58 430.46
50.66 455.71
62.26 438.34
41.31 485.83
44.06 452.82
68.94 435.04
59.8 451.21
42.74 465.81
44.92 458.42
39.96 470.22
49.39 449.24
44.92 471.43
44.92 473.26
58.49 452.82
70.32 432.69
60.84 444.13
41.92 467.21
48.6 445.98
73.77 436.91
44.9 455.01
66.56 437.11
40.64 477.06
67.71 441.71
40.07 495.76
66.44 445.63
41.62 464.72
68.94 438.03
72.86 434.78
60.32 444.67
61.41 452.24
45.09 450.92
70.4 436.53
71.77 435.53
68.51 440.01
64.45 443.1
71.94 427.49
68.08 436.25
67.79 440.74
63.31 443.54
51.43 459.42
60.23 439.66
44.84 464.15
56.65 459.1
52.36 455.68
45.51 469.08
41.26 478.02
44.06 456.8
44.89 441.13
43.69 463.88
73.67 430.45
65.71 449.18
48.92 447.89
70.04 431.59
52.3 447.5
41.82 475.58
59.8 453.24
63.21 446.4
44.92 476.81
40.46 474.1
57.76 450.71
66.48 433.62
41.66 465.14
59.87 445.18
39.22 474.12
43.79 483.91
40.27 486.68
43.52 464.98
45.87 481.4
39.04 479.2
41.16 463.86
38.25 472.3
58.84 446.51
51.43 437.71
41.1 458.94
67.17 437.91
39.33 490.76
65.06 439.66
44.9 463.27
39.52 473.99
66.49 433.38
53.82 459.01
40.75 471.44
39.28 471.91
44.47 465.15
51.19 446.66
63.76 438.15
51.19 447.14
43.71 472.32
70.72 441.68
72.99 440.04
64.05 444.82
53.16 457.26
72.58 428.83
43.43 449.07
71.94 435.21
44.2 471.03
48.04 465.56
62.96 442.83
41.48 460.3
40.71 474.25
41.82 477.97
40.46 472.16
46.97 456.08
49.82 452.41
43.22 463.71
67.07 433.72
57.76 456.4
48.98 448.43
36.08 481.6
42.18 457.07
49.39 451.0
75.6 440.28
71.32 437.47
67.71 443.57
69.84 426.6
41.5 470.87
39.85 478.37
58.66 453.92
40.56 470.22
72.24 434.54
63.9 442.89
36.24 479.03
43.99 476.06
36.71 473.88
57.25 451.75
56.85 439.2
58.46 439.7
46.18 463.6
52.84 447.47
56.89 447.92
44.63 471.08
72.43 437.55
51.3 448.27
72.39 431.69
48.14 449.09
58.46 448.79
44.92 460.21
41.17 479.28
41.82 483.11
54.2 450.75
66.54 437.97
41.48 459.76
44.9 457.75
40.1 469.33
69.75 433.28
70.02 444.64
44.9 463.1
44.68 460.91
39.04 479.35
59.21 449.23
40.92 474.51
72.99 435.02
70.72 435.45
48.14 452.38
39.3 480.41
39.72 478.96
42.74 468.87
76.2 434.01
44.6 466.36
75.23 435.28
43.02 486.46
40.1 468.19
41.01 468.37
41.39 474.19
74.22 440.32
38.44 485.32
42.86 464.27
36.18 479.25
70.32 430.4
58.62 447.49
64.69 438.23
40.43 492.09
40.75 475.36
54.9 452.56
74.67 427.84
68.08 433.95
70.8 435.27
58.59 454.62
40.56 472.17
63.31 452.42
42.02 472.17
41.44 481.83
49.15 458.78
62.08 447.5
49.25 463.4
41.26 473.57
70.32 433.72
66.44 431.85
77.95 433.47
74.22 432.84
70.94 436.6
41.17 490.23
41.74 477.16
68.31 441.06
70.98 440.86
41.82 477.94
40.8 474.47
43.02 470.67
65.34 447.31
44.88 466.8
71.94 430.91
69.88 434.75
42.86 469.52
59.43 438.9
70.04 429.56
74.33 432.92
49.16 442.87
41.76 466.59
41.14 479.61
44.63 471.08
59.14 433.37
65.48 443.92
59.14 443.5
64.79 439.89
69.59 434.66
41.38 487.57
41.62 464.64
42.32 470.92
63.73 444.39
48.6 442.48
52.08 449.61
69.34 435.02
43.99 458.67
46.18 461.74
62.39 438.31
48.92 462.38
44.2 460.56
59.21 439.22
58.79 444.64
71.25 430.34
71.29 430.46
45.87 456.79
41.23 468.82
44.9 448.51
44.71 470.77
41.14 465.74
66.56 430.21
50.32 449.23
49.15 461.89
61.45 445.72
39.39 466.13
51.19 448.71
41.23 469.25
66.86 450.56
39.64 464.46
41.5 471.13
48.06 461.52
59.15 451.09
79.74 431.51
40.83 469.8
51.43 442.28
48.92 458.67
43.79 462.4
59.8 453.54
62.96 444.38
58.9 440.52
69.14 433.62
45.0 481.96
44.9 452.75
39.42 481.28
66.05 439.03
73.88 435.75
74.16 436.03
58.49 445.6
56.03 462.65
50.05 438.66
50.32 447.32
39.48 484.55
41.01 476.8
39.04 480.34
48.41 440.63
44.6 459.48
40.43 490.78
38.91 483.56
73.18 429.38
59.21 440.27
51.43 445.34
65.27 447.43
69.94 439.91
50.59 459.27
39.61 478.89
41.66 466.7
43.5 463.5
74.33 436.21
63.47 443.94
63.94 439.63
41.54 460.95
59.14 448.69
75.08 444.63
37.83 473.51
39.54 462.56
50.16 451.76
40.43 491.81
68.08 429.52
49.02 437.9
38.73 467.54
64.45 449.97
66.48 436.62
40.55 477.68
63.86 447.26
63.13 439.76
59.39 437.49
58.2 455.14
41.03 485.5
66.93 444.1
70.94 432.33
44.03 471.23
42.34 463.89
51.19 445.54
59.54 446.09
63.86 445.12
59.21 443.31
39.66 484.16
40.69 477.76
71.29 430.28
62.04 446.48
36.66 481.03
47.83 466.07
67.32 447.47
55.5 455.93
40.0 479.62
47.01 455.06
40.46 475.06
56.85 438.89
69.84 432.7
50.9 452.6
46.21 451.75
71.06 430.66
38.91 491.9
74.78 439.82
39.0 460.73
60.95 449.7
59.15 439.42
65.06 439.84
35.57 485.86
40.12 458.1
39.82 479.92
56.03 458.29
40.07 489.45
73.42 434.0
69.13 431.24
47.93 439.5
40.56 467.46
71.58 429.27
58.95 452.1
42.02 472.41
69.05 442.14
49.3 441.0
41.58 463.07
60.84 445.71
39.81 483.16
68.84 440.45
38.06 481.83
40.62 467.6
52.84 450.88
69.13 425.5
54.42 451.87
69.51 428.94
48.6 439.86
73.42 433.44
73.68 438.23
71.32 436.95
40.56 470.19
40.22 484.66
68.27 430.81
73.17 433.37
48.98 453.02
50.9 453.5
41.23 463.09
44.6 464.56
65.46 452.12
40.69 470.9
64.15 450.89
63.76 445.04
63.07 444.72
40.92 460.38
58.33 446.8
44.06 465.05
40.62 484.13
39.81 488.27
49.21 447.09
58.16 452.02
58.96 455.55
41.92 480.99
41.67 467.68
Pressure Power
1024.07 463.26
1020.04 444.37
1012.16 488.56
1010.24 446.48
1009.23 473.9
1012.23 443.67
1014.02 467.35
1019.12 478.42
1021.78 475.98
1015.14 477.5
1008.64 453.02
1014.66 453.99
1011.31 440.29
1012.77 451.28
1009.48 433.99
1015.76 462.19
1022.86 467.54
1022.6 477.2
1023.97 459.85
1015.15 464.3
1009.09 468.27
1019.16 495.24
1008.52 483.8
1014.3 443.61
1003.18 436.06
1009.97 443.25
1011.11 464.16
1023.57 475.52
1012.14 484.41
1012.69 437.89
1019.02 445.11
1013.64 438.86
1011.11 440.98
1010.08 436.65
1018.76 444.26
1007.29 465.86
1011.4 444.37
1010.08 450.69
1014.69 469.02
1012.04 448.86
1007.62 447.14
1017.24 469.18
1018.33 482.8
1014.12 476.7
1020.63 474.99
1019.28 444.22
1020.24 461.33
1010.96 448.06
1014.51 474.6
1029.14 473.05
1010.58 432.06
1018.71 467.41
1011.6 430.12
1014.82 473.62
1012.94 471.81
1010.23 442.99
1014.65 442.77
1010.18 491.49
1013.68 447.46
1002.25 446.11
1007.03 442.44
1013.61 446.22
1016.67 471.49
1008.89 463.5
1016.02 440.01
1014.56 441.03
1019.49 452.68
1020.43 474.91
1018.71 478.77
998.14 434.2
1017.83 437.91
1024.61 477.61
1016.65 431.65
998.58 430.57
1008.82 481.09
1009.56 445.56
1012.71 475.74
1010.36 435.12
1017.39 446.15
1001.31 436.64
1013.89 436.69
1016.53 468.75
1012.18 466.6
1024.42 465.48
1014.93 441.34
1012.53 441.83
1019.0 464.7
1009.6 437.99
1015.55 459.12
1006.56 429.69
1010.57 459.8
1009.81 433.63
1014.62 442.84
1014.49 485.13
1025.09 459.12
1012.05 445.31
1022.7 480.8
1005.23 432.55
1013.42 443.86
1018.3 449.77
1017.19 470.71
1011.93 452.17
1021.6 478.29
1006.96 428.54
1020.66 478.27
1007.63 439.58
1005.53 457.32
1018.79 475.51
1010.85 439.66
1011.03 471.99
1015.1 479.81
1010.83 434.78
1011.18 446.58
1013.92 437.76
1001.24 459.36
1016.99 462.28
1016.08 464.33
1010.71 444.36
1014.32 438.64
1018.69 470.49
1001.86 455.13
1017.06 450.22
1009.34 440.43
1014.02 482.98
1014.19 460.44
1012.81 444.97
1005.2 433.94
1012.28 439.73
1005.89 434.48
1017.93 442.33
1014.26 457.67
1018.8 454.66
1017.71 432.21
1012.25 457.66
1010.27 435.21
1007.64 448.22
1013.79 475.51
1013.24 446.53
1011.7 441.3
1007.67 433.54
1020.45 472.52
1012.59 474.77
1001.62 435.1
1016.92 450.74
1014.32 442.7
1003.34 426.56
1016.0 463.71
1016.85 447.06
1018.02 452.27
1018.49 445.78
1017.93 438.65
1011.55 480.15
1016.46 447.19
1008.47 443.04
1008.06 488.81
1016.26 455.75
1018.83 455.86
1013.94 457.68
1014.95 479.11
1007.44 432.84
1016.18 448.37
1007.56 447.06
1014.1 443.53
1011.13 445.21
1015.53 441.7
1013.05 450.93
1002.95 451.44
1012.32 441.29
1014.48 458.85
1018.24 481.46
1016.93 467.19
1020.5 461.54
1006.28 439.08
1028.79 467.22
1019.49 468.8
1004.66 426.93
1024.36 474.65
1022.93 468.97
1010.18 433.97
1009.52 450.53
1011.98 444.51
1015.29 469.03
1019.36 466.56
1012.15 457.57
1006.24 440.13
1003.57 433.24
1008.64 452.55
1002.04 443.29
1005.47 431.76
1007.81 454.97
1012.42 456.7
1007.75 486.03
1011.37 472.79
1010.12 452.03
1012.26 443.41
1014.49 441.93
1007.51 432.64
1013.15 480.25
1004.47 466.68
1020.19 494.39
1012.46 454.72
1012.28 448.71
1013.43 469.76
1009.64 450.71
1009.8 444.01
1017.46 453.2
1012.39 450.87
1019.67 441.73
1018.41 465.09
1020.59 447.28
1011.54 491.16
1017.99 450.98
1013.75 446.3
1008.37 436.48
1017.41 460.84
1013.43 442.56
1020.19 467.3
1021.47 479.13
1008.72 441.15
1011.78 445.52
1015.62 475.4
1014.91 469.3
1017.17 463.57
1006.71 445.32
1020.36 461.03
1014.99 466.74
1018.47 444.04
1017.6 434.01
1020.5 465.23
1009.63 440.6
1023.66 466.74
1017.43 433.48
1023.36 473.59
1020.75 474.81
1017.58 454.75
1009.6 452.94
1009.94 435.83
1014.53 482.19
1030.46 466.66
1013.03 462.59
1020.69 447.82
1014.55 462.73
1012.06 447.98
1009.15 462.72
1016.82 442.42
1008.64 444.69
1016.73 466.7
1020.38 453.84
1013.83 436.92
1021.82 486.37
1015.42 440.43
1010.94 446.82
1005.11 484.91
1008.27 437.76
1013.27 438.91
1007.97 464.19
1009.89 442.19
1008.38 446.86
1018.89 457.15
1020.14 482.57
1007.44 476.03
1008.69 428.89
1018.07 472.7
1009.04 445.6
1014.63 464.78
1017.02 440.42
1003.96 428.41
1010.65 438.5
1007.84 438.28
1022.35 476.29
1011.5 448.46
1008.62 438.99
1017.9 471.8
1012.74 471.81
1016.12 449.82
1013.13 442.14
1009.74 441.46
1011.37 477.62
1011.45 446.76
1012.46 472.52
1021.27 471.58
1001.15 440.85
1011.33 431.37
1008.64 437.33
1015.68 469.22
1023.51 471.11
1010.98 439.17
1012.11 445.33
1018.62 473.71
1016.28 452.66
1007.12 440.99
1014.48 467.42
1010.02 444.14
1020.57 457.17
1015.92 467.87
1009.78 442.04
1019.52 471.36
1009.81 460.7
1010.35 431.33
998.59 432.6
1014.07 447.61
1016.27 443.87
1009.2 446.87
1020.57 465.74
1014.02 447.86
1020.16 447.65
1011.78 437.87
1016.87 483.51
1018.21 479.65
1016.88 455.16
1002.49 431.91
1014.13 470.68
1009.29 429.28
1018.32 450.81
1011.49 437.73
1015.16 460.21
1001.6 442.86
1021.51 482.99
1013.27 440.0
1033.25 478.48
1015.01 455.28
1002.07 436.94
1022.36 461.06
1013.97 438.28
1011.81 472.61
1003.7 426.85
1017.76 470.18
1012.31 455.38
1006.44 428.32
1010.57 480.35
1020.2 455.56
1013.14 447.66
1006.74 443.06
1014.19 452.43
1019.94 477.81
1004.72 431.66
1004.53 431.8
1006.65 446.67
1018.0 445.26
1013.85 425.72
1008.73 430.58
1018.94 439.86
1013.31 441.11
1011.6 434.72
1014.23 434.01
1019.43 475.64
1020.43 460.44
1005.46 436.4
1018.7 461.03
1019.94 479.08
1009.31 435.76
1015.22 460.14
1017.37 442.2
1008.83 447.69
1006.65 431.15
1014.32 445.0
1001.32 431.59
1027.94 467.22
1012.16 445.33
1013.21 470.57
1018.72 473.77
1017.42 447.67
1014.78 474.29
1008.07 437.14
1003.12 432.56
1009.72 459.14
1016.03 446.19
1006.38 428.1
1030.18 468.46
1017.95 435.02
1002.38 445.52
1003.36 462.69
1019.26 455.75
1015.89 463.74
1011.95 439.79
1016.99 443.26
1009.3 432.04
1013.32 465.86
1009.05 465.6
1009.35 469.43
1003.4 440.75
1015.82 481.32
1022.64 479.87
1005.7 458.59
1009.62 438.62
1012.38 445.59
1015.13 481.87
1013.58 475.01
1008.53 436.54
1016.28 456.63
1015.63 451.69
1010.93 463.04
1007.68 446.1
1009.94 438.67
1019.7 466.88
1008.42 444.6
1015.4 440.26
1023.28 483.92
1017.18 475.19
1023.06 479.24
1014.95 434.92
1014.0 454.16
1012.42 447.58
1021.67 467.9
1010.27 426.29
1007.8 447.02
1005.47 455.85
1010.31 476.46
1007.53 437.48
1014.61 452.77
1012.57 491.54
1017.22 438.41
1019.81 476.1
1007.87 464.58
1023.91 467.74
1010.0 442.12
1014.53 453.34
1010.44 425.29
1011.74 449.63
1025.27 462.88
1015.71 464.67
1027.17 489.96
1020.27 482.38
1009.45 437.95
1004.74 429.2
1013.03 453.34
1010.58 442.47
1015.14 462.6
1024.57 478.79
1012.34 456.11
1005.81 450.33
1007.21 434.83
1015.1 433.43
1020.76 456.02
1018.08 485.23
1013.03 473.57
1011.17 469.94
1008.69 452.07
1021.82 475.32
1013.39 480.69
1013.12 444.01
1020.41 465.17
1012.87 480.61
1013.39 476.04
1003.51 441.76
1005.19 428.24
1004.0 444.77
1008.58 463.1
1018.19 470.5
1007.04 431.0
1004.27 430.68
1006.6 436.42
1016.19 452.33
1010.64 440.16
1010.18 435.75
1008.48 449.74
1010.74 430.73
1009.55 432.75
1007.88 446.79
1018.12 486.35
1015.66 453.18
1015.73 458.31
1019.7 480.26
1011.89 448.65
1012.67 458.41
1006.37 435.39
1010.49 450.21
1018.68 459.59
1017.19 445.84
1018.17 441.08
1009.89 467.33
1016.56 444.19
1007.96 432.96
1002.85 438.09
1006.86 467.9
1012.68 475.72
1027.72 477.51
1006.37 435.13
1017.99 477.9
1019.18 457.26
1015.88 467.53
1021.08 465.15
1014.42 474.28
1013.85 444.49
1014.15 452.84
1008.5 435.38
1003.88 433.57
1009.04 435.27
1005.35 468.49
1009.9 433.07
1004.85 430.63
1013.29 440.74
1026.31 474.49
1005.72 449.74
1010.09 436.73
1006.53 434.58
1017.24 473.93
1007.03 435.99
1009.45 466.83
1005.29 427.22
1013.39 444.07
1020.11 469.57
1015.18 459.89
1024.91 479.59
1007.21 440.92
1020.45 480.87
1009.93 441.9
1011.35 430.2
1014.62 465.16
1021.19 471.32
1020.91 485.43
1012.27 495.35
1010.85 449.12
1006.22 480.53
1014.89 457.07
1010.7 443.67
1023.44 477.52
1012.52 472.95
1003.92 472.54
1015.85 469.17
1011.09 435.21
1004.81 477.78
1012.86 475.89
1017.75 483.9
1016.53 476.2
1015.47 462.16
1011.24 471.05
1010.6 484.71
1015.43 446.34
1007.21 469.02
1004.23 432.12
1015.51 467.28
1013.29 429.66
1013.16 469.49
1023.23 485.87
1026.0 481.95
1031.1 479.03
1010.99 434.5
1015.16 464.9
1020.02 452.71
1010.84 429.74
1020.67 457.09
1011.61 446.77
1014.46 460.76
1008.31 471.95
1014.09 453.29
1016.34 441.61
1017.01 464.73
1016.91 464.68
1003.72 430.59
1014.19 438.01
1021.84 479.08
1009.28 436.39
1016.25 447.07
1011.9 479.91
1013.88 489.05
1016.46 463.17
1001.18 471.26
1011.64 480.49
1025.41 473.78
1016.76 455.5
1013.78 446.27
1021.21 482.2
1016.72 452.48
1011.92 464.48
1015.29 438.1
1012.77 445.6
1010.37 442.43
1011.56 436.67
1016.54 466.56
1019.65 457.29
1029.65 487.03
1026.45 464.93
1019.28 466.0
1017.44 469.52
1011.18 428.88
1018.49 474.3
1009.69 461.06
1014.09 465.57
1012.3 467.67
1016.02 466.99
1013.73 463.72
1004.03 443.78
1005.43 445.23
1017.13 464.43
1028.31 484.36
1012.5 442.16
1004.64 464.11
1018.35 462.48
1009.59 477.49
1012.78 437.04
1003.8 457.09
1012.22 450.6
1023.25 465.78
1010.15 427.1
1020.14 459.81
1006.64 447.36
1011.0 488.92
1012.96 433.36
1021.99 483.35
1026.57 469.53
1012.27 476.96
1017.5 440.75
1024.51 462.55
1012.05 448.04
1016.22 455.24
1011.8 494.75
1012.55 444.58
1011.56 484.82
1019.6 442.9
1009.68 485.46
1012.82 457.81
1013.85 481.92
1009.63 443.23
1000.91 474.29
1009.98 430.46
1013.56 455.71
1011.25 438.34
1003.24 485.83
1017.76 452.82
1007.68 435.04
1016.82 451.21
1028.41 465.81
1025.04 458.42
1026.09 470.22
1020.84 449.24
1023.84 471.43
1023.74 473.26
1011.7 452.82
1008.1 432.69
1017.91 444.13
1029.8 467.21
1002.33 445.98
1002.42 436.91
1009.05 455.01
1002.47 437.11
1020.68 477.06
1006.65 441.71
1019.63 495.76
1011.33 445.63
1012.88 464.72
1005.94 438.03
1003.47 434.78
1015.63 444.67
1012.2 452.24
1014.19 450.92
1006.65 436.53
1005.75 435.53
1013.23 440.01
1008.72 443.1
1007.18 427.49
1012.99 436.25
1009.99 440.74
1015.02 443.54
1010.82 459.42
1009.76 439.66
1023.55 464.15
1020.55 459.1
1014.76 455.68
1015.33 469.08
1007.71 478.02
1017.36 456.8
1009.18 441.13
1017.05 463.88
1006.14 430.45
1014.24 449.18
1010.92 447.89
1010.4 431.59
1009.36 447.5
1033.04 475.58
1016.77 453.24
1012.59 446.4
1025.1 476.81
1019.29 474.1
1016.66 450.71
1006.4 433.62
1011.45 465.14
1019.08 445.18
1015.3 474.12
1016.08 483.91
1010.55 486.68
1022.43 464.98
1010.83 481.4
1021.81 479.2
1005.85 463.86
1012.76 472.3
1001.31 446.51
1005.93 437.71
1001.96 458.94
1007.62 437.91
1009.96 490.76
1013.4 439.66
1007.58 463.27
1016.68 473.99
1012.83 433.38
1015.13 459.01
1016.05 471.44
1012.97 471.91
1028.2 465.15
1008.25 446.66
1009.78 438.15
1008.81 447.14
1025.53 472.32
1010.16 441.68
1009.33 440.04
1009.82 444.82
1014.5 457.26
1009.13 428.83
1009.93 449.07
1009.38 435.21
1017.59 471.03
1012.47 465.56
1019.86 442.83
1017.26 460.3
1023.07 474.25
1033.3 477.97
1019.1 472.16
1014.22 456.08
1014.9 452.41
1011.31 463.71
1006.26 433.72
1016.0 456.4
1015.41 448.43
1020.63 481.6
1001.16 457.07
1019.8 451.0
1018.48 440.28
1002.26 437.47
1004.07 443.57
1004.91 426.6
1013.12 470.87
1012.9 478.37
1013.32 453.92
1020.79 470.22
1011.37 434.54
1013.11 442.89
1013.29 479.03
1020.5 476.06
1022.62 473.88
1010.84 451.75
1012.68 439.2
1015.58 439.7
1013.68 463.6
1004.21 447.47
1013.23 447.92
1020.44 471.08
1007.99 437.55
1012.36 448.27
998.47 431.69
1016.57 449.09
1015.93 448.79
1025.21 460.21
1013.54 479.28
1032.67 483.11
1011.46 450.75
1010.43 437.97
1008.53 459.76
1020.5 457.75
1015.48 469.33
1009.74 433.28
1010.23 444.64
1021.3 463.1
1022.01 460.91
1023.95 479.35
1017.65 449.23
1021.83 474.51
1007.81 435.02
1009.43 435.45
1013.3 452.38
1019.73 480.41
1019.54 478.96
1026.58 468.87
1007.89 434.01
1013.85 466.36
1011.44 435.28
1014.51 486.46
1015.51 468.19
1022.14 468.37
1019.17 474.19
1009.52 440.32
1015.35 485.32
1014.38 464.27
1013.66 479.25
1007.0 430.4
1016.65 447.49
1006.85 438.23
1025.46 492.09
1015.13 475.36
1016.68 452.56
1015.98 427.84
1010.8 433.95
1008.48 435.27
1014.04 454.62
1020.36 472.17
1015.96 452.42
1003.19 472.17
1018.01 481.83
1021.83 458.78
1022.47 447.5
1019.04 463.4
1022.67 473.57
1009.07 433.72
1011.2 431.85
1012.13 433.47
1007.45 432.84
1007.29 436.6
1020.12 490.23
1020.58 477.16
1010.44 441.06
1007.22 440.86
1033.08 477.94
1026.56 474.47
1012.18 470.67
1013.7 447.31
1018.14 466.8
1007.4 430.91
1007.2 434.75
1010.82 469.52
1008.88 438.9
1010.51 429.56
1013.53 432.92
1005.68 442.87
1022.57 466.59
1028.04 479.61
1019.12 471.08
1016.51 433.37
1018.8 443.92
1016.74 443.5
1017.37 439.89
1008.9 434.66
1021.95 487.57
1013.76 464.64
1017.26 470.92
1014.37 444.39
1002.54 442.48
1005.25 449.61
1009.43 435.02
1021.81 458.67
1016.63 461.74
1008.09 438.31
1011.68 462.38
1019.39 460.56
1013.37 439.22
1009.71 444.64
999.8 430.34
1008.37 430.46
1009.02 456.79
994.17 468.82
1008.79 448.51
1014.67 470.77
1025.79 465.74
1005.31 430.21
1008.62 449.23
1021.91 461.89
1010.97 445.72
1013.36 466.13
1008.38 448.71
998.43 469.25
1013.04 450.56
1008.94 464.46
1014.87 471.13
1010.92 461.52
1012.04 451.09
1005.43 431.51
1009.65 469.8
1012.05 442.28
1011.84 458.67
1016.13 462.4
1015.18 453.54
1019.81 444.38
1003.39 440.52
1007.68 433.62
1023.68 481.96
1008.89 452.75
1026.4 481.28
1020.28 439.03
1005.64 435.75
1009.72 436.03
1011.03 445.6
1020.27 462.65
1005.87 438.66
1008.54 447.32
1004.85 484.55
1024.9 476.8
1023.99 480.34
1010.53 440.63
1014.27 459.48
1025.98 490.78
1019.25 483.56
1012.26 429.38
1013.49 440.27
1011.34 445.34
1013.86 447.43
1004.37 439.91
1016.11 459.27
1017.88 478.89
1012.41 466.7
1021.39 463.5
1015.04 436.21
1011.95 443.94
1012.87 439.63
1013.21 460.95
1015.99 448.69
1006.24 444.63
1005.49 473.51
1008.56 462.56
1011.07 451.76
1025.68 491.81
1011.04 429.52
1007.59 437.9
1003.18 467.54
1015.35 449.97
1003.61 436.62
1023.37 477.68
1016.04 447.26
1011.8 439.76
1015.23 437.49
1018.29 455.14
1021.76 485.5
1016.81 444.1
1006.91 432.33
1008.87 471.23
1017.93 463.89
1009.2 445.54
1007.99 446.09
1017.82 445.12
1018.29 443.31
1015.14 484.16
1019.86 477.76
1008.36 430.28
1010.39 446.48
1028.11 481.03
1007.41 466.07
1013.2 447.47
1019.83 455.93
1021.15 479.62
1014.28 455.06
1019.87 475.06
1012.59 438.89
1003.38 432.7
1011.89 452.6
1010.46 451.75
1008.16 430.66
1019.04 491.9
1010.04 439.82
1015.91 460.73
1015.14 449.7
1013.88 439.42
1013.33 439.84
1025.58 485.86
1011.81 458.1
1012.89 479.92
1019.94 458.29
1017.29 489.45
1012.17 434.0
1010.69 431.24
1003.26 439.5
1019.48 467.46
1010.0 429.27
1016.95 452.1
999.83 472.41
1002.75 442.14
1003.56 441.0
1020.76 463.07
1017.99 445.71
1017.11 483.16
1010.75 440.45
1020.6 481.83
1015.53 467.6
1004.29 450.88
1001.22 425.5
1013.95 451.87
1010.51 428.94
1002.59 439.86
1011.21 433.44
1015.12 438.23
1007.68 436.95
1021.67 470.19
1011.6 484.66
1007.56 430.81
1010.05 433.37
1014.17 453.02
1012.6 453.5
995.88 463.09
1016.25 464.56
1017.22 452.12
1015.66 470.9
1021.08 450.89
1009.85 445.04
1011.49 444.72
1022.07 460.38
1013.05 446.8
1018.34 465.05
1016.55 484.13
1017.01 488.27
1013.85 447.09
1017.16 452.02
1014.16 455.55
1029.41 480.99
1012.96 467.68
Humidity Power
73.17 463.26
59.08 444.37
92.14 488.56
76.64 446.48
96.62 473.9
58.77 443.67
75.24 467.35
66.43 478.42
41.25 475.98
70.72 477.5
75.04 453.02
64.22 453.99
84.15 440.29
61.83 451.28
87.59 433.99
43.08 462.19
48.84 467.54
77.51 477.2
63.59 459.85
55.28 464.3
66.26 468.27
64.77 495.24
83.31 483.8
47.19 443.61
54.93 436.06
74.62 443.25
72.52 464.16
88.44 475.52
92.28 484.41
41.85 437.89
44.28 445.11
64.58 438.86
63.25 440.98
78.61 436.65
44.51 444.26
89.46 465.86
74.52 444.37
88.86 450.69
75.51 469.02
78.64 448.86
76.65 447.14
80.44 469.18
79.89 482.8
88.28 476.7
84.6 474.99
42.69 444.22
78.41 461.33
61.07 448.06
50.0 474.6
77.29 473.05
43.66 432.06
83.8 467.41
66.47 430.12
93.09 473.62
80.52 471.81
68.99 442.99
57.27 442.77
95.53 491.49
71.72 447.46
57.88 446.11
63.34 442.44
48.07 446.22
91.87 471.49
87.27 463.5
64.4 440.01
43.4 441.03
72.24 452.68
90.22 474.91
74.0 478.77
71.85 434.2
86.62 437.91
97.41 477.61
84.44 431.65
81.55 430.57
75.66 481.09
79.41 445.56
58.91 475.74
90.06 435.12
79.0 446.15
69.47 436.64
51.47 436.69
83.13 468.75
40.33 466.6
81.69 465.48
94.55 441.34
91.81 441.83
63.62 464.7
49.35 437.99
69.61 459.12
38.75 429.69
90.17 459.8
81.24 433.63
48.46 442.84
76.72 485.13
51.16 459.12
76.34 445.31
67.3 480.8
52.38 432.55
76.44 443.86
91.55 449.77
71.9 470.71
80.05 452.17
63.77 478.29
62.26 428.54
89.04 478.27
58.02 439.58
81.82 457.32
91.14 475.51
88.92 439.66
84.83 471.99
91.76 479.81
86.56 434.78
57.21 446.58
54.25 437.76
63.8 459.36
33.71 462.28
67.25 464.33
60.11 444.36
74.55 438.64
67.34 470.49
42.75 455.13
55.2 450.22
83.61 440.43
88.78 482.98
100.12 460.44
64.52 444.97
51.41 433.94
85.78 439.73
75.41 434.48
81.63 442.33
51.92 457.67
70.12 454.66
53.83 432.21
77.23 457.66
65.67 435.21
71.18 448.22
81.96 475.51
79.54 446.53
47.09 441.3
57.69 433.54
78.89 472.52
85.29 474.77
40.13 435.1
77.06 450.74
67.38 442.7
62.44 426.56
77.43 463.71
58.77 447.06
67.72 452.27
42.14 445.78
84.16 438.65
89.79 480.15
67.21 447.19
72.14 443.04
97.49 488.81
87.74 455.75
96.3 455.86
61.25 457.68
88.38 479.11
74.77 432.84
68.18 448.37
77.2 447.06
49.54 443.53
92.22 445.21
33.65 441.7
64.59 450.93
100.09 451.44
68.04 441.29
48.94 458.85
74.47 481.46
81.02 467.19
71.17 461.54
53.85 439.08
70.67 467.22
59.36 468.8
57.17 426.93
70.29 474.65
83.37 468.97
87.36 433.97
100.09 450.53
68.78 444.51
70.98 469.03
75.68 466.56
47.49 457.57
71.99 440.13
66.55 433.24
74.73 452.55
64.78 443.29
75.13 431.76
56.38 454.97
94.35 456.7
86.55 486.03
82.95 472.79
88.42 452.03
85.61 443.41
58.39 441.93
74.28 432.64
87.85 480.25
83.5 466.68
65.24 494.39
75.01 454.72
84.52 448.71
80.52 469.76
75.14 450.71
75.75 444.01
76.72 453.2
85.47 450.87
57.95 441.73
78.32 465.09
52.2 447.28
93.69 491.16
75.74 450.98
67.56 446.3
69.46 436.48
74.58 460.84
53.23 442.56
88.72 467.3
96.16 479.13
68.26 441.15
86.39 445.52
85.34 475.4
72.64 469.3
97.82 463.57
77.22 445.32
80.59 461.03
46.91 466.74
57.76 444.04
53.09 434.01
84.31 465.23
71.58 440.6
92.97 466.74
74.55 433.48
78.96 473.59
64.44 474.81
68.23 454.75
70.81 452.94
61.66 435.83
77.76 482.19
69.49 466.66
96.26 462.59
55.74 447.82
95.61 462.73
84.75 447.98
75.3 462.72
67.5 442.42
80.92 444.69
79.23 466.7
81.1 453.84
32.8 436.92
84.31 486.37
46.15 440.43
53.96 446.82
59.83 484.91
75.3 437.76
42.53 438.91
70.58 464.19
91.69 442.19
63.55 446.86
61.51 457.15
69.55 482.57
98.08 476.03
79.34 428.89
81.28 472.7
78.99 445.6
80.38 464.78
51.16 440.42
72.17 428.41
75.39 438.5
68.91 438.28
96.38 476.29
70.54 448.46
45.8 438.99
57.95 471.8
81.89 471.81
69.32 449.82
59.14 442.14
81.54 441.46
85.81 477.62
65.41 446.76
81.15 472.52
95.87 471.58
90.24 440.85
75.13 431.37
88.22 437.33
81.48 469.22
89.84 471.11
43.57 439.17
63.16 445.33
57.14 473.71
77.76 452.66
90.56 440.99
60.98 467.42
70.31 444.14
74.05 457.17
75.42 467.87
82.25 442.04
67.95 471.36
100.09 460.7
47.28 431.33
72.41 432.6
77.67 447.61
63.7 443.87
79.77 446.87
93.84 465.74
84.95 447.86
70.16 447.65
84.24 437.87
73.32 483.51
86.17 479.65
65.43 455.16
94.59 431.91
86.8 470.68
58.18 429.28
89.66 450.81
87.39 437.73
36.35 460.21
79.62 442.86
50.52 482.99
51.96 440.0
74.73 478.48
78.33 455.28
85.19 436.94
83.13 461.06
53.49 438.28
88.86 472.61
60.89 426.85
61.14 470.18
68.29 455.38
57.62 428.32
83.63 480.35
78.1 455.56
66.34 447.66
79.02 443.06
68.96 452.43
71.13 477.81
87.01 431.66
74.3 431.8
77.62 446.67
59.56 445.26
41.66 425.72
73.27 430.58
77.16 439.86
67.02 441.11
52.8 434.72
39.04 434.01
65.47 475.64
74.32 460.44
69.22 436.4
93.88 461.03
69.83 479.08
84.11 435.76
78.65 460.14
69.31 442.2
70.3 447.69
68.23 431.15
71.76 445.0
85.88 431.59
71.09 467.22
52.67 445.33
89.68 470.57
73.66 473.77
58.94 447.67
87.05 474.29
67.0 437.14
43.18 432.56
80.62 459.14
59.72 446.19
72.1 428.1
69.15 468.46
55.66 435.02
61.19 445.52
74.62 462.69
73.35 455.75
68.85 463.74
39.89 439.79
53.16 443.26
52.97 432.04
79.87 465.86
84.09 465.6
100.15 469.43
79.77 440.75
88.99 481.32
76.14 479.87
69.13 458.59
93.03 438.62
77.92 445.59
74.89 481.87
88.7 475.01
62.94 436.54
89.62 456.63
81.04 451.69
94.53 463.04
64.02 446.1
70.57 438.67
70.32 466.88
84.86 444.6
81.41 440.26
89.45 483.92
82.71 475.19
93.93 479.24
70.6 434.92
87.68 454.16
87.58 447.58
74.4 467.9
67.35 426.29
63.61 447.02
76.89 455.85
78.08 476.46
69.17 437.48
53.31 452.77
93.32 491.54
42.47 438.41
82.58 476.1
94.59 464.58
86.31 467.74
72.57 442.12
80.76 453.34
71.93 425.29
47.54 449.63
95.72 462.88
77.03 464.67
80.49 489.96
77.67 482.38
78.72 437.95
58.77 429.2
74.8 453.34
51.34 442.47
90.41 462.6
91.1 478.79
62.57 456.11
84.27 450.33
42.93 434.83
40.96 433.43
76.53 456.02
69.74 485.23
74.99 473.57
70.45 469.94
91.49 452.07
88.97 475.32
89.13 480.69
46.52 444.01
60.55 465.17
88.71 480.61
89.15 476.04
83.02 441.76
75.19 428.24
87.35 444.77
85.66 463.1
91.66 470.5
63.47 431.0
72.25 430.68
70.58 436.42
60.1 452.33
89.29 440.16
67.43 435.75
67.58 449.74
70.8 430.73
63.62 432.75
66.68 446.79
90.76 486.35
75.34 453.18
59.77 458.31
80.79 480.26
74.1 448.65
41.34 458.41
58.78 435.39
97.78 450.21
74.85 459.59
69.84 445.84
75.36 441.08
85.8 467.33
90.11 444.19
61.63 432.96
44.76 438.09
89.7 467.9
72.51 475.72
74.98 477.51
79.59 435.13
78.42 477.9
61.23 457.26
47.56 467.53
93.06 465.15
89.65 474.28
50.5 444.49
44.84 452.84
85.32 435.38
82.94 433.57
67.26 435.27
79.05 468.49
62.03 433.07
94.36 430.63
60.02 440.74
95.46 474.49
84.92 449.74
62.8 436.73
90.81 434.58
80.9 473.93
55.84 435.99
75.3 466.83
37.34 427.22
79.5 444.07
87.29 469.57
81.5 459.89
76.42 479.59
75.75 440.92
84.95 480.87
62.37 441.9
49.25 430.2
74.16 465.16
90.55 471.32
94.28 485.43
63.31 495.35
78.9 449.12
90.97 480.53
87.34 457.07
80.8 443.67
90.95 477.52
69.97 472.95
89.45 472.54
76.08 469.17
83.35 435.21
92.16 477.78
58.42 475.89
85.06 483.9
88.91 476.2
83.33 462.16
88.49 471.05
96.88 484.71
73.86 446.34
65.17 469.02
69.41 432.12
81.23 467.28
54.07 429.66
89.17 469.49
78.85 485.87
84.44 481.95
83.02 479.03
90.66 434.5
75.29 464.9
82.6 452.71
45.4 429.74
66.33 457.09
45.33 446.77
67.12 460.76
84.14 471.95
80.81 453.29
49.13 441.61
87.29 464.73
52.95 464.68
68.92 430.59
85.21 438.01
88.56 479.08
55.09 436.39
48.64 447.07
87.85 479.91
87.42 489.05
62.75 463.17
94.86 471.26
63.54 480.49
69.46 473.78
74.66 455.5
80.57 446.27
84.7 482.2
72.6 452.48
52.63 464.48
82.01 438.1
75.22 445.6
51.05 442.43
80.1 436.67
81.58 466.56
65.94 457.29
86.74 487.03
62.57 464.93
57.37 466.0
88.91 469.52
72.26 428.88
74.98 474.3
71.19 461.06
62.82 465.57
55.31 467.67
71.57 466.99
59.16 463.72
40.8 443.78
67.63 445.23
97.2 464.43
91.16 484.36
64.81 442.16
85.61 464.11
93.42 462.48
77.36 477.49
67.03 437.04
89.45 457.09
54.84 450.6
53.48 465.78
54.47 427.1
43.36 459.81
48.92 447.36
81.22 488.92
60.35 433.36
75.98 483.35
74.24 469.53
85.21 476.96
68.46 440.75
78.31 462.55
89.25 448.04
68.57 455.24
67.38 494.75
53.6 444.58
91.69 484.82
78.21 442.9
94.19 485.46
37.19 457.81
83.53 481.92
79.45 443.23
99.9 474.29
50.39 430.46
74.33 455.71
83.66 438.34
89.48 485.83
64.59 452.82
75.68 435.04
64.18 451.21
70.09 465.81
70.58 458.42
99.28 470.22
81.89 449.24
87.99 471.43
88.21 473.26
91.29 452.82
52.72 432.69
67.5 444.13
92.05 467.21
63.23 445.98
90.88 436.91
74.91 455.01
85.39 437.11
96.98 477.06
56.28 441.71
65.62 495.76
55.32 445.63
88.88 464.72
39.49 438.03
54.59 434.78
57.19 444.67
45.06 452.24
40.62 450.92
90.21 436.53
90.91 435.53
74.96 440.01
54.21 443.1
63.62 427.49
50.04 436.25
51.23 440.74
82.71 443.54
92.04 459.42
90.67 439.66
91.14 464.15
70.43 459.1
66.63 455.68
86.95 469.08
96.69 478.02
70.88 456.8
47.14 441.13
63.36 463.88
60.58 430.45
54.3 449.18
65.09 447.89
48.16 431.59
81.51 447.5
68.57 475.58
73.16 453.24
80.88 446.4
85.4 476.81
75.77 474.1
75.76 450.71
70.21 433.62
55.53 465.14
80.48 445.18
72.41 474.12
83.25 483.91
82.12 486.68
94.75 464.98
95.79 481.4
86.02 479.2
78.29 463.86
82.23 472.3
52.86 446.51
60.66 437.71
62.77 458.94
65.54 437.91
95.4 490.76
51.78 439.66
63.62 463.27
83.09 473.99
61.81 433.38
68.24 459.01
72.41 471.44
79.64 471.91
66.95 465.15
91.98 446.66
64.96 438.15
88.93 447.14
85.62 472.32
84.0 441.68
89.41 440.04
67.4 444.82
76.75 457.26
89.06 428.83
64.02 449.07
64.12 435.21
81.22 471.03
100.13 465.56
58.07 442.83
63.42 460.3
83.32 474.25
74.28 477.97
71.91 472.16
85.8 456.08
55.58 452.41
69.7 463.71
63.79 433.72
86.59 456.4
48.28 448.43
80.42 481.6
98.58 457.07
72.83 451.0
56.07 440.28
67.13 437.47
84.49 443.57
68.37 426.6
86.07 470.87
83.82 478.37
74.86 453.92
53.52 470.22
80.61 434.54
43.56 442.89
89.35 479.03
97.28 476.06
80.49 473.88
88.9 451.75
49.7 439.2
68.64 439.7
98.58 463.6
82.12 447.47
78.32 447.92
86.04 471.08
91.36 437.55
81.02 448.27
76.05 431.69
71.81 449.09
82.13 448.79
74.27 460.21
71.32 479.28
74.59 483.11
84.44 450.75
43.39 437.97
87.2 459.76
77.11 457.75
82.81 469.33
85.67 433.28
95.58 444.64
74.46 463.1
90.02 460.91
81.93 479.35
86.29 449.23
85.43 474.51
71.66 435.02
71.33 435.45
67.72 452.38
84.23 480.41
74.44 478.96
71.48 468.87
56.3 434.01
68.13 466.36
68.35 435.28
85.23 486.46
79.78 468.19
98.98 468.37
72.87 474.19
90.93 440.32
72.94 485.32
72.3 464.27
77.74 479.25
78.29 430.4
69.1 447.49
55.79 438.23
75.09 492.09
88.98 475.36
64.26 452.56
25.89 427.84
59.18 433.95
67.48 435.27
89.85 454.62
50.62 472.17
83.97 452.42
96.51 472.17
80.09 481.83
84.02 458.78
61.97 447.5
88.51 463.4
81.83 473.57
90.63 433.72
73.37 431.85
77.5 433.47
57.46 432.84
51.91 436.6
79.14 490.23
69.24 477.16
41.85 441.06
95.1 440.86
74.53 477.94
64.85 474.47
57.07 470.67
62.9 447.31
72.21 466.8
65.99 430.91
73.67 434.75
88.59 469.52
61.19 438.9
49.37 429.56
48.65 432.92
56.18 442.87
71.56 466.59
87.46 479.61
70.02 471.08
61.2 433.37
60.54 443.92
71.82 443.5
44.8 439.89
67.32 434.66
78.77 487.57
96.02 464.64
90.56 470.92
83.19 444.39
68.45 442.48
99.19 449.61
88.11 435.02
79.29 458.67
87.76 461.74
82.56 438.31
79.24 462.38
67.24 460.56
58.98 439.22
84.22 444.64
89.12 430.34
50.07 430.46
98.86 456.79
95.79 468.82
70.06 448.51
41.71 470.77
86.55 465.74
71.97 430.21
96.4 449.23
91.73 461.89
91.62 445.72
59.14 466.13
92.56 448.71
83.71 469.25
55.43 450.56
74.91 464.46
89.41 471.13
69.81 461.52
86.01 451.09
86.05 431.51
80.98 469.8
63.62 442.28
64.16 458.67
75.63 462.4
80.21 453.54
59.7 444.38
47.6 440.52
63.78 433.62
89.37 481.96
70.55 452.75
84.42 481.28
80.62 439.03
52.56 435.75
83.26 436.03
70.64 445.6
89.95 462.65
51.53 438.66
84.83 447.32
59.68 484.55
97.88 476.8
85.03 480.34
47.38 440.63
48.08 459.48
79.65 490.78
83.39 483.56
82.18 429.38
51.71 440.27
77.33 445.34
72.81 447.43
84.26 439.91
73.23 459.27
79.73 478.89
62.32 466.7
78.58 463.5
79.88 436.21
65.87 443.94
80.28 439.63
71.33 460.95
70.33 448.69
57.73 444.63
99.46 473.51
68.61 462.56
95.91 451.76
80.42 491.81
51.01 429.52
74.08 437.9
80.73 467.54
54.71 449.97
73.75 436.62
88.43 477.68
74.66 447.26
70.04 439.76
74.64 437.49
85.11 455.14
82.97 485.5
55.59 444.1
49.9 432.33
89.99 471.23
91.61 463.89
82.95 445.54
92.62 446.09
59.64 445.12
63.0 443.31
85.38 484.16
85.23 477.76
52.08 430.28
38.05 446.48
71.98 481.03
90.66 466.07
83.14 447.47
65.22 455.93
91.67 479.62
66.04 455.06
78.19 475.06
54.47 438.89
67.26 432.7
72.56 452.6
82.15 451.75
86.32 430.66
88.17 491.9
72.78 439.82
69.58 460.73
69.86 449.7
65.37 439.42
52.37 439.84
79.63 485.86
83.14 458.1
88.25 479.92
55.85 458.29
52.55 489.45
62.74 434.0
90.08 431.24
54.5 439.5
49.88 467.46
48.96 429.27
86.77 452.1
96.66 472.41
70.84 442.14
83.83 441.0
68.22 463.07
82.22 445.71
87.9 483.16
66.83 440.45
85.36 481.83
60.9 467.6
83.51 450.88
52.96 425.5
73.02 451.87
43.11 428.94
61.41 439.86
65.32 433.44
93.68 438.23
42.39 436.95
68.18 470.19
89.18 484.66
64.79 430.81
43.48 433.37
80.4 453.02
72.43 453.5
80.0 463.09
45.65 464.56
63.02 452.12
74.39 470.9
57.77 450.89
76.8 445.04
67.39 444.72
73.96 460.38
72.75 446.8
71.69 465.05
84.98 484.13
87.68 488.27
50.36 447.09
68.11 452.02
66.27 455.55
89.72 480.99
61.07 467.68
RH PE
73.17 463.26
59.08 444.37
92.14 488.56
76.64 446.48
96.62 473.9
58.77 443.67
75.24 467.35
66.43 478.42
41.25 475.98
70.72 477.5
75.04 453.02
64.22 453.99
84.15 440.29
61.83 451.28
87.59 433.99
43.08 462.19
48.84 467.54
77.51 477.2
63.59 459.85
55.28 464.3
66.26 468.27
64.77 495.24
83.31 483.8
47.19 443.61
54.93 436.06
74.62 443.25
72.52 464.16
88.44 475.52
92.28 484.41
41.85 437.89
44.28 445.11
64.58 438.86
63.25 440.98
78.61 436.65
44.51 444.26
89.46 465.86
74.52 444.37
88.86 450.69
75.51 469.02
78.64 448.86
76.65 447.14
80.44 469.18
79.89 482.8
88.28 476.7
84.6 474.99
42.69 444.22
78.41 461.33
61.07 448.06
50.0 474.6
77.29 473.05
43.66 432.06
83.8 467.41
66.47 430.12
93.09 473.62
80.52 471.81
68.99 442.99
57.27 442.77
95.53 491.49
71.72 447.46
57.88 446.11
63.34 442.44
48.07 446.22
91.87 471.49
87.27 463.5
64.4 440.01
43.4 441.03
72.24 452.68
90.22 474.91
74.0 478.77
71.85 434.2
86.62 437.91
97.41 477.61
84.44 431.65
81.55 430.57
75.66 481.09
79.41 445.56
58.91 475.74
90.06 435.12
79.0 446.15
69.47 436.64
51.47 436.69
83.13 468.75
40.33 466.6
81.69 465.48
94.55 441.34
91.81 441.83
63.62 464.7
49.35 437.99
69.61 459.12
38.75 429.69
90.17 459.8
81.24 433.63
48.46 442.84
76.72 485.13
51.16 459.12
76.34 445.31
67.3 480.8
52.38 432.55
76.44 443.86
91.55 449.77
71.9 470.71
80.05 452.17
63.77 478.29
62.26 428.54
89.04 478.27
58.02 439.58
81.82 457.32
91.14 475.51
88.92 439.66
84.83 471.99
91.76 479.81
86.56 434.78
57.21 446.58
54.25 437.76
63.8 459.36
33.71 462.28
67.25 464.33
60.11 444.36
74.55 438.64
67.34 470.49
42.75 455.13
55.2 450.22
83.61 440.43
88.78 482.98
100.12 460.44
64.52 444.97
51.41 433.94
85.78 439.73
75.41 434.48
81.63 442.33
51.92 457.67
70.12 454.66
53.83 432.21
77.23 457.66
65.67 435.21
71.18 448.22
81.96 475.51
79.54 446.53
47.09 441.3
57.69 433.54
78.89 472.52
85.29 474.77
40.13 435.1
77.06 450.74
67.38 442.7
62.44 426.56
77.43 463.71
58.77 447.06
67.72 452.27
42.14 445.78
84.16 438.65
89.79 480.15
67.21 447.19
72.14 443.04
97.49 488.81
87.74 455.75
96.3 455.86
61.25 457.68
88.38 479.11
74.77 432.84
68.18 448.37
77.2 447.06
49.54 443.53
92.22 445.21
33.65 441.7
64.59 450.93
100.09 451.44
68.04 441.29
48.94 458.85
74.47 481.46
81.02 467.19
71.17 461.54
53.85 439.08
70.67 467.22
59.36 468.8
57.17 426.93
70.29 474.65
83.37 468.97
87.36 433.97
100.09 450.53
68.78 444.51
70.98 469.03
75.68 466.56
47.49 457.57
71.99 440.13
66.55 433.24
74.73 452.55
64.78 443.29
75.13 431.76
56.38 454.97
94.35 456.7
86.55 486.03
82.95 472.79
88.42 452.03
85.61 443.41
58.39 441.93
74.28 432.64
87.85 480.25
83.5 466.68
65.24 494.39
75.01 454.72
84.52 448.71
80.52 469.76
75.14 450.71
75.75 444.01
76.72 453.2
85.47 450.87
57.95 441.73
78.32 465.09
52.2 447.28
93.69 491.16
75.74 450.98
67.56 446.3
69.46 436.48
74.58 460.84
53.23 442.56
88.72 467.3
96.16 479.13
68.26 441.15
86.39 445.52
85.34 475.4
72.64 469.3
97.82 463.57
77.22 445.32
80.59 461.03
46.91 466.74
57.76 444.04
53.09 434.01
84.31 465.23
71.58 440.6
92.97 466.74
74.55 433.48
78.96 473.59
64.44 474.81
68.23 454.75
70.81 452.94
61.66 435.83
77.76 482.19
69.49 466.66
96.26 462.59
55.74 447.82
95.61 462.73
84.75 447.98
75.3 462.72
67.5 442.42
80.92 444.69
79.23 466.7
81.1 453.84
32.8 436.92
84.31 486.37
46.15 440.43
53.96 446.82
59.83 484.91
75.3 437.76
42.53 438.91
70.58 464.19
91.69 442.19
63.55 446.86
61.51 457.15
69.55 482.57
98.08 476.03
79.34 428.89
81.28 472.7
78.99 445.6
80.38 464.78
51.16 440.42
72.17 428.41
75.39 438.5
68.91 438.28
96.38 476.29
70.54 448.46
45.8 438.99
57.95 471.8
81.89 471.81
69.32 449.82
59.14 442.14
81.54 441.46
85.81 477.62
65.41 446.76
81.15 472.52
95.87 471.58
90.24 440.85
75.13 431.37
88.22 437.33
81.48 469.22
89.84 471.11
43.57 439.17
63.16 445.33
57.14 473.71
77.76 452.66
90.56 440.99
60.98 467.42
70.31 444.14
74.05 457.17
75.42 467.87
82.25 442.04
67.95 471.36
100.09 460.7
47.28 431.33
72.41 432.6
77.67 447.61
63.7 443.87
79.77 446.87
93.84 465.74
84.95 447.86
70.16 447.65
84.24 437.87
73.32 483.51
86.17 479.65
65.43 455.16
94.59 431.91
86.8 470.68
58.18 429.28
89.66 450.81
87.39 437.73
36.35 460.21
79.62 442.86
50.52 482.99
51.96 440.0
74.73 478.48
78.33 455.28
85.19 436.94
83.13 461.06
53.49 438.28
88.86 472.61
60.89 426.85
61.14 470.18
68.29 455.38
57.62 428.32
83.63 480.35
78.1 455.56
66.34 447.66
79.02 443.06
68.96 452.43
71.13 477.81
87.01 431.66
74.3 431.8
77.62 446.67
59.56 445.26
41.66 425.72
73.27 430.58
77.16 439.86
67.02 441.11
52.8 434.72
39.04 434.01
65.47 475.64
74.32 460.44
69.22 436.4
93.88 461.03
69.83 479.08
84.11 435.76
78.65 460.14
69.31 442.2
70.3 447.69
68.23 431.15
71.76 445.0
85.88 431.59
71.09 467.22
52.67 445.33
89.68 470.57
73.66 473.77
58.94 447.67
87.05 474.29
67.0 437.14
43.18 432.56
80.62 459.14
59.72 446.19
72.1 428.1
69.15 468.46
55.66 435.02
61.19 445.52
74.62 462.69
73.35 455.75
68.85 463.74
39.89 439.79
53.16 443.26
52.97 432.04
79.87 465.86
84.09 465.6
100.15 469.43
79.77 440.75
88.99 481.32
76.14 479.87
69.13 458.59
93.03 438.62
77.92 445.59
74.89 481.87
88.7 475.01
62.94 436.54
89.62 456.63
81.04 451.69
94.53 463.04
64.02 446.1
70.57 438.67
70.32 466.88
84.86 444.6
81.41 440.26
89.45 483.92
82.71 475.19
93.93 479.24
70.6 434.92
87.68 454.16
87.58 447.58
74.4 467.9
67.35 426.29
63.61 447.02
76.89 455.85
78.08 476.46
69.17 437.48
53.31 452.77
93.32 491.54
42.47 438.41
82.58 476.1
94.59 464.58
86.31 467.74
72.57 442.12
80.76 453.34
71.93 425.29
47.54 449.63
95.72 462.88
77.03 464.67
80.49 489.96
77.67 482.38
78.72 437.95
58.77 429.2
74.8 453.34
51.34 442.47
90.41 462.6
91.1 478.79
62.57 456.11
84.27 450.33
42.93 434.83
40.96 433.43
76.53 456.02
69.74 485.23
74.99 473.57
70.45 469.94
91.49 452.07
88.97 475.32
89.13 480.69
46.52 444.01
60.55 465.17
88.71 480.61
89.15 476.04
83.02 441.76
75.19 428.24
87.35 444.77
85.66 463.1
91.66 470.5
63.47 431.0
72.25 430.68
70.58 436.42
60.1 452.33
89.29 440.16
67.43 435.75
67.58 449.74
70.8 430.73
63.62 432.75
66.68 446.79
90.76 486.35
75.34 453.18
59.77 458.31
80.79 480.26
74.1 448.65
41.34 458.41
58.78 435.39
97.78 450.21
74.85 459.59
69.84 445.84
75.36 441.08
85.8 467.33
90.11 444.19
61.63 432.96
44.76 438.09
89.7 467.9
72.51 475.72
74.98 477.51
79.59 435.13
78.42 477.9
61.23 457.26
47.56 467.53
93.06 465.15
89.65 474.28
50.5 444.49
44.84 452.84
85.32 435.38
82.94 433.57
67.26 435.27
79.05 468.49
62.03 433.07
94.36 430.63
60.02 440.74
95.46 474.49
84.92 449.74
62.8 436.73
90.81 434.58
80.9 473.93
55.84 435.99
75.3 466.83
37.34 427.22
79.5 444.07
87.29 469.57
81.5 459.89
76.42 479.59
75.75 440.92
84.95 480.87
62.37 441.9
49.25 430.2
74.16 465.16
90.55 471.32
94.28 485.43
63.31 495.35
78.9 449.12
90.97 480.53
87.34 457.07
80.8 443.67
90.95 477.52
69.97 472.95
89.45 472.54
76.08 469.17
83.35 435.21
92.16 477.78
58.42 475.89
85.06 483.9
88.91 476.2
83.33 462.16
88.49 471.05
96.88 484.71
73.86 446.34
65.17 469.02
69.41 432.12
81.23 467.28
54.07 429.66
89.17 469.49
78.85 485.87
84.44 481.95
83.02 479.03
90.66 434.5
75.29 464.9
82.6 452.71
45.4 429.74
66.33 457.09
45.33 446.77
67.12 460.76
84.14 471.95
80.81 453.29
49.13 441.61
87.29 464.73
52.95 464.68
68.92 430.59
85.21 438.01
88.56 479.08
55.09 436.39
48.64 447.07
87.85 479.91
87.42 489.05
62.75 463.17
94.86 471.26
63.54 480.49
69.46 473.78
74.66 455.5
80.57 446.27
84.7 482.2
72.6 452.48
52.63 464.48
82.01 438.1
75.22 445.6
51.05 442.43
80.1 436.67
81.58 466.56
65.94 457.29
86.74 487.03
62.57 464.93
57.37 466.0
88.91 469.52
72.26 428.88
74.98 474.3
71.19 461.06
62.82 465.57
55.31 467.67
71.57 466.99
59.16 463.72
40.8 443.78
67.63 445.23
97.2 464.43
91.16 484.36
64.81 442.16
85.61 464.11
93.42 462.48
77.36 477.49
67.03 437.04
89.45 457.09
54.84 450.6
53.48 465.78
54.47 427.1
43.36 459.81
48.92 447.36
81.22 488.92
60.35 433.36
75.98 483.35
74.24 469.53
85.21 476.96
68.46 440.75
78.31 462.55
89.25 448.04
68.57 455.24
67.38 494.75
53.6 444.58
91.69 484.82
78.21 442.9
94.19 485.46
37.19 457.81
83.53 481.92
79.45 443.23
99.9 474.29
50.39 430.46
74.33 455.71
83.66 438.34
89.48 485.83
64.59 452.82
75.68 435.04
64.18 451.21
70.09 465.81
70.58 458.42
99.28 470.22
81.89 449.24
87.99 471.43
88.21 473.26
91.29 452.82
52.72 432.69
67.5 444.13
92.05 467.21
63.23 445.98
90.88 436.91
74.91 455.01
85.39 437.11
96.98 477.06
56.28 441.71
65.62 495.76
55.32 445.63
88.88 464.72
39.49 438.03
54.59 434.78
57.19 444.67
45.06 452.24
40.62 450.92
90.21 436.53
90.91 435.53
74.96 440.01
54.21 443.1
63.62 427.49
50.04 436.25
51.23 440.74
82.71 443.54
92.04 459.42
90.67 439.66
91.14 464.15
70.43 459.1
66.63 455.68
86.95 469.08
96.69 478.02
70.88 456.8
47.14 441.13
63.36 463.88
60.58 430.45
54.3 449.18
65.09 447.89
48.16 431.59
81.51 447.5
68.57 475.58
73.16 453.24
80.88 446.4
85.4 476.81
75.77 474.1
75.76 450.71
70.21 433.62
55.53 465.14
80.48 445.18
72.41 474.12
83.25 483.91
82.12 486.68
94.75 464.98
95.79 481.4
86.02 479.2
78.29 463.86
82.23 472.3
52.86 446.51
60.66 437.71
62.77 458.94
65.54 437.91
95.4 490.76
51.78 439.66
63.62 463.27
83.09 473.99
61.81 433.38
68.24 459.01
72.41 471.44
79.64 471.91
66.95 465.15
91.98 446.66
64.96 438.15
88.93 447.14
85.62 472.32
84.0 441.68
89.41 440.04
67.4 444.82
76.75 457.26
89.06 428.83
64.02 449.07
64.12 435.21
81.22 471.03
100.13 465.56
58.07 442.83
63.42 460.3
83.32 474.25
74.28 477.97
71.91 472.16
85.8 456.08
55.58 452.41
69.7 463.71
63.79 433.72
86.59 456.4
48.28 448.43
80.42 481.6
98.58 457.07
72.83 451.0
56.07 440.28
67.13 437.47
84.49 443.57
68.37 426.6
86.07 470.87
83.82 478.37
74.86 453.92
53.52 470.22
80.61 434.54
43.56 442.89
89.35 479.03
97.28 476.06
80.49 473.88
88.9 451.75
49.7 439.2
68.64 439.7
98.58 463.6
82.12 447.47
78.32 447.92
86.04 471.08
91.36 437.55
81.02 448.27
76.05 431.69
71.81 449.09
82.13 448.79
74.27 460.21
71.32 479.28
74.59 483.11
84.44 450.75
43.39 437.97
87.2 459.76
77.11 457.75
82.81 469.33
85.67 433.28
95.58 444.64
74.46 463.1
90.02 460.91
81.93 479.35
86.29 449.23
85.43 474.51
71.66 435.02
71.33 435.45
67.72 452.38
84.23 480.41
74.44 478.96
71.48 468.87
56.3 434.01
68.13 466.36
68.35 435.28
85.23 486.46
79.78 468.19
98.98 468.37
72.87 474.19
90.93 440.32
72.94 485.32
72.3 464.27
77.74 479.25
78.29 430.4
69.1 447.49
55.79 438.23
75.09 492.09
88.98 475.36
64.26 452.56
25.89 427.84
59.18 433.95
67.48 435.27
89.85 454.62
50.62 472.17
83.97 452.42
96.51 472.17
80.09 481.83
84.02 458.78
61.97 447.5
88.51 463.4
81.83 473.57
90.63 433.72
73.37 431.85
77.5 433.47
57.46 432.84
51.91 436.6
79.14 490.23
69.24 477.16
41.85 441.06
95.1 440.86
74.53 477.94
64.85 474.47
57.07 470.67
62.9 447.31
72.21 466.8
65.99 430.91
73.67 434.75
88.59 469.52
61.19 438.9
49.37 429.56
48.65 432.92
56.18 442.87
71.56 466.59
87.46 479.61
70.02 471.08
61.2 433.37
60.54 443.92
71.82 443.5
44.8 439.89
67.32 434.66
78.77 487.57
96.02 464.64
90.56 470.92
83.19 444.39
68.45 442.48
99.19 449.61
88.11 435.02
79.29 458.67
87.76 461.74
82.56 438.31
79.24 462.38
67.24 460.56
58.98 439.22
84.22 444.64
89.12 430.34
50.07 430.46
98.86 456.79
95.79 468.82
70.06 448.51
41.71 470.77
86.55 465.74
71.97 430.21
96.4 449.23
91.73 461.89
91.62 445.72
59.14 466.13
92.56 448.71
83.71 469.25
55.43 450.56
74.91 464.46
89.41 471.13
69.81 461.52
86.01 451.09
86.05 431.51
80.98 469.8
63.62 442.28
64.16 458.67
75.63 462.4
80.21 453.54
59.7 444.38
47.6 440.52
63.78 433.62
89.37 481.96
70.55 452.75
84.42 481.28
80.62 439.03
52.56 435.75
83.26 436.03
70.64 445.6
89.95 462.65
51.53 438.66
84.83 447.32
59.68 484.55
97.88 476.8
85.03 480.34
47.38 440.63
48.08 459.48
79.65 490.78
83.39 483.56
82.18 429.38
51.71 440.27
77.33 445.34
72.81 447.43
84.26 439.91
73.23 459.27
79.73 478.89
62.32 466.7
78.58 463.5
79.88 436.21
65.87 443.94
80.28 439.63
71.33 460.95
70.33 448.69
57.73 444.63
99.46 473.51
68.61 462.56
95.91 451.76
80.42 491.81
51.01 429.52
74.08 437.9
80.73 467.54
54.71 449.97
73.75 436.62
88.43 477.68
74.66 447.26
70.04 439.76
74.64 437.49
85.11 455.14
82.97 485.5
55.59 444.1
49.9 432.33
89.99 471.23
91.61 463.89
82.95 445.54
92.62 446.09
59.64 445.12
63.0 443.31
85.38 484.16
85.23 477.76
52.08 430.28
38.05 446.48
71.98 481.03
90.66 466.07
83.14 447.47
65.22 455.93
91.67 479.62
66.04 455.06
78.19 475.06
54.47 438.89
67.26 432.7
72.56 452.6
82.15 451.75
86.32 430.66
88.17 491.9
72.78 439.82
69.58 460.73
69.86 449.7
65.37 439.42
52.37 439.84
79.63 485.86
83.14 458.1
88.25 479.92
55.85 458.29
52.55 489.45
62.74 434.0
90.08 431.24
54.5 439.5
49.88 467.46
48.96 429.27
86.77 452.1
96.66 472.41
70.84 442.14
83.83 441.0
68.22 463.07
82.22 445.71
87.9 483.16
66.83 440.45
85.36 481.83
60.9 467.6
83.51 450.88
52.96 425.5
73.02 451.87
43.11 428.94
61.41 439.86
65.32 433.44
93.68 438.23
42.39 436.95
68.18 470.19
89.18 484.66
64.79 430.81
43.48 433.37
80.4 453.02
72.43 453.5
80.0 463.09
45.65 464.56
63.02 452.12
74.39 470.9
57.77 450.89
76.8 445.04
67.39 444.72
73.96 460.38
72.75 446.8
71.69 465.05
84.98 484.13
87.68 488.27
50.36 447.09
68.11 452.02
66.27 455.55
89.72 480.99
61.07 467.68
AT V AP RH PE
14.96 41.76 1024.07 73.17 463.26
25.18 62.96 1020.04 59.08 444.37
5.11 39.4 1012.16 92.14 488.56
20.86 57.32 1010.24 76.64 446.48
10.82 37.5 1009.23 96.62 473.9
26.27 59.44 1012.23 58.77 443.67
15.89 43.96 1014.02 75.24 467.35
9.48 44.71 1019.12 66.43 478.42
14.64 45.0 1021.78 41.25 475.98
11.74 43.56 1015.14 70.72 477.5
17.99 43.72 1008.64 75.04 453.02
20.14 46.93 1014.66 64.22 453.99
24.34 73.5 1011.31 84.15 440.29
25.71 58.59 1012.77 61.83 451.28
26.19 69.34 1009.48 87.59 433.99
21.42 43.79 1015.76 43.08 462.19
18.21 45.0 1022.86 48.84 467.54
11.04 41.74 1022.6 77.51 477.2
14.45 52.75 1023.97 63.59 459.85
13.97 38.47 1015.15 55.28 464.3
17.76 42.42 1009.09 66.26 468.27
5.41 40.07 1019.16 64.77 495.24
7.76 42.28 1008.52 83.31 483.8
27.23 63.9 1014.3 47.19 443.61
27.36 48.6 1003.18 54.93 436.06
27.47 70.72 1009.97 74.62 443.25
14.6 39.31 1011.11 72.52 464.16
7.91 39.96 1023.57 88.44 475.52
5.81 35.79 1012.14 92.28 484.41
30.53 65.18 1012.69 41.85 437.89
23.87 63.94 1019.02 44.28 445.11
26.09 58.41 1013.64 64.58 438.86
29.27 66.85 1011.11 63.25 440.98
27.38 74.16 1010.08 78.61 436.65
24.81 63.94 1018.76 44.51 444.26
12.75 44.03 1007.29 89.46 465.86
24.66 63.73 1011.4 74.52 444.37
16.38 47.45 1010.08 88.86 450.69
13.91 39.35 1014.69 75.51 469.02
23.18 51.3 1012.04 78.64 448.86
22.47 47.45 1007.62 76.65 447.14
13.39 44.85 1017.24 80.44 469.18
9.28 41.54 1018.33 79.89 482.8
11.82 42.86 1014.12 88.28 476.7
10.27 40.64 1020.63 84.6 474.99
22.92 63.94 1019.28 42.69 444.22
16.0 37.87 1020.24 78.41 461.33
21.22 43.43 1010.96 61.07 448.06
13.46 44.71 1014.51 50.0 474.6
9.39 40.11 1029.14 77.29 473.05
31.07 73.5 1010.58 43.66 432.06
12.82 38.62 1018.71 83.8 467.41
32.57 78.92 1011.6 66.47 430.12
8.11 42.18 1014.82 93.09 473.62
13.92 39.39 1012.94 80.52 471.81
23.04 59.43 1010.23 68.99 442.99
27.31 64.44 1014.65 57.27 442.77
5.91 39.33 1010.18 95.53 491.49
25.26 61.08 1013.68 71.72 447.46
27.97 58.84 1002.25 57.88 446.11
26.08 52.3 1007.03 63.34 442.44
29.01 65.71 1013.61 48.07 446.22
12.18 40.1 1016.67 91.87 471.49
13.76 45.87 1008.89 87.27 463.5
25.5 58.79 1016.02 64.4 440.01
28.26 65.34 1014.56 43.4 441.03
21.39 62.96 1019.49 72.24 452.68
7.26 40.69 1020.43 90.22 474.91
10.54 34.03 1018.71 74.0 478.77
27.71 74.34 998.14 71.85 434.2
23.11 68.3 1017.83 86.62 437.91
7.51 41.01 1024.61 97.41 477.61
26.46 74.67 1016.65 84.44 431.65
29.34 74.34 998.58 81.55 430.57
10.32 42.28 1008.82 75.66 481.09
22.74 61.02 1009.56 79.41 445.56
13.48 39.85 1012.71 58.91 475.74
25.52 69.75 1010.36 90.06 435.12
21.58 67.25 1017.39 79.0 446.15
27.66 76.86 1001.31 69.47 436.64
26.96 69.45 1013.89 51.47 436.69
12.29 42.18 1016.53 83.13 468.75
15.86 43.02 1012.18 40.33 466.6
13.87 45.08 1024.42 81.69 465.48
24.09 73.68 1014.93 94.55 441.34
20.45 69.45 1012.53 91.81 441.83
15.07 39.3 1019.0 63.62 464.7
32.72 69.75 1009.6 49.35 437.99
18.23 58.96 1015.55 69.61 459.12
35.56 68.94 1006.56 38.75 429.69
18.36 51.43 1010.57 90.17 459.8
26.35 64.05 1009.81 81.24 433.63
25.92 60.95 1014.62 48.46 442.84
8.01 41.66 1014.49 76.72 485.13
19.63 52.72 1025.09 51.16 459.12
20.02 67.32 1012.05 76.34 445.31
10.08 40.72 1022.7 67.3 480.8
27.23 66.48 1005.23 52.38 432.55
23.37 63.77 1013.42 76.44 443.86
18.74 59.21 1018.3 91.55 449.77
14.81 43.69 1017.19 71.9 470.71
23.1 51.3 1011.93 80.05 452.17
10.72 41.38 1021.6 63.77 478.29
29.46 71.94 1006.96 62.26 428.54
8.1 40.64 1020.66 89.04 478.27
27.29 62.66 1007.63 58.02 439.58
17.1 49.69 1005.53 81.82 457.32
11.49 44.2 1018.79 91.14 475.51
23.69 65.59 1010.85 88.92 439.66
13.51 40.89 1011.03 84.83 471.99
9.64 39.35 1015.1 91.76 479.81
25.65 78.92 1010.83 86.56 434.78
21.59 61.87 1011.18 57.21 446.58
27.98 58.33 1013.92 54.25 437.76
18.8 39.72 1001.24 63.8 459.36
18.28 44.71 1016.99 33.71 462.28
13.55 43.48 1016.08 67.25 464.33
22.99 46.21 1010.71 60.11 444.36
23.94 59.39 1014.32 74.55 438.64
13.74 34.03 1018.69 67.34 470.49
21.3 41.1 1001.86 42.75 455.13
27.54 66.93 1017.06 55.2 450.22
24.81 63.73 1009.34 83.61 440.43
4.97 42.85 1014.02 88.78 482.98
15.22 50.88 1014.19 100.12 460.44
23.88 54.2 1012.81 64.52 444.97
33.01 68.67 1005.2 51.41 433.94
25.98 73.18 1012.28 85.78 439.73
28.18 73.88 1005.89 75.41 434.48
21.67 60.84 1017.93 81.63 442.33
17.67 45.09 1014.26 51.92 457.67
21.37 57.76 1018.8 70.12 454.66
28.69 67.25 1017.71 53.83 432.21
16.61 43.77 1012.25 77.23 457.66
27.91 63.76 1010.27 65.67 435.21
20.97 47.43 1007.64 71.18 448.22
10.8 41.66 1013.79 81.96 475.51
20.61 62.91 1013.24 79.54 446.53
25.45 57.32 1011.7 47.09 441.3
30.16 69.34 1007.67 57.69 433.54
4.99 39.04 1020.45 78.89 472.52
10.51 44.78 1012.59 85.29 474.77
33.79 69.05 1001.62 40.13 435.1
21.34 59.8 1016.92 77.06 450.74
23.4 65.06 1014.32 67.38 442.7
32.21 68.14 1003.34 62.44 426.56
14.26 42.32 1016.0 77.43 463.71
27.71 66.93 1016.85 58.77 447.06
21.95 57.76 1018.02 67.72 452.27
25.76 63.94 1018.49 42.14 445.78
23.68 68.3 1017.93 84.16 438.65
8.28 40.77 1011.55 89.79 480.15
23.44 62.52 1016.46 67.21 447.19
25.32 48.41 1008.47 72.14 443.04
3.94 39.9 1008.06 97.49 488.81
17.3 57.76 1016.26 87.74 455.75
18.2 49.39 1018.83 96.3 455.86
21.43 46.97 1013.94 61.25 457.68
11.16 40.05 1014.95 88.38 479.11
30.38 74.16 1007.44 74.77 432.84
23.36 62.52 1016.18 68.18 448.37
21.69 47.45 1007.56 77.2 447.06
23.62 49.21 1014.1 49.54 443.53
21.87 61.45 1011.13 92.22 445.21
29.25 66.51 1015.53 33.65 441.7
20.03 66.86 1013.05 64.59 450.93
18.14 49.78 1002.95 100.09 451.44
24.23 56.89 1012.32 68.04 441.29
18.11 44.85 1014.48 48.94 458.85
6.57 43.65 1018.24 74.47 481.46
12.56 43.41 1016.93 81.02 467.19
13.4 41.58 1020.5 71.17 461.54
27.1 52.84 1006.28 53.85 439.08
14.28 42.74 1028.79 70.67 467.22
16.29 44.34 1019.49 59.36 468.8
31.24 71.98 1004.66 57.17 426.93
10.57 37.73 1024.36 70.29 474.65
13.8 44.21 1022.93 83.37 468.97
25.3 71.58 1010.18 87.36 433.97
18.06 50.16 1009.52 100.09 450.53
25.42 59.04 1011.98 68.78 444.51
15.07 40.69 1015.29 70.98 469.03
11.75 71.14 1019.36 75.68 466.56
20.23 52.05 1012.15 47.49 457.57
27.31 59.54 1006.24 71.99 440.13
28.57 69.84 1003.57 66.55 433.24
17.9 43.72 1008.64 74.73 452.55
23.83 71.37 1002.04 64.78 443.29
27.92 74.99 1005.47 75.13 431.76
17.34 44.78 1007.81 56.38 454.97
17.94 63.07 1012.42 94.35 456.7
6.4 39.9 1007.75 86.55 486.03
11.78 39.96 1011.37 82.95 472.79
20.28 57.25 1010.12 88.42 452.03
21.04 54.2 1012.26 85.61 443.41
25.11 67.32 1014.49 58.39 441.93
30.28 70.98 1007.51 74.28 432.64
8.14 36.24 1013.15 87.85 480.25
16.86 39.63 1004.47 83.5 466.68
6.25 40.07 1020.19 65.24 494.39
22.35 54.42 1012.46 75.01 454.72
17.98 56.85 1012.28 84.52 448.71
21.19 42.48 1013.43 80.52 469.76
20.94 44.89 1009.64 75.14 450.71
24.23 58.79 1009.8 75.75 444.01
19.18 58.2 1017.46 76.72 453.2
20.88 57.85 1012.39 85.47 450.87
23.67 63.86 1019.67 57.95 441.73
14.12 39.52 1018.41 78.32 465.09
25.23 64.63 1020.59 52.2 447.28
6.54 39.33 1011.54 93.69 491.16
20.08 62.52 1017.99 75.74 450.98
24.67 63.56 1013.75 67.56 446.3
27.82 79.74 1008.37 69.46 436.48
15.55 42.03 1017.41 74.58 460.84
24.26 69.51 1013.43 53.23 442.56
13.45 41.49 1020.19 88.72 467.3
11.06 40.64 1021.47 96.16 479.13
24.91 52.3 1008.72 68.26 441.15
22.39 59.04 1011.78 86.39 445.52
11.95 40.69 1015.62 85.34 475.4
14.85 40.69 1014.91 72.64 469.3
10.11 41.62 1017.17 97.82 463.57
23.67 68.67 1006.71 77.22 445.32
16.14 44.21 1020.36 80.59 461.03
15.11 43.13 1014.99 46.91 466.74
24.14 59.87 1018.47 57.76 444.04
30.08 67.25 1017.6 53.09 434.01
14.77 44.9 1020.5 84.31 465.23
27.6 69.34 1009.63 71.58 440.6
13.89 44.84 1023.66 92.97 466.74
26.85 75.6 1017.43 74.55 433.48
12.41 40.96 1023.36 78.96 473.59
13.08 41.74 1020.75 64.44 474.81
18.93 44.06 1017.58 68.23 454.75
20.5 49.69 1009.6 70.81 452.94
30.72 69.13 1009.94 61.66 435.83
7.55 39.22 1014.53 77.76 482.19
13.49 44.47 1030.46 69.49 466.66
15.62 40.12 1013.03 96.26 462.59
24.8 64.63 1020.69 55.74 447.82
10.03 41.62 1014.55 95.61 462.73
22.43 63.21 1012.06 84.75 447.98
14.95 39.31 1009.15 75.3 462.72
24.78 58.46 1016.82 67.5 442.42
23.2 48.41 1008.64 80.92 444.69
14.01 39.0 1016.73 79.23 466.7
19.4 64.63 1020.38 81.1 453.84
30.15 67.32 1013.83 32.8 436.92
6.91 36.08 1021.82 84.31 486.37
29.04 60.07 1015.42 46.15 440.43
26.02 63.07 1010.94 53.96 446.82
5.89 39.48 1005.11 59.83 484.91
26.52 71.64 1008.27 75.3 437.76
28.53 68.08 1013.27 42.53 438.91
16.59 39.54 1007.97 70.58 464.19
22.95 67.79 1009.89 91.69 442.19
23.96 47.43 1008.38 63.55 446.86
17.48 44.2 1018.89 61.51 457.15
6.69 43.65 1020.14 69.55 482.57
10.25 41.26 1007.44 98.08 476.03
28.87 72.58 1008.69 79.34 428.89
12.04 40.23 1018.07 81.28 472.7
22.58 52.3 1009.04 78.99 445.6
15.12 52.05 1014.63 80.38 464.78
25.48 58.95 1017.02 51.16 440.42
27.87 70.79 1003.96 72.17 428.41
23.72 70.47 1010.65 75.39 438.5
25.0 59.43 1007.84 68.91 438.28
8.42 40.64 1022.35 96.38 476.29
22.46 58.49 1011.5 70.54 448.46
29.92 57.19 1008.62 45.8 438.99
11.68 39.22 1017.9 57.95 471.8
14.04 42.44 1012.74 81.89 471.81
19.86 59.14 1016.12 69.32 449.82
25.99 68.08 1013.13 59.14 442.14
23.42 58.79 1009.74 81.54 441.46
10.6 40.22 1011.37 85.81 477.62
20.97 61.87 1011.45 65.41 446.76
14.14 39.82 1012.46 81.15 472.52
8.56 40.71 1021.27 95.87 471.58
24.86 72.39 1001.15 90.24 440.85
29.0 77.54 1011.33 75.13 431.37
27.59 71.97 1008.64 88.22 437.33
10.45 40.71 1015.68 81.48 469.22
8.51 40.78 1023.51 89.84 471.11
29.82 66.51 1010.98 43.57 439.17
22.56 62.26 1012.11 63.16 445.33
11.38 39.22 1018.62 57.14 473.71
20.25 57.76 1016.28 77.76 452.66
22.42 59.43 1007.12 90.56 440.99
14.85 38.91 1014.48 60.98 467.42
25.62 58.82 1010.02 70.31 444.14
19.85 56.53 1020.57 74.05 457.17
13.67 54.3 1015.92 75.42 467.87
24.39 70.72 1009.78 82.25 442.04
16.07 44.58 1019.52 67.95 471.36
11.6 39.1 1009.81 100.09 460.7
31.38 70.83 1010.35 47.28 431.33
29.91 76.86 998.59 72.41 432.6
19.67 59.39 1014.07 77.67 447.61
27.18 64.79 1016.27 63.7 443.87
21.39 52.3 1009.2 79.77 446.87
10.45 41.01 1020.57 93.84 465.74
19.46 56.89 1014.02 84.95 447.86
23.55 62.96 1020.16 70.16 447.65
23.35 63.47 1011.78 84.24 437.87
9.26 41.66 1016.87 73.32 483.51
10.3 41.46 1018.21 86.17 479.65
20.94 58.16 1016.88 65.43 455.16
23.13 71.25 1002.49 94.59 431.91
12.77 41.5 1014.13 86.8 470.68
28.29 69.13 1009.29 58.18 429.28
19.13 59.21 1018.32 89.66 450.81
24.44 73.5 1011.49 87.39 437.73
20.32 44.6 1015.16 36.35 460.21
20.54 69.05 1001.6 79.62 442.86
12.16 45.0 1021.51 50.52 482.99
28.09 65.27 1013.27 51.96 440.0
9.25 41.82 1033.25 74.73 478.48
21.75 49.82 1015.01 78.33 455.28
23.7 66.56 1002.07 85.19 436.94
16.22 37.87 1022.36 83.13 461.06
24.75 69.45 1013.97 53.49 438.28
10.48 39.58 1011.81 88.86 472.61
29.53 70.79 1003.7 60.89 426.85
12.59 39.72 1017.76 61.14 470.18
23.5 54.42 1012.31 68.29 455.38
29.01 66.56 1006.44 57.62 428.32
9.75 42.49 1010.57 83.63 480.35
19.55 56.53 1020.2 78.1 455.56
21.05 58.33 1013.14 66.34 447.66
24.72 68.67 1006.74 79.02 443.06
21.19 58.86 1014.19 68.96 452.43
10.77 41.54 1019.94 71.13 477.81
28.68 73.77 1004.72 87.01 431.66
29.87 73.91 1004.53 74.3 431.8
22.99 68.67 1006.65 77.62 446.67
24.66 60.29 1018.0 59.56 445.26
32.63 69.89 1013.85 41.66 425.72
31.38 72.29 1008.73 73.27 430.58
23.87 60.27 1018.94 77.16 439.86
25.6 59.15 1013.31 67.02 441.11
27.62 71.14 1011.6 52.8 434.72
30.1 67.45 1014.23 39.04 434.01
12.19 41.17 1019.43 65.47 475.64
13.11 41.58 1020.43 74.32 460.44
28.29 68.67 1005.46 69.22 436.4
13.45 40.73 1018.7 93.88 461.03
10.98 41.54 1019.94 69.83 479.08
26.48 69.14 1009.31 84.11 435.76
13.07 45.51 1015.22 78.65 460.14
25.56 75.6 1017.37 69.31 442.2
22.68 50.78 1008.83 70.3 447.69
28.86 73.67 1006.65 68.23 431.15
22.7 63.56 1014.32 71.76 445.0
27.89 73.21 1001.32 85.88 431.59
13.78 44.47 1027.94 71.09 467.22
28.14 51.43 1012.16 52.67 445.33
11.8 45.09 1013.21 89.68 470.57
10.71 39.61 1018.72 73.66 473.77
24.54 60.29 1017.42 58.94 447.67
11.54 40.05 1014.78 87.05 474.29
29.47 71.32 1008.07 67.0 437.14
29.24 69.05 1003.12 43.18 432.56
14.51 41.79 1009.72 80.62 459.14
22.91 60.07 1016.03 59.72 446.19
27.02 71.77 1006.38 72.1 428.1
13.49 44.47 1030.18 69.15 468.46
30.24 66.75 1017.95 55.66 435.02
23.19 48.6 1002.38 61.19 445.52
17.73 40.55 1003.36 74.62 462.69
18.62 61.27 1019.26 73.35 455.75
12.85 40.0 1015.89 68.85 463.74
32.33 69.68 1011.95 39.89 439.79
25.09 58.95 1016.99 53.16 443.26
29.45 69.13 1009.3 52.97 432.04
16.91 43.96 1013.32 79.87 465.86
14.09 45.87 1009.05 84.09 465.6
10.73 25.36 1009.35 100.15 469.43
23.2 49.3 1003.4 79.77 440.75
8.21 38.91 1015.82 88.99 481.32
9.3 40.56 1022.64 76.14 479.87
16.97 39.16 1005.7 69.13 458.59
23.69 71.97 1009.62 93.03 438.62
25.13 59.44 1012.38 77.92 445.59
9.86 43.56 1015.13 74.89 481.87
11.33 41.5 1013.58 88.7 475.01
26.95 48.41 1008.53 62.94 436.54
15.0 40.66 1016.28 89.62 456.63
20.76 62.52 1015.63 81.04 451.69
14.29 39.59 1010.93 94.53 463.04
19.74 67.71 1007.68 64.02 446.1
26.68 59.92 1009.94 70.57 438.67
14.24 41.4 1019.7 70.32 466.88
21.98 48.41 1008.42 84.86 444.6
22.75 59.39 1015.4 81.41 440.26
8.34 40.96 1023.28 89.45 483.92
11.8 41.2 1017.18 82.71 475.19
8.81 44.68 1023.06 93.93 479.24
30.05 73.68 1014.95 70.6 434.92
16.01 65.46 1014.0 87.68 454.16
21.75 58.79 1012.42 87.58 447.58
13.94 41.26 1021.67 74.4 467.9
29.25 69.13 1010.27 67.35 426.29
22.33 45.87 1007.8 63.61 447.02
16.43 41.79 1005.47 76.89 455.85
11.5 40.22 1010.31 78.08 476.46
23.53 68.94 1007.53 69.17 437.48
21.86 49.21 1014.61 53.31 452.77
6.17 39.33 1012.57 93.32 491.54
30.19 64.79 1017.22 42.47 438.41
11.67 41.93 1019.81 82.58 476.1
15.34 36.99 1007.87 94.59 464.58
11.5 40.78 1023.91 86.31 467.74
25.53 57.17 1010.0 72.57 442.12
21.27 57.5 1014.53 80.76 453.34
28.37 69.13 1010.44 71.93 425.29
28.39 51.43 1011.74 47.54 449.63
13.78 45.78 1025.27 95.72 462.88
14.6 42.32 1015.71 77.03 464.67
5.1 35.57 1027.17 80.49 489.96
7.0 38.08 1020.27 77.67 482.38
26.3 77.95 1009.45 78.72 437.95
30.56 71.98 1004.74 58.77 429.2
21.09 46.63 1013.03 74.8 453.34
28.21 70.02 1010.58 51.34 442.47
15.84 49.69 1015.14 90.41 462.6
10.03 40.96 1024.57 91.1 478.79
20.37 52.05 1012.34 62.57 456.11
21.19 50.16 1005.81 84.27 450.33
33.73 69.88 1007.21 42.93 434.83
29.87 73.68 1015.1 40.96 433.43
19.62 62.96 1020.76 76.53 456.02
9.93 40.67 1018.08 69.74 485.23
9.43 37.14 1013.03 74.99 473.57
14.24 39.58 1011.17 70.45 469.94
12.97 49.83 1008.69 91.49 452.07
7.6 41.04 1021.82 88.97 475.32
8.39 36.24 1013.39 89.13 480.69
25.41 48.06 1013.12 46.52 444.01
18.43 56.03 1020.41 60.55 465.17
10.31 39.82 1012.87 88.71 480.61
11.29 41.5 1013.39 89.15 476.04
22.61 49.3 1003.51 83.02 441.76
29.34 71.98 1005.19 75.19 428.24
18.87 67.71 1004.0 87.35 444.77
13.21 45.87 1008.58 85.66 463.1
11.3 44.6 1018.19 91.66 470.5
29.23 72.99 1007.04 63.47 431.0
27.76 69.4 1004.27 72.25 430.68
29.26 67.17 1006.6 70.58 436.42
25.72 49.82 1016.19 60.1 452.33
23.43 63.94 1010.64 89.29 440.16
25.6 63.76 1010.18 67.43 435.75
22.3 44.57 1008.48 67.58 449.74
27.91 72.24 1010.74 70.8 430.73
30.35 77.17 1009.55 63.62 432.75
21.78 47.43 1007.88 66.68 446.79
7.19 41.39 1018.12 90.76 486.35
20.88 59.8 1015.66 75.34 453.18
24.19 50.23 1015.73 59.77 458.31
9.98 41.54 1019.7 80.79 480.26
23.47 51.3 1011.89 74.1 448.65
26.35 49.5 1012.67 41.34 458.41
29.89 64.69 1006.37 58.78 435.39
19.29 50.16 1010.49 97.78 450.21
17.48 43.14 1018.68 74.85 459.59
25.21 75.6 1017.19 69.84 445.84
23.3 48.78 1018.17 75.36 441.08
15.42 37.85 1009.89 85.8 467.33
21.44 63.09 1016.56 90.11 444.19
29.45 68.27 1007.96 61.63 432.96
29.69 47.93 1002.85 44.76 438.09
15.52 36.99 1006.86 89.7 467.9
11.47 43.67 1012.68 72.51 475.72
9.77 34.69 1027.72 74.98 477.51
22.6 69.84 1006.37 79.59 435.13
8.24 39.61 1017.99 78.42 477.9
17.01 44.2 1019.18 61.23 457.26
19.64 44.6 1015.88 47.56 467.53
10.61 41.58 1021.08 93.06 465.15
12.04 40.1 1014.42 89.65 474.28
29.19 65.71 1013.85 50.5 444.49
21.75 45.09 1014.15 44.84 452.84
23.66 77.54 1008.5 85.32 435.38
27.05 75.33 1003.88 82.94 433.57
29.63 69.71 1009.04 67.26 435.27
18.2 39.63 1005.35 79.05 468.49
32.22 70.8 1009.9 62.03 433.07
26.88 73.56 1004.85 94.36 430.63
29.05 65.74 1013.29 60.02 440.74
8.9 39.96 1026.31 95.46 474.49
18.93 48.6 1005.72 84.92 449.74
27.49 63.76 1010.09 62.8 436.73
23.1 70.79 1006.53 90.81 434.58
11.22 43.13 1017.24 80.9 473.93
31.97 79.74 1007.03 55.84 435.99
13.32 43.22 1009.45 75.3 466.83
31.68 68.24 1005.29 37.34 427.22
23.69 63.77 1013.39 79.5 444.07
13.83 41.49 1020.11 87.29 469.57
18.32 66.51 1015.18 81.5 459.89
11.05 40.71 1024.91 76.42 479.59
22.03 64.69 1007.21 75.75 440.92
10.23 41.46 1020.45 84.95 480.87
23.92 66.54 1009.93 62.37 441.9
29.38 69.68 1011.35 49.25 430.2
17.35 42.86 1014.62 74.16 465.16
9.81 44.45 1021.19 90.55 471.32
4.97 40.64 1020.91 94.28 485.43
5.15 40.07 1012.27 63.31 495.35
21.54 58.49 1010.85 78.9 449.12
7.94 42.02 1006.22 90.97 480.53
18.77 50.66 1014.89 87.34 457.07
21.69 69.94 1010.7 80.8 443.67
10.07 44.68 1023.44 90.95 477.52
13.83 39.64 1012.52 69.97 472.95
10.45 39.69 1003.92 89.45 472.54
11.56 40.71 1015.85 76.08 469.17
23.64 70.04 1011.09 83.35 435.21
10.48 40.22 1004.81 92.16 477.78
13.09 39.85 1012.86 58.42 475.89
10.67 40.23 1017.75 85.06 483.9
12.57 39.16 1016.53 88.91 476.2
14.45 43.34 1015.47 83.33 462.16
14.22 37.85 1011.24 88.49 471.05
6.97 41.26 1010.6 96.88 484.71
20.61 63.86 1015.43 73.86 446.34
14.67 42.28 1007.21 65.17 469.02
29.06 72.86 1004.23 69.41 432.12
14.38 40.1 1015.51 81.23 467.28
32.51 69.98 1013.29 54.07 429.66
11.79 45.09 1013.16 89.17 469.49
8.65 40.56 1023.23 78.85 485.87
9.75 40.81 1026.0 84.44 481.95
9.11 40.02 1031.1 83.02 479.03
23.39 69.13 1010.99 90.66 434.5
14.3 54.3 1015.16 75.29 464.9
17.49 63.94 1020.02 82.6 452.71
31.1 69.51 1010.84 45.4 429.74
19.77 56.65 1020.67 66.33 457.09
28.61 72.29 1011.61 45.33 446.77
13.52 41.48 1014.46 67.12 460.76
13.52 40.83 1008.31 84.14 471.95
17.57 46.21 1014.09 80.81 453.29
28.18 60.07 1016.34 49.13 441.61
14.29 46.18 1017.01 87.29 464.73
18.12 43.69 1016.91 52.95 464.68
31.27 73.91 1003.72 68.92 430.59
26.24 77.95 1014.19 85.21 438.01
7.44 41.04 1021.84 88.56 479.08
29.78 74.78 1009.28 55.09 436.39
23.37 65.46 1016.25 48.64 447.07
10.62 39.58 1011.9 87.85 479.91
5.84 43.02 1013.88 87.42 489.05
14.51 53.82 1016.46 62.75 463.17
11.31 42.02 1001.18 94.86 471.26
11.25 40.67 1011.64 63.54 480.49
9.18 39.42 1025.41 69.46 473.78
19.82 58.16 1016.76 74.66 455.5
24.77 58.41 1013.78 80.57 446.27
9.66 41.06 1021.21 84.7 482.2
21.96 59.8 1016.72 72.6 452.48
18.59 43.14 1011.92 52.63 464.48
24.75 69.89 1015.29 82.01 438.1
24.37 63.47 1012.77 75.22 445.6
29.6 67.79 1010.37 51.05 442.43
25.32 61.25 1011.56 80.1 436.67
16.15 41.85 1016.54 81.58 466.56
15.74 71.14 1019.65 65.94 457.29
5.97 36.25 1029.65 86.74 487.03
15.84 52.72 1026.45 62.57 464.93
14.84 44.63 1019.28 57.37 466.0
12.25 48.79 1017.44 88.91 469.52
27.38 70.04 1011.18 72.26 428.88
8.76 41.48 1018.49 74.98 474.3
15.54 39.31 1009.69 71.19 461.06
18.71 39.39 1014.09 62.82 465.57
13.06 41.78 1012.3 55.31 467.67
12.72 40.71 1016.02 71.57 466.99
19.83 39.39 1013.73 59.16 463.72
27.23 49.16 1004.03 40.8 443.78
24.27 68.28 1005.43 67.63 445.23
11.8 40.66 1017.13 97.2 464.43
6.76 36.25 1028.31 91.16 484.36
25.99 63.07 1012.5 64.81 442.16
16.3 39.63 1004.64 85.61 464.11
16.5 49.39 1018.35 93.42 462.48
10.59 42.49 1009.59 77.36 477.49
26.05 65.59 1012.78 67.03 437.04
19.5 40.79 1003.8 89.45 457.09
22.21 45.01 1012.22 54.84 450.6
17.86 45.0 1023.25 53.48 465.78
29.96 70.04 1010.15 54.47 427.1
19.08 44.63 1020.14 43.36 459.81
23.59 47.43 1006.64 48.92 447.36
3.38 39.64 1011.0 81.22 488.92
26.39 66.49 1012.96 60.35 433.36
8.99 39.04 1021.99 75.98 483.35
10.91 41.04 1026.57 74.24 469.53
13.08 39.82 1012.27 85.21 476.96
23.95 58.46 1017.5 68.46 440.75
15.64 43.71 1024.51 78.31 462.55
18.78 54.2 1012.05 89.25 448.04
20.65 50.59 1016.22 68.57 455.24
4.96 40.07 1011.8 67.38 494.75
23.51 57.32 1012.55 53.6 444.58
5.99 35.79 1011.56 91.69 484.82
23.65 66.05 1019.6 78.21 442.9
5.17 39.33 1009.68 94.19 485.46
26.38 49.5 1012.82 37.19 457.81
6.02 43.65 1013.85 83.53 481.92
23.2 61.02 1009.63 79.45 443.23
8.57 39.69 1000.91 99.9 474.29
30.72 71.58 1009.98 50.39 430.46
21.52 50.66 1013.56 74.33 455.71
22.93 62.26 1011.25 83.66 438.34
5.71 41.31 1003.24 89.48 485.83
18.62 44.06 1017.76 64.59 452.82
27.88 68.94 1007.68 75.68 435.04
22.32 59.8 1016.82 64.18 451.21
14.55 42.74 1028.41 70.09 465.81
17.83 44.92 1025.04 70.58 458.42
9.68 39.96 1026.09 99.28 470.22
19.41 49.39 1020.84 81.89 449.24
13.22 44.92 1023.84 87.99 471.43
12.24 44.92 1023.74 88.21 473.26
19.21 58.49 1011.7 91.29 452.82
29.74 70.32 1008.1 52.72 432.69
23.28 60.84 1017.91 67.5 444.13
8.02 41.92 1029.8 92.05 467.21
22.47 48.6 1002.33 63.23 445.98
27.51 73.77 1002.42 90.88 436.91
17.51 44.9 1009.05 74.91 455.01
23.22 66.56 1002.47 85.39 437.11
11.73 40.64 1020.68 96.98 477.06
21.19 67.71 1006.65 56.28 441.71
5.48 40.07 1019.63 65.62 495.76
24.26 66.44 1011.33 55.32 445.63
12.32 41.62 1012.88 88.88 464.72
31.26 68.94 1005.94 39.49 438.03
32.09 72.86 1003.47 54.59 434.78
24.98 60.32 1015.63 57.19 444.67
27.48 61.41 1012.2 45.06 452.24
21.04 45.09 1014.19 40.62 450.92
27.75 70.4 1006.65 90.21 436.53
22.79 71.77 1005.75 90.91 435.53
24.22 68.51 1013.23 74.96 440.01
27.06 64.45 1008.72 54.21 443.1
29.25 71.94 1007.18 63.62 427.49
26.86 68.08 1012.99 50.04 436.25
29.64 67.79 1009.99 51.23 440.74
19.92 63.31 1015.02 82.71 443.54
18.5 51.43 1010.82 92.04 459.42
23.71 60.23 1009.76 90.67 439.66
14.39 44.84 1023.55 91.14 464.15
19.3 56.65 1020.55 70.43 459.1
24.65 52.36 1014.76 66.63 455.68
13.5 45.51 1015.33 86.95 469.08
9.82 41.26 1007.71 96.69 478.02
18.4 44.06 1017.36 70.88 456.8
28.12 44.89 1009.18 47.14 441.13
17.15 43.69 1017.05 63.36 463.88
30.69 73.67 1006.14 60.58 430.45
28.82 65.71 1014.24 54.3 449.18
21.3 48.92 1010.92 65.09 447.89
30.58 70.04 1010.4 48.16 431.59
21.17 52.3 1009.36 81.51 447.5
9.87 41.82 1033.04 68.57 475.58
22.18 59.8 1016.77 73.16 453.24
24.39 63.21 1012.59 80.88 446.4
10.73 44.92 1025.1 85.4 476.81
9.38 40.46 1019.29 75.77 474.1
20.27 57.76 1016.66 75.76 450.71
24.82 66.48 1006.4 70.21 433.62
16.55 41.66 1011.45 55.53 465.14
20.73 59.87 1019.08 80.48 445.18
9.51 39.22 1015.3 72.41 474.12
8.63 43.79 1016.08 83.25 483.91
6.48 40.27 1010.55 82.12 486.68
14.95 43.52 1022.43 94.75 464.98
5.76 45.87 1010.83 95.79 481.4
10.94 39.04 1021.81 86.02 479.2
15.87 41.16 1005.85 78.29 463.86
12.42 38.25 1012.76 82.23 472.3
29.12 58.84 1001.31 52.86 446.51
29.12 51.43 1005.93 60.66 437.71
19.08 41.1 1001.96 62.77 458.94
31.06 67.17 1007.62 65.54 437.91
5.72 39.33 1009.96 95.4 490.76
26.52 65.06 1013.4 51.78 439.66
13.84 44.9 1007.58 63.62 463.27
13.03 39.52 1016.68 83.09 473.99
25.94 66.49 1012.83 61.81 433.38
16.64 53.82 1015.13 68.24 459.01
14.13 40.75 1016.05 72.41 471.44
13.65 39.28 1012.97 79.64 471.91
14.5 44.47 1028.2 66.95 465.15
19.8 51.19 1008.25 91.98 446.66
25.2 63.76 1009.78 64.96 438.15
20.66 51.19 1008.81 88.93 447.14
12.07 43.71 1025.53 85.62 472.32
25.64 70.72 1010.16 84.0 441.68
23.33 72.99 1009.33 89.41 440.04
29.41 64.05 1009.82 67.4 444.82
16.6 53.16 1014.5 76.75 457.26
27.53 72.58 1009.13 89.06 428.83
20.62 43.43 1009.93 64.02 449.07
26.02 71.94 1009.38 64.12 435.21
12.75 44.2 1017.59 81.22 471.03
12.87 48.04 1012.47 100.13 465.56
25.77 62.96 1019.86 58.07 442.83
14.84 41.48 1017.26 63.42 460.3
7.41 40.71 1023.07 83.32 474.25
8.87 41.82 1033.3 74.28 477.97
9.69 40.46 1019.1 71.91 472.16
16.17 46.97 1014.22 85.8 456.08
26.24 49.82 1014.9 55.58 452.41
13.78 43.22 1011.31 69.7 463.71
26.3 67.07 1006.26 63.79 433.72
17.37 57.76 1016.0 86.59 456.4
23.6 48.98 1015.41 48.28 448.43
8.3 36.08 1020.63 80.42 481.6
18.86 42.18 1001.16 98.58 457.07
22.12 49.39 1019.8 72.83 451.0
28.41 75.6 1018.48 56.07 440.28
29.42 71.32 1002.26 67.13 437.47
18.61 67.71 1004.07 84.49 443.57
27.57 69.84 1004.91 68.37 426.6
12.83 41.5 1013.12 86.07 470.87
9.64 39.85 1012.9 83.82 478.37
19.13 58.66 1013.32 74.86 453.92
15.92 40.56 1020.79 53.52 470.22
24.64 72.24 1011.37 80.61 434.54
27.62 63.9 1013.11 43.56 442.89
8.9 36.24 1013.29 89.35 479.03
9.55 43.99 1020.5 97.28 476.06
10.57 36.71 1022.62 80.49 473.88
19.8 57.25 1010.84 88.9 451.75
25.63 56.85 1012.68 49.7 439.2
24.7 58.46 1015.58 68.64 439.7
15.26 46.18 1013.68 98.58 463.6
20.06 52.84 1004.21 82.12 447.47
19.84 56.89 1013.23 78.32 447.92
11.49 44.63 1020.44 86.04 471.08
23.74 72.43 1007.99 91.36 437.55
22.62 51.3 1012.36 81.02 448.27
29.53 72.39 998.47 76.05 431.69
21.32 48.14 1016.57 71.81 449.09
20.3 58.46 1015.93 82.13 448.79
16.97 44.92 1025.21 74.27 460.21
12.07 41.17 1013.54 71.32 479.28
7.46 41.82 1032.67 74.59 483.11
19.2 54.2 1011.46 84.44 450.75
28.64 66.54 1010.43 43.39 437.97
13.56 41.48 1008.53 87.2 459.76
17.4 44.9 1020.5 77.11 457.75
14.08 40.1 1015.48 82.81 469.33
27.11 69.75 1009.74 85.67 433.28
20.92 70.02 1010.23 95.58 444.64
16.18 44.9 1021.3 74.46 463.1
15.57 44.68 1022.01 90.02 460.91
10.37 39.04 1023.95 81.93 479.35
19.6 59.21 1017.65 86.29 449.23
9.22 40.92 1021.83 85.43 474.51
27.76 72.99 1007.81 71.66 435.02
28.68 70.72 1009.43 71.33 435.45
20.95 48.14 1013.3 67.72 452.38
9.06 39.3 1019.73 84.23 480.41
9.21 39.72 1019.54 74.44 478.96
13.65 42.74 1026.58 71.48 468.87
31.79 76.2 1007.89 56.3 434.01
14.32 44.6 1013.85 68.13 466.36
26.28 75.23 1011.44 68.35 435.28
7.69 43.02 1014.51 85.23 486.46
14.44 40.1 1015.51 79.78 468.19
9.19 41.01 1022.14 98.98 468.37
13.35 41.39 1019.17 72.87 474.19
23.04 74.22 1009.52 90.93 440.32
4.83 38.44 1015.35 72.94 485.32
17.29 42.86 1014.38 72.3 464.27
8.73 36.18 1013.66 77.74 479.25
26.21 70.32 1007.0 78.29 430.4
23.72 58.62 1016.65 69.1 447.49
29.27 64.69 1006.85 55.79 438.23
10.4 40.43 1025.46 75.09 492.09
12.19 40.75 1015.13 88.98 475.36
20.4 54.9 1016.68 64.26 452.56
34.3 74.67 1015.98 25.89 427.84
27.56 68.08 1010.8 59.18 433.95
30.9 70.8 1008.48 67.48 435.27
14.85 58.59 1014.04 89.85 454.62
16.42 40.56 1020.36 50.62 472.17
16.45 63.31 1015.96 83.97 452.42
10.14 42.02 1003.19 96.51 472.17
9.53 41.44 1018.01 80.09 481.83
17.01 49.15 1021.83 84.02 458.78
23.94 62.08 1022.47 61.97 447.5
15.95 49.25 1019.04 88.51 463.4
11.15 41.26 1022.67 81.83 473.57
25.56 70.32 1009.07 90.63 433.72
27.16 66.44 1011.2 73.37 431.85
26.71 77.95 1012.13 77.5 433.47
29.56 74.22 1007.45 57.46 432.84
31.19 70.94 1007.29 51.91 436.6
6.86 41.17 1020.12 79.14 490.23
12.36 41.74 1020.58 69.24 477.16
32.82 68.31 1010.44 41.85 441.06
25.3 70.98 1007.22 95.1 440.86
8.71 41.82 1033.08 74.53 477.94
13.34 40.8 1026.56 64.85 474.47
14.2 43.02 1012.18 57.07 470.67
23.74 65.34 1013.7 62.9 447.31
16.9 44.88 1018.14 72.21 466.8
28.54 71.94 1007.4 65.99 430.91
30.15 69.88 1007.2 73.67 434.75
14.33 42.86 1010.82 88.59 469.52
25.57 59.43 1008.88 61.19 438.9
30.55 70.04 1010.51 49.37 429.56
28.04 74.33 1013.53 48.65 432.92
26.39 49.16 1005.68 56.18 442.87
15.3 41.76 1022.57 71.56 466.59
6.03 41.14 1028.04 87.46 479.61
13.49 44.63 1019.12 70.02 471.08
27.67 59.14 1016.51 61.2 433.37
24.19 65.48 1018.8 60.54 443.92
24.44 59.14 1016.74 71.82 443.5
29.86 64.79 1017.37 44.8 439.89
30.2 69.59 1008.9 67.32 434.66
7.99 41.38 1021.95 78.77 487.57
9.93 41.62 1013.76 96.02 464.64
11.03 42.32 1017.26 90.56 470.92
22.34 63.73 1014.37 83.19 444.39
25.33 48.6 1002.54 68.45 442.48
18.87 52.08 1005.25 99.19 449.61
25.97 69.34 1009.43 88.11 435.02
16.58 43.99 1021.81 79.29 458.67
14.35 46.18 1016.63 87.76 461.74
25.06 62.39 1008.09 82.56 438.31
13.85 48.92 1011.68 79.24 462.38
16.09 44.2 1019.39 67.24 460.56
26.34 59.21 1013.37 58.98 439.22
23.01 58.79 1009.71 84.22 444.64
26.39 71.25 999.8 89.12 430.34
31.32 71.29 1008.37 50.07 430.46
16.64 45.87 1009.02 98.86 456.79
13.42 41.23 994.17 95.79 468.82
20.06 44.9 1008.79 70.06 448.51
14.8 44.71 1014.67 41.71 470.77
12.59 41.14 1025.79 86.55 465.74
26.7 66.56 1005.31 71.97 430.21
19.78 50.32 1008.62 96.4 449.23
15.17 49.15 1021.91 91.73 461.89
21.71 61.45 1010.97 91.62 445.72
19.09 39.39 1013.36 59.14 466.13
19.76 51.19 1008.38 92.56 448.71
14.68 41.23 998.43 83.71 469.25
21.3 66.86 1013.04 55.43 450.56
16.73 39.64 1008.94 74.91 464.46
12.26 41.5 1014.87 89.41 471.13
14.77 48.06 1010.92 69.81 461.52
18.26 59.15 1012.04 86.01 451.09
27.1 79.74 1005.43 86.05 431.51
14.72 40.83 1009.65 80.98 469.8
26.3 51.43 1012.05 63.62 442.28
16.48 48.92 1011.84 64.16 458.67
17.99 43.79 1016.13 75.63 462.4
20.34 59.8 1015.18 80.21 453.54
25.53 62.96 1019.81 59.7 444.38
31.59 58.9 1003.39 47.6 440.52
30.8 69.14 1007.68 63.78 433.62
10.75 45.0 1023.68 89.37 481.96
19.3 44.9 1008.89 70.55 452.75
4.71 39.42 1026.4 84.42 481.28
23.1 66.05 1020.28 80.62 439.03
32.63 73.88 1005.64 52.56 435.75
26.63 74.16 1009.72 83.26 436.03
24.35 58.49 1011.03 70.64 445.6
15.11 56.03 1020.27 89.95 462.65
29.1 50.05 1005.87 51.53 438.66
21.24 50.32 1008.54 84.83 447.32
6.16 39.48 1004.85 59.68 484.55
7.36 41.01 1024.9 97.88 476.8
10.44 39.04 1023.99 85.03 480.34
26.76 48.41 1010.53 47.38 440.63
16.79 44.6 1014.27 48.08 459.48
10.76 40.43 1025.98 79.65 490.78
6.07 38.91 1019.25 83.39 483.56
27.33 73.18 1012.26 82.18 429.38
27.15 59.21 1013.49 51.71 440.27
22.35 51.43 1011.34 77.33 445.34
21.82 65.27 1013.86 72.81 447.43
21.11 69.94 1004.37 84.26 439.91
19.95 50.59 1016.11 73.23 459.27
7.45 39.61 1017.88 79.73 478.89
15.36 41.66 1012.41 62.32 466.7
15.65 43.5 1021.39 78.58 463.5
25.31 74.33 1015.04 79.88 436.21
25.88 63.47 1011.95 65.87 443.94
24.6 63.94 1012.87 80.28 439.63
22.58 41.54 1013.21 71.33 460.95
19.69 59.14 1015.99 70.33 448.69
25.85 75.08 1006.24 57.73 444.63
10.06 37.83 1005.49 99.46 473.51
18.59 39.54 1008.56 68.61 462.56
18.27 50.16 1011.07 95.91 451.76
8.85 40.43 1025.68 80.42 491.81
30.04 68.08 1011.04 51.01 429.52
26.06 49.02 1007.59 74.08 437.9
14.8 38.73 1003.18 80.73 467.54
23.93 64.45 1015.35 54.71 449.97
23.72 66.48 1003.61 73.75 436.62
11.44 40.55 1023.37 88.43 477.68
20.28 63.86 1016.04 74.66 447.26
27.9 63.13 1011.8 70.04 439.76
24.74 59.39 1015.23 74.64 437.49
14.8 58.2 1018.29 85.11 455.14
8.22 41.03 1021.76 82.97 485.5
27.56 66.93 1016.81 55.59 444.1
32.07 70.94 1006.91 49.9 432.33
9.53 44.03 1008.87 89.99 471.23
13.61 42.34 1017.93 91.61 463.89
22.2 51.19 1009.2 82.95 445.54
21.36 59.54 1007.99 92.62 446.09
23.25 63.86 1017.82 59.64 445.12
23.5 59.21 1018.29 63.0 443.31
8.46 39.66 1015.14 85.38 484.16
8.19 40.69 1019.86 85.23 477.76
30.67 71.29 1008.36 52.08 430.28
32.48 62.04 1010.39 38.05 446.48
8.99 36.66 1028.11 71.98 481.03
13.77 47.83 1007.41 90.66 466.07
19.05 67.32 1013.2 83.14 447.47
21.19 55.5 1019.83 65.22 455.93
10.12 40.0 1021.15 91.67 479.62
24.93 47.01 1014.28 66.04 455.06
8.47 40.46 1019.87 78.19 475.06
24.52 56.85 1012.59 54.47 438.89
28.55 69.84 1003.38 67.26 432.7
20.58 50.9 1011.89 72.56 452.6
18.31 46.21 1010.46 82.15 451.75
27.18 71.06 1008.16 86.32 430.66
4.43 38.91 1019.04 88.17 491.9
26.02 74.78 1010.04 72.78 439.82
15.75 39.0 1015.91 69.58 460.73
22.99 60.95 1015.14 69.86 449.7
25.52 59.15 1013.88 65.37 439.42
27.04 65.06 1013.33 52.37 439.84
6.42 35.57 1025.58 79.63 485.86
17.04 40.12 1011.81 83.14 458.1
10.79 39.82 1012.89 88.25 479.92
20.41 56.03 1019.94 55.85 458.29
7.36 40.07 1017.29 52.55 489.45
28.08 73.42 1012.17 62.74 434.0
24.74 69.13 1010.69 90.08 431.24
28.32 47.93 1003.26 54.5 439.5
16.71 40.56 1019.48 49.88 467.46
30.7 71.58 1010.0 48.96 429.27
18.42 58.95 1016.95 86.77 452.1
10.62 42.02 999.83 96.66 472.41
22.18 69.05 1002.75 70.84 442.14
22.38 49.3 1003.56 83.83 441.0
13.94 41.58 1020.76 68.22 463.07
21.24 60.84 1017.99 82.22 445.71
6.76 39.81 1017.11 87.9 483.16
26.73 68.84 1010.75 66.83 440.45
7.24 38.06 1020.6 85.36 481.83
10.84 40.62 1015.53 60.9 467.6
19.32 52.84 1004.29 83.51 450.88
29.0 69.13 1001.22 52.96 425.5
23.38 54.42 1013.95 73.02 451.87
31.17 69.51 1010.51 43.11 428.94
26.17 48.6 1002.59 61.41 439.86
30.9 73.42 1011.21 65.32 433.44
24.92 73.68 1015.12 93.68 438.23
32.77 71.32 1007.68 42.39 436.95
14.37 40.56 1021.67 68.18 470.19
8.36 40.22 1011.6 89.18 484.66
31.45 68.27 1007.56 64.79 430.81
31.6 73.17 1010.05 43.48 433.37
17.9 48.98 1014.17 80.4 453.02
20.35 50.9 1012.6 72.43 453.5
16.21 41.23 995.88 80.0 463.09
19.36 44.6 1016.25 45.65 464.56
21.04 65.46 1017.22 63.02 452.12
14.05 40.69 1015.66 74.39 470.9
23.48 64.15 1021.08 57.77 450.89
21.91 63.76 1009.85 76.8 445.04
24.42 63.07 1011.49 67.39 444.72
14.26 40.92 1022.07 73.96 460.38
21.38 58.33 1013.05 72.75 446.8
15.71 44.06 1018.34 71.69 465.05
5.78 40.62 1016.55 84.98 484.13
6.77 39.81 1017.01 87.68 488.27
23.84 49.21 1013.85 50.36 447.09
21.17 58.16 1017.16 68.11 452.02
19.94 58.96 1014.16 66.27 455.55
8.73 41.92 1029.41 89.72 480.99
16.39 41.67 1012.96 61.07 467.68

Linear Regression Model

  • Linear Regression is one of the most useful work-horses of statistical learning
  • See Chapter 7 of Kevin Murphy's Machine Learning froma Probabilistic Perspective for a good mathematical and algorithmic introduction.
  • You should have already seen Ameet's treatment of the topic from earlier notebook.
// First let's hold out 20% of our data for testing and leave 80% for training
var Array(split20, split80) = dataset.randomSplit(Array(0.20, 0.80), 1800009193L)
split20: org.apache.spark.sql.Dataset[org.apache.spark.sql.Row] = [AT: double, V: double ... 3 more fields]
split80: org.apache.spark.sql.Dataset[org.apache.spark.sql.Row] = [AT: double, V: double ... 3 more fields]
// Let's cache these datasets for performance
val testSet = split20.cache()
val trainingSet = split80.cache()
testSet: org.apache.spark.sql.Dataset[org.apache.spark.sql.Row] = [AT: double, V: double ... 3 more fields]
trainingSet: org.apache.spark.sql.Dataset[org.apache.spark.sql.Row] = [AT: double, V: double ... 3 more fields]
testSet.count() // action to actually cache
res26: Long = 1856
trainingSet.count() // action to actually cache
res27: Long = 7712

Let's take a few elements of the three DataFrames.

dataset.take(3)
res28: Array[org.apache.spark.sql.Row] = Array([14.96,41.76,1024.07,73.17,463.26], [25.18,62.96,1020.04,59.08,444.37], [5.11,39.4,1012.16,92.14,488.56])
testSet.take(3)
res29: Array[org.apache.spark.sql.Row] = Array([2.34,39.42,1028.47,69.68,490.34], [2.8,39.64,1011.01,82.96,482.66], [3.82,35.47,1016.62,84.34,489.04])
trainingSet.take(3)
res30: Array[org.apache.spark.sql.Row] = Array([1.81,39.42,1026.92,76.97,490.55], [2.58,39.42,1028.68,69.03,488.69], [2.64,39.64,1011.02,85.24,481.29])
// ***** LINEAR REGRESSION MODEL ****

import org.apache.spark.ml.regression.LinearRegression
import org.apache.spark.ml.regression.LinearRegressionModel
import org.apache.spark.ml.Pipeline

// Let's initialize our linear regression learner
val lr = new LinearRegression()
import org.apache.spark.ml.regression.LinearRegression
import org.apache.spark.ml.regression.LinearRegressionModel
import org.apache.spark.ml.Pipeline
lr: org.apache.spark.ml.regression.LinearRegression = linReg_96951eb5ad16
// We use explain params to dump the parameters we can use
lr.explainParams()
res31: String =
aggregationDepth: suggested depth for treeAggregate (>= 2) (default: 2)
elasticNetParam: the ElasticNet mixing parameter, in range [0, 1]. For alpha = 0, the penalty is an L2 penalty. For alpha = 1, it is an L1 penalty (default: 0.0)
epsilon: The shape parameter to control the amount of robustness. Must be > 1.0. (default: 1.35)
featuresCol: features column name (default: features)
fitIntercept: whether to fit an intercept term (default: true)
labelCol: label column name (default: label)
loss: The loss function to be optimized. Supported options: squaredError, huber. (Default squaredError) (default: squaredError)
maxBlockSizeInMB: Maximum memory in MB for stacking input data into blocks. Data is stacked within partitions. If more than remaining data size in a partition then it is adjusted to the data size. Default 0.0 represents choosing optimal value, depends on specific algorithm. Must be >= 0. (default: 0.0)
maxIter: maximum number of iterations (>= 0) (default: 100)
predictionCol: prediction column name (default: prediction)
regParam: regularization parameter (>= 0) (default: 0.0)
solver: The solver algorithm for optimization. Supported options: auto, normal, l-bfgs. (Default auto) (default: auto)
standardization: whether to standardize the training features before fitting the model (default: true)
tol: the convergence tolerance for iterative algorithms (>= 0) (default: 1.0E-6)
weightCol: weight column name. If this is not set or empty, we treat all instance weights as 1.0 (undefined)

The cell below is based on the Spark ML pipeline API. More information can be found in the Spark ML Programming Guide at https://spark.apache.org/docs/latest/ml-guide.html

// Now we set the parameters for the method
lr.setPredictionCol("Predicted_PE")
  .setLabelCol("PE")
  .setMaxIter(100)
  .setRegParam(0.1)
// We will use the new spark.ml pipeline API. If you have worked with scikit-learn this will be very familiar.
val lrPipeline = new Pipeline()
lrPipeline.setStages(Array(vectorizer, lr))
// Let's first train on the entire dataset to see what we get
val lrModel = lrPipeline.fit(trainingSet)
lrPipeline: org.apache.spark.ml.Pipeline = pipeline_1fbeea3a78d7
lrModel: org.apache.spark.ml.PipelineModel = pipeline_1fbeea3a78d7

Since Linear Regression is simply a line of best fit over the data that minimizes the square of the error, given multiple input dimensions we can express each predictor as a line function of the form:

\[ y = b_0 + b_1 x_1 + b_2 x_2 + b_3 x_3 + \ldots + b_i x_i + \ldots + b_k x_k \]

where \(b_0\) is the intercept and \(b_i\)'s are coefficients.

To express the coefficients of that line we can retrieve the Estimator stage from the fitted, linear-regression pipeline model named lrModel and express the weights and the intercept for the function.

// The intercept is as follows:
val intercept = lrModel.stages(1).asInstanceOf[LinearRegressionModel].intercept
intercept: Double = 434.0183482458498
// The coefficents (i.e. weights) are as follows:

val weights = lrModel.stages(1).asInstanceOf[LinearRegressionModel].coefficients.toArray
weights: Array[Double] = Array(-1.9288465830311992, -0.2493165946592376, 0.08140785421512364, -0.14587975219954638)

The model has been fit and the intercept and coefficients displayed above.

Now, let us do some work to make a string of the model that is easy to understand for an applied data scientist or data analyst.

val featuresNoLabel = dataset.columns.filter(col => col != "PE")
featuresNoLabel: Array[String] = Array(AT, V, AP, RH)
val coefficentFeaturePairs = sc.parallelize(weights).zip(sc.parallelize(featuresNoLabel))
coefficentFeaturePairs: org.apache.spark.rdd.RDD[(Double, String)] = ZippedPartitionsRDD2[113] at zip at command-2971213210275912:1
coefficentFeaturePairs.collect() // this just pairs each coefficient with the name of its corresponding feature
res32: Array[(Double, String)] = Array((-1.9288465830311992,AT), (-0.2493165946592376,V), (0.08140785421512364,AP), (-0.14587975219954638,RH))
// Now let's sort the coefficients from the largest to the smallest

var equation = s"y = $intercept "
//var variables = Array
coefficentFeaturePairs.sortByKey().collect().foreach({
  case (weight, feature) =>
  { 
        val symbol = if (weight > 0) "+" else "-"
        val absWeight = Math.abs(weight)
        equation += (s" $symbol (${absWeight} * ${feature})")
  }
}
)
equation: String = y = 434.0183482458498  - (1.9288465830311992 * AT) - (0.2493165946592376 * V) - (0.14587975219954638 * RH) + (0.08140785421512364 * AP)
// Finally here is our equation
println("Linear Regression Equation: " + equation)
Linear Regression Equation: y = 434.0183482458498  - (1.9288465830311992 * AT) - (0.2493165946592376 * V) - (0.14587975219954638 * RH) + (0.08140785421512364 * AP)

Based on examining the fitted Linear Regression Equation above:

  • There is a strong negative correlation between Atmospheric Temperature (AT) and Power Output due to the coefficient being greater than -1.91.
  • But our other dimenensions seem to have little to no correlation with Power Output.

Do you remember Step 2: Explore Your Data? When we visualized each predictor against Power Output using a Scatter Plot, only the temperature variable seemed to have a linear correlation with Power Output so our final equation seems logical.

Now let's see what our predictions look like given this model.

val predictionsAndLabels = lrModel.transform(testSet)

display(predictionsAndLabels.select("AT", "V", "AP", "RH", "PE", "Predicted_PE"))
AT V AP RH PE Predicted_PE
2.34 39.42 1028.47 69.68 490.34 493.23742177145346
2.8 39.64 1011.01 82.96 482.66 488.93663844862806
3.82 35.47 1016.62 84.34 489.04 488.2642491377767
3.98 35.47 1017.22 86.53 489.64 487.6850017397038
4.23 38.44 1016.46 76.64 489.0 487.84320058785806
4.32 35.47 1017.8 88.51 488.03 486.78756854756284
4.43 38.91 1019.04 88.17 491.9 485.8682911927762
4.65 35.19 1018.23 94.78 489.36 485.34119715268844
4.78 42.85 1013.39 93.36 481.47 482.9938172155268
4.87 42.85 1012.69 94.72 482.05 482.56483906211207
4.96 40.07 1011.8 67.38 494.75 487.00024243767604
4.97 42.85 1014.02 88.78 482.98 483.34675257798034
5.01 39.4 1003.69 91.9 475.34 482.83365300532864
5.06 40.64 1021.49 93.7 483.73 483.61453434986964
5.15 35.19 1018.63 93.94 488.42 484.5318759947065
5.15 40.07 1012.27 63.31 495.35 487.26575386983336
5.17 35.57 1026.68 79.86 491.32 487.10787889447676
5.21 41.31 1003.51 91.23 486.46 482.0547750131382
5.23 40.78 1025.13 92.74 483.12 483.68809525895665
5.25 40.07 1019.48 67.7 495.23 487.01940772826526
5.28 45.87 1008.25 97.88 479.91 480.1986449575326
5.29 41.38 1020.62 83.83 492.12 484.355413676767
5.42 41.38 1020.77 86.02 491.38 483.7973981417882
5.47 40.62 1018.66 83.61 481.56 484.07023605498466
5.51 41.03 1022.28 84.5 491.84 484.0557258406543
5.53 35.79 1011.19 94.01 484.64 483.0334383183447
5.54 41.38 1020.47 82.91 490.07 483.99520022490054
5.54 45.87 1008.69 95.91 478.02 480.0203474136323
5.56 45.87 1006.99 96.48 476.61 479.76022567105224
5.65 40.72 1022.46 85.17 487.09 483.77988944315933
5.7 40.62 1016.07 84.94 482.82 483.22173492804495
5.8 45.87 1009.14 92.06 481.6 480.1171178824092
5.82 40.78 1024.82 96.01 470.02 482.047812550469
5.84 43.02 1013.88 87.42 489.05 481.8132715930524
5.97 36.25 1029.65 86.74 487.03 484.63339497556956
6.02 41.38 1021.2 88.71 490.57 482.2826790358652
6.03 41.17 1019.81 84.2 488.57 482.86050781997426
6.04 41.14 1027.8 86.4 480.39 483.17821215232357
6.04 41.14 1027.92 87.12 481.37 483.0829476732457
6.06 41.17 1019.67 84.7 489.62 482.71830544679347
6.13 40.64 1020.69 94.57 481.13 481.3586268382406
6.14 39.4 1011.21 90.87 485.94 481.4164995749667
6.15 40.77 1022.42 88.57 482.49 482.30375285026366
6.17 36.25 1028.68 90.59 483.77 483.6070229944064
6.22 39.33 1012.31 93.23 491.77 481.024916434396
6.25 39.64 1010.98 83.45 483.43 482.20819442296613
6.3 41.14 1027.45 86.11 481.49 482.69052441989805
6.34 40.64 1020.62 94.39 478.78 480.9741288614049
6.38 40.07 1018.53 60.2 492.96 485.85657176943226
6.45 40.02 1032.08 79.7 481.36 483.9924395950768
6.48 40.27 1010.55 82.12 486.68 481.76650494734656
6.49 43.65 1020.41 72.78 484.94 483.0697247196729
6.52 39.85 1012.55 86.36 483.01 481.33834961288636
6.59 39.37 1020.34 77.92 488.17 483.18839461041057
6.65 39.33 1011.29 92.85 490.41 480.167910698229
6.71 40.72 1022.78 80.69 483.11 482.41490386834903
6.72 38.91 1016.89 90.47 485.89 480.9406822010133
6.76 39.22 1013.91 77.0 487.08 482.5086450499145
6.8 41.16 1023.17 95.4 477.8 480.01746628251476
6.84 41.06 1021.04 89.59 489.96 480.63940670946056
6.86 38.08 1019.62 77.37 486.92 483.01084464877744
6.91 36.08 1021.82 84.31 486.37 482.5797273079528
6.91 39.37 1019.58 71.02 488.2 483.515864024814
6.93 41.14 1027.18 84.67 479.06 481.66343779511766
6.99 35.19 1019.32 68.95 480.05 484.68450470880424
6.99 39.37 1020.19 75.06 487.18 482.82186089035656
7.05 43.65 1018.41 72.36 480.47 481.888024420669
7.1 35.77 1015.39 92.1 480.36 480.6306788292835
7.11 41.74 1022.35 90.68 487.85 479.89671820679814
7.11 43.13 1018.96 87.82 486.11 479.69141160572326
7.24 38.06 1020.6 85.36 481.83 481.1970697561752
7.3 43.65 1019.33 67.62 482.96 482.17217802621497
7.34 40.72 1023.01 80.08 483.92 481.3074409763506
7.4 41.04 1024.44 90.9 477.69 479.6499231838063
7.41 40.71 1023.07 83.32 474.25 480.7071489556114
7.44 41.04 1021.84 88.56 479.08 479.70246751967267
7.45 39.61 1017.88 79.73 478.89 481.00544489343514
7.46 41.82 1032.67 74.59 483.11 482.3890108435553
7.48 38.5 1014.01 77.35 488.43 481.25646633043834
7.52 41.66 1015.2 78.41 483.28 480.33371483717843
7.54 38.56 1016.49 69.1 486.76 482.5311759738767
7.55 41.04 1027.03 83.32 476.58 480.6772110604413
7.55 43.65 1019.09 61.71 481.61 482.5325778309449
7.57 41.14 1028.23 87.97 477.8 480.033051046645
7.6 41.04 1021.82 88.97 475.32 479.33241321090156
7.65 41.01 1024.31 97.17 475.89 478.24994196854914
7.67 41.66 1016.25 77.0 485.03 480.335556547251
7.69 36.24 1013.08 88.37 482.46 479.7315598782726
7.7 40.35 1011.72 92.88 484.57 477.91894784424034
7.73 37.8 1020.71 63.93 483.94 483.4519151987013
7.73 39.04 1018.61 68.23 482.39 482.344523193014
7.76 42.28 1008.52 83.31 483.8 478.4576001166274
7.81 39.64 1011.42 86.68 482.22 478.7638216096876
7.82 40.72 1022.17 88.13 481.52 479.1388800137486
7.84 43.52 1022.23 96.51 483.79 477.1846287648628
7.87 42.85 1012.18 94.21 480.54 476.81117998099046
7.89 40.46 1019.61 74.53 477.27 480.8442435906709
7.9 40.0 1018.74 79.55 474.5 480.13649956917493
7.91 39.96 1023.57 88.44 475.52 479.22351270593606
7.92 39.54 1011.51 84.41 481.44 478.9150538893924
7.95 41.26 1008.48 97.92 480.6 476.2108626985999
7.97 38.5 1013.84 72.36 487.19 481.02543213301226
8.01 40.46 1019.42 76.15 475.42 480.36098930984303
8.01 40.62 1015.62 86.43 476.22 478.5121049560687
8.01 41.66 1014.49 76.72 485.13 479.57731721621764
8.03 40.07 1016.06 47.46 488.02 484.33140555054166
8.04 40.64 1020.64 89.26 477.78 478.4450809561198
8.05 40.62 1018.16 73.67 477.2 480.5031526805201
8.07 43.41 1016.02 76.26 467.56 479.216941083543
8.07 43.69 1017.05 87.34 485.18 477.61463487250904
8.11 41.92 1029.61 91.92 483.52 478.33312476560263
8.16 39.72 1020.54 82.11 480.21 479.4778900760478
8.18 40.02 1031.45 73.66 478.81 481.48536176156256
8.23 43.79 1016.11 82.11 484.67 477.96751548079953
8.24 39.61 1017.99 78.42 477.9 479.6817134321856
8.25 41.26 1020.59 91.84 475.17 477.50500673160894
8.26 40.96 1025.23 89.22 485.73 478.3204506384974
8.27 39.64 1011.0 84.64 479.91 478.13995557721
8.28 40.56 1023.29 79.44 486.4 479.6503730840347
8.28 40.77 1011.55 89.79 480.15 477.13243295540536
8.3 36.3 1015.97 60.62 480.58 482.82343628916317
8.3 43.13 1020.02 83.11 484.07 478.169470130244
8.33 38.08 1018.94 73.78 481.89 480.64379114125165
8.34 40.72 1023.62 83.75 483.14 478.8928744938183
8.35 43.52 1022.78 97.34 479.31 476.1246111330096
8.35 43.79 1016.2 85.23 484.21 477.28823577085257
8.37 40.92 1021.82 86.03 476.02 478.3060058047933
8.39 36.24 1013.39 89.13 480.69 478.2957350932858
8.42 42.28 1008.4 87.78 481.91 476.52270993698903
8.46 40.8 1023.57 81.27 485.06 478.99917896902593
8.48 38.5 1013.5 66.51 485.29 480.8674382556005
8.51 38.5 1013.33 64.28 482.39 481.121045370298
8.61 43.8 1021.9 74.35 478.25 478.83543896627515
8.63 39.96 1024.39 99.47 475.79 476.292443939849
8.65 40.56 1023.23 78.85 485.87 479.017884430858
8.67 40.77 1011.81 89.4 479.23 476.458241933477
8.68 41.82 1032.83 73.62 478.61 480.1903466285652
8.72 36.25 1029.31 85.73 479.94 479.44872675152214
8.73 36.18 1013.66 77.74 479.25 479.3384367489257
8.73 41.92 1029.41 89.72 480.99 477.4418937681193
8.74 40.03 1016.81 93.37 481.07 476.335613607556
8.75 36.3 1015.61 57.53 480.4 482.3769169335783
8.75 40.22 1008.96 90.53 482.8 476.0442018293985
8.76 41.82 1033.29 76.5 480.08 479.653352828527
8.77 40.46 1019.68 77.84 475.0 478.669695167618
8.8 42.32 1017.91 86.8 483.88 476.69692642239215
8.81 43.56 1014.99 81.5 482.52 476.90393713153384
8.83 36.25 1028.86 85.6 478.45 479.2188844607779
8.85 40.22 1008.61 90.6 482.3 475.8126128394661
8.87 41.16 1023.17 94.13 472.45 476.2100211409336
8.88 36.66 1026.61 76.16 480.2 480.2141595165957
8.91 43.52 1022.78 98.0 478.38 474.9481764100604
8.93 40.46 1019.03 71.0 472.77 479.3059821141381
8.94 41.74 1022.55 90.74 483.53 476.37445774556215
8.96 40.02 1031.21 82.32 475.47 478.69800488773853
8.96 40.05 1015.91 89.4 467.24 476.41215657483457
8.99 36.66 1028.11 71.98 481.03 480.7338755379791
9.01 38.56 1016.67 63.61 482.37 480.5113047501551
9.03 40.71 1025.98 81.94 484.97 478.0206284049022
9.04 44.68 1023.14 90.73 479.53 475.49807173046975
9.06 43.79 1016.05 81.32 482.8 476.4769333498684
9.08 36.18 1020.24 68.37 477.26 480.56589740371004
9.08 36.71 1025.07 81.32 479.02 478.9378167534155
9.08 40.02 1031.2 75.34 476.69 479.48396988958547
9.11 40.64 1020.68 86.91 476.62 476.72728884411396
9.12 41.49 1020.58 96.23 475.69 475.128341196902
9.12 41.54 1018.61 79.26 482.95 477.4310812891916
9.13 39.04 1022.36 74.6 483.24 479.02016340856596
9.13 39.16 1014.14 86.17 484.86 476.63324412260977
9.14 37.36 1015.22 78.06 491.97 478.33373080005674
9.15 39.61 1018.11 75.29 474.88 478.3928356085176
9.15 39.61 1018.69 84.47 475.64 477.10087603877054
9.16 41.03 1021.3 76.08 484.96 478.1639636289798
9.19 40.62 1017.78 68.91 475.42 478.9677202117326
9.2 40.03 1017.05 92.46 480.38 475.6006326388749
9.26 44.68 1023.22 91.44 478.82 474.9766634864784
9.29 39.04 1022.72 74.29 482.55 478.78607750598024
9.3 38.18 1017.19 71.51 480.14 478.936561588862
9.31 43.56 1015.09 79.96 482.55 476.17230944382703
9.32 37.73 1022.14 79.49 477.91 478.2490255806105
9.35 44.03 1011.02 88.11 476.25 474.4577268339341
9.37 40.11 1024.94 75.03 471.13 478.4377754427823
9.39 39.66 1019.22 75.33 482.16 478.00197412694797
9.41 34.69 1027.02 78.91 480.87 479.3152324207473
9.41 39.61 1016.14 78.38 477.34 477.2801935898291
9.45 39.04 1023.08 75.81 483.66 478.2850316568694
9.46 42.28 1008.67 78.16 481.95 475.9420528274343
9.47 41.4 1026.49 87.9 479.68 476.171982140594
9.48 44.68 1023.29 92.9 478.66 474.3450313497953
9.5 37.36 1015.13 63.41 478.8 479.7691576930095
9.51 43.79 1016.02 79.81 481.12 475.8267885776992
9.53 38.18 1018.43 75.33 476.54 478.0366119605893
9.53 38.38 1020.49 80.08 478.03 477.46151999839276
9.55 38.08 1019.34 68.38 479.23 479.1109121135172
9.55 39.66 1018.8 74.88 480.74 477.7248132633824
9.59 34.69 1027.65 75.32 478.88 479.5430352943536
9.59 38.56 1017.52 61.89 481.05 479.7126835818631
9.61 44.03 1008.3 91.36 473.54 473.2606881642323
9.63 41.14 1027.99 87.89 469.73 476.0517595807651
9.68 38.16 1015.54 79.67 475.51 476.88388448180007
9.68 41.06 1022.75 87.44 476.67 475.61433131158884
9.69 40.46 1019.1 71.91 472.16 477.71300668632784
9.72 41.44 1015.17 84.41 481.85 475.26738125651104
9.75 36.66 1026.21 70.12 479.45 479.3846135509578
9.76 39.16 1014.19 85.4 482.38 475.5344685772045
9.78 52.75 1022.97 78.31 469.58 473.85672752722843
9.82 39.64 1010.79 69.22 477.93 477.38261350304344
9.83 41.17 1019.34 72.29 478.21 477.2300569616712
9.84 36.66 1026.7 70.02 477.62 479.26549518227034
9.86 37.83 1005.05 100.15 472.46 472.77738085732864
9.86 41.01 1018.49 98.71 467.37 473.28874249013086
9.87 40.81 1017.17 84.25 473.2 475.32128019247386
9.88 39.66 1017.81 76.05 480.05 476.8370208052357
9.92 40.64 1020.39 95.41 469.65 473.90133694044016
9.93 40.67 1018.08 69.74 485.23 477.4312500724955
9.95 43.56 1014.85 82.62 477.88 474.53026960482464
9.96 41.26 1022.9 83.83 475.21 475.5632280329809
9.96 41.55 1002.59 65.86 475.91 476.45899184844643
9.96 42.03 1017.78 82.39 477.85 475.1645128846792
9.97 41.62 1013.99 96.02 464.86 472.950567432704
9.98 41.01 1017.83 98.07 466.05 473.0969147577929
9.98 41.62 1013.56 95.77 463.16 472.9327435276111
9.99 41.82 1033.14 68.36 475.75 478.45612153617066
9.99 42.07 1018.78 85.68 471.6 474.6981382928805
10.01 40.78 1023.71 88.11 470.82 475.02803269176593
10.02 41.44 1017.37 77.65 479.63 475.85397168574394
10.06 34.69 1027.9 71.73 477.68 479.1805376742791
10.08 43.14 1010.67 85.9 478.73 473.56546210095377
10.09 37.14 1012.99 72.59 473.66 477.1725989266339
10.1 41.4 1024.29 85.94 474.28 475.0636358283222
10.1 41.58 1021.26 94.06 468.19 473.5875494551514
10.11 41.62 1017.17 97.82 463.57 472.67682233352457
10.12 41.55 1005.78 62.34 475.46 476.92356417785004
10.12 43.72 1011.33 97.62 473.05 471.6877231007335
10.13 38.16 1013.57 79.04 474.92 475.94743429051795
10.15 41.46 1019.78 83.56 481.31 474.9322788912158
10.15 43.41 1018.4 82.07 473.43 474.55112952359076
10.16 41.55 1005.69 58.04 477.27 477.4663665421075
10.18 43.5 1022.84 88.7 476.91 473.86509374821264
10.2 41.01 1021.39 96.64 468.27 473.1709885161772
10.2 41.46 1019.12 83.26 480.11 474.8258713039421
10.22 37.83 1005.94 93.53 471.79 473.12117303724983
10.23 41.46 1020.45 84.95 480.87 474.6297415713401
10.24 39.28 1010.13 81.61 477.53 474.8010725987133
10.25 41.26 1007.44 98.08 476.03 471.6665106288925
10.25 41.46 1018.67 84.41 479.28 474.52503372536427
10.27 52.75 1026.19 76.78 470.76 473.3969220129811
10.28 39.64 1010.45 74.15 477.65 475.74847822607217
10.31 37.5 1008.55 99.31 474.16 472.3991408528027
10.31 38.18 1018.02 70.1 476.31 477.2616855096004
10.32 38.91 1012.11 81.49 479.17 474.91770513370466
10.33 40.62 1017.41 64.22 473.16 477.42289023883336
10.34 41.46 1017.75 89.73 478.03 473.500462025312
10.37 37.83 1006.5 90.99 470.66 473.24796901874254
10.39 40.22 1006.59 87.77 479.14 473.0905849348082
10.4 42.44 1014.24 93.48 480.04 472.3076103285207
10.42 41.26 1008.48 96.76 472.54 471.6158321510643
10.42 41.46 1021.04 89.16 479.24 473.69713759779097
10.44 37.83 1006.31 97.2 474.42 472.19156900447024
10.45 39.61 1020.23 73.39 477.41 476.3350912306922
10.46 37.5 1013.12 76.74 472.16 475.7743537662549
10.47 43.14 1010.35 86.86 476.55 472.6471168581112
10.51 37.5 1010.7 96.29 474.24 472.6289552744016
10.58 42.34 1022.32 94.01 474.91 472.56580879643343
10.59 38.38 1021.58 68.23 474.94 477.2343522450388
10.6 41.17 1018.38 87.92 478.47 473.38659302581175
10.6 41.46 1021.23 89.02 481.3 473.3858358704542
10.63 44.2 1018.63 90.26 477.19 472.2522916899102
10.66 41.93 1016.12 94.16 479.61 471.9871102146375
10.68 37.92 1009.59 65.05 474.03 476.6632591260645
10.7 44.77 1017.8 82.37 484.94 473.0585846959981
10.71 41.93 1018.23 90.88 478.76 472.54092404509436
10.73 40.35 1012.27 89.65 477.23 472.5905086170786
10.74 40.05 1015.45 87.33 477.93 473.2433331311531
10.76 44.58 1016.41 79.24 483.54 473.33367076102707
10.77 44.78 1012.87 84.16 470.66 472.2586067915216
10.82 39.96 1025.53 95.89 468.57 472.6833243896903
10.82 42.02 996.03 99.34 475.46 469.2649153602577
10.84 40.62 1015.53 60.9 467.6 476.7704524928655
10.89 44.2 1018.3 86.32 479.16 472.29869321009727
10.91 37.92 1008.66 66.53 473.72 475.92801307429187
10.94 25.36 1009.47 100.1 470.9 474.17032118629646
10.94 39.04 1021.81 86.02 479.2 473.8182300033423
10.94 40.81 1026.03 80.79 476.32 474.48343187958693
10.94 43.67 1012.36 73.3 477.34 473.7501803957154
10.98 37.5 1011.12 97.51 472.34 471.57861538146386
10.99 44.63 1020.67 90.09 473.29 471.6415723647882
11.01 43.69 1016.7 81.48 477.3 472.77018851731134
11.02 38.28 1013.51 95.66 472.11 471.7714368874517
11.02 40.0 1015.75 74.83 468.09 474.56364117639623
11.02 41.17 1018.18 86.86 477.62 472.71482842742716
11.04 39.96 1025.75 94.44 468.84 472.4884135100401
11.04 41.74 1022.6 77.51 477.2 474.25793943550735
11.06 37.92 1008.76 67.32 473.16 475.5315818680211
11.06 41.16 1018.52 89.14 467.46 472.33524056547066
11.06 41.5 1013.09 89.8 476.24 471.7121476384467
11.1 40.92 1021.98 94.14 462.07 471.87019509945424
11.16 40.96 1023.49 83.7 478.3 473.3904021135141
11.17 39.72 1002.4 81.4 474.64 472.29889800972325
11.17 40.27 1009.54 74.56 476.18 473.74084346680155
11.18 37.5 1013.32 74.32 472.02 474.75489479763837
11.18 39.61 1018.56 68.0 468.75 475.57737397289577
11.2 41.38 1021.65 61.89 476.87 476.24038222415226
11.2 42.02 999.99 96.69 472.27 469.24091010472654
11.22 40.22 1011.01 81.67 476.7 472.7393314749404
11.22 43.13 1017.24 80.9 473.93 472.63331852543587
11.29 41.5 1013.39 89.15 476.04 471.3877571195438
11.31 39.61 1018.74 68.9 471.92 475.2099855538808
11.38 52.75 1026.19 72.71 469.9 471.8496328972687
11.41 39.61 1018.69 69.44 467.19 474.9342554366792
11.48 41.14 1027.67 90.5 464.07 472.07659673556776
11.49 35.76 1019.08 60.04 472.45 477.14283533329444
11.49 44.2 1018.79 91.14 475.51 470.4781347032422
11.51 41.06 1021.3 78.11 476.91 473.32755876405156
11.53 41.14 1025.63 88.54 469.04 472.1000066981285
11.53 41.39 1018.39 85.52 474.49 471.88884153658876
11.54 40.05 1014.78 87.05 474.29 471.6865589330199
11.54 40.77 1022.13 83.5 465.61 472.6232718336548
11.56 39.28 1011.27 82.05 477.71 472.2836129719496
11.56 41.62 1012.5 91.42 460.6 470.4334505230218
11.57 39.72 1002.26 78.69 474.72 471.9112964053814
11.57 41.54 1020.13 69.14 476.89 474.30545019143153
11.62 39.72 1018.4 68.06 471.56 474.67947860914313
11.67 37.73 1021.2 68.88 473.54 475.18749689836216
11.67 44.6 1018.09 92.53 467.96 469.77145732692486
11.68 40.55 1022.21 85.76 475.13 472.0849073512217
11.7 25.36 1008.65 92.11 470.88 473.80322256281073
11.71 41.44 1015.37 79.95 474.22 472.095881821932
11.72 40.35 1012.08 83.98 476.41 471.4926212025483
11.76 41.58 1020.91 88.35 465.45 471.19014476340374
11.77 39.39 1012.9 85.8 478.51 471.43677609572285
11.8 40.66 1017.13 97.2 464.43 469.74360467126985
11.8 41.2 1017.18 82.71 475.19 471.726841712236
11.8 41.54 1020.0 65.85 476.12 474.3311768410229
11.8 42.34 1020.25 93.54 466.52 470.11266519044386
11.8 43.99 1020.86 98.44 466.75 469.0361408145495
11.82 41.54 1019.96 67.65 476.97 474.02676004123447
11.82 41.67 1012.94 84.51 476.73 470.9633331252543
11.84 40.05 1014.54 86.78 473.82 471.1277546061928
11.86 39.85 1013.0 66.92 478.29 473.9108447766557
11.87 40.55 1019.06 94.11 473.79 470.24389582880195
11.9 39.16 1016.53 84.59 477.75 471.7153938676628
11.92 43.8 1022.96 60.49 470.33 474.5591424673956
11.93 38.78 1013.15 96.08 474.57 469.80095187612244
11.95 41.58 1015.83 89.35 464.57 470.2642322610154
11.96 43.41 1017.42 79.44 469.34 471.3638012594583
12.02 41.92 1030.1 84.45 465.82 471.92094622344666
12.02 43.69 1016.12 74.07 477.74 471.8558058768037
12.04 40.1 1014.42 89.65 474.28 470.3010756285351
12.05 48.04 1009.14 100.13 464.14 466.34356012780336
12.05 49.83 1008.54 95.11 454.18 466.58075506687595
12.06 52.72 1024.53 80.05 467.21 469.33960229950543
12.07 38.25 1012.67 81.66 470.36 471.7275614063617
12.08 40.75 1015.84 86.9 476.84 470.57863445021957
12.09 40.6 1013.85 85.72 474.35 470.6068799512955
12.1 40.27 1005.53 68.37 477.61 472.52356631529506
12.1 41.17 1013.72 75.61 478.1 471.9097423001989
12.12 40.0 1018.72 84.42 462.1 471.2847044384872
12.14 40.83 1010.56 78.31 474.82 471.2662319288032
12.17 41.58 1013.89 88.98 463.03 469.73593028388507
12.19 40.05 1014.65 85.1 472.68 470.7066911497908
12.19 40.23 1017.45 82.07 474.91 471.3317718037191
12.19 44.63 1018.96 80.91 468.91 470.5269251596348
12.23 41.58 1018.76 87.66 464.45 470.20921701183426
12.24 49.83 1007.9 94.28 466.83 466.283253383728
12.25 44.58 1016.47 81.15 475.24 470.1859434968623
12.27 41.17 1019.39 52.18 473.84 475.4613835085187
12.27 41.17 1019.41 58.1 475.13 474.59940353258173
12.3 39.85 1012.59 73.38 476.42 472.0863918606848
12.3 40.69 1015.74 82.58 474.46 470.7913069417128
12.31 44.03 1007.78 94.42 468.13 467.5640782641256
12.32 41.26 1022.42 79.74 470.27 471.5687225135002
12.32 43.69 1016.26 83.18 471.6 469.9595844589466
12.33 38.91 1017.24 79.84 472.49 471.6990473850648
12.33 39.85 1012.53 66.04 479.32 473.0943993730856
12.35 44.2 1017.81 82.49 471.65 470.0014068012306
12.36 40.56 1022.11 72.99 474.71 472.62554215898064
12.36 45.09 1013.05 88.4 467.2 468.5105758445902
12.36 48.04 1012.8 93.59 468.37 466.9976240128761
12.37 46.97 1013.95 90.76 464.4 467.75156303440326
12.38 45.09 1013.26 90.55 467.47 468.1754530950858
12.39 49.83 1007.6 92.43 468.43 466.2393815815779
12.42 41.58 1019.49 86.31 466.05 470.0991015601047
12.42 43.14 1015.88 79.48 471.1 470.4126440262426
12.43 43.22 1008.93 77.42 468.01 470.10813793557554
12.45 40.56 1017.84 66.52 477.41 473.0481764257403
12.47 38.25 1012.74 82.89 469.56 470.78228922773883
12.47 45.01 1017.8 95.25 467.18 467.7057590529845
12.49 41.62 1011.37 82.68 461.35 469.82262135976373
12.5 41.38 1021.87 57.59 474.4 474.37807432859705
12.5 43.67 1013.99 90.91 473.26 468.3049320923233
12.54 43.69 1017.26 83.59 470.04 469.55683536649303
12.55 39.58 1010.68 76.9 472.31 471.00250996619167
12.56 43.41 1016.93 81.02 467.19 469.9361134525989
12.57 39.16 1016.53 88.91 476.2 469.7928661275298
12.57 41.79 1014.99 87.8 461.88 469.1737219130262
12.58 39.72 1017.85 57.74 471.24 474.28849061231415
12.58 43.67 1014.36 91.72 473.02 468.0625826724588
12.59 39.18 1024.18 67.57 471.32 473.48514686066005
12.6 41.74 1022.13 67.89 474.23 472.6140402906572
12.61 43.22 1013.41 78.94 466.85 469.90391551417036
12.64 41.26 1020.79 83.66 465.78 470.2469481759373
12.65 44.34 1014.74 92.81 473.46 467.6324473479292
12.68 41.4 1021.59 78.57 466.64 470.94254421143154
12.71 43.8 1023.15 71.16 466.2 471.4942842031327
12.72 39.13 1008.36 92.59 467.28 468.30907898088304
12.72 40.64 1021.11 93.24 475.73 468.8757392252607
12.73 37.73 1021.89 61.76 470.89 474.2377547754183
12.74 49.83 1007.44 91.47 466.09 465.69130458295416
12.75 39.85 1012.51 62.37 475.61 472.81803434170047
12.79 44.68 1022.51 99.55 465.75 466.9269506815472
12.83 41.67 1012.84 84.29 474.81 469.0391508364551
12.83 44.88 1017.86 87.88 474.26 468.12380368536253
12.87 39.3 1019.26 71.55 471.48 471.9340237695596
12.87 45.51 1015.3 86.67 475.77 467.8576907607767
12.88 44.0 1022.71 88.58 470.31 468.5394722259148
12.88 44.71 1018.73 51.95 469.12 473.3820295069999
12.89 36.71 1013.36 87.29 475.13 469.7647231785763
12.9 44.63 1020.72 89.51 467.41 468.04615604018517
12.92 39.35 1014.56 88.29 469.83 469.00047164404356
12.95 41.38 1021.97 53.83 474.46 474.06674201992485
12.99 40.55 1007.52 94.15 472.18 467.1383058280765
13.02 45.51 1015.24 80.05 468.46 468.52920326163013
13.03 42.86 1014.39 86.25 475.03 468.1969526319267
13.04 40.69 1015.96 82.37 473.49 469.41250494615895
13.06 44.2 1018.95 85.68 469.02 468.25937427156714
13.07 38.47 1015.16 57.26 468.9 473.50603668317
13.07 40.83 1010.0 84.84 471.19 468.4742214263607
13.08 39.28 1012.41 77.98 474.13 470.0383017109995
13.08 44.9 1020.47 86.46 472.01 468.0562294553364
13.09 39.85 1012.86 58.42 475.89 472.7669442736334
13.09 54.3 1017.61 82.38 471.0 466.0557279256281
13.1 40.55 1007.59 95.46 472.37 466.7407287783567
13.1 49.83 1007.29 92.79 466.08 464.7921473620272
13.11 41.44 1015.55 74.45 471.61 470.21248865654456
13.12 39.18 1023.11 64.33 471.44 472.8484021647698
13.15 40.78 1024.13 79.59 462.3 470.2485412085585
13.15 41.14 1026.72 80.31 461.49 470.26460015531467
13.18 43.72 1010.59 99.09 464.7 465.5107675088055
13.19 44.88 1017.61 94.95 467.68 466.3776971038667
13.2 40.83 1007.75 94.98 472.41 466.5610830112792
13.2 41.78 1010.49 64.96 468.58 470.9265999279328
13.25 43.7 1013.61 76.05 472.22 468.9876557902937
13.25 44.92 1024.11 89.34 469.18 467.59953010733625
13.27 40.27 1006.1 40.04 473.88 474.4459916698643
13.34 41.79 1011.48 86.66 461.12 467.5690713933046
13.41 40.89 1010.85 89.61 472.4 467.17680485054154
13.42 40.92 1022.84 75.89 458.49 470.1275872590886
13.43 43.69 1016.21 73.01 475.36 469.2980914389406
13.44 40.69 1014.54 77.97 473.0 469.167238069639
13.44 41.14 1026.41 77.26 461.44 470.1249314556375
13.48 41.92 1030.2 65.96 463.9 471.8102876158123
13.49 43.41 1015.75 57.86 461.06 471.4247999233475
13.51 39.31 1012.18 75.19 466.46 469.5896988846236
13.53 38.73 1004.86 85.38 472.46 467.61330541009727
13.53 42.86 1014.0 90.63 471.73 466.56182696263323
13.54 40.69 1015.85 77.55 471.05 469.1422671962815
13.55 40.71 1019.13 75.44 467.21 469.69281643752464
13.56 40.03 1017.73 83.76 472.59 468.51537272186124
13.56 49.83 1007.01 89.86 466.33 464.30951140859736
13.57 42.99 1007.51 88.95 472.04 466.16900295184536
13.58 39.28 1016.17 79.17 472.17 469.2063750462153
13.61 38.47 1015.1 54.98 466.51 472.79218089209525
13.65 41.58 1020.56 72.17 460.8 469.8764663630881
13.67 41.48 1017.51 63.54 463.97 470.8734693970194
13.67 42.32 1015.41 79.04 464.56 468.2319508045609
13.69 34.03 1018.45 65.76 469.12 472.4449714286493
13.69 40.83 1008.53 84.81 471.26 467.1630433917511
13.71 43.41 1015.45 69.26 466.06 469.31300214374124
13.72 44.47 1027.2 68.89 470.66 470.03995588291366
13.72 49.83 1006.88 89.49 463.65 464.0442884425782
13.73 45.08 1023.55 81.64 470.35 467.7114787859118
13.74 42.74 1029.54 70.0 465.92 470.4612645139354
13.74 44.21 1023.26 84.2 466.67 467.5120353140818
13.77 42.86 1030.72 77.3 471.38 469.40462020200255
13.77 43.13 1016.63 62.13 468.45 470.4032638964206
13.78 44.47 1027.94 71.09 467.22 469.663531445212
13.78 45.78 1025.27 95.72 462.88 465.52654943877917
13.8 39.82 1012.37 83.69 473.56 467.6786715108731
13.83 38.73 999.62 91.95 469.81 465.64964430714963
13.84 42.18 1015.74 79.76 468.66 467.86078237900523
13.85 45.08 1024.86 83.85 468.35 467.2642672326089
13.86 37.85 1011.4 89.7 469.94 467.09839147806196
13.86 40.66 1017.15 83.82 463.49 467.72367995173977
13.87 45.08 1024.42 81.69 465.48 467.50497110984463
13.88 48.79 1017.28 79.4 464.14 466.3135306312695
13.9 39.54 1007.01 81.33 471.16 467.46352561567244
13.91 44.58 1021.36 78.98 472.67 467.6987016384155
13.93 42.86 1032.37 71.11 468.88 470.13332337428767
13.95 40.2 1013.18 90.77 464.79 466.32771593378936
13.95 71.14 1019.76 75.51 461.18 461.37564919433316
13.96 39.54 1011.05 85.72 468.82 467.0362704395636
13.97 45.01 1017.44 89.15 461.96 465.67304883933747
13.98 44.84 1023.6 89.09 462.81 466.2063693616964
14.0 41.78 1010.96 48.37 465.62 471.8419294419794
14.01 45.08 1023.28 82.49 464.79 467.0254238326554
14.02 40.66 1017.05 84.14 465.39 467.36024219232945
14.03 44.88 1019.6 57.63 465.51 470.3636999560957
14.04 40.2 1013.29 89.54 465.25 466.3425067004856
14.04 40.83 1008.98 82.04 469.75 466.9286675356798
14.04 44.21 1021.93 86.12 468.64 466.5450197688432
14.07 40.78 1024.67 72.66 456.71 469.5289092761888
14.07 42.99 1007.57 96.05 468.87 464.1737178909659
14.07 43.34 1015.79 86.0 463.77 466.22172115408887
14.08 39.31 1011.67 72.0 464.16 468.91409473616267
14.09 41.2 1016.45 67.27 472.42 469.50273867747853
14.09 44.84 1023.65 94.29 466.12 465.23969191883606
14.1 41.04 1026.11 74.25 465.89 469.29150006815894
14.1 42.18 1015.05 78.25 463.3 467.52338927383
14.12 39.52 1016.79 75.89 472.32 468.63392036548817
14.12 41.39 1018.73 76.51 472.88 468.23518412428905
14.14 39.82 1012.46 81.15 472.52 467.40072495010867
14.17 42.86 1030.94 66.47 466.2 470.2308690130385
14.18 39.3 1020.1 67.48 464.32 470.06934793478155
14.18 40.69 1014.73 74.88 471.52 468.2061275247934
14.22 37.85 1011.24 88.49 471.05 466.56749595165775
14.22 42.32 1015.54 77.23 465.0 467.4457105564229
14.24 39.52 1018.22 77.19 468.51 468.32922832919263
14.24 39.99 1009.3 83.75 466.2 466.5289202956749
14.24 44.84 1023.6 94.06 466.67 464.9798468816765
14.27 41.48 1014.83 62.7 458.19 469.62052738975177
14.28 42.77 1020.06 81.77 466.75 466.92345671991075
14.28 43.02 1012.97 49.44 467.83 471.00023827347206
14.31 40.78 1024.3 76.41 463.54 468.4888161194534
14.32 45.08 1023.24 84.53 467.21 466.12663038326
14.33 45.51 1015.42 71.55 468.92 467.2570455453141
14.34 42.86 1031.75 66.81 466.17 469.9193063400896
14.35 40.71 1023.09 69.5 473.56 469.3386400018569
14.35 49.83 1006.39 91.23 462.54 462.5353944778759
14.36 40.0 1016.16 68.79 460.42 469.0357845125855
14.38 40.66 1016.34 92.37 463.1 465.4074674853432
14.39 43.56 1012.97 59.17 469.35 469.2340241993211
14.4 40.2 1013.04 90.5 464.5 465.48772540492905
14.41 40.71 1016.78 69.77 467.01 468.6698381136837
14.41 40.83 1009.82 80.43 470.13 466.5182432985402
14.42 41.16 1004.32 88.42 467.25 464.8033579382148
14.43 35.85 1021.99 78.25 464.6 469.03001445387565
14.48 39.0 1016.75 75.97 464.56 468.0542535304752
14.48 40.89 1011.39 82.18 470.44 466.240785806817
14.5 41.76 1023.94 84.42 464.23 466.6802013632756
14.52 40.35 1011.11 69.84 470.8 468.07562484757386
14.54 41.17 1015.15 67.78 470.19 468.46200832885285
14.54 43.14 1010.26 82.98 465.45 465.3553979968291
14.55 44.84 1023.83 87.6 465.14 465.3430114466154
14.57 41.79 1007.61 82.85 457.21 465.437343556244
14.58 41.92 1030.42 61.96 462.69 470.28998511120346
14.58 42.07 1017.9 86.14 460.66 465.70598887904623
14.64 44.92 1025.54 91.12 462.64 464.77518062953527
14.64 45.0 1021.78 41.25 475.98 471.7241650123051
14.65 35.4 1016.16 60.26 469.61 470.86762962520106
14.65 41.92 1030.61 63.07 464.95 470.00850681775063
14.65 44.84 1023.39 87.76 467.18 465.0909665721057
14.66 41.76 1022.12 78.13 463.6 467.14100725665423
14.66 42.07 1018.14 84.68 462.77 465.78420347562667
14.72 39.0 1016.42 76.42 464.93 467.4988198701669
14.74 43.71 1024.35 81.53 465.49 466.1860805278475
14.76 39.64 1010.37 81.99 465.82 465.9570356485108
14.77 48.06 1010.92 69.81 461.52 465.6600911572585
14.77 58.2 1018.78 83.83 460.54 461.726652495707
14.78 38.58 1017.02 82.4 460.54 466.6642858393177
14.79 47.83 1007.27 92.04 463.22 462.1388114830884
14.81 39.58 1011.62 73.64 467.32 467.1954080636739
14.81 40.71 1018.54 73.0 467.66 467.5703857042853
14.81 43.69 1017.19 71.9 470.71 466.87798937642987
14.82 42.74 1028.04 69.81 466.34 468.28371557585695
14.83 53.82 1016.57 63.47 464.0 465.49312878229995
14.84 71.14 1019.61 66.78 454.16 460.92029479400514
14.85 45.01 1013.12 85.53 460.19 464.15206661902306
14.86 37.85 1010.58 86.8 467.71 465.52584173595307
14.87 41.23 997.39 82.06 465.01 464.2815636085029
14.87 54.3 1017.17 71.57 462.87 464.163521673255
14.88 42.28 1007.26 71.3 466.73 466.3736543730507
14.91 39.28 1014.57 75.23 469.34 467.08552274770585
14.91 40.73 1017.44 86.91 458.99 465.2537787213567
14.92 41.16 1004.83 83.7 465.72 464.5690050827307
14.92 46.18 1014.21 98.82 465.63 461.8753395968221
14.93 42.44 1012.65 86.8 471.24 464.41497356388027
14.94 40.0 1017.69 65.43 456.41 468.53176347876706
14.94 42.77 1018.06 75.35 460.51 466.424150275801
14.98 39.58 1011.78 75.07 467.77 466.67192135558764
15.0 40.66 1016.28 89.62 456.63 464.6078674511597
15.01 39.52 1017.53 72.0 468.02 467.5449609547658
15.02 37.64 1016.49 83.28 463.93 466.2641999137003
15.03 43.71 1025.07 83.25 463.12 465.4344155000201
15.03 44.45 1020.94 65.57 460.06 467.4928608009518
15.08 42.77 1018.67 73.89 461.6 466.4167549834592
15.09 41.76 1022.4 76.22 463.27 466.6130277518322
15.11 43.67 1012.06 91.75 467.82 462.9909863601291
15.12 48.92 1011.8 72.93 462.59 464.3870766666373
15.14 39.72 1002.96 72.52 460.15 465.98237767298184
15.14 44.21 1019.97 83.86 463.1 464.59341737321824
15.15 53.82 1016.34 62.59 461.6 464.9855482511961
15.19 42.03 1017.38 71.66 462.64 466.60937185484113
15.21 50.88 1014.24 100.11 460.56 459.95844344813366
15.24 48.6 1007.08 86.49 459.85 461.8730218752433
15.27 38.73 1002.83 77.77 465.99 465.2019993258048
15.27 39.54 1010.64 81.91 464.49 465.0319060514448
15.29 38.73 1000.9 81.17 468.62 464.51031407803055
15.31 40.66 1016.46 84.64 458.26 464.7510595901325
15.31 41.35 1005.09 95.25 466.5 462.10563966655445
15.32 45.01 1013.3 83.72 459.31 463.5242044902383
15.34 43.5 1021.18 79.44 459.77 465.12795484714235
15.34 71.14 1019.79 77.56 457.1 458.3979411875371
15.4 38.73 1000.67 79.71 469.18 464.49240158563896
15.41 42.44 1012.6 86.74 472.28 463.4938095964465
15.46 42.07 1017.9 81.12 459.15 464.7409202420205
15.47 43.13 1015.11 50.5 466.63 468.6970662849413
15.48 53.82 1016.1 64.77 462.69 464.01147313398917
15.5 44.34 1019.21 65.21 468.53 466.5254088553394
15.5 49.25 1021.41 77.92 453.99 463.6262300043795
15.52 41.93 1022.97 52.92 471.97 469.1866406031888
15.52 58.59 1014.12 91.22 457.74 458.7253721171194
15.55 39.63 1004.98 89.82 466.83 462.85471321992077
15.55 43.02 1011.97 44.66 466.2 469.16650047432114
15.55 43.71 1024.34 79.61 465.14 464.9029898412732
15.55 45.09 1014.33 62.19 457.36 466.28526560326617
15.61 38.52 1018.4 80.99 439.21 465.3963354604996
15.62 40.12 1013.03 96.26 462.59 462.3133964499922
15.62 58.59 1013.91 97.6 457.3 457.584678990398
15.66 41.35 1001.68 86.26 463.57 462.4644015518939
15.67 45.17 1018.73 94.74 462.09 461.643667310181
15.69 37.87 1021.18 84.38 465.41 465.1358649951472
15.69 39.3 1019.03 60.57 464.17 468.07771227809314
15.7 42.99 1007.51 76.05 464.59 463.94240853336305
15.75 36.99 1007.67 93.8 464.38 462.7655254272994
15.75 39.99 1007.02 77.44 464.95 464.35125328406644
15.79 58.86 1015.85 91.91 455.15 458.1774466179175
15.81 58.59 1014.41 90.03 456.91 458.3632117908802
15.84 41.04 1025.64 63.43 456.21 467.47546424100267
15.85 42.28 1007.4 82.12 467.3 462.93565136830154
15.85 49.69 1015.48 88.65 464.72 460.79339608207175
15.86 38.62 1016.65 67.51 462.58 466.71318747004926
15.86 43.02 1012.18 40.33 466.6 469.2173130099907
15.86 43.5 1021.22 75.38 459.42 464.7204827320649
15.92 37.64 1014.93 83.73 464.14 464.3355958479068
15.92 39.16 1006.59 71.32 460.45 465.088060844667
15.92 41.2 1016.04 73.37 468.91 465.049705721886
15.96 41.66 1011.93 55.47 466.39 467.13452750856925
15.98 39.64 1009.31 81.21 467.22 463.6313366984603
15.98 44.68 1018.48 85.94 462.77 462.4312798566266
15.99 39.63 1006.09 89.92 464.95 462.08179546634585
16.0 40.66 1016.12 89.23 457.12 462.7228887148119
16.0 44.9 1020.5 80.89 461.5 463.2389898882632
16.0 45.09 1014.31 60.02 458.46 465.73221554609086
16.01 43.69 1017.12 62.43 465.89 465.9391561803271
16.02 39.54 1007.73 72.81 466.15 464.6758800034213
16.02 44.9 1009.3 82.62 455.48 462.03627301808797
16.09 44.71 1017.86 42.74 464.95 468.4631596600604
16.09 65.46 1013.84 85.52 454.88 456.7218449478398
16.12 45.87 1008.15 86.12 457.41 460.9973530979196
16.14 44.71 1014.83 39.41 468.88 468.60583110746154
16.16 25.88 1009.58 72.24 461.86 468.0452621538938
16.17 46.97 1014.22 85.8 456.08 461.1674897104325
16.19 36.99 1007.37 92.4 462.94 462.0966422275805
16.2 45.76 1014.73 89.84 460.87 460.8634611992428
16.22 37.87 1022.36 83.13 461.06 464.39198726436393
16.22 50.88 1014.33 100.09 454.94 458.02055270119547
16.23 43.69 1016.4 68.9 466.22 464.51235428029423
16.29 53.82 1014.97 73.15 459.95 461.1346442030386
16.3 41.16 1007.88 76.61 463.47 463.1897781965986
16.31 52.75 1024.4 55.69 456.58 464.6775725663161
16.32 43.56 1014.4 59.77 463.57 465.54023567427873
16.33 42.44 1013.98 84.9 462.44 462.10003232292183
16.34 47.45 1009.41 92.96 448.59 459.28384302135726
16.36 39.99 1008.91 72.48 462.5 464.0520812837937
16.37 36.99 1006.37 90.11 463.76 462.0021066209567
16.39 52.75 1024.42 54.61 459.48 464.6824431291334
16.39 58.59 1014.58 90.34 455.05 457.2130973847568
16.4 44.9 1009.22 82.31 456.11 461.34202141138076
16.42 40.56 1020.36 50.62 472.17 467.9152913437013
16.47 38.01 1022.3 72.29 461.54 465.451323337944
16.47 44.89 1010.04 82.01 459.69 461.32001368263144
16.49 49.39 1018.1 93.13 461.54 459.1934765355192
16.5 49.39 1018.35 93.42 462.48 459.15223490510476
16.51 51.86 1022.37 81.18 442.48 460.6299621913334
16.55 41.66 1011.45 55.53 465.14 465.9486794694256
16.56 42.99 1007.48 74.45 464.62 462.514565839849
16.57 43.7 1015.67 71.95 465.78 463.3496922983314
16.57 53.82 1015.17 63.69 462.52 461.9908711864406
16.57 63.31 1016.19 81.02 454.78 457.1797966088057
16.59 43.56 1012.88 59.61 465.03 464.9190479188053
16.62 39.99 1007.07 77.14 463.74 462.7209910751999
16.62 54.3 1017.99 63.76 459.59 461.9941154580853
16.65 46.18 1010.6 95.69 465.6 458.7011562788461
16.7 36.99 1006.19 89.33 464.7 461.4647200415134
16.73 54.3 1017.96 59.44 460.54 462.4097006278274
16.77 42.28 1007.53 73.19 465.52 462.4744017201027
16.82 41.66 1010.49 63.14 465.64 464.23959443772213
16.82 45.0 1022.05 37.28 468.22 468.1204021981673
16.85 39.64 1008.82 80.81 464.2 461.9717022235376
16.85 42.24 1017.43 66.01 472.63 464.1834210347691
16.87 52.05 1012.7 71.63 460.31 460.49414495170237
16.89 49.21 1015.19 70.39 458.25 461.54722359859704
16.94 49.64 1024.43 69.22 459.25 462.2664630167632
16.97 42.86 1013.92 74.8 463.62 462.22935856598747
17.01 44.2 1019.18 61.23 457.26 464.22591401634224
17.02 51.86 1021.53 81.28 460.0 459.5632798612268
17.03 43.99 1021.5 82.32 460.25 461.35195581745074
17.07 41.35 1005.88 83.43 464.6 460.49948055624816
17.08 38.58 1015.41 73.42 461.49 463.4068722278115
17.08 58.86 1016.04 87.46 449.98 456.3538669153961
17.19 43.14 1014.34 68.62 464.72 462.6709318385796
17.27 43.52 1021.37 76.73 460.08 461.8110962307606
17.27 44.9 1007.85 78.8 454.19 460.0644340540893
17.29 42.86 1014.38 72.3 464.27 462.01427465285536
17.3 43.72 1009.64 77.86 456.55 460.5836092644089
17.32 43.7 1015.13 61.66 464.5 463.36019976991514
17.32 44.34 1019.52 56.24 468.8 464.3486858862592
17.35 42.86 1014.62 74.16 465.16 461.64674540379394
17.35 52.72 1026.31 58.01 463.65 462.49609959425135
17.36 43.96 1013.02 79.59 466.36 460.43082906265073
17.37 48.92 1011.91 58.4 455.53 462.17575951824017
17.39 46.21 1013.94 82.73 454.06 459.4288341311478
17.4 63.09 1020.84 92.58 453.0 454.32588018238846
17.41 40.55 1003.91 76.87 461.47 460.83972369537014
17.44 44.89 1009.9 80.54 457.67 459.6520786332344
17.45 50.9 1012.16 83.8 458.67 457.8428111918577
17.46 39.99 1008.52 69.73 461.01 462.29977029786426
17.48 52.9 1020.03 76.47 458.34 458.996291001344
17.61 56.53 1019.5 82.3 457.01 456.94689658887955
17.64 57.76 1016.28 85.04 455.75 455.9205279683583
17.66 60.08 1017.22 86.96 456.62 455.09997079582735
17.67 45.09 1014.26 51.92 457.67 463.6885973525343
17.67 50.88 1015.64 90.55 456.16 456.72206228080574
17.7 49.21 1015.16 67.91 455.97 460.3441974161702
17.74 49.69 1006.09 80.7 457.05 457.54320031904916
17.74 50.88 1015.56 89.78 457.71 456.69285780085
17.75 55.5 1020.15 81.26 459.43 457.1382842072816
17.77 52.9 1020.11 81.51 457.98 457.7082041695164
17.79 40.12 1012.74 79.03 459.13 460.6176992174903
17.82 49.15 1020.73 70.25 457.35 460.23977794971734
17.83 66.86 1011.65 77.31 456.56 454.0359982256698
17.84 61.27 1020.1 70.68 454.57 457.0654686491854
17.85 48.14 1017.16 86.68 451.9 457.74629194464563
17.86 50.88 1015.59 88.28 457.33 456.682658074812
17.89 42.42 1008.92 65.08 467.59 461.57543093155283
17.89 44.6 1014.48 42.51 463.99 464.7770544317755
17.9 43.72 1008.64 74.73 452.55 459.80149708475966
17.9 58.33 1013.6 85.81 452.28 454.94641693932425
17.94 62.1 1019.81 82.65 453.55 454.8958623057641
17.97 65.94 1012.92 88.22 448.88 452.5071708494881
17.98 56.85 1012.28 84.52 448.71 455.2418242855509
18.0 44.06 1016.8 78.88 454.59 459.5827319030397
18.01 62.26 1011.89 89.29 451.14 453.1075606298177
18.02 53.16 1013.41 82.84 458.01 456.4217175154805
18.03 53.16 1013.02 81.95 456.55 456.50051296596394
18.03 53.16 1013.06 82.03 458.04 456.49209889995655
18.04 44.85 1015.13 48.4 463.31 463.61908166044054
18.06 65.48 1018.79 77.95 454.34 454.42430944989064
18.11 58.95 1016.61 89.17 454.29 454.14166454199597
18.13 60.1 1009.67 84.75 455.82 453.8961915229463
18.14 49.78 1002.95 100.09 451.44 453.66499413493267
18.14 67.71 1003.82 95.69 442.45 449.90744333553766
18.16 43.72 1008.64 75.22 454.98 459.2285158945938
18.16 43.96 1012.78 78.33 465.26 459.05202239898557
18.17 52.08 1001.91 100.09 451.06 452.9490364013417
18.17 66.86 1011.29 78.48 452.77 453.18020424984826
18.2 52.72 1025.87 54.26 463.47 461.36780961356845
18.21 39.54 1009.81 70.92 461.73 460.89674705500755
18.21 45.0 1022.86 48.84 467.54 463.8188758742415
18.22 45.09 1013.62 75.56 454.74 459.12703336317225
18.22 58.2 1017.09 81.92 451.04 455.21318283732694
18.24 49.5 1014.37 79.36 464.13 457.4956830813674
18.25 60.1 1009.72 90.15 456.25 452.88104966381576
18.26 58.96 1014.04 69.7 457.43 456.48090497858703
18.27 58.2 1018.34 72.73 448.17 456.55913524865815
18.28 60.1 1009.72 85.79 452.93 453.45921998591484
18.31 62.1 1020.38 79.02 455.24 454.75813504742956
18.32 39.53 1008.15 64.85 454.44 461.4374201546749
18.32 42.28 1007.86 45.62 460.27 463.53345887643684
18.32 65.94 1012.74 86.77 450.5 452.02894677235776
18.34 44.63 1000.76 89.27 455.22 455.9633409988894
18.34 50.59 1018.42 83.95 457.17 456.69115708186104
18.36 53.16 1013.31 83.18 458.47 455.7081697760806
18.36 56.65 1020.29 82.0 456.49 455.57841979073686
18.38 55.28 1020.22 68.33 451.29 457.86988425653215
18.4 50.16 1011.51 98.07 453.78 454.06028204889856
18.41 42.44 1012.66 65.93 463.2 460.7479119618784
18.42 58.95 1016.95 86.77 452.1 453.92151217696835
18.42 60.1 1009.77 86.75 451.93 453.05320729488966
18.42 63.94 1020.47 74.47 450.55 454.7582989685104
18.48 46.48 1007.53 82.57 461.49 456.7605922899188
18.48 58.59 1015.61 85.14 452.52 454.02423282750084
18.5 52.08 1006.23 100.09 451.23 452.6641989591508
18.51 48.06 1015.14 79.83 455.44 457.32803096447014
18.53 63.91 1010.26 97.8 440.64 450.31905653186493
18.55 41.85 1015.24 62.47 467.51 461.3397464375884
18.55 46.48 1007.34 80.67 452.37 456.8872770659849
18.56 42.28 1007.75 60.89 462.05 460.8339970164586
18.59 43.14 1011.92 52.63 464.48 462.10615685280607
18.63 45.87 1007.98 79.9 453.79 457.0494808979759
18.65 52.08 1005.48 99.94 449.55 452.3356980438647
18.66 56.53 1020.13 80.04 459.45 455.3025828648233
18.68 43.69 1016.68 48.88 463.02 462.729986990083
18.68 56.65 1020.38 80.26 455.79 455.2223463598734
18.68 62.1 1019.78 83.67 453.25 453.31727625145106
18.73 40.12 1013.19 74.12 454.71 459.55748654713756
18.73 46.48 1007.19 79.23 450.74 456.73794034607437
18.8 47.83 1005.86 76.77 453.9 456.51693542677697
18.81 52.08 1004.43 99.6 450.87 451.9912034594017
18.83 48.98 1016.33 74.23 453.28 457.3952307496471
18.84 61.27 1019.64 71.95 454.47 454.9139071679218
18.86 50.78 1008.46 91.67 446.7 453.7037727907364
18.87 43.43 1009.16 69.5 454.58 458.8081008998661
18.87 52.05 1012.02 53.46 458.64 459.2317295422394
18.89 66.86 1012.38 71.96 454.02 452.8313052555013
18.9 62.96 1020.69 80.57 455.88 453.2048261109316
18.91 43.14 1013.56 58.34 460.19 460.7894614420895
18.95 46.21 1013.47 81.22 457.58 456.6018501959594
18.97 50.59 1016.01 74.9 459.68 456.60000256329886
18.98 38.52 1018.85 63.16 454.6 461.53379199179915
18.99 56.65 1020.46 77.16 457.55 455.08314377928957
19.02 50.66 1013.04 85.25 455.42 454.7344713102369
19.05 53.16 1013.22 82.8 455.76 454.42537323274547
19.05 67.32 1013.2 83.14 447.47 450.8438229795386
19.06 56.65 1020.82 82.14 455.7 454.25095018004106
19.08 44.63 1020.05 41.07 455.95 463.13775609127424
19.08 58.59 1013.42 68.88 451.05 455.0606464477156
19.11 58.95 1017.07 85.49 449.89 452.78710305999806
19.12 50.16 1011.52 99.71 451.49 452.433083794051
19.13 42.18 1001.45 98.77 456.04 453.7206916287227
19.14 56.65 1020.84 82.97 458.06 453.97719041615727
19.2 58.71 1009.8 84.62 448.17 452.20842313451317
19.22 62.1 1019.43 79.19 451.8 452.9007476374929
19.23 41.67 1012.53 48.86 465.66 461.8378158906787
19.24 58.33 1013.65 85.47 449.26 452.41543202652105
19.25 43.43 1012.01 73.26 451.08 457.758643714557
19.26 44.34 1019.45 51.32 467.72 461.31875334620537
19.31 43.56 1013.65 41.54 463.35 462.3713163829519
19.31 60.07 1014.86 69.37 453.47 454.29376940501476
19.32 52.84 1004.29 83.51 450.88 453.1538192034153
19.43 52.9 1018.35 61.12 456.08 457.3375291656148
19.44 59.21 1018.5 88.35 448.04 451.78495851322333
19.47 58.79 1016.8 87.26 450.17 451.85242166322104
19.54 44.57 1007.19 78.93 450.54 455.6955332352781
19.54 50.66 1014.7 84.53 456.61 453.9716415466415
19.57 68.61 1011.13 96.4 448.73 447.41632457686063
19.6 48.14 1013.18 68.71 456.57 456.66826631159074
19.6 60.95 1015.4 84.26 456.06 451.3868160236605
19.61 56.65 1020.64 63.74 457.41 455.85961858608687
19.62 58.79 1017.59 87.39 446.29 451.60844251281037
19.62 68.63 1012.26 68.05 453.84 451.54257776593613
19.64 56.65 1020.79 73.88 456.03 454.3347436794248
19.65 42.23 1013.04 75.9 461.16 456.9850125389704
19.65 57.85 1011.73 93.89 450.5 450.35966629930147
19.66 51.43 1010.17 84.19 459.12 453.22902771494347
19.67 60.77 1017.33 88.13 444.87 450.88923626750994
19.68 44.34 1019.49 49.5 468.27 460.777395244504
19.68 51.19 1008.64 94.88 452.04 451.56627819803873
19.68 56.65 1020.75 67.25 456.89 455.22151625901796
19.69 39.72 1001.49 60.34 456.55 458.8632715562841
19.69 56.65 1020.84 72.14 455.07 454.4962025118112
19.7 51.3 1014.88 88.1 454.94 452.99732617118093
19.7 52.84 1004.86 89.72 444.64 451.56134671760685
19.72 44.78 1009.27 39.18 464.54 461.2640328521535
19.73 49.69 1007.78 73.02 454.28 454.96273138933316
19.73 68.63 1012.41 74.12 450.26 450.45712572408365
19.76 62.1 1020.07 73.55 450.44 452.73403331175916
19.78 50.32 1008.62 96.4 449.23 451.36693359666157
19.79 60.1 1010.47 84.04 452.41 450.8630071025483
19.8 57.25 1010.84 88.9 451.75 450.8754162418666
19.8 58.79 1017.04 87.71 449.66 451.1697942873426
19.8 67.71 1005.58 69.65 446.03 450.6475445784007
19.82 46.63 1013.17 87.1 456.36 453.9368453997675
19.83 46.33 1013.27 96.4 451.22 452.6438110023007
19.83 59.21 1012.67 96.42 440.03 449.3808509555166
19.86 41.67 1012.31 53.9 462.86 459.869498864356
19.87 48.14 1016.94 81.56 451.14 454.579016450257
19.87 49.69 1012.23 68.57 456.03 455.70412271625406
19.89 50.78 1008.85 92.97 446.35 451.5591661954988
19.89 51.43 1007.38 91.79 448.85 451.44957897086954
19.89 68.08 1012.65 80.25 448.71 449.4109294018897
19.92 46.97 1014.32 69.17 459.39 456.3684360885655
19.93 56.65 1020.7 62.82 456.53 455.38148152279337
19.94 44.63 1004.73 78.48 455.58 454.77441817350666
19.94 44.9 1008.52 74.69 459.47 455.56852272126025
19.94 56.53 1020.48 76.43 453.8 453.388777892959
19.95 58.46 1017.45 89.46 447.1 450.74082943000445
19.97 50.78 1008.75 92.7 446.57 451.4361052165287
19.99 40.79 1003.15 87.55 455.28 454.1835978057368
20.01 45.09 1014.21 38.19 453.96 461.17395495323035
20.01 68.63 1012.34 69.49 454.5 450.5867733837238
20.03 60.77 1017.23 87.82 449.31 450.23193343537906
20.04 49.39 1020.62 78.84 449.63 454.63584061731206
20.04 58.2 1017.56 74.31 448.92 452.85108866192985
20.08 54.42 1011.79 89.35 457.14 451.0525967345181
20.08 62.52 1017.99 75.74 450.98 451.52328444134787
20.1 57.17 1011.96 87.68 452.67 450.58585768893437
20.11 51.19 1007.82 92.06 449.03 451.0815006280817
20.12 58.12 1015.47 79.38 453.33 451.8069735038988
20.16 57.76 1019.34 72.1 455.13 453.1966266064801
20.19 44.57 1009.2 72.13 454.36 455.59739505823717
20.19 66.86 1012.97 64.7 454.84 451.4309223325164
20.21 54.9 1016.82 66.56 454.23 454.4162557726173
20.21 69.94 1009.33 83.96 447.06 447.518481672599
20.23 52.05 1012.15 47.49 457.57 457.4899833309962
20.24 56.65 1020.72 62.9 455.49 454.77349685896206
20.25 44.78 1007.93 40.16 462.44 459.9896954813431
20.28 48.78 1017.4 82.51 451.59 453.52748857898166
20.28 62.52 1017.89 75.67 452.45 451.13958592197406
20.3 58.46 1015.93 82.13 448.79 451.0112917711592
20.33 57.76 1016.47 75.35 450.25 452.1609729511189
20.37 52.05 1012.34 62.57 456.11 455.0355456385036
20.43 63.09 1016.46 91.78 445.58 448.24161243610126
20.45 59.8 1015.13 79.21 452.96 450.74872313991176
20.5 49.69 1009.6 70.81 452.94 453.94807606743166
20.51 39.72 1002.25 47.97 452.39 459.1480198621104
20.51 68.08 1012.73 78.05 445.96 448.54249260358654
20.56 60.08 1017.79 78.08 452.8 450.84813038147144
20.56 64.45 1012.24 53.09 458.97 452.9523382793833
20.58 39.53 1005.68 62.09 460.1 457.2797775931837
20.59 59.8 1015.27 77.94 453.83 450.67534900317094
20.6 59.15 1013.32 91.07 443.76 448.7439698617696
20.61 60.1 1010.84 80.57 450.46 449.8176765506547
20.61 62.91 1013.24 79.54 446.53 449.46273191454407
20.61 63.86 1015.43 73.86 446.34 450.23276134284237
20.61 65.61 1014.91 83.82 449.72 448.30116288608934
20.64 61.86 1012.81 99.97 447.14 446.6513202266961
20.65 41.67 1012.76 45.27 455.5 459.6412858596402
20.65 57.5 1016.04 87.45 448.22 449.80841398023324
20.68 63.86 1015.73 74.36 447.84 450.0492245621949
20.69 50.78 1008.71 91.95 447.58 450.15348917672725
20.71 58.18 1007.63 98.44 447.06 447.2352893702609
20.72 63.94 1017.17 59.83 447.69 452.1889854808301
20.76 44.58 1017.09 57.47 462.01 457.27636447696545
20.76 59.04 1012.51 85.39 448.92 449.22543586447625
20.76 69.05 1001.89 77.86 442.82 446.96369987423526
20.77 43.77 1010.76 63.12 453.46 456.11949013569995
20.78 58.86 1016.02 77.29 446.2 450.69910348096573
20.8 69.45 1013.7 82.48 443.77 447.07428167616905
20.82 63.77 1014.28 86.37 448.9 447.93156732156143
20.83 44.78 1008.51 35.9 460.6 459.5396287629999
20.85 59.21 1012.9 75.97 444.44 450.41539217977504
20.87 57.19 1006.5 77.0 445.95 450.20916835758374
20.88 59.8 1015.66 75.34 453.18 450.5270199129546
20.9 67.07 1005.43 82.85 443.46 446.747552050482
20.92 70.02 1010.23 95.58 444.64 444.507199619309
20.94 44.78 1008.14 35.7 465.57 459.32651068324674
20.94 68.12 1012.43 78.2 446.41 447.6568115900023
20.95 44.89 1010.48 67.97 450.39 454.76275216738793
20.95 48.14 1013.3 67.72 452.38 454.21851332168194
20.95 70.72 1009.96 87.73 445.66 445.39798853968495
20.96 69.48 1011.04 82.63 444.31 446.51975987000213
20.98 60.1 1011.07 79.44 450.95 449.28757124138815
20.99 67.07 1005.17 82.41 442.02 446.61697690688106
21.01 58.96 1014.33 61.8 453.88 452.35263519535005
21.06 50.59 1016.42 66.12 454.15 453.88291464930387
21.06 62.91 1011.92 75.52 455.22 449.07372918845823
21.06 67.07 1004.9 84.09 446.44 446.2148995417356
21.08 44.05 1008.13 72.52 449.6 453.8663667211942
21.11 58.66 1011.7 68.71 457.89 451.01241377116
21.11 59.39 1013.87 85.29 446.02 448.5883814092371
21.13 51.43 1007.43 88.72 445.4 449.5097304398742
21.14 58.05 1012.98 87.27 449.74 448.503305348983
21.14 58.98 1009.05 94.36 448.31 446.91722060578974
21.16 45.38 1014.65 73.06 458.63 453.8324720669498
21.18 44.57 1007.27 73.67 449.93 453.3060649640138
21.18 60.1 1011.02 78.19 452.39 449.0800812223206
21.19 74.93 1015.75 80.84 443.29 445.3619054648025
21.26 50.32 1008.41 87.22 446.22 449.83432112958207
21.28 70.32 1011.06 90.12 439.0 444.60209183702807
21.32 45.01 1012.23 59.94 452.75 455.3330390953461
21.32 49.02 1008.81 85.81 445.65 450.2809554999446
21.33 58.46 1016.17 79.73 445.27 449.39422908092763
21.33 60.1 1010.97 78.36 451.95 448.7618842842812
21.33 63.86 1020.33 72.13 445.02 449.4952622600192
21.34 59.8 1016.92 77.06 450.74 449.4914112072881
21.36 58.95 1018.35 78.87 443.93 449.51712426113426
21.36 68.28 1007.6 72.37 445.91 447.26408438944804
21.38 44.05 1005.69 81.66 445.71 451.7557366468961
21.39 51.3 1013.39 89.05 452.7 449.4776919784881
21.39 63.9 1013.44 70.95 449.38 448.98079679330425
21.4 44.57 1005.7 73.09 445.09 452.8385186409049
21.4 68.28 1008.2 60.34 450.22 448.9907086576164
21.41 56.9 1007.03 79.41 441.41 448.93146897513117
21.42 43.79 1015.76 43.08 462.19 458.191223029991
21.44 51.19 1009.1 84.94 446.17 449.6590005617063
21.44 63.09 1016.56 90.11 444.19 446.5452373588345
21.45 45.09 1013.83 52.26 453.15 456.31295277561605
21.45 60.08 1017.92 72.7 451.49 449.9268730104552
21.45 66.05 1014.81 73.73 453.38 448.035018368965
21.46 46.63 1012.97 71.29 452.1 453.06361431502813
21.47 58.79 1017.0 76.97 446.33 449.51211271813503
21.49 56.9 1007.47 66.66 452.46 450.67294754488756
21.52 66.51 1015.32 72.85 444.87 447.9552056621949
21.53 52.84 1005.06 88.22 444.04 448.2666586698021
21.54 58.49 1010.85 78.9 449.12 448.6696822105525
21.54 69.48 1011.04 80.48 443.15 445.71467031907304
21.55 44.57 1006.03 71.54 446.84 452.8021698612505
21.55 60.27 1017.42 92.59 443.93 446.74436600081026
21.57 66.49 1014.76 68.19 455.18 448.49796091182594
21.58 63.87 1015.27 63.15 451.88 449.90863388073825
21.61 41.54 1014.5 75.62 458.47 453.53620348431406
21.61 49.39 1019.41 78.2 449.26 451.6024110197605
21.62 50.05 1007.2 92.9 444.16 448.28015134415506
21.65 58.18 1008.33 95.28 441.05 445.9401390971127
21.69 44.57 1005.84 71.53 447.88 452.51812264484727
21.71 65.27 1013.24 63.58 444.91 449.0808543549187
21.73 69.05 1001.31 86.64 439.01 443.7646779089382
21.75 59.8 1016.65 72.94 453.17 449.2796285666693

Now that we have real predictions we can use an evaluation metric such as Root Mean Squared Error to validate our regression model. The lower the Root Mean Squared Error, the better our model.

//Now let's compute some evaluation metrics against our test dataset

import org.apache.spark.mllib.evaluation.RegressionMetrics 

val metrics = new RegressionMetrics(predictionsAndLabels.select("Predicted_PE", "PE").rdd.map(r => (r(0).asInstanceOf[Double], r(1).asInstanceOf[Double])))
import org.apache.spark.mllib.evaluation.RegressionMetrics
metrics: org.apache.spark.mllib.evaluation.RegressionMetrics = org.apache.spark.mllib.evaluation.RegressionMetrics@225e9fbb
val rmse = metrics.rootMeanSquaredError
rmse: Double = 4.426730543741229
val explainedVariance = metrics.explainedVariance
explainedVariance: Double = 269.3177257387674
val r2 = metrics.r2
r2: Double = 0.9314313152952859
println (f"Root Mean Squared Error: $rmse")
println (f"Explained Variance: $explainedVariance")  
println (f"R2: $r2")
Root Mean Squared Error: 4.426730543741229
Explained Variance: 269.3177257387674
R2: 0.9314313152952859

Generally a good model will have 68% of predictions within 1 RMSE and 95% within 2 RMSE of the actual value. Let's calculate and see if our RMSE meets this criteria.

display(predictionsAndLabels) // recall the DataFrame predictionsAndLabels
// First we calculate the residual error and divide it by the RMSE from predictionsAndLabels DataFrame and make another DataFrame that is registered as a temporary table Power_Plant_RMSE_Evaluation
predictionsAndLabels.selectExpr("PE", "Predicted_PE", "PE - Predicted_PE AS Residual_Error", s""" (PE - Predicted_PE) / $rmse AS Within_RSME""").createOrReplaceTempView("Power_Plant_RMSE_Evaluation")
SELECT * from Power_Plant_RMSE_Evaluation
PE Predicted_PE Residual_Error Within_RSME
490.34 493.23742177145346 -2.8974217714534802 -0.6545286058917738
482.66 488.93663844862806 -6.276638448628034 -1.417894851879411
489.04 488.2642491377767 0.7757508622233331 0.17524239493640179
489.64 487.6850017397038 1.954998260296179 0.4416348004421164
489.0 487.84320058785806 1.156799412141936 0.26132139752158323
488.03 486.78756854756284 1.2424314524371312 0.28066570579809824
491.9 485.8682911927762 6.031708807223765 1.362565159009226
489.36 485.34119715268844 4.018802847311576 0.9078489886838934
481.47 482.9938172155268 -1.5238172155267762 -0.344230849488058
482.05 482.56483906211207 -0.5148390621120598 -0.11630232674540568
494.75 487.00024243767604 7.749757562323964 1.7506729821811777
482.98 483.34675257798034 -0.36675257798032135 -8.284953745351807e-2
475.34 482.83365300532864 -7.493653005328667 -1.6928188719152182
483.73 483.61453434986964 0.1154656501303748 2.6083731320314243e-2
488.42 484.5318759947065 3.8881240052934913 0.8783285919200003
495.35 487.26575386983336 8.084246130166662 1.8262340683005074
491.32 487.10787889447676 4.212121105523238 0.9515196517842229
486.46 482.0547750131382 4.405224986861754 0.9951418870728689
483.12 483.68809525895665 -0.5680952589566459 -0.12833292050266135
495.23 487.01940772826526 8.210592271734754 1.8547757064959307
479.91 480.1986449575326 -0.2886449575325969 -6.520499828947122e-2
492.12 484.355413676767 7.764586323233004 1.7540228045303168
491.38 483.7973981417882 7.582601858211774 1.7129124493318213
481.56 484.07023605498466 -2.5102360549846594 -0.5670632152060346
491.84 484.0557258406543 7.784274159345671 1.7584702936914771
484.64 483.0334383183447 1.6065616816553074 0.3629228537360962
490.07 483.99520022490054 6.07479977509945 1.372299423936783
478.02 480.0203474136323 -2.000347413632312 -0.4518791902661707
476.61 479.76022567105224 -3.150225671052226 -0.7116370964811038
487.09 483.77988944315933 3.310110556840641 0.7477551488921478
482.82 483.22173492804495 -0.40173492804495936 -9.075206274141889e-2
481.6 480.1171178824092 1.4828821175908047 0.33498359634457314
470.02 482.047812550469 -12.027812550469037 -2.7170871214365335
489.05 481.8132715930524 7.236728406947634 1.6347795140093504
487.03 484.63339497556956 2.3966050244304142 0.5413939250987108
490.57 482.2826790358652 8.287320964134778 1.8721087453248941
488.57 482.86050781997426 5.709492180025734 1.2897763086344047
480.39 483.17821215232357 -2.788212152323581 -0.6298581141934918
481.37 483.0829476732457 -1.7129476732457078 -0.3869554869716598
489.62 482.71830544679347 6.901694553206539 1.5590952476121591
481.13 481.3586268382406 -0.2286268382405865 -5.1646883852877044e-2
485.94 481.4164995749667 4.523500425033319 1.0218603505083248
482.49 482.30375285026366 0.18624714973634582 4.207329718762145e-2
483.77 483.6070229944064 0.16297700559357509 3.6816563371809816e-2
491.77 481.024916434396 10.745083565603977 2.427318188769363
483.43 482.20819442296613 1.2218055770338765 0.2760063132284699
481.49 482.69052441989805 -1.200524419898045 -0.2711988922830229
478.78 480.9741288614049 -2.19412886140492 -0.4956544880526121
492.96 485.85657176943226 7.103428230567715 1.6046669568833274
481.36 483.9924395950768 -2.6324395950767894 -0.5946690382586505
486.68 481.76650494734656 4.913495052653445 1.1099602752194693
484.94 483.0697247196729 1.870275280327121 0.42249584921572103
483.01 481.33834961288636 1.6716503871136297 0.3776264153862057
488.17 483.18839461041057 4.981605389589447 1.1253464244921645
490.41 480.167910698229 10.242089301771045 2.313691606156582
483.11 482.41490386834903 0.6950961316509847 0.1570224626917381
485.89 480.9406822010133 4.9493177989866695 1.1180526463225338
487.08 482.5086450499145 4.571354950085492 1.032670704691692
477.8 480.01746628251476 -2.2174662825147493 -0.5009264197591455
489.96 480.63940670946056 9.32059329053942 2.105525330363155
486.92 483.01084464877744 3.90915535122258 0.8830795804252357
486.37 482.5797273079528 3.7902726920472105 0.8562239455496382
488.2 483.515864024814 4.6841359751859954 1.0581479782655172
479.06 481.66343779511766 -2.6034377951176566 -0.5881175213608946
480.05 484.68450470880424 -4.634504708804229 -1.0469362575855816
487.18 482.82186089035656 4.358139109643446 0.9845051707078124
480.47 481.888024420669 -1.418024420668985 -0.32033221960479863
480.36 480.6306788292835 -0.2706788292834972 -6.1146443545383344e-2
487.85 479.89671820679814 7.9532817932018816 1.7966491781268903
486.11 479.69141160572326 6.418588394276753 1.449961394951344
481.83 481.1970697561752 0.6329302438247737 0.14297916658145085
482.96 482.17217802621497 0.7878219737850145 0.17796926331982943
483.92 481.3074409763506 2.6125590236493963 0.5901780101215298
477.69 479.6499231838063 -1.9599231838063247 -0.442747342409937
474.25 480.7071489556114 -6.4571489556113875 -1.4586722394343345
479.08 479.70246751967267 -0.6224675196726821 -0.1406156334843473
478.89 481.00544489343514 -2.1154448934351535 -0.4778797517789045
483.11 482.3890108435553 0.7209891564447162 0.162871706176942
488.43 481.25646633043834 7.173533669561664 1.620503800418579
483.28 480.33371483717843 2.946285162821539 0.6655668633337463
486.76 482.5311759738767 4.228824026123277 0.9552928474723261
476.58 480.6772110604413 -4.097211060441339 -0.9255614318414334
481.61 482.5325778309449 -0.9225778309448742 -0.20841065925037358
477.8 480.033051046645 -2.2330510466450164 -0.5044470235041152
475.32 479.33241321090156 -4.01241321090157 -0.9064055675524582
475.89 478.24994196854914 -2.359941968549151 -0.5331117277706852
485.03 480.335556547251 4.694443452748999 1.0604764411030796
482.46 479.7315598782726 2.728440121727374 0.6163555912805676
484.57 477.91894784424034 6.651052155759658 1.5024750411256238
483.94 483.4519151987013 0.4880848012987258 0.1102585297378917
482.39 482.344523193014 4.5476806985959684e-2 1.0273226828829113e-2
483.8 478.4576001166274 5.342399883372593 1.2068500286121981
482.22 478.7638216096876 3.4561783903124024 0.7807519242839278
481.52 479.1388800137486 2.381119986251406 0.5378958494815034
483.79 477.1846287648628 6.605371235137227 1.4921557049539163
480.54 476.81117998099046 3.728820019009561 0.8423417649130654
477.27 480.8442435906709 -3.5742435906709034 -0.8074228949228406
474.5 480.13649956917493 -5.63649956917493 -1.2732872519526048
475.52 479.22351270593606 -3.7035127059360775 -0.8366248339132186
481.44 478.9150538893924 2.524946110607573 0.5703862219889325
480.6 476.2108626985999 4.389137301400126 0.9915076732207578
487.19 481.02543213301226 6.164567866987738 1.3925780677352422
475.42 480.36098930984303 -4.940989309843019 -1.1161712376708537
476.22 478.5121049560687 -2.2921049560686697 -0.5177873225894406
485.13 479.57731721621764 5.552682783782359 1.2543530104024667
488.02 484.33140555054166 3.6885944494583214 0.8332547944833625
477.78 478.4450809561198 -0.665080956119823 -0.15024202389281485
477.2 480.5031526805201 -3.3031526805200997 -0.7461833621633669
467.56 479.216941083543 -11.656941083543018 -2.6333071255092055
485.18 477.61463487250904 7.5653651274909635 1.7090186657480926
483.52 478.33312476560263 5.186875234397348 1.1717169552438327
480.21 479.4778900760478 0.73210992395218 0.16538389150143323
478.81 481.48536176156256 -2.675361761562556 -0.6043651708923505
484.67 477.96751548079953 6.702484519200482 1.5140936302700527
477.9 479.6817134321856 -1.7817134321855974 -0.40248969630751263
475.17 477.50500673160894 -2.335006731608928 -0.5274788489013178
485.73 478.3204506384974 7.409549361502627 1.67381982894321
479.91 478.13995557721 1.770044422790022 0.39985366294603464
486.4 479.6503730840347 6.74962691596528 1.5247431144207089
480.15 477.13243295540536 3.017567044594614 0.6816694657100887
480.58 482.82343628916317 -2.243436289163185 -0.5067930534726327
484.07 478.169470130244 5.900529869755985 1.3329317905058622
481.89 480.64379114125165 1.2462088587483322 0.28151902322365097
483.14 478.8928744938183 4.247125506181703 0.9594271583090908
479.31 476.1246111330096 3.1853888669904222 0.7195804749159878
484.21 477.28823577085257 6.9217642291474135 1.563628994525951
476.02 478.3060058047933 -2.2860058047933194 -0.5164095221529597
480.69 478.2957350932858 2.39426490671417 0.5408652916765675
481.91 476.52270993698903 5.387290063010994 1.2169907361151358
485.06 478.99917896902593 6.060821030974068 1.3691416206805749
485.29 480.8674382556005 4.422561744399502 0.9990582667500236
482.39 481.121045370298 1.268954629701966 0.28665730095004055
478.25 478.83543896627515 -0.5854389662751487 -0.1322508701377536
475.79 476.292443939849 -0.5024439398490017 -0.1135022642296099
485.87 479.017884430858 6.852115569142029 1.5478953375262363
479.23 476.458241933477 2.7717580665230344 0.6261411303748561
478.61 480.1903466285652 -1.5803466285651666 -0.3570008639445094
479.94 479.44872675152214 0.49127324847785303 0.11097880108660418
479.25 479.3384367489257 -8.843674892568743e-2 -1.9977892950978116e-2
480.99 477.4418937681193 3.548106231880695 0.8015184563011668
481.07 476.335613607556 4.73438639244398 1.0694995653480046
480.4 482.3769169335783 -1.976916933578309 -0.44658623651114027
482.8 476.0442018293985 6.7557981706015084 1.5261372030319875
480.08 479.653352828527 0.42664717147300735 9.637974736823006e-2
475.0 478.669695167618 -3.669695167617988 -0.8289854400120238
483.88 476.69692642239215 7.183073577607843 1.6226588690300323
482.52 476.90393713153384 5.616062868466145 1.2686705940135579
478.45 479.2188844607779 -0.7688844607778833 -0.1736912724143504
482.3 475.8126128394661 6.487387160533899 1.4655030606518726
472.45 476.2100211409336 -3.7600211409335884 -0.8493901094227944
480.2 480.2141595165957 -1.4159516595725563e-2 -3.198639821379035e-3
478.38 474.9481764100604 3.4318235899395972 0.7752501662410219
472.77 479.3059821141381 -6.535982114138108 -1.476480677907776
483.53 476.37445774556215 7.155542254437819 1.6164395333605168
475.47 478.69800488773853 -3.228004887738507 -0.7292074491189552
467.24 476.41215657483457 -9.17215657483456 -2.0719934236346713
481.03 480.7338755379791 0.2961244620208845 6.689462100636837e-2
482.37 480.5113047501551 1.8586952498449136 0.41987991622233384
484.97 478.0206284049022 6.94937159509783 1.5698655082865296
479.53 475.49807173046975 4.031928269530226 0.910814026218696
482.8 476.4769333498684 6.323066650131636 1.4283829990672368
477.26 480.56589740371004 -3.3058974037100484 -0.7468033961055344
479.02 478.9378167534155 8.218324658446363e-2 1.856522455396774e-2
476.69 479.48396988958547 -2.793969889585469 -0.6311587890832315
476.62 476.72728884411396 -0.10728884411395256 -2.4236587940877453e-2
475.69 475.128341196902 0.5616588030979983 0.126878922841171
482.95 477.4310812891916 5.518918710808407 1.2467256943414768
483.24 479.02016340856596 4.219836591434046 0.9532625827881703
484.86 476.63324412260977 8.226755877390246 1.858427070746765
491.97 478.33373080005674 13.636269199943285 3.080438049075077
474.88 478.3928356085176 -3.512835608517605 -0.7935508099728947
475.64 477.10087603877054 -1.4608760387705502 -0.3300124153334841
484.96 478.1639636289798 6.796036371020193 1.5352270267791266
475.42 478.9677202117326 -3.54772021173261 -0.8014312542127925
480.38 475.6006326388749 4.779367361125082 1.0796607821278916
478.82 474.9766634864784 3.8433365135215922 0.8682110816425288
482.55 478.78607750598024 3.7639224940197664 0.8502714264687785
480.14 478.936561588862 1.203438411137995 0.27185716393772524
482.55 476.17230944382703 6.377690556172979 1.4407225588171686
477.91 478.2490255806105 -0.33902558061049604 -7.658599891286139e-2
476.25 474.4577268339341 1.792273166065911 0.40487514393663104
471.13 478.4377754427823 -7.307775442782315 -1.6508290646049095
482.16 478.00197412694797 4.158025873052054 0.9392995195813114
480.87 479.3152324207473 1.5547675792527116 0.3512225476318935
477.34 477.2801935898291 5.980641017089283e-2 1.3510289271040145e-2
483.66 478.2850316568694 5.374968343130604 1.2142072552236207
481.95 475.9420528274343 6.007947172565707 1.3571973973116784
479.68 476.171982140594 3.5080178594059817 0.7924624787397152
478.66 474.3450313497953 4.314968650204719 0.9747529486079686
478.8 479.7691576930095 -0.9691576930094925 -0.21893306661272718
481.12 475.8267885776992 5.293211422300828 1.1957383378088555
476.54 478.0366119605893 -1.4966119605892914 -0.33808517274793
478.03 477.46151999839276 0.5684800016072131 0.12841983400389334
479.23 479.1109121135172 0.11908788648281643 2.6901995797144206e-2
480.74 477.7248132633824 3.015186736617636 0.6811317532937902
478.88 479.5430352943536 -0.6630352943536195 -0.1497799081742298
481.05 479.7126835818631 1.3373164181369361 0.30210025320554296
473.54 473.2606881642323 0.27931183576771446 6.309664277231011e-2
469.73 476.0517595807651 -6.321759580765104 -1.4280877316337173
475.51 476.88388448180007 -1.3738844818000757 -0.3103609917578006
476.67 475.61433131158884 1.0556686884111741 0.23847593115956434
472.16 477.71300668632784 -5.553006686327819 -1.254426180102375
481.85 475.26738125651104 6.582618743488979 1.4870159090202295
479.45 479.3846135509578 6.538644904219382e-2 1.477082203131632e-2
482.38 475.5344685772045 6.845531422795489 1.546407976531145
469.58 473.85672752722843 -4.276727527228445 -0.9661142653634369
477.93 477.38261350304344 0.5473864969565625 0.12365480382140936
478.21 477.2300569616712 0.9799430383287699 0.22136947994593228
477.62 479.26549518227034 -1.6454951822703379 -0.37171794533481045
472.46 472.77738085732864 -0.31738085732865784 -7.169644824607395e-2
467.37 473.28874249013086 -5.918742490130853 -1.3370460279085923
473.2 475.32128019247386 -2.1212801924738756 -0.4791979479015423
480.05 476.8370208052357 3.21297919476433 0.7258131397464497
469.65 473.90133694044016 -4.251336940440183 -0.9603785228018842
485.23 477.4312500724955 7.7987499275045025 1.7617403748531366
477.88 474.53026960482464 3.3497303951753565 0.7567052844251841
475.21 475.5632280329809 -0.3532280329808941 -7.979433794096832e-2
475.91 476.45899184844643 -0.5489918484464056 -0.12401745329238582
477.85 475.1645128846792 2.685487115320825 0.6066524918978238
464.86 472.950567432704 -8.090567432704006 -1.8276620527858702
466.05 473.0969147577929 -7.046914757792877 -1.5919005433380664
463.16 472.9327435276111 -9.772743527611055 -2.207666229296096
475.75 478.45612153617066 -2.706121536170656 -0.6113138148868648
471.6 474.6981382928805 -3.098138292880492 -0.6998705392766273
470.82 475.02803269176593 -4.208032691765936 -0.9505960776662812
479.63 475.85397168574394 3.7760283142560525 0.8530061355541106
477.68 479.1805376742791 -1.5005376742790872 -0.3389719928629122
478.73 473.56546210095377 5.164537899046252 1.166670943264929
473.66 477.1725989266339 -3.5125989266338706 -0.7934973434514077
474.28 475.0636358283222 -0.7836358283222467 -0.17702361157495725
468.19 473.5875494551514 -5.39754945515142 -1.219308336438682
463.57 472.67682233352457 -9.106822333524576 -2.0572343953485794
475.46 476.92356417785004 -1.4635641778500599 -0.3306196669050328
473.05 471.6877231007335 1.3622768992665328 0.30773883474624397
474.92 475.94743429051795 -1.027434290517931 -0.23209777066069173
481.31 474.9322788912158 6.377721108784215 1.4407294606628838
473.43 474.55112952359076 -1.1211295235907528 -0.2532635570457008
477.27 477.4663665421075 -0.19636654210751203 -4.435927151363359e-2
476.91 473.86509374821264 3.0449062517873813 0.6878454023121982
468.27 473.1709885161772 -4.900988516177222 -1.1071350441934005
480.11 474.8258713039421 5.2841286960579055 1.1936865467289208
471.79 473.12117303724983 -1.3311730372498118 -0.3007124612840739
480.87 474.6297415713401 6.240258428659899 1.4096765924645542
477.53 474.8010725987133 2.7289274012866827 0.6164656679058543
476.03 471.6665106288925 4.363489371107448 0.9857137966702774
479.28 474.52503372536427 4.754966274635706 1.0741485680348346
470.76 473.3969220129811 -2.636922012981131 -0.5956816180531624
477.65 475.74847822607217 1.9015217739278114 0.42955444320330144
474.16 472.3991408528027 1.7608591471973227 0.39777870593161097
476.31 477.2616855096004 -0.9516855096003951 -0.2149860941831989
479.17 474.91770513370466 4.252294866295358 0.9605949185923461
473.16 477.42289023883336 -4.262890238833336 -0.962988417006872
478.03 473.500462025312 4.529537974687969 1.0232242351168392
470.66 473.24796901874254 -2.5879690187425126 -0.5846231192909482
479.14 473.0905849348082 6.049415065191795 1.3665650089646437
480.04 472.3076103285207 7.732389671479325 1.7467495694789534
472.54 471.6158321510643 0.9241678489357241 0.20876984487848865
479.24 473.69713759779097 5.542862402209039 1.2521345827217476
474.42 472.19156900447024 2.228430995529777 0.5034033523184427
477.41 476.3350912306922 1.0749087693077968 0.2428222722586008
472.16 475.7743537662549 -3.614353766254851 -0.816483797814402
476.55 472.6471168581112 3.9028831418888217 0.8816626861119764
474.24 472.6289552744016 1.61104472559839 0.3639355749529818
474.91 472.56580879643343 2.344191203566595 0.5295536243743026
474.94 477.2343522450388 -2.2943522450387945 -0.5182949859649091
478.47 473.38659302581175 5.083406974188279 1.1483434385622358
481.3 473.3858358704542 7.9141641295458385 1.7878124840318883
477.19 472.2522916899102 4.937708310089818 1.1154300586628294
479.61 471.9871102146375 7.622889785362531 1.7220135063653736
474.03 476.6632591260645 -2.6332591260645017 -0.5948541705994637
484.94 473.0585846959981 11.881415304001905 2.6840159315322563
478.76 472.54092404509436 6.219075954905634 1.4048914641300063
477.23 472.5905086170786 4.639491382921392 1.0480627490374306
477.93 473.2433331311531 4.686666868846885 1.0587197080412245
483.54 473.33367076102707 10.206329238972955 2.305613395286339
470.66 472.2586067915216 -1.5986067915215472 -0.36112584123326663
468.57 472.6833243896903 -4.1133243896903195 -0.9292014386342035
475.46 469.2649153602577 6.1950846397422765 1.3994718175248435
467.6 476.7704524928655 -9.17045249286548 -2.0716084709134153
479.16 472.29869321009727 6.8613067899027556 1.549971637556226
473.72 475.92801307429187 -2.2080130742918413 -0.49879093666852153
470.9 474.17032118629646 -3.270321186296485 -0.7387667159728655
479.2 473.8182300033423 5.381769996657681 1.2157437511679456
476.32 474.48343187958693 1.8365681204130624 0.4148813898351482
477.34 473.7501803957154 3.589819604284571 0.8109415219230067
472.34 471.57861538146386 0.7613846185361126 0.1719970553917276
473.29 471.6415723647882 1.6484276352118172 0.3723803874944367
477.3 472.77018851731134 4.529811482688672 1.0232860206712118
472.11 471.7714368874517 0.33856311254828597 7.648152721356992e-2
468.09 474.56364117639623 -6.4736411763962565 -1.462397837959455
477.62 472.71482842742716 4.90517157257284 1.108079998116908
468.84 472.4884135100401 -3.648413510040143 -0.8241779060165485
477.2 474.25793943550735 2.9420605644926354 0.6646125250727748
473.16 475.5315818680211 -2.371581868021053 -0.53574118519008
467.46 472.33524056547066 -4.875240565470676 -1.10131857299595
476.24 471.7121476384467 4.5278523615533 1.0228434545118277
462.07 471.87019509945424 -9.800195099454243 -2.213867549112591
478.3 473.3904021135141 4.909597886485926 1.1090799039998953
474.64 472.29889800972325 2.3411019902767407 0.5288557699963753
476.18 473.74084346680155 2.4391565331984566 0.5510063260225041
472.02 474.75489479763837 -2.7348947976383897 -0.6178137048583506
468.75 475.57737397289577 -6.827373972895771 -1.5423062021583203
476.87 476.24038222415226 0.6296177758477484 0.14223087889050282
472.27 469.24091010472654 3.0290898952734437 0.6842724817656111
476.7 472.7393314749404 3.9606685250595888 0.8947164246668264
473.93 472.63331852543587 1.2966814745641386 0.29292080503916434
476.04 471.3877571195438 4.652242880456242 1.0509433168535312
471.92 475.2099855538808 -3.289985553880797 -0.7432089035851462
469.9 471.8496328972687 -1.9496328972687138 -0.4404227630311086
467.19 474.9342554366792 -7.744255436679225 -1.749430050046418
464.07 472.07659673556776 -8.006596735567769 -1.808693042518245
472.45 477.14283533329444 -4.692835333294454 -1.060113166347895
475.51 470.4781347032422 5.031865296757815 1.1367001553487732
476.91 473.32755876405156 3.5824412359484654 0.8092747458987606
469.04 472.1000066981285 -3.0600066981284613 -0.6912565984968021
474.49 471.88884153658876 2.6011584634112523 0.587602619519935
474.29 471.6865589330199 2.6034410669801105 0.5881182604757834
465.61 472.6232718336548 -7.013271833654812 -1.5843005948420752
477.71 472.2836129719496 5.426387028050385 1.2258227543852944
460.6 470.4334505230218 -9.833450523021781 -2.2213799610922536
474.72 471.9112964053814 2.8087035946186347 0.6344871382762939
476.89 474.30545019143153 2.584549808568454 0.5838507184998287
471.56 474.67947860914313 -3.1194786091431297 -0.7046913242898037
473.54 475.18749689836216 -1.6474968983621352 -0.37217013370995955
467.96 469.77145732692486 -1.8114573269248808 -0.40920885267932683
475.13 472.0849073512217 3.0450926487782795 0.6878875094585574
470.88 473.80322256281073 -2.923222562810736 -0.6603570138109623
474.22 472.095881821932 2.124118178068045 0.4798390498539035
476.41 471.4926212025483 4.917378797451704 1.1108376145469667
465.45 471.19014476340374 -5.740144763403748 -1.2967007380920217
478.51 471.43677609572285 7.0732239042771425 1.597843788860761
464.43 469.74360467126985 -5.313604671269843 -1.200345179984476
475.19 471.726841712236 3.4631582877639744 0.7823286855940194
476.12 474.3311768410229 1.7888231589770953 0.4040957861115442
466.52 470.11266519044386 -3.5926651904438813 -0.8115843408457291
466.75 469.0361408145495 -2.286140814549526 -0.5164400209047749
476.97 474.02676004123447 2.9432399587655595 0.6648789506573615
476.73 470.9633331252543 5.766666874745738 1.3026920924516152
473.82 471.1277546061928 2.692245393807184 0.6081791894050652
478.29 473.9108447766557 4.3791552233442985 0.9892527182472863
473.79 470.24389582880195 3.546104171198067 0.8010661900828269
477.75 471.7153938676628 6.034606132337217 1.3632196657800408
470.33 474.5591424673956 -4.229142467395604 -0.9553647834686965
474.57 469.80095187612244 4.769048123877553 1.077329662773424
464.57 470.2642322610154 -5.694232261015429 -1.2863290875172577
469.34 471.3638012594583 -2.0238012594583097 -0.45717742235738257
465.82 471.92094622344666 -6.10094622344667 -1.3782059158926094
477.74 471.8558058768037 5.884194123196323 1.3292415395637174
474.28 470.3010756285351 3.9789243714648705 0.8988404268451593
464.14 466.34356012780336 -2.203560127803371 -0.4977850144773084
454.18 466.58075506687595 -12.400755066875945 -2.8013349681761994
467.21 469.33960229950543 -2.12960229950545 -0.48107791483184054
470.36 471.7275614063617 -1.3675614063616877 -0.3089326067734631
476.84 470.57863445021957 6.2613655497804075 1.4144446986124088
474.35 470.6068799512955 3.7431200487044975 0.8455721466933965
477.61 472.52356631529506 5.086433684704957 1.149027173541533
478.1 471.9097423001989 6.190257699801123 1.3983814100800132
462.1 471.2847044384872 -9.184704438487188 -2.0748279904845486
474.82 471.2662319288032 3.553768071196771 0.8027974678109325
463.03 469.73593028388507 -6.705930283885095 -1.5148720297345255
472.68 470.7066911497908 1.9733088502092073 0.44577116919826687
474.91 471.3317718037191 3.578228196280918 0.8083230187434893
468.91 470.5269251596348 -1.616925159634775 -0.3652639670876011
464.45 470.20921701183426 -5.7592170118342665 -1.3010091657774348
466.83 466.283253383728 0.5467466162720029 0.1235102545478006
475.24 470.1859434968623 5.054056503137701 1.1417131567412484
473.84 475.4613835085187 -1.6213835085187043 -0.3662711096818647
475.13 474.59940353258173 0.5305964674182633 0.11986193019325553
476.42 472.0863918606848 4.333608139315231 0.9789636158094918
474.46 470.7913069417128 3.6686930582872037 0.8287590631587497
468.13 467.5640782641256 0.5659217358743831 0.12784192086742582
470.27 471.5687225135002 -1.298722513500195 -0.2933818764587795
471.6 469.9595844589466 1.6404155410534145 0.37057045258215005
472.49 471.6990473850648 0.7909526149352359 0.1786764762661082
479.32 473.0943993730856 6.2256006269143995 1.4063653898510986
471.65 470.0014068012306 1.6485931987693903 0.3724177883608181
474.71 472.62554215898064 2.0844578410193435 0.47087976564701284
467.2 468.5105758445902 -1.3105758445902325 -0.29605954815641566
468.37 466.9976240128761 1.3723759871239167 0.31002022227539067
464.4 467.75156303440326 -3.3515630344032843 -0.7571192782768132
467.47 468.1754530950858 -0.7054530950857725 -0.15936210440528922
468.43 466.2393815815779 2.1906184184221047 0.494861477737634
466.05 470.0991015601047 -4.0491015601047025 -0.9146934786508656
471.1 470.4126440262426 0.6873559737574055 0.1552739582781314
468.01 470.10813793557554 -2.0981379355755507 -0.47397010385961286
477.41 473.0481764257403 4.361823574259745 0.9853374925715203
469.56 470.78228922773883 -1.2222892277388269 -0.2761155700942699
467.18 467.7057590529845 -0.5257590529844833 -0.1187691565568255
461.35 469.82262135976373 -8.472621359763707 -1.9139681704238347
474.4 474.37807432859705 2.1925671402925673e-2 4.953016946993865e-3
473.26 468.3049320923233 4.955067907676664 1.119351597915177
470.04 469.55683536649303 0.4831646335069877 0.10914706208854617
472.31 471.00250996619167 1.3074900338083353 0.29536246240624275
467.19 469.9361134525989 -2.746113452598877 -0.6203480029932007
476.2 469.7928661275298 6.407133872470183 1.4473738144123014
461.88 469.1737219130262 -7.293721913026218 -1.647654367248196
471.24 474.28849061231415 -3.04849061231414 -0.6886551106265717
473.02 468.0625826724588 4.9574173275411795 1.119882332695914
471.32 473.48514686066005 -2.165146860660059 -0.489107443804383
474.23 472.6140402906572 1.6159597093428033 0.3650458715241979
466.85 469.90391551417036 -3.053915514170342 -0.6898805978801096
465.78 470.2469481759373 -4.466948175937318 -1.0090851773783591
473.46 467.6324473479292 5.8275526520707785 1.3164462111456308
466.64 470.94254421143154 -4.302544211431552 -0.9719462634821406
466.2 471.4942842031327 -5.29428420313269 -1.1959806793792904
467.28 468.30907898088304 -1.029078980883071 -0.23246930679755132
475.73 468.8757392252607 6.854260774739316 1.5483799402315714
470.89 474.2377547754183 -3.3477547754183092 -0.7562589912213115
466.09 465.69130458295416 0.3986954170458148 9.006543612859241e-2
475.61 472.81803434170047 2.791965658299546 0.6307060325248371
465.75 466.9269506815472 -1.1769506815472255 -0.2658735764279277
474.81 469.0391508364551 5.770849163544881 1.3036368729748065
474.26 468.12380368536253 6.136196314637459 1.386168923995876
471.48 471.9340237695596 -0.45402376955956925 -0.10256413058651032
475.77 467.8576907607767 7.912309239223305 1.7873934636500952
470.31 468.5394722259148 1.7705277740852239 0.3999628521750663
469.12 473.3820295069999 -4.262029506999909 -0.9627939773803977
475.13 469.7647231785763 5.36527682142372 1.2120179370324364
467.41 468.04615604018517 -0.636156040185142 -0.1437078751234535
469.83 469.00047164404356 0.8295283559564268 0.1873907498456762
474.46 474.06674201992485 0.39325798007513413 8.88371171882475e-2
472.18 467.1383058280765 5.041694171923496 1.1389205017350195
468.46 468.52920326163013 -6.920326163015034e-2 -1.5633041348765617e-2
475.03 468.1969526319267 6.833047368073267 1.5435878241412795
473.49 469.41250494615895 4.077495053841062 0.9211075789571298
469.02 468.25937427156714 0.7606257284328422 0.1718256218482192
468.9 473.50603668317 -4.606036683170032 -1.0405053204971595
471.19 468.4742214263607 2.715778573639284 0.6134953430763954
474.13 470.0383017109995 4.091698289000476 0.9243160948175531
472.01 468.0562294553364 3.9537705446635982 0.8931581684486467
475.89 472.7669442736334 3.1230557263666014 0.7054993963393956
471.0 466.0557279256281 4.944272074371895 1.1169128153423291
472.37 466.7407287783567 5.629271221643307 1.2716543656813042
466.08 464.7921473620272 1.287852637972776 0.29092636772157215
471.61 470.21248865654456 1.3975113434554487 0.3156983081862374
471.44 472.8484021647698 -1.408402164769825 -0.3181585485841478
462.3 470.2485412085585 -7.948541208558481 -1.7955782783744527
461.49 470.26460015531467 -8.774600155314658 -1.9821852874511872
464.7 465.5107675088055 -0.8107675088054975 -0.18315266781977688
467.68 466.3776971038667 1.3023028961333125 0.29419068616556854
472.41 466.5610830112792 5.848916988720816 1.3212724223728407
468.58 470.9265999279328 -2.3465999279328003 -0.530097756063007
472.22 468.9876557902937 3.232344209706355 0.7301877034906569
469.18 467.59953010733625 1.580469892663757 0.357028709348103
473.88 474.4459916698643 -0.5659916698643315 -0.12785771898056086
461.12 467.5690713933046 -6.449071393304621 -1.4568475152441107
472.4 467.17680485054154 5.223195149458434 1.1799216369388674
458.49 470.1275872590886 -11.637587259088605 -2.628935089700119
475.36 469.2980914389406 6.061908561059397 1.3693872941125993
473.0 469.167238069639 3.8327619303610163 0.8658222795557321
461.44 470.1249314556375 -8.684931455637525 -1.9619290963884823
463.9 471.8102876158123 -7.910287615812308 -1.7869367782044778
461.06 471.4247999233475 -10.364799923347505 -2.341411979096371
466.46 469.5896988846236 -3.129698884623622 -0.707000088145996
472.46 467.61330541009727 4.846694589902711 1.0948700269898406
471.73 466.56182696263323 5.168173037366785 1.1674921223009271
471.05 469.1422671962815 1.9077328037184884 0.4309575170360782
467.21 469.69281643752464 -2.4828164375246615 -0.5608691138960362
472.59 468.51537272186124 4.074627278138735 0.9204597474087691
466.33 464.30951140859736 2.020488591402625 0.4564290894685944
472.04 466.16900295184536 5.870997048154663 1.3262603156307815
472.17 469.2063750462153 2.963624953784688 0.669483928262775
466.51 472.79218089209525 -6.282180892095255 -1.4191468918245702
460.8 469.8764663630881 -9.076466363088116 -2.050376970859669
463.97 470.8734693970194 -6.903469397019364 -1.5594961854590164
464.56 468.2319508045609 -3.671950804560879 -0.8294949891975011
469.12 472.4449714286493 -3.3249714286492917 -0.7511122251048985
471.26 467.1630433917511 4.096956608248888 0.9255039510009041
466.06 469.31300214374124 -3.2530021437412415 -0.7348543381165421
470.66 470.03995588291366 0.6200441170863655 0.14006818598051338
463.65 464.0442884425782 -0.3942884425782154 -8.906989903320035e-2
470.35 467.7114787859118 2.6385212140882004 0.5960428781504888
465.92 470.4612645139354 -4.541264513935403 -1.025873264492258
466.67 467.5120353140818 -0.8420353140817838 -0.19021607612243366
471.38 469.40462020200255 1.975379797997448 0.44623899703819914
468.45 470.4032638964206 -1.9532638964205944 -0.44124300702744
467.22 469.663531445212 -2.4435314452119883 -0.5519946201981497
462.88 465.52654943877917 -2.646549438779175 -0.5978564569558049
473.56 467.6786715108731 5.881328489126929 1.328594191810996
469.81 465.64964430714963 4.1603556928503735 0.9398258267001429
468.66 467.86078237900523 0.7992176209947957 0.18054354406657444
468.35 467.2642672326089 1.0857327673911072 0.2452674172649112
469.94 467.09839147806196 2.841608521938042 0.6419203730291817
463.49 467.72367995173977 -4.233679951739759 -0.9563898027914945
465.48 467.50497110984463 -2.024971109844614 -0.45744169197459666
464.14 466.3135306312695 -2.1735306312695 -0.49100134055879346
471.16 467.46352561567244 3.696474384327587 0.8350348745653559
472.67 467.6987016384155 4.971298361584502 1.123018063209927
468.88 470.13332337428767 -1.2533233742876746 -0.2831261948075192
464.79 466.32771593378936 -1.5377159337893431 -0.3473705748734709
461.18 461.37564919433316 -0.19564919433315708 -4.419722239696233e-2
468.82 467.0362704395636 1.7837295604363703 0.4029451403944863
461.96 465.67304883933747 -3.713048839337489 -0.8387790498310802
462.81 466.2063693616964 -3.3963693616963724 -0.7672410435052024
465.62 471.8419294419794 -6.221929441979398 -1.4055360678721063
464.79 467.0254238326554 -2.2354238326553855 -0.5049830367054888
465.39 467.36024219232945 -1.970242192329465 -0.4450784100954843
465.51 470.3636999560957 -4.8536999560956815 -1.0964525416976478
465.25 466.3425067004856 -1.0925067004856146 -0.24679765115368602
469.75 466.9286675356798 2.8213324643202213 0.6373400044213638
468.64 466.5450197688432 2.0949802311567964 0.4732567773113731
456.71 469.5289092761888 -12.818909276188833 -2.89579615237999
468.87 464.1737178909659 4.696282109034087 1.0608917942100555
463.77 466.22172115408887 -2.4517211540888866 -0.5538446783383447
464.16 468.91409473616267 -4.754094736162642 -1.0739516871846333
472.42 469.50273867747853 2.917261322521483 0.6590103675151582
466.12 465.23969191883606 0.8803080811639461 0.19886190778170973
465.89 469.29150006815894 -3.4015000681589527 -0.7684000719149696
463.3 467.52338927383 -4.22338927382998 -0.9540651350015544
472.32 468.63392036548817 3.6860796345118274 0.8326866968949403
472.88 468.23518412428905 4.644815875710947 1.0492655538471976
472.52 467.40072495010867 5.119275049891314 1.156446049586019
466.2 470.2308690130385 -4.030869013038512 -0.9105747398014976
464.32 470.06934793478155 -5.749347934781554 -1.2987797377706485
471.52 468.2061275247934 3.313872475206608 0.7486049675853786
471.05 466.56749595165775 4.482504048342264 1.0125992544723308
465.0 467.4457105564229 -2.4457105564229096 -0.5524868821936313
468.51 468.32922832919263 0.1807716708073599 4.083638455540184e-2
466.2 466.5289202956749 -0.3289202956748909 -7.430321146154642e-2
466.67 464.9798468816765 1.690153118323508 0.38180618892946744
458.19 469.62052738975177 -11.430527389751774 -2.582160191772441
466.75 466.92345671991075 -0.17345671991074596 -3.918393455323122e-2
467.83 471.00023827347206 -3.17023827347208 -0.716157950466253
463.54 468.4888161194534 -4.948816119453397 -1.117939316738021
467.21 466.12663038326 1.083369616739958 0.24473358069460302
468.92 467.2570455453141 1.6629544546859165 0.3756620011663233
466.17 469.9193063400896 -3.7493063400895608 -0.8469696321115704
473.56 469.3386400018569 4.2213599981431 0.9536067209041007
462.54 462.5353944778759 4.605522124109029e-3 1.040389081422764e-3
460.42 469.0357845125855 -8.615784512585492 -1.9463087774264898
463.1 465.4074674853432 -2.3074674853431816 -0.5212577234016681
469.35 469.2340241993211 0.11597580067893887 2.6198974510186136e-2
464.5 465.48772540492905 -0.9877254049290514 -0.22312751932135455
467.01 468.6698381136837 -1.6598381136836906 -0.374958018628549
470.13 466.5182432985402 3.6117567014597967 0.8158971199560158
467.25 464.8033579382148 2.4466420617852123 0.552697309585382
464.6 469.03001445387565 -4.4300144538756285 -1.0007418364641694
464.56 468.0542535304752 -3.4942535304751914 -0.7893531119520188
470.44 466.240785806817 4.199214193183025 0.948603975708465
464.23 466.6802013632756 -2.450201363275596 -0.55350135705455
470.8 468.07562484757386 2.7243751524261484 0.6154373132735693
470.19 468.46200832885285 1.7279916711471515 0.3903539314337276
465.45 465.3553979968291 9.460200317090539e-2 2.1370626071799025e-2
465.14 465.3430114466154 -0.20301144661539183 -4.586035779892257e-2
457.21 465.437343556244 -8.227343556244023 -1.8585598276082838
462.69 470.28998511120346 -7.599985111203466 -1.716839332348514
460.66 465.70598887904623 -5.045988879046206 -1.1398906775973796
462.64 464.77518062953527 -2.1351806295352844 -0.48233806156422326
475.98 471.7241650123051 4.255834987694925 0.9613946332721954
469.61 470.86762962520106 -1.257629625201048 -0.2840989784162848
464.95 470.00850681775063 -5.05850681775064 -1.1427184843908453
467.18 465.0909665721057 2.0890334278943214 0.47191339234503876
463.6 467.14100725665423 -3.5410072566542112 -0.7999147952794856
462.77 465.78420347562667 -3.0142034756266867 -0.6809096342871703
464.93 467.4988198701669 -2.5688198701669194 -0.5802973198354862
465.49 466.1860805278475 -0.6960805278474709 -0.15724483814169135
465.82 465.9570356485108 -0.1370356485107891 -3.095640160536496e-2
461.52 465.6600911572585 -4.140091157258496 -0.9352480609220725
460.54 461.726652495707 -1.1866524957069942 -0.2680652196878694
460.54 466.6642858393177 -6.124285839317679 -1.383478343396472
463.22 462.1388114830884 1.0811885169116522 0.24424086946974893
467.32 467.1954080636739 0.12459193632611232 2.8145362609040592e-2
467.66 467.5703857042853 8.9614295714739e-2 2.024390118830272e-2
470.71 466.87798937642987 3.8320106235701132 0.8656525590851772
466.34 468.28371557585695 -1.9437155758569702 -0.43908603802531176
464.0 465.49312878229995 -1.493128782299948 -0.337298321536878
454.16 460.92029479400514 -6.7602947940051195 -1.5271529918538231
460.19 464.15206661902306 -3.9620666190230622 -0.8950322545890813
467.71 465.52584173595307 2.184158264046914 0.4934021265728507
465.01 464.2815636085029 0.7284363914970982 0.16455403921682205
462.87 464.163521673255 -1.2935216732549861 -0.29220700480263995
466.73 466.3736543730507 0.3563456269492917 8.049860352424523e-2
469.34 467.08552274770585 2.254477252294123 0.5092872109601599
458.99 465.2537787213567 -6.263778721356687 -1.4149898349274463
465.72 464.5690050827307 1.1509949172693155 0.26001016007099403
465.63 461.8753395968221 3.7546604031779225 0.8481791168623266
471.24 464.41497356388027 6.825026436119742 1.5417758927679401
456.41 468.53176347876706 -12.121763478767036 -2.7383106694636057
460.51 466.424150275801 -5.914150275801035 -1.33600864506262
467.77 466.67192135558764 1.0980786444123396 0.24805635526311118
456.63 464.6078674511597 -7.977867451159682 -1.8022030869801322
468.02 467.5449609547658 0.47503904523415486 0.10731148881555325
463.93 466.2641999137003 -2.3341999137002745 -0.5272965884495733
463.12 465.4344155000201 -2.314415500020118 -0.5228272823816608
460.06 467.4928608009518 -7.432860800951801 -1.6790858913833857
461.6 466.4167549834592 -4.816754983459191 -1.08810665927462
463.27 466.6130277518322 -3.34302775183221 -0.7551911549165283
467.82 462.9909863601291 4.82901363987088 1.090875894106187
462.59 464.3870766666373 -1.797076666637338 -0.4059602564195262
460.15 465.98237767298184 -5.832377672981863 -1.3175361850808878
463.1 464.59341737321824 -1.4934173732182217 -0.33736351432767975
461.6 464.9855482511961 -3.3855482511960986 -0.7647965508049243
462.64 466.60937185484113 -3.9693718548411425 -0.8966825099515653
460.56 459.95844344813366 0.6015565518663379 0.1358918384397383
459.85 461.8730218752433 -2.0230218752432734 -0.457001359186757
465.99 465.2019993258048 0.7880006741951888 0.17800963180587315
464.49 465.0319060514448 -0.541906051444812 -0.12241676923638158
468.62 464.51031407803055 4.109685921969458 0.9283795074854901
458.26 464.7510595901325 -6.491059590132522 -1.4663326638008185
466.5 462.10563966655445 4.394360333445547 0.9926875580124369
459.31 463.5242044902383 -4.214204490238274 -0.9519902891303296
459.77 465.12795484714235 -5.357954847142366 -1.2103639004451618
457.1 458.3979411875371 -1.2979411875371056 -0.29320537464658
469.18 464.49240158563896 4.687598414361048 1.0589301445032948
472.28 463.4938095964465 8.786190403553462 1.984803528639414
459.15 464.7409202420205 -5.590920242020502 -1.2629908657813547
466.63 468.6970662849413 -2.0670662849412906 -0.4669510069601661
462.69 464.01147313398917 -1.3214731339891728 -0.29852124969692334
468.53 466.5254088553394 2.004591144660594 0.45283785061071824
453.99 463.6262300043795 -9.636230004379513 -2.1768277759765113
471.97 469.1866406031888 2.7833593968112496 0.6287618750019754
457.74 458.7253721171194 -0.9853721171193683 -0.22259591077043195
466.83 462.85471321992077 3.975286780079216 0.8980186936608802
466.2 469.16650047432114 -2.966500474321151 -0.6701335093719141
465.14 464.9029898412732 0.23701015872677544 5.354067892428517e-2
457.36 466.28526560326617 -8.925265603266155 -2.0162206655847212
439.21 465.3963354604996 -26.186335460499606 -5.915502468864608
462.59 462.3133964499922 0.2766035500077919 6.248484005851005e-2
457.3 457.584678990398 -0.2846789903979925 -6.43090849070288e-2
463.57 462.4644015518939 1.1055984481060932 0.24975508158481727
462.09 461.643667310181 0.44633268981897345 0.10082671294507066
465.41 465.1358649951472 0.2741350048528375 6.1927194832408675e-2
464.17 468.07771227809314 -3.907712278093129 -0.8827535896934322
464.59 463.94240853336305 0.6475914666369249 0.14629114201507648
464.38 462.7655254272994 1.6144745727006011 0.36471037862994393
464.95 464.35125328406644 0.5987467159335438 0.1352570955058665
455.15 458.1774466179175 -3.0274466179175192 -0.6839012648280345
456.91 458.3632117908802 -1.4532117908801752 -0.3282810590165266
456.21 467.47546424100267 -11.26546424100269 -2.544872367921843
467.3 462.93565136830154 4.364348631698476 0.9859079039425718
464.72 460.79339608207175 3.9266039179282757 0.8870212178330886
462.58 466.71318747004926 -4.133187470049279 -0.9336885155327608
466.6 469.2173130099907 -2.617313009990653 -0.5912519373222668
459.42 464.7204827320649 -5.300482732064893 -1.1973809292637037
464.14 464.3355958479068 -0.19559584790681583 -4.418517142032977e-2
460.45 465.088060844667 -4.638060844666995 -1.047739589938348
468.91 465.049705721886 3.8602942781139973 0.8720418466789011
466.39 467.13452750856925 -0.7445275085692629 -0.16818902827097065
467.22 463.6313366984603 3.588663301539725 0.8106803127228034
462.77 462.4312798566266 0.3387201433733935 7.651700053266082e-2
464.95 462.08179546634585 2.8682045336541364 0.647928421509498
457.12 462.7228887148119 -5.602888714811911 -1.2656945480301718
461.5 463.2389898882632 -1.738989888263177 -0.3928384325813241
458.46 465.73221554609086 -7.272215546090877 -1.6427960713291576
465.89 465.9391561803271 -4.915618032708835e-2 -1.1104398571670065e-2
466.15 464.6758800034213 1.474119996578679 0.33300423009999475
455.48 462.03627301808797 -6.55627301808795 -1.4810644003072635
464.95 468.4631596600604 -3.51315966006041 -0.793624013331356
454.88 456.7218449478398 -1.8418449478398315 -0.416073427022555
457.41 460.9973530979196 -3.5873530979195607 -0.8103843372602768
468.88 468.60583110746154 0.2741688925384551 6.1934850072609716e-2
461.86 468.0452621538938 -6.185262153893802 -1.3972529144876207
456.08 461.1674897104325 -5.087489710432521 -1.1492657301279636
462.94 462.0966422275805 0.8433577724194947 0.1905148199300008
460.87 460.8634611992428 6.53880075719826e-3 1.4771174103748418e-3
461.06 464.39198726436393 -3.3319872643639314 -0.7526971048813644
454.94 458.02055270119547 -3.0805527011954723 -0.6958979478773422
466.22 464.51235428029423 1.7076457197057948 0.38575777378638154
459.95 461.1346442030386 -1.1846442030386015 -0.2676115456617347
463.47 463.1897781965986 0.28022180340144587 6.330220478353711e-2
456.58 464.6775725663161 -8.097572566316103 -1.8292445149535757
463.57 465.54023567427873 -1.9702356742787401 -0.4450769376655136
462.44 462.10003232292183 0.3399676770781639 7.679881883907078e-2
448.59 459.28384302135726 -10.693843021357281 -2.4157429316489263
462.5 464.0520812837937 -1.5520812837937115 -0.3506157125348718
463.76 462.0021066209567 1.7578933790433098 0.39710873785365647
459.48 464.6824431291334 -5.202443129133371 -1.1752337481866588
455.05 457.2130973847568 -2.1630973847567816 -0.48864446647088006
456.11 461.34202141138076 -5.232021411380742 -1.181915492637807
472.17 467.9152913437013 4.254708656298703 0.9611401946102772
461.54 465.451323337944 -3.9113233379439976 -0.8835693293945925
459.69 461.32001368263144 -1.6300136826314429 -0.3682206690750698
461.54 459.1934765355192 2.3465234644808106 0.5300804829420808
462.48 459.15223490510476 3.3277650948952555 0.7517433153007799
442.48 460.6299621913334 -18.149962191333373 -4.100082896844682
465.14 465.9486794694256 -0.8086794694256128 -0.18268097898322977
464.62 462.514565839849 2.105434160150992 0.47561832357918826
465.78 463.3496922983314 2.430307701668596 0.5490073718412131
462.52 461.9908711864406 0.5291288135593959 0.11953038666595807
454.78 457.1797966088057 -2.3997966088057296 -0.5421149051411549
465.03 464.9190479188053 0.11095208119468225 2.5064114496770717e-2
463.74 462.7209910751999 1.0190089248001186 0.23019447755654637
459.59 461.9941154580853 -2.4041154580853004 -0.5430905347253132
465.6 458.7011562788461 6.8988437211539235 1.5584512436402782
464.7 461.4647200415134 3.2352799584866148 0.7308508901814327
460.54 462.4097006278274 -1.8697006278273989 -0.42236603501220354
465.52 462.4744017201027 3.0455982798972627 0.6880017317076839
465.64 464.23959443772213 1.4004055622778537 0.316352113244803
468.22 468.1204021981673 9.959780183271505e-2 2.2499178761520116e-2
464.2 461.9717022235376 2.228297776462398 0.5033732580838687
472.63 464.1834210347691 8.446578965230913 1.908085184261595
460.31 460.49414495170237 -0.18414495170236478 -4.159840990609191e-2
458.25 461.54722359859704 -3.297223598597043 -0.744843980453893
459.25 462.2664630167632 -3.0164630167632254 -0.6814200654313775
463.62 462.22935856598747 1.3906414340125366 0.314146393206315
457.26 464.22591401634224 -6.9659140163422535 -1.57360244711327
460.0 459.5632798612268 0.4367201387731825 9.865523425423826e-2
460.25 461.35195581745074 -1.1019558174507438 -0.24893221002772656
464.6 460.49948055624816 4.100519443751864 0.9263087968047702
461.49 463.4068722278115 -1.9168722278114956 -0.4330221161804578
449.98 456.3538669153961 -6.373866915396093 -1.4398587970094179
464.72 462.6709318385796 2.0490681614204505 0.4628852244728433
460.08 461.8110962307606 -1.7310962307606133 -0.39105525255160123
454.19 460.0644340540893 -5.874434054089306 -1.3270367364905291
464.27 462.01427465285536 2.255725347144619 0.5095691560295883
456.55 460.5836092644089 -4.033609264408881 -0.9111937635580358
464.5 463.36019976991514 1.1398002300848589 0.2574812762652507
468.8 464.3486858862592 4.451314113740807 1.0055534371827388
465.16 461.64674540379394 3.5132545962060817 0.7936454594403373
463.65 462.49609959425135 1.1539004057486295 0.2606665109490528
466.36 460.43082906265073 5.929170937349284 1.3394018178342237
455.53 462.17575951824017 -6.645759518240197 -1.5012794324326701
454.06 459.4288341311478 -5.368834131147821 -1.2128215345608948
453.0 454.32588018238846 -1.3258801823884596 -0.29951680349350984
461.47 460.83972369537014 0.6302763046298878 0.14237964077596937
457.67 459.6520786332344 -1.98207863323438 -0.44775226629431036
458.67 457.8428111918577 0.8271888081422958 0.1868622451646224
461.01 462.29977029786426 -1.2897702978642656 -0.29135956777125693
458.34 458.996291001344 -0.656291001344016 -0.14825636999114813
457.01 456.94689658887955 6.310341112043716e-2 1.4255082954994055e-2
455.75 455.9205279683583 -0.17052796835827166 -3.852232853869412e-2
456.62 455.09997079582735 1.5200292041726584 0.34337513637954875
457.67 463.6885973525343 -6.0185973525343 -1.3596032767442205
456.16 456.72206228080574 -0.5620622808057192 -0.12697006859845936
455.97 460.3441974161702 -4.374197416170148 -0.988132747848103
457.05 457.54320031904916 -0.4932003190491514 -0.11141412701219569
457.71 456.69285780085 1.017142199149987 0.22977278357005085
459.43 457.1382842072816 2.291715792718435 0.5176994104505857
457.98 457.7082041695164 0.27179583048359746 6.139877451268822e-2
459.13 460.6176992174903 -1.4876992174903307 -0.3360717809205096
457.35 460.23977794971734 -2.8897779497173133 -0.652801863850297
456.56 454.0359982256698 2.524001774330202 0.5701728960889167
454.57 457.0654686491854 -2.4954686491853977 -0.5637272529979575
451.9 457.74629194464563 -5.846291944645657 -1.3206794239851547
457.33 456.682658074812 0.6473419251879591 0.14623477051324232
467.59 461.57543093155283 6.014569068447145 1.3586932859400929
463.99 464.7770544317755 -0.7870544317755162 -0.1777958753076353
452.55 459.80149708475966 -7.251497084759649 -1.6381157635655597
452.28 454.94641693932425 -2.6664169393242787 -0.6023445323759801
453.55 454.8958623057641 -1.3458623057641148 -0.3040307722517635
448.88 452.5071708494881 -3.6271708494880954 -0.819379181463033
448.71 455.2418242855509 -6.531824285550897 -1.4755414229551362
454.59 459.5827319030397 -4.992731903039726 -1.1278599078271756
451.14 453.1075606298177 -1.96756062981774 -0.44447264417293086
458.01 456.4217175154805 1.5882824845194818 0.3587935766194508
456.55 456.50051296596394 4.948703403607624e-2 1.1179138541884803e-2
458.04 456.49209889995655 1.5479011000434753 0.34967140754297515
463.31 463.61908166044054 -0.3090816604405404 -6.982165672530898e-2
454.34 454.42430944989064 -8.430944989066802e-2 -1.9045534635007244e-2
454.29 454.14166454199597 0.14833545800405545 3.350903257795549e-2
455.82 453.8961915229463 1.923808477053683 0.43458901734456734
451.44 453.66499413493267 -2.224994134932672 -0.5026269642904962
442.45 449.90744333553766 -7.4574433355376755 -1.6846390946658016
454.98 459.2285158945938 -4.2485158945937656 -0.9597412475445487
465.26 459.05202239898557 6.20797760101442 1.402384342049376
451.06 452.9490364013417 -1.8890364013416843 -0.4267339931075124
452.77 453.18020424984826 -0.4102042498482774 -9.266528554087129e-2
463.47 461.36780961356845 2.102190386431573 0.47488555394539955
461.73 460.89674705500755 0.8332529449924664 0.1882321358300356
467.54 463.8188758742415 3.7211241257585357 0.8406032598979125
454.74 459.12703336317225 -4.387033363172236 -0.991032392828807
451.04 455.21318283732694 -4.1731828373269195 -0.9427234831872046
464.13 457.4956830813674 6.634316918632578 1.4986945451225993
456.25 452.88104966381576 3.3689503361842412 0.7610470759164369
457.43 456.48090497858703 0.9490950214129725 0.21440090198280956
448.17 456.55913524865815 -8.389135248658135 -1.8951086283124203
452.93 453.45921998591484 -0.5292199859148354 -0.11955098253339085
455.24 454.75813504742956 0.48186495257044726 0.10885346370398265
454.44 461.4374201546749 -6.997420154674899 -1.5807196949378952
460.27 463.53345887643684 -3.2634588764368573 -0.7372165177415027
450.5 452.02894677235776 -1.528946772357756 -0.34538961819563885
455.22 455.9633409988894 -0.74334099888938 -0.1679209953134281
457.17 456.69115708186104 0.47884291813898017 0.10817078505399348
458.47 455.7081697760806 2.7618302239194463 0.6238984272092829
456.49 455.57841979073686 0.9115802092631498 0.2059262926115969
451.29 457.86988425653215 -6.579884256532125 -1.4863981874467491
453.78 454.06028204889856 -0.28028204889858443 -6.33158142627099e-2
463.2 460.7479119618784 2.4520880381215875 0.5539275575714662
452.1 453.92151217696835 -1.8215121769683265 -0.4114802468706136
451.93 453.05320729488966 -1.123207294889653 -0.2537329263191114
450.55 454.7582989685104 -4.208298968510405 -0.9506562296773056
461.49 456.7605922899188 4.729407710081205 1.0683748792363064
452.52 454.02423282750084 -1.5042328275008572 -0.33980672928638717
451.23 452.6641989591508 -1.4341989591507627 -0.3239860535849685
455.44 457.32803096447014 -1.888030964470147 -0.426506864561602
440.64 450.31905653186493 -9.679056531864944 -2.1865023037261127
467.51 461.3397464375884 6.170253562411574 1.3938624683482124
452.37 456.8872770659849 -4.517277065984899 -1.0204544914918507
462.05 460.8339970164586 1.2160029835413866 0.27469550530032666
464.48 462.10615685280607 2.373843147193952 0.5362520089573174
453.79 457.0494808979759 -3.259480897975891 -0.7363178909961746
449.55 452.3356980438647 -2.78569804386467 -0.6292901762008652
459.45 455.3025828648233 4.147417135176681 0.9369030019323273
463.02 462.729986990083 0.2900130099170042 6.551404180835935e-2
455.79 455.2223463598734 0.5676536401265935 0.12823315865230953
453.25 453.31727625145106 -6.727625145106231e-2 -1.5197729065795843e-2
454.71 459.55748654713756 -4.847486547137578 -1.0950489304101056
450.74 456.73794034607437 -5.997940346074358 -1.3549368516578444
453.9 456.51693542677697 -2.6169354267769904 -0.591166641140371
450.87 451.9912034594017 -1.12120345940167 -0.2532802591716121
453.28 457.3952307496471 -4.115230749647139 -0.9296320860246382
454.47 454.9139071679218 -0.4439071679217932 -0.1002787866881609
446.7 453.7037727907364 -7.003772790736434 -1.582154757677487
454.58 458.8081008998661 -4.228100899866092 -0.9551294929943339
458.64 459.2317295422394 -0.5917295422394204 -0.13367191347936058
454.02 452.8313052555013 1.1886947444986617 0.26852656441429623
455.88 453.2048261109316 2.6751738890683896 0.6043227304292798
460.19 460.7894614420895 -0.5994614420894777 -0.13541855239800657
457.58 456.6018501959594 0.9781498040405836 0.22096438768416773
459.68 456.60000256329886 3.0799974367011487 0.6957725134311212
454.6 461.53379199179915 -6.933791991799126 -1.5663460703752405
457.55 455.08314377928957 2.46685622071044 0.5572636952565875
455.42 454.7344713102369 0.685528689763089 0.15486117417567455
455.76 454.42537323274547 1.3346267672545196 0.3014926601171813
447.47 450.8438229795386 -3.373822979538545 -0.7621478077785091
455.7 454.25095018004106 1.4490498199589297 0.32734086830915904
455.95 463.13775609127424 -7.187756091274252 -1.62371665052817
451.05 455.0606464477156 -4.010646447715601 -0.9060064551220738
449.89 452.78710305999806 -2.8971030599980736 -0.6544566088609499
451.49 452.433083794051 -0.943083794051006 -0.21304296358954875
456.04 453.7206916287227 2.319308371277316 0.5239325837341715
458.06 453.97719041615727 4.082809583842732 0.9223081331695797
448.17 452.20842313451317 -4.0384231345131525 -0.9122812185220788
451.8 452.9007476374929 -1.1007476374928729 -0.24865928174670002
465.66 461.8378158906787 3.822184109321313 0.8634327460308919
449.26 452.41543202652105 -3.155432026521055 -0.7128132140282154
451.08 457.758643714557 -6.67864371455704 -1.5087079840447253
467.72 461.31875334620537 6.401246653794658 1.4460438896252936
463.35 462.3713163829519 0.9786836170481479 0.2210849762319209
453.47 454.29376940501476 -0.8237694050147297 -0.18608980078523712
450.88 453.1538192034153 -2.2738192034153144 -0.5136565645790601
456.08 457.3375291656148 -1.2575291656148124 -0.28407628456012096
448.04 451.78495851322333 -3.7449585132233096 -0.8459874564803027
450.17 451.85242166322104 -1.682421663221021 -0.3800596504794554
450.54 455.6955332352781 -5.155533235278085 -1.1646367865257305
456.61 453.9716415466415 2.638358453358535 0.5960061104439258
448.73 447.41632457686063 1.3136754231393866 0.29675974405009536
456.57 456.66826631159074 -9.82663115907485e-2 -2.2198394643578017e-2
456.06 451.3868160236605 4.673183976339487 1.0556739178413985
457.41 455.85961858608687 1.5503814139131578 0.35023171132590797
446.29 451.60844251281037 -5.31844251281035 -1.2014380501044672
453.84 451.54257776593613 2.297422234063845 0.5189884975745983
456.03 454.3347436794248 1.6952563205751972 0.3829590041282386
461.16 456.9850125389704 4.174987461029616 0.9431311483217468
450.5 450.35966629930147 0.1403337006985339 3.170143276440124e-2
459.12 453.22902771494347 5.8909722850565345 1.3307727287321647
444.87 450.88923626750994 -6.019236267509939 -1.3597476078638415
468.27 460.777395244504 7.492604755495961 1.6925820719061937
452.04 451.56627819803873 0.47372180196128966 0.10701392309298458
456.89 455.22151625901796 1.6684837409820261 0.3769110689018617
456.55 458.8632715562841 -2.3132715562840644 -0.5225688650859275
455.07 454.4962025118112 0.5737974881888022 0.12962105610879585
454.94 452.99732617118093 1.9426738288190677 0.4388507069999401
444.64 451.56134671760685 -6.921346717606866 -1.563534678520849
464.54 461.2640328521535 3.2759671478465293 0.7400421406896527
454.28 454.96273138933316 -0.6827313893331848 -0.15422926301635198
450.26 450.45712572408365 -0.19712572408366213 -4.453077099132904e-2
450.44 452.73403331175916 -2.294033311759165 -0.5182229388239146
449.23 451.36693359666157 -2.1369335966615495 -0.48273405745982695
452.41 450.8630071025483 1.5469928974517302 0.34946624425535894
451.75 450.8754162418666 0.8745837581333831 0.19756878117867843
449.66 451.1697942873426 -1.5097942873425723 -0.34106306503728984
446.03 450.6475445784007 -4.617544578400725 -1.043104958111643
456.36 453.9368453997675 2.4231546002325217 0.5473914836895866
451.22 452.6438110023007 -1.4238110023006811 -0.3216394104479091
440.03 449.3808509555166 -9.350850955516648 -2.112360547613956
462.86 459.869498864356 2.990501135644024 0.6755552672778264
451.14 454.579016450257 -3.439016450256986 -0.7768750359380399
456.03 455.70412271625406 0.3258772837459105 7.361579398742824e-2
446.35 451.5591661954988 -5.209166195498767 -1.176752491263285
448.85 451.44957897086954 -2.5995789708695156 -0.587245811594508
448.71 449.4109294018897 -0.7009294018897094 -0.1583402005077369
459.39 456.3684360885655 3.021563911434498 0.682572359346914
456.53 455.38148152279337 1.1485184772066077 0.25945073138243085
455.58 454.77441817350666 0.8055818264933237 0.18198122034608644
459.47 455.56852272126025 3.901477278739776 0.881345101127945
453.8 453.388777892959 0.4112221070409987 9.28952198417427e-2
447.1 450.74082943000445 -3.6408294300044304 -0.8224646596463948
446.57 451.4361052165287 -4.866105216528695 -1.0992548944296325
455.28 454.1835978057368 1.0964021942631916 0.24767764457977892
453.96 461.17395495323035 -7.21395495323037 -1.6296349827368377
454.5 450.5867733837238 3.9132266162761766 0.8839992806449278
449.31 450.23193343537906 -0.92193343537906 -0.20826509006348795
449.63 454.63584061731206 -5.00584061731206 -1.1308211710309792
448.92 452.85108866192985 -3.9310886619298344 -0.8880343230937872
457.14 451.0525967345181 6.087403265481896 1.3751465568846568
450.98 451.52328444134787 -0.5432844413478506 -0.12272814800439524
452.67 450.58585768893437 2.084142311065648 0.47080848731855396
449.03 451.0815006280817 -2.051500628081726 -0.4634347195544255
453.33 451.8069735038988 1.5230264961011812 0.34405222568934657
455.13 453.1966266064801 1.9333733935199007 0.4367497353669781
454.36 455.59739505823717 -1.237395058237155 -0.279527982561906
454.84 451.4309223325164 3.4090776674835865 0.7701118542901917
454.23 454.4162557726173 -0.18625577261730086 -4.207524509948774e-2
447.06 447.518481672599 -0.45848167259902084 -0.10357117246434823
457.57 457.4899833309962 8.001666900378268e-2 1.807579391000316e-2
455.49 454.77349685896206 0.716503141037947 0.16185831370535556
462.44 459.9896954813431 2.4503045186568784 0.553524659891771
451.59 453.52748857898166 -1.9374885789816858 -0.4376793572224586
452.45 451.13958592197406 1.3104140780259286 0.29602300503216056
448.79 451.0112917711592 -2.2212917711592013 -0.5017905990008346
450.25 452.1609729511189 -1.9109729511188789 -0.4316894674831122
456.11 455.0355456385036 1.0744543614964073 0.2427196213728287
445.58 448.24161243610126 -2.6616124361012794 -0.6012591933937391
452.96 450.74872313991176 2.211276860088219 0.4995282270375937
452.94 453.94807606743166 -1.0080760674316593 -0.2277247411991083
452.39 459.1480198621104 -6.758019862110416 -1.5266390839318875
445.96 448.54249260358654 -2.5824926035865587 -0.5833859951647244
452.8 450.84813038147144 1.9518696185285762 0.44092803915708034
458.97 452.9523382793833 6.017661720616729 1.3593919171621711
460.1 457.2797775931837 2.820222406816299 0.6370892420374885
453.83 450.67534900317094 3.154650996829048 0.7126367791437584
443.76 448.7439698617696 -4.9839698617695944 -1.1258805595963421
450.46 449.8176765506547 0.6423234493452696 0.14510109504031687
446.53 449.46273191454407 -2.9327319145440924 -0.6625051797405109
446.34 450.23276134284237 -3.892761342842391 -0.8793761681171683
449.72 448.30116288608934 1.4188371139106835 0.320515807296362
447.14 446.6513202266961 0.4886797733038861 0.110392934124895
455.5 459.6412858596402 -4.14128585964022 -0.935517944613867
448.22 449.80841398023324 -1.588413980233213 -0.35882328154782445
447.84 450.0492245621949 -2.2092245621949473 -0.49906461221555004
447.58 450.15348917672725 -2.5734891767272643 -0.581352117843679
447.06 447.2352893702609 -0.17528937026088443 -3.9597930917371696e-2
447.69 452.1889854808301 -4.498985480830129 -1.0163224159173316
462.01 457.27636447696545 4.733635523034536 1.0693299436820765
448.92 449.22543586447625 -0.3054358644762374 -6.899807012380288e-2
442.82 446.96369987423526 -4.143699874235267 -0.9360632713671432
453.46 456.11949013569995 -2.6594901356999685 -0.6007797649802994
446.2 450.69910348096573 -4.4991034809657435 -1.0163490721898218
443.77 447.07428167616905 -3.3042816761690688 -0.7464384026809258
448.9 447.93156732156143 0.9684326784385462 0.2187692855639865
460.6 459.5396287629999 1.0603712370001404 0.2395382385538138
444.44 450.41539217977504 -5.975392179775042 -1.3498432128929558
445.95 450.20916835758374 -4.2591683575837465 -0.9621476427124321
453.18 450.5270199129546 2.652980087045421 0.5993091426801118
443.46 446.747552050482 -3.28755205048202 -0.7426591743041947
444.64 444.507199619309 0.13280038069098055 2.999965310261351e-2
465.57 459.32651068324674 6.243489316753255 1.410406451230845
446.41 447.6568115900023 -1.2468115900022667 -0.2816551804277046
450.39 454.76275216738793 -4.372752167387944 -0.987806265635571
452.38 454.21851332168194 -1.838513321681944 -0.41532081149175476
445.66 445.39798853968495 0.2620114603150796 5.9188481821087296e-2
444.31 446.51975987000213 -2.209759870002131 -0.4991855384390674
450.95 449.28757124138815 1.6624287586118385 0.37554324623672375
442.02 446.61697690688106 -4.596976906881082 -1.0384587138199675
453.88 452.35263519535005 1.5273648046499488 0.3450322511293186
454.15 453.88291464930387 0.2670853506961066 6.033467545787885e-2
455.22 449.07372918845823 6.146270811541797 1.3884447564200073
446.44 446.2148995417356 0.22510045826442138 5.085027336544837e-2
449.6 453.8663667211942 -4.266366721194174 -0.9637737556052997
457.89 451.01241377116 6.877586228839959 1.553649168586485
446.02 448.5883814092371 -2.5683814092371335 -0.5801982713559247
445.4 449.5097304398742 -4.109730439874227 -0.928389564095968
449.74 448.503305348983 1.2366946510169896 0.27936976032243505
448.31 446.91722060578974 1.3927793942102653 0.31462935917332
458.63 453.8324720669498 4.797527933050219 1.0837632617673658
449.93 453.3060649640138 -3.3760649640137785 -0.7626542728667
452.39 449.0800812223206 3.3099187776793997 0.747711825911599
443.29 445.3619054648025 -2.0719054648024553 -0.46804417940726856
446.22 449.83432112958207 -3.614321129582038 -0.8164764251784371
439.0 444.60209183702807 -5.60209183702807 -1.2655145330561481
452.75 455.3330390953461 -2.5830390953461233 -0.5835094478470516
445.65 450.2809554999446 -4.630955499944605 -1.046134490045282
445.27 449.39422908092763 -4.124229080927648 -0.9316648122526285
451.95 448.7618842842812 3.188115715718766 0.7201964710109384
445.02 449.4952622600192 -4.475262260019235 -1.010963331921484
450.74 449.4914112072881 1.248588792711928 0.2820566511501939
443.93 449.51712426113426 -5.5871242611342495 -1.2621333523527094
445.91 447.26408438944804 -1.354084389448019 -0.30588814387234453
445.71 451.7557366468961 -6.045736646896103 -1.3657340529669058
452.7 449.4776919784881 3.2223080215118785 0.7279205250176717
449.38 448.98079679330425 0.39920320669574494 9.018014599062547e-2
445.09 452.8385186409049 -7.748518640904933 -1.7503931093931713
450.22 448.9907086576164 1.2292913423836467 0.2776973502761967
441.41 448.93146897513117 -7.5214689751311425 -1.699102509359969
462.19 458.191223029991 3.9987769700089757 0.9033251358980232
446.17 449.6590005617063 -3.489000561706291 -0.7881664644438873
444.19 446.5452373588345 -2.355237358834529 -0.532048954767419
453.15 456.31295277561605 -3.162952775616077 -0.7145121539164033
451.49 449.9268730104552 1.5631269895447986 0.353110941381973
453.38 448.035018368965 5.344981631035012 1.2074332463248887
452.1 453.06361431502813 -0.96361431502811 -0.21768081556048727
446.33 449.51211271813503 -3.182112718135045 -0.7188403917275025
452.46 450.67294754488756 1.7870524551124163 0.4036957834804415
444.87 447.9552056621949 -3.0852056621948805 -0.6969490534175217
444.04 448.2666586698021 -4.226658669802077 -0.9548036927113115
449.12 448.6696822105525 0.4503177894475243 0.10172694836468192
443.15 445.71467031907304 -2.564670319073059 -0.5793599347715302
446.84 452.8021698612505 -5.962169861250516 -1.3468562864482865
443.93 446.74436600081026 -2.814366000810253 -0.6357662778434455
455.18 448.49796091182594 6.682039088174065 1.509475000149156
451.88 449.90863388073825 1.971366119261745 0.4453323055881452
458.47 453.53620348431406 4.9337965156859696 1.11454638291948
449.26 451.6024110197605 -2.3424110197605046 -0.5291514802210725
444.16 448.28015134415506 -4.120151344155033 -0.9307436500693146
441.05 445.9401390971127 -4.890139097112694 -1.1046841565784165
447.88 452.51812264484727 -4.638122644847272 -1.047753550620993
444.91 449.0808543549187 -4.170854354918674 -0.9421974781852653
439.01 443.7646779089382 -4.75467790893822 -1.0740834261214887
453.17 449.2796285666693 3.8903714333306993 0.8788362867107722
-- Now we can display the RMSE as a Histogram. Clearly this shows that the RMSE is centered around 0 with the vast majority of the error within 2 RMSEs.
SELECT Within_RSME  from Power_Plant_RMSE_Evaluation
Within_RSME
-0.6545286058914855
-1.4178948518800556
0.17524239493619823
0.44163480044197995
0.26132139752130357
0.28066570579802425
1.3625651590092023
0.9078489886839033
-0.3442308494884213
-0.11630232674577932
1.7506729821805804
-8.284953745386567e-2
-1.692818871916148
2.608373132048146e-2
0.8783285919200484
1.8262340682999108
0.9515196517846441
0.9951418870719423
-0.12833292050229034
1.8547757064958097
-6.520499829010114e-2
1.7540228045303743
1.712912449331917
-0.567063215206105
1.758470293691663
0.36292285373571487
1.3722994239368362
-0.4518791902667791
-0.711637096481805
0.7477551488923485
-9.075206274161249e-2
0.33498359634397323
-2.717087121436152
1.6347795140090344
0.5413939250993844
1.8721087453250556
1.2897763086344445
-0.6298581141929721
-0.3869554869711247
1.5590952476122018
-5.164688385271067e-2
1.021860350507925
4.2073297187840204e-2
3.6816563372465104e-2
2.4273181887690556
0.2760063132279849
-0.2711988922825122
-0.49565448805243767
1.6046669568831393
-0.5946690382578993
1.1099602752189677
0.42249584921569994
0.3776264153858503
1.1253464244922151
2.313691606156222
0.15702246269194528
1.1180526463224945
1.0326707046913566
-0.5009264197587914
2.1055253303633577
0.883079580425271
0.8562239455498787
1.0581479782654901
-0.5881175213603873
-1.0469362575856187
0.9845051707078616
-0.32033221960491765
-6.11464435454739e-2
1.7966491781271794
1.449961394951398
0.1429791665816065
0.17796926331974147
0.590178010121793
-0.4427473424095181
-1.4586722394340677
-0.14061563348410486
-0.4778797517789611
0.16287170617772706
1.6205038004183012
0.6655668633335223
0.9552928474721311
-0.9255614318409298
-0.20841065925050425
-0.5044470235035043
-0.9064055675522111
-0.5331117277702286
1.0604764411029242
0.6163555912803304
1.502475041125319
0.11025852973791857
1.027322682875218e-2
1.2068500286116204
0.7807519242835766
0.5378958494817917
1.4921557049542535
0.8423417649127792
-0.8074228949228237
-1.273287251952606
-0.8366248339128552
0.5703862219885535
0.9915076732202934
1.392578067734949
-1.1161712376708273
-0.5177873225895746
1.2543530104022107
0.8332547944829863
-0.15024202389261102
-0.7461833621634392
-2.6333071255094267
1.7090186657480726
1.17171695524459
0.16538389150158914
-0.6043651708916123
1.5140936302699408
-0.40248969630754267
-0.5274788489010923
1.673819828943716
0.3998536629456538
1.5247431144210337
0.681669465709775
-0.5067930534728822
1.3329317905059794
0.2815190232236669
0.9594271583094607
0.7195804749163808
1.563628994525865
-0.5164095221527084
0.5408652916763936
1.2169907361146226
1.3691416206809235
0.9990582667496749
0.2866573009496584
-0.1322508701375881
-0.11350226422907182
1.5478953375265612
0.6261411303745675
-0.3570008639436786
0.11097880108736301
-1.997789295120947e-2
0.8015184563019332
1.0694995653480546
-0.44658623651141477
1.5261372030315674
9.637974736911713e-2
-0.8289854400119429
1.6226588690300885
1.2686705940133918
-0.17369127241360752
1.465503060651426
-0.8493901094223798
-3.19863982083975e-3
0.775250166241454
-1.476480677907779
1.6164395333609067
-0.7292074491181413
-2.0719934236347326
6.689462100697262e-2
0.41987991622217147
1.5698655082870474
0.9108140262190783
1.4283829990671366
-0.7468033961054397
1.8565224554443056e-2
-0.631158789082455
-2.423658794064658e-2
0.1268789228414677
1.2467256943415417
0.9532625827884375
1.858427070746631
3.080438049074982
-0.7935508099728905
-0.33001241533337206
1.5352270267793358
-0.8014312542128782
1.0796607821279804
0.8682110816429235
0.8502714264690703
0.271857163937664
1.4407225588170043
-7.658599891256687e-2
0.4048751439362759
-1.6508290646045036
0.9392995195813987
0.3512225476325008
1.3510289270963245e-2
1.214207255223955
1.357197397311141
0.7924624787403274
0.9747529486084029
-0.2189330666129607
1.1957383378087658
-0.33808517274788225
0.12841983400410018
2.6901995797195863e-2
0.6811317532938489
-0.14977990817360218
0.3021002532054435
6.309664277182285e-2
-1.4280877316330394
-0.31036099175789383
0.23847593115995214
-1.2544261801023373
1.487015909020143
1.4770822031817277e-2
1.5464079765310332
-0.9661142653632034
0.12365480382094843
0.2213694799459989
-0.371717945334288
-7.16964482466269e-2
-1.3370460279083884
-0.4791979479015218
0.7258131397464832
-0.9603785228015735
1.761740374853143
0.756705284425051
-7.97943379405968e-2
-0.12401745329336308
0.6066524918978817
-1.827662052785967
-1.591900543337891
-2.2076662292962226
-0.6113138148859982
-0.6998705392764937
-0.950596077665842
0.8530061355541199
-0.3389719928622738
1.166670943264595
-0.793497343451686
-0.17702361157448407
-1.2193083364383357
-2.0572343953484604
-0.3306196669058454
0.30773883474602903
-0.23209777066088685
1.4407294606630792
-0.25326355704561365
-4.4359271514481574e-2
0.6878454023126037
-1.1071350441930146
1.1936865467290878
-0.3007124612846165
1.4096765924648265
0.6164656679054759
0.9857137966698644
1.0741485680349747
-0.5956816180527323
0.42955444320288233
0.3977787059312943
-0.21498609418317555
0.9605949185920998
-0.9629884170069595
1.0232242351169787
-0.5846231192914554
1.3665650089641064
1.746749569478921
0.20876984487810568
1.2521345827220822
0.5034033523179731
0.2428222722587704
-0.8164837978146291
0.8816626861116392
0.3639355749527803
0.529553624374745
-0.5182949859646964
1.1483434385624023
1.7878124840322416
1.1154300586630213
1.7220135063654567
-0.5948541705999838
2.6840159315323495
1.4048914641301884
1.048062749037262
1.0587197080412232
2.305613395286325
-0.36112584123348884
-0.9292014386335458
1.3994718175237673
-2.07160847091363
1.5499716375563712
-0.49879093666907914
-0.7387667159730148
1.215743751168344
0.41488138983573053
0.8109415219227073
0.17199705539157537
0.37238038749473606
1.0232860206712358
7.648152721354506e-2
-1.462397837959548
1.1080799981170868
-0.8241779060158768
0.6646125250731286
-0.5357411851906123
-1.1013185729957693
1.0228434545117104
-2.2138675491121655
1.1090799040003696
0.528855769995572
0.5510063260220736
-0.6178137048585499
-1.5423062021582727
0.14223087889069697
0.6842724817647582
0.8947164246665408
0.2929208050392189
1.0509433168534397
-0.7432089035850772
-0.4404227630306511
-1.749430050046347
-1.8086930425174812
-1.0601131663478296
1.1367001553490168
0.8092747458990647
-0.6912565984961676
0.5876026195201212
0.588118260475777
-1.5843005948416944
1.2258227543850637
-2.221379961092406
0.634487138275479
0.5838507185000019
-0.7046913242897344
-0.37217013370970675
-0.40920885267913865
0.6878875094589886
-0.6603570138111878
0.47983904985387016
1.1108376145467862
-1.2967007380916762
1.597843788860663
-1.2003451799842708
0.7823286855941306
0.4040957861116898
-0.8115843408453783
-0.5164400209043697
0.6648789506575099
1.302692092451488
0.6081791894050589
0.9892527182470402
0.8010661900831437
1.3632196657801583
-0.95536478346845
1.0773296627734226
-1.2863290875171947
-0.45717742235729764
-1.3782059158917384
1.3292415395636934
0.898840426845182
-0.49778501447760914
-2.8013349681766146
-0.4810779148314091
-0.30893260677359485
1.4144446986124883
0.8455721466933415
1.149027173540852
1.398381410079887
-2.07482799048434
0.802797467810633
-1.5148720297345803
0.4457711691982717
0.8083230187436264
-0.3652639670874125
-1.301009165777192
0.12351025454739102
1.1417131567412993
-0.36627110968185583
0.11986193019333387
0.9789636158092969
0.8287590631587972
0.12784192086705481
-0.2933818764583589
0.37057045258220545
0.17867647626623853
1.4063653898508444
0.3724177883609634
0.47087976564737744
-0.29605954815653446
0.3100202222752913
-0.7571192782768728
-0.159362104405368
0.4948614777371899
-0.914693478650593
0.1552739582781331
-0.47397010386004174
0.9853374925715822
-0.27611557009437565
-0.11876915655659566
-1.9139681704240736
4.953016947212214e-3
1.1193515979151634
0.10914706208866293
0.2953624624059635
-0.6203480029931175
1.447373814412471
-1.6476543672481883
-0.688655110626592
1.119882332695939
-0.489107443803926
0.36504587152451
-0.6898805978802584
-1.0090851773780105
1.3164462111456963
-0.9719462634817788
-1.195980679378918
-0.2324693067978492
1.5483799402320506
-0.7562589912210242
9.006543612814395e-2
0.6307060325245487
-0.2658735764273784
1.3036368729747179
1.3861689239960837
-0.10256413058630598
1.7873934636501403
0.39996285217557137
-0.962793977380421
1.2120179370324367
-0.14370787512306984
0.1873907498457296
8.883711718846676e-2
1.1389205017346977
-1.5633041348778628e-2
1.5435878241412961
0.9211075789572168
0.17182562184847788
-1.0405053204973118
0.6134953430761453
0.924316094817409
0.893158168449016
0.7054993963391207
1.1169128153424053
1.2716543656809969
0.2909263677211387
0.3156983081862408
-0.3181585485837661
-1.79557827837392
-1.9821852874504897
-0.18315266781990724
0.29419068616581573
1.321272422372547
-0.5300977560633852
0.7301877034905364
0.35702870934871034
-0.12785771898138407
-1.4568475152442806
1.1799216369387262
-2.6289350896996853
1.36938729411264
0.8658222795557158
-1.961929096387823
-1.7869367782036754
-2.3414119790965118
-0.7070000881461707
1.094870026989326
1.1674921223009784
0.4309575170361471
-0.5608691138957983
0.9204597474090102
0.45642908946816274
1.3262603156304236
0.6694839282628849
-1.4191468918247268
-2.0503769708593955
-1.559496185458982
-0.8294949891974716
-0.7511122251047269
0.9255039510005931
-0.7348543381165886
0.14006818598115695
-8.906989903365076e-2
0.5960428781510217
-1.02587326449146
-0.19021607612190924
0.4462389970391413
-0.4412430070274576
-0.5519946201974366
-0.5978564569550795
1.3285941918109334
0.9398258266993826
0.18054354406665346
0.24526741726554308
0.6419203730291116
-0.9563898027913122
-0.4574416919740238
-0.49100134055869604
0.8350348745649541
1.1230180632103244
-0.2831261948065207
-0.34737057487344897
-4.4197222396898606e-2
0.4029451403943494
-0.8387790498308709
-0.76724104350462
-1.405536067872571
-0.5049830367049549
-0.4450784100952837
-1.0964525416975441
-0.24679765115367583
0.6373400044210754
0.47325677731185334
-2.895796152379444
1.0608917942097844
-0.5538446783382351
-1.0739516871848376
0.6590103675152038
0.19886190778235394
-0.7684000719143101
-0.9540651350015262
0.8326866968950778
1.049265553847453
1.1564460495859417
-0.9105747398006214
-1.298779737770393
0.7486049675853867
1.0125992544722646
-0.552486882193573
4.083638455563342e-2
-7.43032114617912e-2
0.38180618893011364
-2.5821601917725587
-3.9183934552884936e-2
-0.7161579504665817
-1.1179393167374423
0.24473358069515785
0.37566200116631454
-0.8469696321106422
0.9536067209045733
1.040389080973342e-3
-1.9463087774264596
-0.5212577234014426
2.6198974509955283e-2
-0.22312751932133126
-0.3749580186284632
0.8158971199557807
0.5526973095848743
-1.0007418364636667
-0.7893531119518733
0.948603975708334
-0.5535013570539268
0.615437313273332
0.390353931433719
2.1370626071593804e-2
-4.58603577983067e-2
-1.8585598276086635
-1.7168393323476852
-1.1398906775971094
-0.4823380615634837
0.96139463327236
-0.28409897841626214
-1.1427184843899973
0.47191339234564744
-0.7999147952790192
-0.6809096342868951
-0.5802973198353383
-0.15724483814107668
-3.095640160553223e-2
-0.935248060922378
-0.2680652196876797
-1.3834783433962559
0.24424086946940488
2.8145362608873965e-2
2.0243901188534075e-2
0.8656525590853151
-0.43908603802454604
-0.3372983215369459
-1.527152991853827
-0.8950322545891167
0.49340212657275334
0.16455403921586076
-0.2922070048026174
8.049860352378384e-2
0.5092872109601911
-1.4149898349271792
0.26001016007049604
0.848179116862477
1.541775892767944
-2.7383106694634813
-1.3360086450624162
0.24805635526298545
-1.8022030869799206
0.10731148881574702
-0.5272965884493478
-0.522827282380973
-1.6790858913831084
-1.0881066592743878
-0.7551911549160485
1.0908758941061858
-0.40596025641974887
-1.3175361850815699
-0.33736351432728534
-0.7647965508049966
-0.8966825099514081
0.13589183843986818
-0.45700135918716
0.17800963180524587
-0.12241676923652416
0.928379507484781
-1.4663326638006033
0.9926875580120624
-0.9519902891303528
-1.2103639004447255
-0.29320537464645474
1.0589301445025614
1.9848035286394352
-1.262990865781086
-0.4669510069602996
-0.29852124969696514
0.4528378506109543
-2.176827775976124
0.6287618750023547
-0.22259591077043436
0.8980186936604918
-0.6701335093722809
5.3540678924927795e-2
-2.0162206655848456
-5.915502468864325
6.248484005862629e-2
-6.430908490699098e-2
0.24975508158417795
0.10082671294548266
6.192719483296151e-2
-0.8827535896932235
0.14629114201469284
0.3647103786297681
0.13525709550549558
-0.6839012648279135
-0.3282810590165173
-2.5448723679212413
0.9859079039422615
0.8870212178332524
-0.9336885155326297
-0.5912519373226456
-1.19738092926328
-4.418517142015048e-2
-1.0477395899387958
0.8720418466790518
-0.16818902827121646
0.8106803127226195
7.651700053300835e-2
0.6479284215091841
-1.2656945480299158
-0.3928384325809046
-1.6427960713292782
-1.1104398571567456e-2
0.33300423009965163
-1.4810644003074978
-0.7936240133313774
-0.41607342702266226
-0.8103843372605553
6.1934850072404936e-2
-1.3972529144877643
-1.1492657301278992
0.19051481992981023
1.4771174105289492e-3
-0.7526971048807434
-0.6958979478771827
0.3857577737865013
-0.26761154566176326
6.330220478322962e-2
-1.8292445149531718
-0.4450769376655955
7.679881883917433e-2
-2.4157429316491066
-0.35061571253514523
0.39710873785339107
-1.1752337481862478
-0.488644466470834
-1.1819154926380382
0.9611401946105317
-0.88356932939405
-0.3682206690752407
0.5300804829424589
0.7517433153011605
-4.100082896844213
-0.18268097898348856
0.4756183235788339
0.5490073718413218
0.11953038666589516
-0.5421149051411095
2.5064114496629736e-2
0.230194477556215
-0.5430905347252163
1.5584512436402695
0.7308508901811838
-0.4223660350121439
0.6880017317073447
0.3163521132445753
2.2499178761738656e-2
0.5033732580836815
1.908085184261808
-4.159840990620793e-2
-0.7448439804538625
-0.681420065430807
0.3141463932063569
-1.573602447113043
9.865523425471445e-2
-0.24893221002717708
0.9263087968044336
-0.43302211618029557
-1.4398587970092795
0.462885224472874
-0.391055252551079
-1.3270367364908389
0.5095691560296709
-0.9111937635582255
0.25748127626527917
1.0055534371830066
0.7936454594404486
0.26066651094965915
1.3394018178342768
-1.5012794324329175
-1.212821534560818
-0.2995168034930508
0.14237964077547013
-0.44775226629445647
0.18686224516459876
-0.2913595677715297
-0.14825636999077735
1.4255082955353757e-2
-3.85223285385276e-2
0.34337513637978356
-1.3596032767443251
-0.12697006859821677
-0.9881327478480624
-0.11141412701259497
0.22977278357028447
0.5176994104510022
6.13987745130998e-2
-0.3360717809204362
-0.6528018638498932
0.5701728960887047
-0.5637272529976811
-1.3206794239848478
0.1462347705134622
1.358693285939825
-0.17779587530777846
-1.6381157635658086
-0.602344532375961
-0.3040307722514201
-0.8193791814630933
-1.4755414229551909
-1.1278599078269054
-0.4444726441730127
0.35879357661949324
1.1179138541897764e-2
0.34967140754299175
-6.982165672536109e-2
-1.904553463477631e-2
3.3509032578186985e-2
0.43458901734435373
-0.5026269642909126
-1.684639094666372
-0.9597412475447774
1.4023843420494426
-0.4267339931080307
-9.266528554109059e-2
0.47488555394598253
0.18823213582988355
0.8406032598983453
-0.9910323928287407
-0.9427234831869965
1.4986945451227311
0.7610470759162783
0.21440090198276052
-1.8951086283122098
-0.1195509825335976
0.10885346370435622
-1.580719694938195
-0.7372165177419857
-0.3453896181957068
-0.1679209953140206
0.10817078505437988
0.623898427209341
0.2059262926120357
-1.4863981874464185
-6.331581426263354e-2
0.5539275575714465
-0.4114802468703741
-0.2537329263193067
-0.9506562296769948
1.068374879236074
-0.3398067292862239
-0.32398605358520316
-0.42650686456142684
-2.186502303726239
1.3938624683483432
-1.0204544914921314
0.27469550529997006
0.5362520089571434
-0.7363178909964009
-0.6292901762011418
0.9369030019327613
6.551404180844994e-2
0.1282331586527475
-1.5197729065410778e-2
-1.0950489304100275
-1.3549368516581415
-0.5911666411407626
-0.2532802591719359
-0.9296320860244299
-0.1002787866878538
-1.5821547576776454
-0.9551294929945369
-0.13367191347958032
0.2685265644141194
0.6043227304296972
-0.13541855239802086
0.22096438768429855
0.6957725134313342
-1.566346070374885
0.5572636952570301
0.15486117417577897
0.3014926601172488
-0.7621478077785558
0.32734086830965053
-1.6237166505279563
-0.9060064551221478
-0.6544566088606873
-0.21304296358942265
0.5239325837337663
0.9223081331700905
-0.9122812185222428
-0.24865928174635601
0.8634327460307729
-0.7128132140281332
-1.5087079840447288
1.4460438896255918
0.22108497623179488
-0.18608980078521345
-0.5136565645795023
-0.2840762845598929
-0.8459874564799138
-0.380059650479177
-1.1646367865259744
0.5960061104441506
0.29675974405004724
-2.2198394643539735e-2
1.0556739178415897
0.35023171132628417
-1.2014380501041335
0.5189884975744112
0.38295900412869216
0.9431311483218855
3.170143276445295e-2
1.3307727287321278
-1.3597476078635353
1.6925820719064946
0.10701392309290869
0.3769110689022767
-0.5225688650866008
0.12962105610924668
0.4388507070002017
-1.5635346785212256
0.7400421406892627
-0.1542292630166233
-4.453077099148361e-2
-0.5182229388235478
-0.48273405745988357
0.34946624425526
0.1975687811786549
-0.34106306503697253
-1.0431049581122194
0.5473914836897852
-0.32163941044764294
-2.1123605476138505
0.6755552672777567
-0.7768750359376887
7.361579398740335e-2
-1.1767524912633618
-0.5872458115946685
-0.15834020050780284
0.682572359347037
0.25945073138280605
0.18198122034572886
0.8813451011277746
9.289521984221884e-2
-0.8224646596460314
-1.0992548944297087
0.24767764457942207
-1.6296349827369583
0.8839992806447705
-0.20826509006315633
-1.1308211710304394
-0.888034323093527
1.375146556884749
-0.12272814800411408
0.4708084873186104
-0.4634347195545461
0.3440522256895429
0.4367497353673552
-0.2795279825620374
0.7701118542900588
-4.2075245099282746e-2
-0.10357117246458049
1.80757939097979e-2
0.16185831370575537
0.5535246598913276
-0.4376793572220653
0.2960230050324334
-0.501790599000596
-0.4316894674828857
0.24271962137276715
-0.6012591933934375
0.499528227037766
-0.227724741199252
-1.5266390839325845
-0.5833859951647822
0.44092803915740614
1.3593919171619417
0.637089242037123
0.712636779143946
-1.1258805595962003
0.1451010950402414
-0.6625051797404924
-0.8793761681170623
0.3205158072965067
0.11039293412506312
-0.935517944613967
-0.35882328154752013
-0.4990646122154142
-0.5813521178437366
-3.959793091748769e-2
-1.016322415917227
1.069329943682345
-6.899807012373943e-2
-0.9360632713678595
-0.600779764980383
-1.0163490721896018
-0.7464384026808953
0.21876928556414296
0.23953823855339262
-1.349843212892932
-0.9621476427127764
0.599309142680298
-0.7426591743046266
2.999965310254963e-2
1.4104064512304106
-0.281655180427759
-0.9878062656356458
-0.4153208114916822
5.918848182094669e-2
-0.4991855384391755
0.37554324623667645
-1.0384587138204282
0.34503225112933517
6.033467545812348e-2
1.388444756419958
5.085027336501233e-2
-0.9637737556054642
1.553649168586412
-0.5801982713557641
-0.9283895640961064
0.2793697603225793
0.3146293591732849
1.0837632617676214
-0.7626542728669009
0.7477118259115428
-0.4680441794071581
-0.8164764251785102
-1.2655145330562003
-0.5835094478470579
-1.046134490045332
-0.9316648122523561
0.7201964710108949
-1.0109633319210711
0.2820566511504923
-1.262133352352325
-0.30588814387272023
-1.3657340529671387
0.7279205250179235
9.01801459906393e-2
-1.7503931093934726
0.27769735027577597
-1.6991025093602443
0.9033251358981357
-0.7881664644439343
-0.532048954767078
-0.7145121539163726
0.35311094138229787
1.2074332463249917
-0.21768081556036123
-0.718840391727202
0.40369578348012486
-0.6969490534174008
-0.9548036927115915
0.10172694836464449
-0.5793599347716393
-1.3468562864485707
-0.6357662778430159
1.5094750001492365
0.44533230558821424
1.1145463829197875
-0.5291514802205262
-0.9307436500694146
-1.1046841565784926
-1.047753550621287
-0.9421974781853397
-1.0740834261221295
0.8788362867110385

We can see this definitively if we count the number of predictions within + or - 1.0 and + or - 2.0 and display this as a pie chart:

SELECT case when Within_RSME <= 1.0 and Within_RSME >= -1.0 then 1  when  Within_RSME <= 2.0 and Within_RSME >= -2.0 then 2 else 3 end RSME_Multiple, COUNT(*) count  from Power_Plant_RMSE_Evaluation
group by case when Within_RSME <= 1.0 and Within_RSME >= -1.0 then 1  when  Within_RSME <= 2.0 and Within_RSME >= -2.0 then 2 else 3 end
RSME_Multiple count
1.0 1267.0
3.0 77.0
2.0 512.0

So we have about 70% of our training data within 1 RMSE and about 97% (70% + 27%) within 2 RMSE. So the model is pretty decent. Let's see if we can tune the model to improve it further.

NOTE: these numbers will vary across runs due to the seed in random sampling of training and test set, number of iterations, and other stopping rules in optimization, for example.

Step 7: Tuning and Evaluation

Now that we have a model with all of the data let's try to make a better model by tuning over several parameters.

import org.apache.spark.ml.tuning.{ParamGridBuilder, CrossValidator}
import org.apache.spark.ml.evaluation._
import org.apache.spark.ml.tuning.{ParamGridBuilder, CrossValidator}
import org.apache.spark.ml.evaluation._

First let's use a cross validator to split the data into training and validation subsets. See http://spark.apache.org/docs/latest/ml-tuning.html.

//Let's set up our evaluator class to judge the model based on the best root mean squared error
val regEval = new RegressionEvaluator()
regEval.setLabelCol("PE")
  .setPredictionCol("Predicted_PE")
  .setMetricName("rmse")
regEval: org.apache.spark.ml.evaluation.RegressionEvaluator = RegressionEvaluator: uid=regEval_3679d6d8cb8b, metricName=rmse, throughOrigin=false
res40: regEval.type = RegressionEvaluator: uid=regEval_3679d6d8cb8b, metricName=rmse, throughOrigin=false

We now treat the lrPipeline as an Estimator, wrapping it in a CrossValidator instance.

This will allow us to jointly choose parameters for all Pipeline stages.

A CrossValidator requires an Estimator, an Evaluator (which we set next).

//Let's create our crossvalidator with 3 fold cross validation
val crossval = new CrossValidator()
crossval.setEstimator(lrPipeline)
crossval.setNumFolds(3)
crossval.setEvaluator(regEval)
crossval: org.apache.spark.ml.tuning.CrossValidator = cv_3b91131c250a
res41: crossval.type = cv_3b91131c250a

A CrossValidator also requires a set of EstimatorParamMaps which we set next.

For this we need a regularization parameter (more generally a hyper-parameter that is model-specific).

Now, let's tune over our regularization parameter from 0.01 to 0.10.

val regParam = ((1 to 10) toArray).map(x => (x /100.0))
warning: one feature warning; for details, enable `:setting -feature' or `:replay -feature'
regParam: Array[Double] = Array(0.01, 0.02, 0.03, 0.04, 0.05, 0.06, 0.07, 0.08, 0.09, 0.1)

Check out the scala docs for syntactic details on org.apache.spark.ml.tuning.ParamGridBuilder.

val paramGrid = new ParamGridBuilder()
                    .addGrid(lr.regParam, regParam)
                    .build()
crossval.setEstimatorParamMaps(paramGrid)
paramGrid: Array[org.apache.spark.ml.param.ParamMap] =
Array({
	linReg_96951eb5ad16-regParam: 0.01
}, {
	linReg_96951eb5ad16-regParam: 0.02
}, {
	linReg_96951eb5ad16-regParam: 0.03
}, {
	linReg_96951eb5ad16-regParam: 0.04
}, {
	linReg_96951eb5ad16-regParam: 0.05
}, {
	linReg_96951eb5ad16-regParam: 0.06
}, {
	linReg_96951eb5ad16-regParam: 0.07
}, {
	linReg_96951eb5ad16-regParam: 0.08
}, {
	linReg_96951eb5ad16-regParam: 0.09
}, {
	linReg_96951eb5ad16-regParam: 0.1
})
res42: crossval.type = cv_3b91131c250a
//Now let's create our model
val cvModel = crossval.fit(trainingSet)
cvModel: org.apache.spark.ml.tuning.CrossValidatorModel = CrossValidatorModel: uid=cv_3b91131c250a, bestModel=pipeline_1fbeea3a78d7, numFolds=3

In addition to CrossValidator Spark also offers TrainValidationSplit for hyper-parameter tuning. TrainValidationSplit only evaluates each combination of parameters once as opposed to k times in case of CrossValidator. It is therefore less expensive, but will not produce as reliable results when the training dataset is not sufficiently large.

Now that we have tuned let's see what we got for tuning parameters and what our RMSE was versus our intial model

val predictionsAndLabels = cvModel.transform(testSet)
val metrics = new RegressionMetrics(predictionsAndLabels.select("Predicted_PE", "PE").rdd.map(r => (r(0).asInstanceOf[Double], r(1).asInstanceOf[Double])))

val rmse = metrics.rootMeanSquaredError
val explainedVariance = metrics.explainedVariance
val r2 = metrics.r2
predictionsAndLabels: org.apache.spark.sql.DataFrame = [AT: double, V: double ... 5 more fields]
metrics: org.apache.spark.mllib.evaluation.RegressionMetrics = org.apache.spark.mllib.evaluation.RegressionMetrics@671c9416
rmse: Double = 4.4286032895695895
explainedVariance: Double = 271.5750243564875
r2: Double = 0.9313732865178349
println (f"Root Mean Squared Error: $rmse")
println (f"Explained Variance: $explainedVariance")  
println (f"R2: $r2")
Root Mean Squared Error: 4.4286032895695895
Explained Variance: 271.5750243564875
R2: 0.9313732865178349

So our initial untuned and tuned linear regression models are statistically identical.

Given that the only linearly correlated variable is Temperature, it makes sense try another machine learning method such a Decision Tree to handle non-linear data and see if we can improve our model

A Decision Tree creates a model based on splitting variables using a tree structure. We will first start with a single decision tree model.

Reference Decision Trees: https://en.wikipedia.org/wiki/Decisiontreelearning

//Let's build a decision tree pipeline
import org.apache.spark.ml.regression.DecisionTreeRegressor

// we are using a Decision Tree Regressor as opposed to a classifier we used for the hand-written digit classification problem
val dt = new DecisionTreeRegressor()
dt.setLabelCol("PE")
dt.setPredictionCol("Predicted_PE")
dt.setFeaturesCol("features")
dt.setMaxBins(100)

val dtPipeline = new Pipeline()
dtPipeline.setStages(Array(vectorizer, dt))
import org.apache.spark.ml.regression.DecisionTreeRegressor
dt: org.apache.spark.ml.regression.DecisionTreeRegressor = dtr_92691f930484
dtPipeline: org.apache.spark.ml.Pipeline = pipeline_ddfeb1cfff04
res106: dtPipeline.type = pipeline_ddfeb1cfff04
//Let's just resuse our CrossValidator
crossval.setEstimator(dtPipeline)
res107: crossval.type = cv_bc136566b6a6
val paramGrid = new ParamGridBuilder()
                     .addGrid(dt.maxDepth, Array(2, 3))
                     .build()
paramGrid: Array[org.apache.spark.ml.param.ParamMap] =
Array({
	dtr_92691f930484-maxDepth: 2
}, {
	dtr_92691f930484-maxDepth: 3
})
crossval.setEstimatorParamMaps(paramGrid)
res108: crossval.type = cv_bc136566b6a6
val dtModel = crossval.fit(trainingSet) // fit decitionTree with cv
dtModel: org.apache.spark.ml.tuning.CrossValidatorModel = CrossValidatorModel: uid=cv_bc136566b6a6, bestModel=pipeline_ddfeb1cfff04, numFolds=3
import org.apache.spark.ml.regression.DecisionTreeRegressionModel
import org.apache.spark.ml.PipelineModel
dtModel.bestModel.asInstanceOf[PipelineModel].stages.last.asInstanceOf[DecisionTreeRegressionModel].toDebugString
import org.apache.spark.ml.regression.DecisionTreeRegressionModel
import org.apache.spark.ml.PipelineModel
res109: String =
"DecisionTreeRegressionModel: uid=dtr_92691f930484, depth=3, numNodes=15, numFeatures=4
  If (feature 0 <= 18.595)
   If (feature 0 <= 11.885000000000002)
    If (feature 0 <= 8.575)
     Predict: 483.994943457189
    Else (feature 0 > 8.575)
     Predict: 476.04374262101527
   Else (feature 0 > 11.885000000000002)
    If (feature 0 <= 15.475000000000001)
     Predict: 467.5564649956784
    Else (feature 0 > 15.475000000000001)
     Predict: 459.5010376134889
  Else (feature 0 > 18.595)
   If (feature 1 <= 66.21000000000001)
    If (feature 0 <= 22.055)
     Predict: 452.01076923076914
    Else (feature 0 > 22.055)
     Predict: 443.46937926330156
   Else (feature 1 > 66.21000000000001)
    If (feature 0 <= 25.325)
     Predict: 440.73731707317074
    Else (feature 0 > 25.325)
     Predict: 433.86131215469624
"

The line above will pull the Decision Tree model from the Pipeline and display it as an if-then-else string.

Next let's visualize it as a decision tree for regression.

display(dtModel.bestModel.asInstanceOf[PipelineModel].stages.last.asInstanceOf[DecisionTreeRegressionModel])
treeNode
{"index":7,"featureType":"continuous","prediction":null,"threshold":18.595,"categories":null,"feature":0,"overflow":false}
{"index":3,"featureType":"continuous","prediction":null,"threshold":11.885000000000002,"categories":null,"feature":0,"overflow":false}
{"index":1,"featureType":"continuous","prediction":null,"threshold":8.575,"categories":null,"feature":0,"overflow":false}
{"index":0,"featureType":null,"prediction":483.994943457189,"threshold":null,"categories":null,"feature":null,"overflow":false}
{"index":2,"featureType":null,"prediction":476.04374262101527,"threshold":null,"categories":null,"feature":null,"overflow":false}
{"index":5,"featureType":"continuous","prediction":null,"threshold":15.475000000000001,"categories":null,"feature":0,"overflow":false}
{"index":4,"featureType":null,"prediction":467.5564649956784,"threshold":null,"categories":null,"feature":null,"overflow":false}
{"index":6,"featureType":null,"prediction":459.5010376134889,"threshold":null,"categories":null,"feature":null,"overflow":false}
{"index":11,"featureType":"continuous","prediction":null,"threshold":66.21000000000001,"categories":null,"feature":1,"overflow":false}
{"index":9,"featureType":"continuous","prediction":null,"threshold":22.055,"categories":null,"feature":0,"overflow":false}
{"index":8,"featureType":null,"prediction":452.01076923076914,"threshold":null,"categories":null,"feature":null,"overflow":false}
{"index":10,"featureType":null,"prediction":443.46937926330156,"threshold":null,"categories":null,"feature":null,"overflow":false}
{"index":13,"featureType":"continuous","prediction":null,"threshold":25.325,"categories":null,"feature":0,"overflow":false}
{"index":12,"featureType":null,"prediction":440.73731707317074,"threshold":null,"categories":null,"feature":null,"overflow":false}
{"index":14,"featureType":null,"prediction":433.86131215469624,"threshold":null,"categories":null,"feature":null,"overflow":false}

Now let's see how our DecisionTree model compares to our LinearRegression model

val predictionsAndLabels = dtModel.bestModel.transform(testSet)
val metrics = new RegressionMetrics(predictionsAndLabels.select("Predicted_PE", "PE").map(r => (r(0).asInstanceOf[Double], r(1).asInstanceOf[Double])).rdd)

val rmse = metrics.rootMeanSquaredError
val explainedVariance = metrics.explainedVariance
val r2 = metrics.r2

println (f"Root Mean Squared Error: $rmse")
println (f"Explained Variance: $explainedVariance")  
println (f"R2: $r2")
Root Mean Squared Error: 5.111944542729953
Explained Variance: 261.4355220034205
R2: 0.908560906504635
predictionsAndLabels: org.apache.spark.sql.DataFrame = [AT: double, V: double ... 5 more fields]
metrics: org.apache.spark.mllib.evaluation.RegressionMetrics = org.apache.spark.mllib.evaluation.RegressionMetrics@684c4c50
rmse: Double = 5.111944542729953
explainedVariance: Double = 261.4355220034205
r2: Double = 0.908560906504635

So our DecisionTree was slightly worse than our LinearRegression model (LR: 4.6 vs DT: 5.2). Maybe we can try an Ensemble method such as Gradient-Boosted Decision Trees to see if we can strengthen our model by using an ensemble of weaker trees with weighting to reduce the error in our model.

*Note since this is a complex model, the cell below can take about *16 minutes* or so to run on a small cluster with a couple nodes with about 6GB RAM, go out and grab a coffee and come back :-).*

This GBTRegressor code will be way faster on a larger cluster of course.

A visual explanation of gradient boosted trees:

Let's see what a boosting algorithm, a type of ensemble method, is all about in more detail.

import org.apache.spark.ml.regression.GBTRegressor

val gbt = new GBTRegressor()
gbt.setLabelCol("PE")
gbt.setPredictionCol("Predicted_PE")
gbt.setFeaturesCol("features")
gbt.setSeed(100088121L)
gbt.setMaxBins(100)
gbt.setMaxIter(120)

val gbtPipeline = new Pipeline()
gbtPipeline.setStages(Array(vectorizer, gbt))
//Let's just resuse our CrossValidator

crossval.setEstimator(gbtPipeline)

val paramGrid = new ParamGridBuilder()
  .addGrid(gbt.maxDepth, Array(2, 3))
  .build()
crossval.setEstimatorParamMaps(paramGrid)

//gbt.explainParams
val gbtModel = crossval.fit(trainingSet)
import org.apache.spark.ml.regression.GBTRegressor
gbt: org.apache.spark.ml.regression.GBTRegressor = gbtr_0a275b363831
gbtPipeline: org.apache.spark.ml.Pipeline = pipeline_8b2722444cff
paramGrid: Array[org.apache.spark.ml.param.ParamMap] =
Array({
	gbtr_0a275b363831-maxDepth: 2
}, {
	gbtr_0a275b363831-maxDepth: 3
})
gbtModel: org.apache.spark.ml.tuning.CrossValidatorModel = CrossValidatorModel: uid=cv_bc136566b6a6, bestModel=pipeline_8b2722444cff, numFolds=3
import org.apache.spark.ml.regression.GBTRegressionModel 

val predictionsAndLabels = gbtModel.bestModel.transform(testSet)
val metrics = new RegressionMetrics(predictionsAndLabels.select("Predicted_PE", "PE").map(r => (r(0).asInstanceOf[Double], r(1).asInstanceOf[Double])).rdd)

val rmse = metrics.rootMeanSquaredError
val explainedVariance = metrics.explainedVariance
val r2 = metrics.r2


println (f"Root Mean Squared Error: $rmse")
println (f"Explained Variance: $explainedVariance")  
println (f"R2: $r2")
Root Mean Squared Error: 3.7034735091301307
Explained Variance: 272.208177448154
R2: 0.9520069744321176
import org.apache.spark.ml.regression.GBTRegressionModel
predictionsAndLabels: org.apache.spark.sql.DataFrame = [AT: double, V: double ... 5 more fields]
metrics: org.apache.spark.mllib.evaluation.RegressionMetrics = org.apache.spark.mllib.evaluation.RegressionMetrics@79d7946a
rmse: Double = 3.7034735091301307
explainedVariance: Double = 272.208177448154
r2: Double = 0.9520069744321176

We can use the toDebugString method to dump out what our trees and weighting look like:

gbtModel.bestModel.asInstanceOf[PipelineModel].stages.last.asInstanceOf[GBTRegressionModel].toDebugString
res116: String =
"GBTRegressionModel: uid=gbtr_0a275b363831, numTrees=120, numFeatures=4
  Tree 0 (weight 1.0):
    If (feature 0 <= 18.595)
     If (feature 0 <= 11.885000000000002)
      If (feature 0 <= 8.575)
       Predict: 483.994943457189
      Else (feature 0 > 8.575)
       Predict: 476.04374262101527
     Else (feature 0 > 11.885000000000002)
      If (feature 0 <= 15.475000000000001)
       Predict: 467.5564649956784
      Else (feature 0 > 15.475000000000001)
       Predict: 459.5010376134889
    Else (feature 0 > 18.595)
     If (feature 1 <= 66.21000000000001)
      If (feature 0 <= 22.055)
       Predict: 452.01076923076914
      Else (feature 0 > 22.055)
       Predict: 443.46937926330156
     Else (feature 1 > 66.21000000000001)
      If (feature 0 <= 25.325)
       Predict: 440.73731707317074
      Else (feature 0 > 25.325)
       Predict: 433.86131215469624
  Tree 1 (weight 0.1):
    If (feature 3 <= 82.55000000000001)
     If (feature 0 <= 26.505000000000003)
      If (feature 3 <= 64.11500000000001)
       Predict: 6.095232469256877
      Else (feature 3 > 64.11500000000001)
       Predict: 1.4337156041793564
     Else (feature 0 > 26.505000000000003)
      If (feature 1 <= 65.55000000000001)
       Predict: -7.6527692217902885
      Else (feature 1 > 65.55000000000001)
       Predict: -0.5844786594493007
    Else (feature 3 > 82.55000000000001)
     If (feature 1 <= 45.754999999999995)
      If (feature 3 <= 93.075)
       Predict: 0.6108402960070604
      Else (feature 3 > 93.075)
       Predict: -3.913147108789527
     Else (feature 1 > 45.754999999999995)
      If (feature 0 <= 18.595)
       Predict: -9.443118256805649
      Else (feature 0 > 18.595)
       Predict: -3.9650066253122347
  Tree 2 (weight 0.1):
    If (feature 1 <= 45.754999999999995)
     If (feature 0 <= 15.475000000000001)
      If (feature 0 <= 14.285)
       Predict: 1.1090321642566017
      Else (feature 0 > 14.285)
       Predict: -3.898383406004269
     Else (feature 0 > 15.475000000000001)
      If (feature 0 <= 18.595)
       Predict: 4.874047316205584
      Else (feature 0 > 18.595)
       Predict: 10.653531335032094
    Else (feature 1 > 45.754999999999995)
     If (feature 0 <= 18.595)
      If (feature 1 <= 58.19)
       Predict: -5.0005796708960615
      Else (feature 1 > 58.19)
       Predict: -13.749053154552547
     Else (feature 0 > 18.595)
      If (feature 2 <= 1009.295)
       Predict: -3.1410617295379555
      Else (feature 2 > 1009.295)
       Predict: 0.8001319329379373
  Tree 3 (weight 0.1):
    If (feature 3 <= 85.52000000000001)
     If (feature 1 <= 55.825)
      If (feature 0 <= 26.505000000000003)
       Predict: 2.695149105254423
      Else (feature 0 > 26.505000000000003)
       Predict: -6.7564705067621675
     Else (feature 1 > 55.825)
      If (feature 1 <= 66.21000000000001)
       Predict: -2.282355645191304
      Else (feature 1 > 66.21000000000001)
       Predict: 0.5508297910243797
    Else (feature 3 > 85.52000000000001)
     If (feature 1 <= 40.629999999999995)
      If (feature 2 <= 1022.8399999999999)
       Predict: 2.236331037122985
      Else (feature 2 > 1022.8399999999999)
       Predict: -7.220151471077029
     Else (feature 1 > 40.629999999999995)
      If (feature 3 <= 89.595)
       Predict: -2.175085332960937
      Else (feature 3 > 89.595)
       Predict: -4.54715329410012
  Tree 4 (weight 0.1):
    If (feature 2 <= 1010.335)
     If (feature 1 <= 43.005)
      If (feature 0 <= 15.475000000000001)
       Predict: -0.004818717215773318
      Else (feature 0 > 15.475000000000001)
       Predict: 5.355639866401019
     Else (feature 1 > 43.005)
      If (feature 1 <= 65.15)
       Predict: -5.132340755716604
      Else (feature 1 > 65.15)
       Predict: -0.7228608840382099
    Else (feature 2 > 1010.335)
     If (feature 3 <= 74.525)
      If (feature 0 <= 29.455)
       Predict: 3.0313483965828176
      Else (feature 0 > 29.455)
       Predict: -2.560863167947768
     Else (feature 3 > 74.525)
      If (feature 1 <= 40.629999999999995)
       Predict: 2.228142113797423
      Else (feature 1 > 40.629999999999995)
       Predict: -1.6052323952407273
  Tree 5 (weight 0.1):
    If (feature 3 <= 81.045)
     If (feature 0 <= 27.585)
      If (feature 3 <= 46.92)
       Predict: 8.005444802948366
      Else (feature 3 > 46.92)
       Predict: 1.301219291279602
     Else (feature 0 > 27.585)
      If (feature 1 <= 65.55000000000001)
       Predict: -6.568175152421089
      Else (feature 1 > 65.55000000000001)
       Predict: -0.8331220915230161
    Else (feature 3 > 81.045)
     If (feature 1 <= 41.519999999999996)
      If (feature 2 <= 1019.835)
       Predict: 1.7054425589091675
      Else (feature 2 > 1019.835)
       Predict: -2.6266728146418195
     Else (feature 1 > 41.519999999999996)
      If (feature 1 <= 41.805)
       Predict: -11.130585327952137
      Else (feature 1 > 41.805)
       Predict: -2.111742422947989
  Tree 6 (weight 0.1):
    If (feature 2 <= 1009.625)
     If (feature 1 <= 43.005)
      If (feature 0 <= 15.475000000000001)
       Predict: -0.4497329015715072
      Else (feature 0 > 15.475000000000001)
       Predict: 3.661440765591046
     Else (feature 1 > 43.005)
      If (feature 1 <= 66.85499999999999)
       Predict: -3.861085082339984
      Else (feature 1 > 66.85499999999999)
       Predict: -0.7492674320362704
    Else (feature 2 > 1009.625)
     If (feature 3 <= 69.32499999999999)
      If (feature 0 <= 29.455)
       Predict: 2.621042446270476
      Else (feature 0 > 29.455)
       Predict: -1.4554021183385886
     Else (feature 3 > 69.32499999999999)
      If (feature 1 <= 58.19)
       Predict: 0.42605173456002876
      Else (feature 1 > 58.19)
       Predict: -1.9554878629891888
  Tree 7 (weight 0.1):
    If (feature 3 <= 86.625)
     If (feature 1 <= 52.795)
      If (feature 0 <= 18.595)
       Predict: 0.4988124937300424
      Else (feature 0 > 18.595)
       Predict: 4.447321094438702
     Else (feature 1 > 52.795)
      If (feature 1 <= 66.21000000000001)
       Predict: -1.721618872277871
      Else (feature 1 > 66.21000000000001)
       Predict: 0.6365209437219329
    Else (feature 3 > 86.625)
     If (feature 0 <= 6.895)
      If (feature 3 <= 87.32499999999999)
       Predict: -10.224737687790185
      Else (feature 3 > 87.32499999999999)
       Predict: 3.712660431036073
     Else (feature 0 > 6.895)
      If (feature 0 <= 8.575)
       Predict: -7.105091794629204
      Else (feature 0 > 8.575)
       Predict: -1.5060749360589718
  Tree 8 (weight 0.1):
    If (feature 2 <= 1008.745)
     If (feature 1 <= 41.665)
      If (feature 0 <= 15.475000000000001)
       Predict: 0.11492519898093705
      Else (feature 0 > 15.475000000000001)
       Predict: 3.532699993937119
     Else (feature 1 > 41.665)
      If (feature 1 <= 66.85499999999999)
       Predict: -3.366654434213031
      Else (feature 1 > 66.85499999999999)
       Predict: -0.9165259817521934
    Else (feature 2 > 1008.745)
     If (feature 3 <= 82.955)
      If (feature 1 <= 51.905)
       Predict: 1.841638760642105
      Else (feature 1 > 51.905)
       Predict: 0.33265178659776373
     Else (feature 3 > 82.955)
      If (feature 3 <= 95.68)
       Predict: -0.4850135884105616
      Else (feature 3 > 95.68)
       Predict: -3.812639024859598
  Tree 9 (weight 0.1):
    If (feature 0 <= 29.455)
     If (feature 3 <= 61.89)
      If (feature 1 <= 71.18)
       Predict: 1.9301726185107941
      Else (feature 1 > 71.18)
       Predict: 8.938327477606107
     Else (feature 3 > 61.89)
      If (feature 0 <= 5.8149999999999995)
       Predict: 4.428862111265314
      Else (feature 0 > 5.8149999999999995)
       Predict: -0.3308347482908286
    Else (feature 0 > 29.455)
     If (feature 1 <= 68.28999999999999)
      If (feature 2 <= 1009.875)
       Predict: -8.941194411728706
      Else (feature 2 > 1009.875)
       Predict: -1.8834474815204216
     Else (feature 1 > 68.28999999999999)
      If (feature 2 <= 1014.405)
       Predict: -0.5760094442636617
      Else (feature 2 > 1014.405)
       Predict: -5.50575933697771
  Tree 10 (weight 0.1):
    If (feature 2 <= 1005.345)
     If (feature 0 <= 27.355)
      If (feature 3 <= 99.3)
       Predict: -0.5544332197918127
      Else (feature 3 > 99.3)
       Predict: -6.049841121821514
     Else (feature 0 > 27.355)
      If (feature 1 <= 70.815)
       Predict: -8.03479585317622
      Else (feature 1 > 70.815)
       Predict: 0.0619269945107018
    Else (feature 2 > 1005.345)
     If (feature 3 <= 72.41499999999999)
      If (feature 0 <= 24.755000000000003)
       Predict: 2.020104454165069
      Else (feature 0 > 24.755000000000003)
       Predict: -0.22964512858748945
     Else (feature 3 > 72.41499999999999)
      If (feature 1 <= 40.7)
       Predict: 1.2987210163143512
      Else (feature 1 > 40.7)
       Predict: -0.8347660227231797
  Tree 11 (weight 0.1):
    If (feature 0 <= 5.0600000000000005)
     If (feature 1 <= 42.3)
      If (feature 1 <= 39.765)
       Predict: 4.261094449524424
      Else (feature 1 > 39.765)
       Predict: 9.140536590115639
     Else (feature 1 > 42.3)
      If (feature 2 <= 1007.835)
       Predict: 0.9746298984436711
      Else (feature 2 > 1007.835)
       Predict: -6.317973546286112
    Else (feature 0 > 5.0600000000000005)
     If (feature 3 <= 95.68)
      If (feature 2 <= 1009.295)
       Predict: -0.8626626541525325
      Else (feature 2 > 1009.295)
       Predict: 0.3906915507169364
     Else (feature 3 > 95.68)
      If (feature 0 <= 11.885000000000002)
       Predict: -6.002679638413293
      Else (feature 0 > 11.885000000000002)
       Predict: -0.7509189525586508
  Tree 12 (weight 0.1):
    If (feature 0 <= 18.595)
     If (feature 1 <= 51.905)
      If (feature 0 <= 13.695)
       Predict: 0.5958576966099496
      Else (feature 0 > 13.695)
       Predict: -1.2694566117501789
     Else (feature 1 > 51.905)
      If (feature 1 <= 58.19)
       Predict: -4.248373100253223
      Else (feature 1 > 58.19)
       Predict: -9.144729000689791
    Else (feature 0 > 18.595)
     If (feature 1 <= 47.64)
      If (feature 2 <= 1012.675)
       Predict: 0.8560563666774771
      Else (feature 2 > 1012.675)
       Predict: 10.801233083620462
     Else (feature 1 > 47.64)
      If (feature 0 <= 20.015)
       Predict: 3.1978561830060213
      Else (feature 0 > 20.015)
       Predict: -0.16716555702980626
  Tree 13 (weight 0.1):
    If (feature 0 <= 28.655)
     If (feature 1 <= 66.21000000000001)
      If (feature 1 <= 58.19)
       Predict: 0.34765099851241454
      Else (feature 1 > 58.19)
       Predict: -1.8189329025195076
     Else (feature 1 > 66.21000000000001)
      If (feature 0 <= 22.525)
       Predict: 6.490484815153365
      Else (feature 0 > 22.525)
       Predict: 0.7933381751314565
    Else (feature 0 > 28.655)
     If (feature 1 <= 68.28999999999999)
      If (feature 2 <= 1005.665)
       Predict: -8.922459399148678
      Else (feature 2 > 1005.665)
       Predict: -2.3989441108132668
     Else (feature 1 > 68.28999999999999)
      If (feature 2 <= 1018.215)
       Predict: -0.3023338438804105
      Else (feature 2 > 1018.215)
       Predict: 14.559949112833806
  Tree 14 (weight 0.1):
    If (feature 0 <= 15.475000000000001)
     If (feature 0 <= 13.695)
      If (feature 0 <= 11.885000000000002)
       Predict: -0.8897676968273979
      Else (feature 0 > 11.885000000000002)
       Predict: 3.5874467728768487
     Else (feature 0 > 13.695)
      If (feature 1 <= 46.345)
       Predict: -3.2690852418064273
      Else (feature 1 > 46.345)
       Predict: -8.844433418899179
    Else (feature 0 > 15.475000000000001)
     If (feature 1 <= 43.175)
      If (feature 1 <= 41.805)
       Predict: 3.298855216614116
      Else (feature 1 > 41.805)
       Predict: 9.150659154207167
     Else (feature 1 > 43.175)
      If (feature 2 <= 1012.495)
       Predict: -0.7109832273625656
      Else (feature 2 > 1012.495)
       Predict: 1.1631179843236674
  Tree 15 (weight 0.1):
    If (feature 3 <= 90.055)
     If (feature 0 <= 30.41)
      If (feature 1 <= 66.21000000000001)
       Predict: -0.01732155577258642
      Else (feature 1 > 66.21000000000001)
       Predict: 1.3432966941310502
     Else (feature 0 > 30.41)
      If (feature 1 <= 69.465)
       Predict: -3.6657811330207344
      Else (feature 1 > 69.465)
       Predict: -0.38803561342243853
    Else (feature 3 > 90.055)
     If (feature 2 <= 1015.725)
      If (feature 1 <= 47.64)
       Predict: 1.5063080039677825
      Else (feature 1 > 47.64)
       Predict: -1.860635777865782
     Else (feature 2 > 1015.725)
      If (feature 1 <= 40.7)
       Predict: 0.21921885078759318
      Else (feature 1 > 40.7)
       Predict: -4.793242614118129
  Tree 16 (weight 0.1):
    If (feature 0 <= 6.895)
     If (feature 3 <= 67.42500000000001)
      If (feature 1 <= 39.620000000000005)
       Predict: -1.8477082180199003
      Else (feature 1 > 39.620000000000005)
       Predict: 16.387935166882745
     Else (feature 3 > 67.42500000000001)
      If (feature 0 <= 5.0600000000000005)
       Predict: 4.152127693563297
      Else (feature 0 > 5.0600000000000005)
       Predict: 0.7556214745509566
    Else (feature 0 > 6.895)
     If (feature 0 <= 8.575)
      If (feature 2 <= 1022.8399999999999)
       Predict: -2.9436476590152036
      Else (feature 2 > 1022.8399999999999)
       Predict: -8.032234733606465
     Else (feature 0 > 8.575)
      If (feature 0 <= 9.325)
       Predict: 5.082738415532321
      Else (feature 0 > 9.325)
       Predict: -0.032287806549855816
  Tree 17 (weight 0.1):
    If (feature 3 <= 61.89)
     If (feature 0 <= 28.655)
      If (feature 0 <= 11.885000000000002)
       Predict: -4.455566502931916
      Else (feature 0 > 11.885000000000002)
       Predict: 1.9027943448616742
     Else (feature 0 > 28.655)
      If (feature 1 <= 66.21000000000001)
       Predict: -3.1810487244675034
      Else (feature 1 > 66.21000000000001)
       Predict: 0.11525363261816625
    Else (feature 3 > 61.89)
     If (feature 1 <= 43.175)
      If (feature 0 <= 18.595)
       Predict: 0.22262511130066664
      Else (feature 0 > 18.595)
       Predict: 10.13639446335034
     Else (feature 1 > 43.175)
      If (feature 0 <= 22.055)
       Predict: -1.4775024201129299
      Else (feature 0 > 22.055)
       Predict: 0.20591189539330298
  Tree 18 (weight 0.1):
    If (feature 2 <= 1005.345)
     If (feature 1 <= 70.815)
      If (feature 0 <= 23.564999999999998)
       Predict: -0.178777362918765
      Else (feature 0 > 23.564999999999998)
       Predict: -4.52113806132068
     Else (feature 1 > 70.815)
      If (feature 3 <= 60.025000000000006)
       Predict: 4.247605743793766
      Else (feature 3 > 60.025000000000006)
       Predict: -0.26865379510738685
    Else (feature 2 > 1005.345)
     If (feature 1 <= 66.21000000000001)
      If (feature 1 <= 55.825)
       Predict: 0.3773109266288433
      Else (feature 1 > 55.825)
       Predict: -1.3659380946007862
     Else (feature 1 > 66.21000000000001)
      If (feature 0 <= 21.335)
       Predict: 8.448170645066464
      Else (feature 0 > 21.335)
       Predict: 0.5048679905700459
  Tree 19 (weight 0.1):
    If (feature 0 <= 18.595)
     If (feature 1 <= 51.905)
      If (feature 0 <= 17.655)
       Predict: -0.003054757854134698
      Else (feature 0 > 17.655)
       Predict: -2.9290357116654935
     Else (feature 1 > 51.905)
      If (feature 1 <= 66.525)
       Predict: -4.061825439604536
      Else (feature 1 > 66.525)
       Predict: -11.67844591879286
    Else (feature 0 > 18.595)
     If (feature 0 <= 23.945)
      If (feature 3 <= 74.525)
       Predict: 3.807909998319029
      Else (feature 3 > 74.525)
       Predict: 0.008459259251505081
     Else (feature 0 > 23.945)
      If (feature 1 <= 74.915)
       Predict: -0.6429811796826012
      Else (feature 1 > 74.915)
       Predict: 2.099670946504916
  Tree 20 (weight 0.1):
    If (feature 0 <= 15.475000000000001)
     If (feature 0 <= 14.285)
      If (feature 0 <= 11.885000000000002)
       Predict: -0.7234702732306101
      Else (feature 0 > 11.885000000000002)
       Predict: 1.589299673192479
     Else (feature 0 > 14.285)
      If (feature 2 <= 1016.495)
       Predict: -2.4381805412578545
      Else (feature 2 > 1016.495)
       Predict: -6.544687605774689
    Else (feature 0 > 15.475000000000001)
     If (feature 1 <= 43.005)
      If (feature 2 <= 1008.405)
       Predict: 0.8119248626873221
      Else (feature 2 > 1008.405)
       Predict: 5.506769369239865
     Else (feature 1 > 43.005)
      If (feature 2 <= 1012.935)
       Predict: -0.5028175384892806
      Else (feature 2 > 1012.935)
       Predict: 1.0290531238165197
  Tree 21 (weight 0.1):
    If (feature 0 <= 6.895)
     If (feature 3 <= 67.42500000000001)
      If (feature 1 <= 39.620000000000005)
       Predict: -0.9752219334588972
      Else (feature 1 > 39.620000000000005)
       Predict: 13.369575512848845
     Else (feature 3 > 67.42500000000001)
      If (feature 1 <= 42.705)
       Predict: 1.850492181024754
      Else (feature 1 > 42.705)
       Predict: -2.033710059657357
    Else (feature 0 > 6.895)
     If (feature 0 <= 8.575)
      If (feature 2 <= 1022.8399999999999)
       Predict: -2.256120115332435
      Else (feature 2 > 1022.8399999999999)
       Predict: -6.380948299395909
     Else (feature 0 > 8.575)
      If (feature 0 <= 9.594999999999999)
       Predict: 3.4448565562285904
      Else (feature 0 > 9.594999999999999)
       Predict: -0.05858832726578875
  Tree 22 (weight 0.1):
    If (feature 0 <= 22.055)
     If (feature 0 <= 21.095)
      If (feature 1 <= 66.21000000000001)
       Predict: -0.17987193554240402
      Else (feature 1 > 66.21000000000001)
       Predict: 6.044335675519052
     Else (feature 0 > 21.095)
      If (feature 1 <= 66.21000000000001)
       Predict: -5.809637597188877
      Else (feature 1 > 66.21000000000001)
       Predict: 2.7761443044302214
    Else (feature 0 > 22.055)
     If (feature 0 <= 23.564999999999998)
      If (feature 1 <= 64.74000000000001)
       Predict: 5.951769778696803
      Else (feature 1 > 64.74000000000001)
       Predict: -0.30197045172071896
     Else (feature 0 > 23.564999999999998)
      If (feature 1 <= 44.519999999999996)
       Predict: -7.283292958317056
      Else (feature 1 > 44.519999999999996)
       Predict: -0.19387573131258415
  Tree 23 (weight 0.1):
    If (feature 3 <= 53.025000000000006)
     If (feature 0 <= 24.945)
      If (feature 0 <= 18.29)
       Predict: 1.0381040338364682
      Else (feature 0 > 18.29)
       Predict: 5.164469183375362
     Else (feature 0 > 24.945)
      If (feature 1 <= 66.21000000000001)
       Predict: -1.0707595335847206
      Else (feature 1 > 66.21000000000001)
       Predict: 0.8108674466901084
    Else (feature 3 > 53.025000000000006)
     If (feature 1 <= 73.725)
      If (feature 1 <= 71.505)
       Predict: -0.0525992725981239
      Else (feature 1 > 71.505)
       Predict: -2.807221561152817
     Else (feature 1 > 73.725)
      If (feature 2 <= 1017.295)
       Predict: 1.037788102485777
      Else (feature 2 > 1017.295)
       Predict: 7.287181806639116
  Tree 24 (weight 0.1):
    If (feature 2 <= 1004.505)
     If (feature 1 <= 70.815)
      If (feature 1 <= 59.144999999999996)
       Predict: -0.3743851611431973
      Else (feature 1 > 59.144999999999996)
       Predict: -4.648812647772385
     Else (feature 1 > 70.815)
      If (feature 0 <= 27.884999999999998)
       Predict: 2.4545579195950995
      Else (feature 0 > 27.884999999999998)
       Predict: -0.32777974793969294
    Else (feature 2 > 1004.505)
     If (feature 0 <= 22.055)
      If (feature 0 <= 20.795)
       Predict: 0.045218490740101897
      Else (feature 0 > 20.795)
       Predict: -3.3620385127109333
     Else (feature 0 > 22.055)
      If (feature 0 <= 22.955)
       Predict: 4.485324626081587
      Else (feature 0 > 22.955)
       Predict: 0.13166549369330485
  Tree 25 (weight 0.1):
    If (feature 0 <= 18.595)
     If (feature 1 <= 58.19)
      If (feature 0 <= 17.655)
       Predict: -0.023636417468335308
      Else (feature 0 > 17.655)
       Predict: -2.607492744918568
     Else (feature 1 > 58.19)
      If (feature 1 <= 66.525)
       Predict: -4.8994505786627665
      Else (feature 1 > 66.525)
       Predict: -10.07085237281708
    Else (feature 0 > 18.595)
     If (feature 0 <= 19.725)
      If (feature 1 <= 66.21000000000001)
       Predict: 2.2716539497960406
      Else (feature 1 > 66.21000000000001)
       Predict: 13.879740983230867
     Else (feature 0 > 19.725)
      If (feature 1 <= 43.005)
       Predict: 5.616411926544602
      Else (feature 1 > 43.005)
       Predict: -0.00532316539213451
  Tree 26 (weight 0.1):
    If (feature 3 <= 93.075)
     If (feature 1 <= 55.825)
      If (feature 0 <= 22.055)
       Predict: 0.15441544139943786
      Else (feature 0 > 22.055)
       Predict: 2.7626508552722306
     Else (feature 1 > 55.825)
      If (feature 1 <= 66.21000000000001)
       Predict: -1.2060290652635515
      Else (feature 1 > 66.21000000000001)
       Predict: 0.4827535356971057
    Else (feature 3 > 93.075)
     If (feature 2 <= 1015.725)
      If (feature 0 <= 7.34)
       Predict: 4.241421869391143
      Else (feature 0 > 7.34)
       Predict: -0.704916847045625
     Else (feature 2 > 1015.725)
      If (feature 0 <= 11.885000000000002)
       Predict: -5.4904249010577795
      Else (feature 0 > 11.885000000000002)
       Predict: 0.0976872424106726
  Tree 27 (weight 0.1):
    If (feature 2 <= 1008.745)
     If (feature 1 <= 41.665)
      If (feature 1 <= 39.765)
       Predict: -1.0511879426704696
      Else (feature 1 > 39.765)
       Predict: 1.894883627758776
     Else (feature 1 > 41.665)
      If (feature 1 <= 41.805)
       Predict: -13.576686832482961
      Else (feature 1 > 41.805)
       Predict: -0.7168167899342832
    Else (feature 2 > 1008.745)
     If (feature 0 <= 15.475000000000001)
      If (feature 0 <= 13.695)
       Predict: 0.303140697564446
      Else (feature 0 > 13.695)
       Predict: -2.8034862119109945
     Else (feature 0 > 15.475000000000001)
      If (feature 1 <= 55.825)
       Predict: 2.0736158373993576
      Else (feature 1 > 55.825)
       Predict: -0.03336709818500243
  Tree 28 (weight 0.1):
    If (feature 2 <= 1001.785)
     If (feature 3 <= 69.86500000000001)
      If (feature 1 <= 69.465)
       Predict: -7.299995136853619
      Else (feature 1 > 69.465)
       Predict: 0.23757420536270835
     Else (feature 3 > 69.86500000000001)
      If (feature 0 <= 7.34)
       Predict: 3.4313360513286284
      Else (feature 0 > 7.34)
       Predict: -1.276734468456009
    Else (feature 2 > 1001.785)
     If (feature 0 <= 11.885000000000002)
      If (feature 0 <= 11.335)
       Predict: 0.04499264982858887
      Else (feature 0 > 11.335)
       Predict: -6.156735713959919
     Else (feature 0 > 11.885000000000002)
      If (feature 0 <= 12.715)
       Predict: 4.4864210547378915
      Else (feature 0 > 12.715)
       Predict: 0.030721690290287165
  Tree 29 (weight 0.1):
    If (feature 1 <= 66.21000000000001)
     If (feature 0 <= 26.505000000000003)
      If (feature 0 <= 22.055)
       Predict: -0.3694472776628706
      Else (feature 0 > 22.055)
       Predict: 1.5208925945902059
     Else (feature 0 > 26.505000000000003)
      If (feature 1 <= 43.510000000000005)
       Predict: -17.99975152056241
      Else (feature 1 > 43.510000000000005)
       Predict: -2.4033598663496183
    Else (feature 1 > 66.21000000000001)
     If (feature 0 <= 22.055)
      If (feature 0 <= 18.595)
       Predict: -7.600012529438
      Else (feature 0 > 18.595)
       Predict: 6.469471961408998
     Else (feature 0 > 22.055)
      If (feature 0 <= 25.325)
       Predict: -2.6540186758683166
      Else (feature 0 > 25.325)
       Predict: 0.9869775581610103
  Tree 30 (weight 0.1):
    If (feature 0 <= 5.0600000000000005)
     If (feature 1 <= 42.3)
      If (feature 3 <= 95.68)
       Predict: 2.6307256050737506
      Else (feature 3 > 95.68)
       Predict: 7.168878406232186
     Else (feature 1 > 42.3)
      If (feature 2 <= 1007.835)
       Predict: -0.1884983669158752
      Else (feature 2 > 1007.835)
       Predict: -5.920088632100639
    Else (feature 0 > 5.0600000000000005)
     If (feature 1 <= 37.815)
      If (feature 0 <= 11.885000000000002)
       Predict: -3.8096010917307517
      Else (feature 0 > 11.885000000000002)
       Predict: 3.5943708074284917
     Else (feature 1 > 37.815)
      If (feature 1 <= 41.519999999999996)
       Predict: 0.6752927073561888
      Else (feature 1 > 41.519999999999996)
       Predict: -0.14342050966250913
  Tree 31 (weight 0.1):
    If (feature 3 <= 99.3)
     If (feature 0 <= 31.155)
      If (feature 3 <= 46.92)
       Predict: 2.011051499336945
      Else (feature 3 > 46.92)
       Predict: 0.012791339921714258
     Else (feature 0 > 31.155)
      If (feature 2 <= 1014.405)
       Predict: -0.916397796921109
      Else (feature 2 > 1014.405)
       Predict: -6.832504867736499
    Else (feature 3 > 99.3)
     If (feature 1 <= 39.765)
      If (feature 1 <= 38.41)
       Predict: -5.505405887296888
      Else (feature 1 > 38.41)
       Predict: -16.748187635942333
     Else (feature 1 > 39.765)
      If (feature 0 <= 16.04)
       Predict: 0.7708563952983728
      Else (feature 0 > 16.04)
       Predict: -3.909609799859729
  Tree 32 (weight 0.1):
    If (feature 1 <= 66.21000000000001)
     If (feature 1 <= 64.74000000000001)
      If (feature 2 <= 1011.515)
       Predict: -1.0002623040885374
      Else (feature 2 > 1011.515)
       Predict: 0.3591184679910596
     Else (feature 1 > 64.74000000000001)
      If (feature 2 <= 1006.775)
       Predict: -13.788703659238209
      Else (feature 2 > 1006.775)
       Predict: -2.4620285364725656
    Else (feature 1 > 66.21000000000001)
     If (feature 1 <= 69.09)
      If (feature 0 <= 22.525)
       Predict: 6.088217885246919
      Else (feature 0 > 22.525)
       Predict: 1.0364537580784474
     Else (feature 1 > 69.09)
      If (feature 0 <= 25.325)
       Predict: -2.7946704533493856
      Else (feature 0 > 25.325)
       Predict: 0.6607665941219878
  Tree 33 (weight 0.1):
    If (feature 2 <= 1028.14)
     If (feature 0 <= 29.455)
      If (feature 1 <= 66.21000000000001)
       Predict: -0.08158010506593574
      Else (feature 1 > 66.21000000000001)
       Predict: 0.8815313937000332
     Else (feature 0 > 29.455)
      If (feature 1 <= 44.519999999999996)
       Predict: -12.581939252812768
      Else (feature 1 > 44.519999999999996)
       Predict: -0.77008278158028
    Else (feature 2 > 1028.14)
     If (feature 0 <= 8.575)
      If (feature 1 <= 39.45)
       Predict: 0.6766771966451415
      Else (feature 1 > 39.45)
       Predict: -8.445008186341592
     Else (feature 0 > 8.575)
      If (feature 0 <= 8.96)
       Predict: 3.777292703648982
      Else (feature 0 > 8.96)
       Predict: -2.398045803854934
  Tree 34 (weight 0.1):
    If (feature 0 <= 6.895)
     If (feature 3 <= 67.42500000000001)
      If (feature 1 <= 39.620000000000005)
       Predict: -0.6804590872791323
      Else (feature 1 > 39.620000000000005)
       Predict: 10.518093452986212
     Else (feature 3 > 67.42500000000001)
      If (feature 1 <= 42.705)
       Predict: 1.3098801739379287
      Else (feature 1 > 42.705)
       Predict: -1.7450883352732074
    Else (feature 0 > 6.895)
     If (feature 0 <= 8.575)
      If (feature 0 <= 7.765)
       Predict: -0.7816329288490581
      Else (feature 0 > 7.765)
       Predict: -3.7319393815256547
     Else (feature 0 > 8.575)
      If (feature 0 <= 9.965)
       Predict: 2.5600814387681337
      Else (feature 0 > 9.965)
       Predict: -0.06944896856946733
  Tree 35 (weight 0.1):
    If (feature 3 <= 61.89)
     If (feature 1 <= 39.34)
      If (feature 0 <= 16.695)
       Predict: -4.078381955056753
      Else (feature 0 > 16.695)
       Predict: -16.616821684050763
     Else (feature 1 > 39.34)
      If (feature 1 <= 40.82)
       Predict: 4.4394084324272045
      Else (feature 1 > 40.82)
       Predict: 0.4663514281701948
    Else (feature 3 > 61.89)
     If (feature 1 <= 58.19)
      If (feature 0 <= 22.055)
       Predict: -0.027831559557693095
      Else (feature 0 > 22.055)
       Predict: 2.492136574233702
     Else (feature 1 > 58.19)
      If (feature 0 <= 18.595)
       Predict: -4.183073089901298
      Else (feature 0 > 18.595)
       Predict: -0.40866909936948326
  Tree 36 (weight 0.1):
    If (feature 2 <= 1004.505)
     If (feature 1 <= 38.754999999999995)
      If (feature 3 <= 77.195)
       Predict: 9.579430817769946
      Else (feature 3 > 77.195)
       Predict: 2.6305173165509195
     Else (feature 1 > 38.754999999999995)
      If (feature 1 <= 70.065)
       Predict: -1.801035005150415
      Else (feature 1 > 70.065)
       Predict: 0.4054557218074593
    Else (feature 2 > 1004.505)
     If (feature 2 <= 1017.475)
      If (feature 1 <= 43.175)
       Predict: 1.09341093192285
      Else (feature 1 > 43.175)
       Predict: -0.03229585395374685
     Else (feature 2 > 1017.475)
      If (feature 2 <= 1019.365)
       Predict: -1.7719467091167656
      Else (feature 2 > 1019.365)
       Predict: 0.2537098831339789
  Tree 37 (weight 0.1):
    If (feature 0 <= 15.475000000000001)
     If (feature 0 <= 13.695)
      If (feature 0 <= 11.885000000000002)
       Predict: -0.5104239863875834
      Else (feature 0 > 11.885000000000002)
       Predict: 2.1202163252308432
     Else (feature 0 > 13.695)
      If (feature 3 <= 78.38499999999999)
       Predict: -3.379040627299855
      Else (feature 3 > 78.38499999999999)
       Predict: -0.9911440360990582
    Else (feature 0 > 15.475000000000001)
     If (feature 0 <= 16.395)
      If (feature 3 <= 67.42500000000001)
       Predict: 0.4887402058080506
      Else (feature 3 > 67.42500000000001)
       Predict: 3.884289185845989
     Else (feature 0 > 16.395)
      If (feature 2 <= 1020.565)
       Predict: -0.02862374251288089
      Else (feature 2 > 1020.565)
       Predict: 3.15734851002617
  Tree 38 (weight 0.1):
    If (feature 3 <= 43.385)
     If (feature 0 <= 24.945)
      If (feature 2 <= 1014.405)
       Predict: 1.603183026814036
      Else (feature 2 > 1014.405)
       Predict: 7.05673098720603
     Else (feature 0 > 24.945)
      If (feature 0 <= 26.295)
       Predict: -5.886157652325024
      Else (feature 0 > 26.295)
       Predict: 0.7387886738447553
    Else (feature 3 > 43.385)
     If (feature 1 <= 73.725)
      If (feature 1 <= 71.505)
       Predict: 0.008754170391068655
      Else (feature 1 > 71.505)
       Predict: -2.0178119354056765
     Else (feature 1 > 73.725)
      If (feature 1 <= 77.42)
       Predict: 1.8396223170900134
      Else (feature 1 > 77.42)
       Predict: -1.5747478023010713
  Tree 39 (weight 0.1):
    If (feature 0 <= 22.055)
     If (feature 0 <= 20.795)
      If (feature 0 <= 18.595)
       Predict: -0.25201916420658693
      Else (feature 0 > 18.595)
       Predict: 1.5718496558845116
     Else (feature 0 > 20.795)
      If (feature 1 <= 66.21000000000001)
       Predict: -3.7201562729508804
      Else (feature 1 > 66.21000000000001)
       Predict: 2.087916157719636
    Else (feature 0 > 22.055)
     If (feature 0 <= 23.564999999999998)
      If (feature 2 <= 1012.015)
       Predict: 0.7371264627237751
      Else (feature 2 > 1012.015)
       Predict: 4.6381746481309065
     Else (feature 0 > 23.564999999999998)
      If (feature 1 <= 44.519999999999996)
       Predict: -5.772062593218147
      Else (feature 1 > 44.519999999999996)
       Predict: -0.12977023255758624
  Tree 40 (weight 0.1):
    If (feature 0 <= 5.0600000000000005)
     If (feature 3 <= 95.68)
      If (feature 2 <= 1011.105)
       Predict: -3.365769010003795
      Else (feature 2 > 1011.105)
       Predict: 2.955050770650336
     Else (feature 3 > 95.68)
      If (feature 2 <= 1008.205)
       Predict: 2.728200788704399
      Else (feature 2 > 1008.205)
       Predict: 6.919382935391042
    Else (feature 0 > 5.0600000000000005)
     If (feature 3 <= 96.61)
      If (feature 1 <= 37.815)
       Predict: -1.3949762323292278
      Else (feature 1 > 37.815)
       Predict: 0.06411431759031856
     Else (feature 3 > 96.61)
      If (feature 0 <= 11.605)
       Predict: -3.491961189446582
      Else (feature 0 > 11.605)
       Predict: -0.16406940197018208
  Tree 41 (weight 0.1):
    If (feature 0 <= 30.41)
     If (feature 1 <= 66.21000000000001)
      If (feature 1 <= 58.85)
       Predict: 0.15540001609212736
      Else (feature 1 > 58.85)
       Predict: -1.1352706510871309
     Else (feature 1 > 66.21000000000001)
      If (feature 0 <= 25.325)
       Predict: -0.6390388689881783
      Else (feature 0 > 25.325)
       Predict: 1.3909471658872326
    Else (feature 0 > 30.41)
     If (feature 2 <= 1014.405)
      If (feature 1 <= 56.894999999999996)
       Predict: -9.841212730443857
      Else (feature 1 > 56.894999999999996)
       Predict: -0.5054201979116707
     Else (feature 2 > 1014.405)
      If (feature 1 <= 74.915)
       Predict: -5.898616989217175
      Else (feature 1 > 74.915)
       Predict: 1.042314191558674
  Tree 42 (weight 0.1):
    If (feature 2 <= 1009.625)
     If (feature 1 <= 43.005)
      If (feature 1 <= 42.025000000000006)
       Predict: -0.05077288158998095
      Else (feature 1 > 42.025000000000006)
       Predict: 3.619244461816007
     Else (feature 1 > 43.005)
      If (feature 0 <= 18.595)
       Predict: -3.5057172058309307
      Else (feature 0 > 18.595)
       Predict: -0.32537979322253646
    Else (feature 2 > 1009.625)
     If (feature 2 <= 1017.475)
      If (feature 1 <= 55.825)
       Predict: 0.8076710222538108
      Else (feature 1 > 55.825)
       Predict: -0.01784249647067053
     Else (feature 2 > 1017.475)
      If (feature 2 <= 1019.365)
       Predict: -1.4312272708033218
      Else (feature 2 > 1019.365)
       Predict: 0.20844195286029432
  Tree 43 (weight 0.1):
    If (feature 0 <= 18.595)
     If (feature 0 <= 17.655)
      If (feature 0 <= 15.475000000000001)
       Predict: -0.2913115404147692
      Else (feature 0 > 15.475000000000001)
       Predict: 1.1145997107947745
     Else (feature 0 > 17.655)
      If (feature 1 <= 37.815)
       Predict: 14.538914074443028
      Else (feature 1 > 37.815)
       Predict: -3.0407663665320683
    Else (feature 0 > 18.595)
     If (feature 2 <= 1020.325)
      If (feature 1 <= 43.175)
       Predict: 3.881117973012625
      Else (feature 1 > 43.175)
       Predict: 0.04538590552170286
     Else (feature 2 > 1020.325)
      If (feature 1 <= 64.74000000000001)
       Predict: 4.662857871344832
      Else (feature 1 > 64.74000000000001)
       Predict: -43.5190245896606
  Tree 44 (weight 0.1):
    If (feature 0 <= 6.895)
     If (feature 3 <= 67.42500000000001)
      If (feature 1 <= 39.620000000000005)
       Predict: -0.7153417257252007
      Else (feature 1 > 39.620000000000005)
       Predict: 8.417772324738223
     Else (feature 3 > 67.42500000000001)
      If (feature 2 <= 1010.985)
       Predict: 2.5111312207852263
      Else (feature 2 > 1010.985)
       Predict: 0.29950092637128345
    Else (feature 0 > 6.895)
     If (feature 0 <= 8.575)
      If (feature 1 <= 40.06)
       Predict: -3.30672576579827
      Else (feature 1 > 40.06)
       Predict: -0.45097750406116727
     Else (feature 0 > 8.575)
      If (feature 0 <= 9.325)
       Predict: 3.226884779601992
      Else (feature 0 > 9.325)
       Predict: -0.041218673012550146
  Tree 45 (weight 0.1):
    If (feature 2 <= 1028.14)
     If (feature 0 <= 10.395)
      If (feature 3 <= 92.22999999999999)
       Predict: 1.0355113706204075
      Else (feature 3 > 92.22999999999999)
       Predict: -1.4603765116034264
     Else (feature 0 > 10.395)
      If (feature 0 <= 11.885000000000002)
       Predict: -2.630098257038007
      Else (feature 0 > 11.885000000000002)
       Predict: 0.09582680902226459
    Else (feature 2 > 1028.14)
     If (feature 0 <= 8.575)
      If (feature 1 <= 39.45)
       Predict: 1.107359449029309
      Else (feature 1 > 39.45)
       Predict: -6.096185488604492
     Else (feature 0 > 8.575)
      If (feature 3 <= 70.57499999999999)
       Predict: -3.516006231223605
      Else (feature 3 > 70.57499999999999)
       Predict: -0.26144006873351155
  Tree 46 (weight 0.1):
    If (feature 0 <= 27.884999999999998)
     If (feature 1 <= 66.21000000000001)
      If (feature 0 <= 25.145)
       Predict: 0.06412914679730906
      Else (feature 0 > 25.145)
       Predict: -1.554041618425865
     Else (feature 1 > 66.21000000000001)
      If (feature 0 <= 25.325)
       Predict: -0.4748636523867588
      Else (feature 0 > 25.325)
       Predict: 2.4595627925276826
    Else (feature 0 > 27.884999999999998)
     If (feature 3 <= 61.89)
      If (feature 1 <= 71.895)
       Predict: -0.4429995884239883
      Else (feature 1 > 71.895)
       Predict: 1.4321627506429122
     Else (feature 3 > 61.89)
      If (feature 1 <= 71.505)
       Predict: -0.2617373838209719
      Else (feature 1 > 71.505)
       Predict: -2.637373068367584
  Tree 47 (weight 0.1):
    If (feature 3 <= 61.89)
     If (feature 1 <= 39.34)
      If (feature 0 <= 16.695)
       Predict: -2.855821258258964
      Else (feature 0 > 16.695)
       Predict: -13.80709248590955
     Else (feature 1 > 39.34)
      If (feature 1 <= 74.915)
       Predict: 0.35443616318343385
      Else (feature 1 > 74.915)
       Predict: 2.9400682899293233
    Else (feature 3 > 61.89)
     If (feature 1 <= 71.505)
      If (feature 1 <= 66.85499999999999)
       Predict: -0.142107366817925
      Else (feature 1 > 66.85499999999999)
       Predict: 1.0352328327059535
     Else (feature 1 > 71.505)
      If (feature 1 <= 73.00999999999999)
       Predict: -2.947898208728739
      Else (feature 1 > 73.00999999999999)
       Predict: -0.0830706492691125
  Tree 48 (weight 0.1):
    If (feature 2 <= 1004.505)
     If (feature 1 <= 38.754999999999995)
      If (feature 3 <= 86.625)
       Predict: 4.921331281961159
      Else (feature 3 > 86.625)
       Predict: -5.961237317667383
     Else (feature 1 > 38.754999999999995)
      If (feature 1 <= 39.765)
       Predict: -4.436072018762161
      Else (feature 1 > 39.765)
       Predict: -0.7283906418193187
    Else (feature 2 > 1004.505)
     If (feature 0 <= 22.055)
      If (feature 0 <= 20.795)
       Predict: 0.044899959208437666
      Else (feature 0 > 20.795)
       Predict: -2.2295677836603995
     Else (feature 0 > 22.055)
      If (feature 0 <= 23.564999999999998)
       Predict: 2.3559950404053414
      Else (feature 0 > 23.564999999999998)
       Predict: -0.06950420285239005
  Tree 49 (weight 0.1):
    If (feature 1 <= 41.435)
     If (feature 0 <= 11.885000000000002)
      If (feature 0 <= 11.335)
       Predict: -0.02697483446966382
      Else (feature 0 > 11.335)
       Predict: -3.7031660865730367
     Else (feature 0 > 11.885000000000002)
      If (feature 0 <= 13.265)
       Predict: 4.209724879257512
      Else (feature 0 > 13.265)
       Predict: 0.41602586770224464
    Else (feature 1 > 41.435)
     If (feature 1 <= 41.805)
      If (feature 3 <= 89.595)
       Predict: -1.6099299736449546
      Else (feature 3 > 89.595)
       Predict: -9.419799062932288
     Else (feature 1 > 41.805)
      If (feature 1 <= 43.175)
       Predict: 1.5951066240527068
      Else (feature 1 > 43.175)
       Predict: -0.11481901338423915
  Tree 50 (weight 0.1):
    If (feature 1 <= 38.41)
     If (feature 0 <= 11.885000000000002)
      If (feature 2 <= 1016.665)
       Predict: -5.344526613859499
      Else (feature 2 > 1016.665)
       Predict: 0.058134490545794976
     Else (feature 0 > 11.885000000000002)
      If (feature 0 <= 16.985)
       Predict: 1.537246393097642
      Else (feature 0 > 16.985)
       Predict: 9.920778277565365
    Else (feature 1 > 38.41)
     If (feature 0 <= 13.485)
      If (feature 1 <= 51.045)
       Predict: 0.6675749827847329
      Else (feature 1 > 51.045)
       Predict: -5.737026170963195
     Else (feature 0 > 13.485)
      If (feature 0 <= 15.475000000000001)
       Predict: -1.7210713764803844
      Else (feature 0 > 15.475000000000001)
       Predict: 0.09027853735147576
  Tree 51 (weight 0.1):
    If (feature 0 <= 31.155)
     If (feature 3 <= 48.230000000000004)
      If (feature 2 <= 1020.325)
       Predict: 0.9307527734280435
      Else (feature 2 > 1020.325)
       Predict: 9.070547343579028
     Else (feature 3 > 48.230000000000004)
      If (feature 1 <= 73.725)
       Predict: -0.06359121142988887
      Else (feature 1 > 73.725)
       Predict: 1.049949579330099
    Else (feature 0 > 31.155)
     If (feature 1 <= 63.08)
      If (feature 1 <= 44.519999999999996)
       Predict: -6.355864033256125
      Else (feature 1 > 44.519999999999996)
       Predict: 13.6760008529786
     Else (feature 1 > 63.08)
      If (feature 1 <= 68.28999999999999)
       Predict: -3.953494984806905
      Else (feature 1 > 68.28999999999999)
       Predict: -0.6145841300086397
  Tree 52 (weight 0.1):
    If (feature 2 <= 1012.495)
     If (feature 1 <= 41.435)
      If (feature 1 <= 39.975)
       Predict: -0.4047468839922722
      Else (feature 1 > 39.975)
       Predict: 2.509624688414308
     Else (feature 1 > 41.435)
      If (feature 1 <= 41.805)
       Predict: -6.811044477667833
      Else (feature 1 > 41.805)
       Predict: -0.26889174065489546
    Else (feature 2 > 1012.495)
     If (feature 3 <= 92.22999999999999)
      If (feature 1 <= 58.19)
       Predict: 0.7048711166950787
      Else (feature 1 > 58.19)
       Predict: -0.5475390646726656
     Else (feature 3 > 92.22999999999999)
      If (feature 1 <= 41.805)
       Predict: -3.7013459723577355
      Else (feature 1 > 41.805)
       Predict: 0.7237930378019226
  Tree 53 (weight 0.1):
    If (feature 0 <= 18.595)
     If (feature 0 <= 17.335)
      If (feature 3 <= 74.08500000000001)
       Predict: -0.8631764946312587
      Else (feature 3 > 74.08500000000001)
       Predict: 0.2803856631344212
     Else (feature 0 > 17.335)
      If (feature 1 <= 42.705)
       Predict: 0.9335711174385192
      Else (feature 1 > 42.705)
       Predict: -2.950020164379197
    Else (feature 0 > 18.595)
     If (feature 2 <= 1013.395)
      If (feature 1 <= 66.85499999999999)
       Predict: -0.7231135633124072
      Else (feature 1 > 66.85499999999999)
       Predict: 0.41724670068145925
     Else (feature 2 > 1013.395)
      If (feature 1 <= 58.19)
       Predict: 4.568024116358373
      Else (feature 1 > 58.19)
       Predict: -0.36270787813043714
  Tree 54 (weight 0.1):
    If (feature 2 <= 1001.785)
     If (feature 3 <= 63.575)
      If (feature 3 <= 60.025000000000006)
       Predict: -1.7427137986580719
      Else (feature 3 > 60.025000000000006)
       Predict: -7.776342039375448
     Else (feature 3 > 63.575)
      If (feature 0 <= 27.119999999999997)
       Predict: 0.026174663094801796
      Else (feature 0 > 27.119999999999997)
       Predict: -2.343138620856655
    Else (feature 2 > 1001.785)
     If (feature 0 <= 22.055)
      If (feature 1 <= 66.21000000000001)
       Predict: -0.27236570115397085
      Else (feature 1 > 66.21000000000001)
       Predict: 3.164590339421908
     Else (feature 0 > 22.055)
      If (feature 0 <= 22.725)
       Predict: 2.9597120242025485
      Else (feature 0 > 22.725)
       Predict: 0.054881549113388446
  Tree 55 (weight 0.1):
    If (feature 2 <= 1028.14)
     If (feature 1 <= 45.754999999999995)
      If (feature 0 <= 26.715)
       Predict: 0.2599176823406179
      Else (feature 0 > 26.715)
       Predict: -5.549910372715466
     Else (feature 1 > 45.754999999999995)
      If (feature 0 <= 15.475000000000001)
       Predict: -2.867925531108855
      Else (feature 0 > 15.475000000000001)
       Predict: -0.0236838100703647
    Else (feature 2 > 1028.14)
     If (feature 0 <= 8.575)
      If (feature 1 <= 39.45)
       Predict: 0.7777761733424086
      Else (feature 1 > 39.45)
       Predict: -5.202001886405932
     Else (feature 0 > 8.575)
      If (feature 3 <= 68.945)
       Predict: -3.641368616696809
      Else (feature 3 > 68.945)
       Predict: -0.6008141057791702
  Tree 56 (weight 0.1):
    If (feature 3 <= 61.89)
     If (feature 0 <= 18.29)
      If (feature 2 <= 1019.025)
       Predict: -2.1632736300070996
      Else (feature 2 > 1019.025)
       Predict: 1.2430029950309498
     Else (feature 0 > 18.29)
      If (feature 1 <= 44.91)
       Predict: 3.2134324628571003
      Else (feature 1 > 44.91)
       Predict: 0.2988556025240279
    Else (feature 3 > 61.89)
     If (feature 1 <= 71.505)
      If (feature 1 <= 66.85499999999999)
       Predict: -0.09866504525517336
      Else (feature 1 > 66.85499999999999)
       Predict: 0.7271499788275563
     Else (feature 1 > 71.505)
      If (feature 1 <= 73.00999999999999)
       Predict: -2.395971400707892
      Else (feature 1 > 73.00999999999999)
       Predict: -0.16608323426526406
  Tree 57 (weight 0.1):
    If (feature 2 <= 1017.645)
     If (feature 2 <= 1014.615)
      If (feature 1 <= 43.175)
       Predict: 1.0389282601473917
      Else (feature 1 > 43.175)
       Predict: -0.3646675630154698
     Else (feature 2 > 1014.615)
      If (feature 1 <= 43.510000000000005)
       Predict: -0.6889797697082773
      Else (feature 1 > 43.510000000000005)
       Predict: 1.5908362409321974
    Else (feature 2 > 1017.645)
     If (feature 2 <= 1019.025)
      If (feature 1 <= 71.18)
       Predict: -1.6569133708803008
      Else (feature 1 > 71.18)
       Predict: 4.314967971455512
     Else (feature 2 > 1019.025)
      If (feature 3 <= 89.595)
       Predict: 0.43765066032139976
      Else (feature 3 > 89.595)
       Predict: -1.7344432288008194
  Tree 58 (weight 0.1):
    If (feature 2 <= 1004.505)
     If (feature 1 <= 70.815)
      If (feature 1 <= 59.834999999999994)
       Predict: -0.170418541124326
      Else (feature 1 > 59.834999999999994)
       Predict: -2.895038840312831
     Else (feature 1 > 70.815)
      If (feature 2 <= 1000.505)
       Predict: -1.3832637115340176
      Else (feature 2 > 1000.505)
       Predict: 1.2249185299155396
    Else (feature 2 > 1004.505)
     If (feature 0 <= 22.055)
      If (feature 1 <= 66.21000000000001)
       Predict: -0.2418541439735617
      Else (feature 1 > 66.21000000000001)
       Predict: 3.0110894160107886
     Else (feature 0 > 22.055)
      If (feature 0 <= 23.945)
       Predict: 1.4999960684883906
      Else (feature 0 > 23.945)
       Predict: -0.042407486119460915
  Tree 59 (weight 0.1):
    If (feature 1 <= 77.42)
     If (feature 1 <= 74.915)
      If (feature 1 <= 71.505)
       Predict: 0.03983464447255206
      Else (feature 1 > 71.505)
       Predict: -0.7683021525819648
     Else (feature 1 > 74.915)
      If (feature 3 <= 72.82)
       Predict: 2.774179202497669
      Else (feature 3 > 72.82)
       Predict: -0.32979787820368633
    Else (feature 1 > 77.42)
     If (feature 0 <= 21.595)
      If (feature 0 <= 21.335)
       Predict: -13.565760771414489
      Else (feature 0 > 21.335)
       Predict: -13.954507897669714
     Else (feature 0 > 21.595)
      If (feature 0 <= 22.955)
       Predict: 10.853700477067264
      Else (feature 0 > 22.955)
       Predict: -1.4643467280880287
  Tree 60 (weight 0.1):
    If (feature 0 <= 10.395)
     If (feature 1 <= 40.629999999999995)
      If (feature 3 <= 75.545)
       Predict: -2.3127871072788375
      Else (feature 3 > 75.545)
       Predict: 0.3992391857664209
     Else (feature 1 > 40.629999999999995)
      If (feature 3 <= 89.595)
       Predict: 2.9152362525803523
      Else (feature 3 > 89.595)
       Predict: -1.4086879927580456
    Else (feature 0 > 10.395)
     If (feature 0 <= 11.885000000000002)
      If (feature 2 <= 1025.2150000000001)
       Predict: -2.2352340341897547
      Else (feature 2 > 1025.2150000000001)
       Predict: 5.952010328542228
     Else (feature 0 > 11.885000000000002)
      If (feature 0 <= 12.415)
       Predict: 3.4957190546300447
      Else (feature 0 > 12.415)
       Predict: -0.03992973893781255
  Tree 61 (weight 0.1):
    If (feature 1 <= 40.82)
     If (feature 1 <= 40.224999999999994)
      If (feature 3 <= 75.545)
       Predict: -1.2944988036912455
      Else (feature 3 > 75.545)
       Predict: 0.44866615475817667
     Else (feature 1 > 40.224999999999994)
      If (feature 2 <= 1025.2150000000001)
       Predict: 0.7826360308981203
      Else (feature 2 > 1025.2150000000001)
       Predict: 9.875672812487991
    Else (feature 1 > 40.82)
     If (feature 2 <= 1025.2150000000001)
      If (feature 0 <= 10.945)
       Predict: 1.1628421208118285
      Else (feature 0 > 10.945)
       Predict: -0.12551627485602937
     Else (feature 2 > 1025.2150000000001)
      If (feature 1 <= 41.15)
       Predict: -7.782369290305258
      Else (feature 1 > 41.15)
       Predict: -1.200273276366743
  Tree 62 (weight 0.1):
    If (feature 0 <= 22.055)
     If (feature 0 <= 21.335)
      If (feature 1 <= 66.21000000000001)
       Predict: -0.09621281022933233
      Else (feature 1 > 66.21000000000001)
       Predict: 2.680549669942832
     Else (feature 0 > 21.335)
      If (feature 1 <= 63.864999999999995)
       Predict: -3.207766197974041
      Else (feature 1 > 63.864999999999995)
       Predict: -0.14162445042909583
    Else (feature 0 > 22.055)
     If (feature 0 <= 22.725)
      If (feature 2 <= 1011.515)
       Predict: 0.5064350504779975
      Else (feature 2 > 1011.515)
       Predict: 3.659612527058891
     Else (feature 0 > 22.725)
      If (feature 3 <= 75.545)
       Predict: 0.2595183211083464
      Else (feature 3 > 75.545)
       Predict: -0.6564588168227348
  Tree 63 (weight 0.1):
    If (feature 2 <= 1017.645)
     If (feature 1 <= 44.67)
      If (feature 1 <= 44.13)
       Predict: 0.3869693354075677
      Else (feature 1 > 44.13)
       Predict: 4.723132901950317
     Else (f...

Conclusion

Wow! So our best model is in fact our Gradient Boosted Decision tree model which uses an ensemble of 120 Trees with a depth of 3 to construct a better model than the single decision tree.

Step 8: Deployment will be done later

Now that we have a predictive model it is time to deploy the model into an operational environment.

In our example, let's say we have a series of sensors attached to the power plant and a monitoring station.

The monitoring station will need close to real-time information about how much power that their station will generate so they can relay that to the utility.

For this we need to create a Spark Streaming utility that we can use for this purpose. For this you need to be introduced to basic concepts in Spark Streaming first. See http://spark.apache.org/docs/latest/streaming-programming-guide.html if you can't wait!

After deployment you will be able to use the best predictions from gradient boosed regression trees to feed a real-time dashboard or feed the utility with information on how much power the peaker plant will deliver give current conditions.

Persisting Statistical Machine Learning Models

See https://databricks.com/blog/2016/05/31/apache-spark-2-0-preview-machine-learning-model-persistence.html

Let's save our best model so we can load it without having to rerun the validation and training again.

gbtModel
res117: org.apache.spark.ml.tuning.CrossValidatorModel = CrossValidatorModel: uid=cv_bc136566b6a6, bestModel=pipeline_8b2722444cff, numFolds=3
gbtModel.bestModel.asInstanceOf[PipelineModel]
        .write.overwrite().save("/databricks/driver/MyTrainedBestPipelineModel")

When it is time to deploy the trained model to serve predicitons, we can simply reload this model and proceed as shown later.

This is one of the Deploymnet Patterns for Serving a Model's Prediction.

See: https://learning.oreilly.com/library/view/spark-the-definitive/9781491912201/ch24.html#deployment-patterns

Datasource References:

  • Pinar Tüfekci, Prediction of full load electrical power output of a base load operated combined cycle power plant using machine learning methods, International Journal of Electrical Power & Energy Systems, Volume 60, September 2014, Pages 126-140, ISSN 0142-0615, Web Link
  • Heysem Kaya, Pinar Tüfekci , Sadik Fikret Gürgen: Local and Global Learning Methods for Predicting Power of a Combined Gas & Steam Turbine, Proceedings of the International Conference on Emerging Trends in Computer and Electronics Engineering ICETCEE 2012, pp. 13-18 (Mar. 2012, Dubai) Web Link

ScaDaMaLe Course site and book

Community Packages in Spark - more generally

Let us recall the following quoate in Chapter 10 of High Performance Spark book (needs access to Orielly publishers via your library/subscription): - https://learning.oreilly.com/library/view/high-performance-spark/9781491943199/ch10.html#components

Beyond the integrated components, the community packages can add important functionality to Spark, sometimes even superseding built-in functionality—like with GraphFrames.

Here we introduce you to GraphFrames quickly so you don't need to drop down to the GraphX library that requires more understanding of caching and checkpointing to keep the vertex program's DAG from exploding or becoming inefficient.

GraphFrames User Guide (Scala)

GraphFrames is a package for Apache Spark which provides DataFrame-based Graphs. It provides high-level APIs in Scala, Java, and Python. It aims to provide both the functionality of GraphX and extended functionality taking advantage of Spark DataFrames. This extended functionality includes motif finding, DataFrame-based serialization, and highly expressive graph queries.

The GraphFrames package is available from Spark Packages.

This notebook demonstrates examples from the GraphFrames User Guide: https://graphframes.github.io/graphframes/docs/_site/user-guide.html.

sc.version // link the right library depending on Spark version of the cluster that's running
// spark version 2.3.0 works with graphframes:graphframes:0.7.0-spark2.3-s_2.11
// spark version 3.0.1 works with graphframes:graphframes:0.8.1-spark3.0-s_2.12
res1: String = 3.2.1

Since databricks.com stopped allowing IFrame embeds we have to open it in a separate window now. The blog is insightful and worth a perusal:

  • https://databricks.com/blog/2016/03/03/introducing-graphframes.html
// we first need to install the library - graphframes as a Spark package - and attach it to our cluster - see note two cells above!
import org.apache.spark.sql._
import org.apache.spark.sql.functions._

import org.graphframes._
import org.apache.spark.sql._
import org.apache.spark.sql.functions._
import org.graphframes._

Creating GraphFrames

Let us try to create an example social network from the blog: * https://databricks.com/blog/2016/03/03/introducing-graphframes.html.

Users can create GraphFrames from vertex and edge DataFrames.

  • Vertex DataFrame: A vertex DataFrame should contain a special column named id which specifies unique IDs for each vertex in the graph.
  • Edge DataFrame: An edge DataFrame should contain two special columns: src (source vertex ID of edge) and dst (destination vertex ID of edge).

Both DataFrames can have arbitrary other columns. Those columns can represent vertex and edge attributes.

In our example, we can use a GraphFrame can store data or properties associated with each vertex and edge.

In our social network, each user might have an age and name, and each connection might have a relationship type.

Create the vertices and edges

// Vertex DataFrame
val v = sqlContext.createDataFrame(List(
  ("a", "Alice", 34),
  ("b", "Bob", 36),
  ("c", "Charlie", 30),
  ("d", "David", 29),
  ("e", "Esther", 32),
  ("f", "Fanny", 36),
  ("g", "Gabby", 60)
)).toDF("id", "name", "age")

// Edge DataFrame
val e = sqlContext.createDataFrame(List(
  ("a", "b", "friend"),
  ("b", "c", "follow"),
  ("c", "b", "follow"),
  ("f", "c", "follow"),
  ("e", "f", "follow"),
  ("e", "d", "friend"),
  ("d", "a", "friend"),
  ("a", "e", "friend")
)).toDF("src", "dst", "relationship")
v: org.apache.spark.sql.DataFrame = [id: string, name: string ... 1 more field]
e: org.apache.spark.sql.DataFrame = [src: string, dst: string ... 1 more field]

Let's create a graph from these vertices and these edges:

val g = GraphFrame(v, e)
g: org.graphframes.GraphFrame = GraphFrame(v:[id: string, name: string ... 1 more field], e:[src: string, dst: string ... 1 more field])

Let's use the d3.graphs to visualise graphs (recall the D3 graphs in wiki-click example). You need the Run Cell below using that cell's Play button's drop-down menu.

Warning: classes defined within packages cannot be redefined without a cluster restart.
Compilation successful.
d3.graphs.help()

Produces a force-directed graph given a collection of edges of the following form:
case class Edge(src: String, dest: String, count: Long)

Usage:
import d3._
graphs.force(
  height = 500,
  width = 500,
  clicks: Dataset[Edge])

import org.apache.spark.sql.functions.lit // import the lit function in sql
val gE= g.edges.select($"src", $"dst".as("dest"), lit(1L).as("count")) // for us the column count is just an edge incidence
import org.apache.spark.sql.functions.lit
gE: org.apache.spark.sql.DataFrame = [src: string, dest: string ... 1 more field]
display(gE)
src dest count
a b 1.0
b c 1.0
c b 1.0
f c 1.0
e f 1.0
e d 1.0
d a 1.0
a e 1.0
d3.graphs.force(
  height = 500,
  width = 500,
  clicks = gE.as[d3.Edge])

// This example graph also comes with the GraphFrames package.
val g0 = examples.Graphs.friends
g0: org.graphframes.GraphFrame = GraphFrame(v:[id: string, name: string ... 1 more field], e:[src: string, dst: string ... 1 more field])
d3.graphs.force( // let us see g0 now in one cell
  height = 500,
  width = 500,
  clicks = g0.edges.select($"src", $"dst".as("dest"), lit(1L).as("count")).as[d3.Edge])

Basic graph and DataFrame queries

GraphFrames provide several simple graph queries, such as node degree.

Also, since GraphFrames represent graphs as pairs of vertex and edge DataFrames, it is easy to make powerful queries directly on the vertex and edge DataFrames. Those DataFrames are made available as vertices and edges fields in the GraphFrame.

Simple queries are simple

GraphFrames make it easy to express queries over graphs. Since GraphFrame vertices and edges are stored as DataFrames, many queries are just DataFrame (or SQL) queries.

display(g.vertices)
id name age
a Alice 34.0
b Bob 36.0
c Charlie 30.0
d David 29.0
e Esther 32.0
f Fanny 36.0
g Gabby 60.0
display(g0.vertices) // this is the same query on the graph loaded as an example from GraphFrame package
id name age
a Alice 34.0
b Bob 36.0
c Charlie 30.0
d David 29.0
e Esther 32.0
f Fanny 36.0
g Gabby 60.0
display(g.edges)
src dst relationship
a b friend
b c follow
c b follow
f c follow
e f follow
e d friend
d a friend
a e friend

The incoming degree of the vertices:

display(g.inDegrees)
id inDegree
c 2.0
b 2.0
f 1.0
e 1.0
d 1.0
a 1.0

The outgoing degree of the vertices:

display(g.outDegrees)
id outDegree
f 1.0
c 1.0
b 1.0
a 2.0
e 2.0
d 1.0

The degree of the vertices:

display(g.degrees)
id degree
f 2.0
c 3.0
b 3.0
a 3.0
e 3.0
d 2.0

You can run queries directly on the vertices DataFrame. For example, we can find the age of the youngest person in the graph:

val youngest = g.vertices.groupBy().min("age")
display(youngest)
min(age)
29.0

Likewise, you can run queries on the edges DataFrame.

For example, let us count the number of 'follow' relationships in the graph:

val numFollows = g.edges.filter("relationship = 'follow'").count()
numFollows: Long = 4

Motif finding

More complex relationships involving edges and vertices can be built using motifs.

The following cell finds the pairs of vertices with edges in both directions between them.

The result is a dataframe, in which the column names are given by the motif keys.

Check out the GraphFrame User Guide at https://graphframes.github.io/graphframes/docs/_site/user-guide.html for more details on the API.

// Search for pairs of vertices with edges in both directions between them, i.e., find undirected or bidirected edges.
val motifs = g.find("(a)-[e1]->(b); (b)-[e2]->(a)")
display(motifs)

Since the result is a DataFrame, more complex queries can be built on top of the motif.

Let us find all the reciprocal relationships in which one person is older than 30:

val filtered = motifs.filter("b.age > 30")
display(filtered)

You Try!

//Search for all "directed triangles" or triplets of vertices: a,b,c with edges: a->b, b->c and c->a
//uncomment the next 2 lines and replace the "XXX" below
//val motifs3 = g.find("(a)-[e1]->(b); (b)-[e2]->(c); (c)-[e3]->(XXX)")
//display(motifs3)

Stateful queries

Many motif queries are stateless and simple to express, as in the examples above. The next examples demonstrate more complex queries which carry state along a path in the motif. These queries can be expressed by combining GraphFrame motif finding with filters on the result, where the filters use sequence operations to construct a series of DataFrame Columns.

For example, suppose one wishes to identify a chain of 4 vertices with some property defined by a sequence of functions. That is, among chains of 4 vertices a->b->c->d, identify the subset of chains matching this complex filter:

  • Initialize state on path.
  • Update state based on vertex a.
  • Update state based on vertex b.
  • Etc. for c and d.
  • If final state matches some condition, then the chain is accepted by the filter.

The below code snippets demonstrate this process, where we identify chains of 4 vertices such that at least 2 of the 3 edges are friend relationships. In this example, the state is the current count of friend edges; in general, it could be any DataFrame Column.

// Find chains of 4 vertices.
val chain4 = g.find("(a)-[ab]->(b); (b)-[bc]->(c); (c)-[cd]->(d)")

// Query on sequence, with state (cnt)
//  (a) Define method for updating state given the next element of the motif.
def sumFriends(cnt: Column, relationship: Column): Column = {
  when(relationship === "friend", cnt + 1).otherwise(cnt)
}
//  (b) Use sequence operation to apply method to sequence of elements in motif.
//      In this case, the elements are the 3 edges.
val condition = Seq("ab", "bc", "cd").
  foldLeft(lit(0))((cnt, e) => sumFriends(cnt, col(e)("relationship")))
//  (c) Apply filter to DataFrame.
val chainWith2Friends2 = chain4.where(condition >= 2)
display(chainWith2Friends2)
chain4
res22: org.apache.spark.sql.DataFrame = [a: struct<id: string, name: string ... 1 more field>, ab: struct<src: string, dst: string ... 1 more field> ... 5 more fields]
chain4.printSchema
root
 |-- a: struct (nullable = false)
 |    |-- id: string (nullable = true)
 |    |-- name: string (nullable = true)
 |    |-- age: integer (nullable = false)
 |-- ab: struct (nullable = false)
 |    |-- src: string (nullable = true)
 |    |-- dst: string (nullable = true)
 |    |-- relationship: string (nullable = true)
 |-- b: struct (nullable = false)
 |    |-- id: string (nullable = true)
 |    |-- name: string (nullable = true)
 |    |-- age: integer (nullable = false)
 |-- bc: struct (nullable = false)
 |    |-- src: string (nullable = true)
 |    |-- dst: string (nullable = true)
 |    |-- relationship: string (nullable = true)
 |-- c: struct (nullable = false)
 |    |-- id: string (nullable = true)
 |    |-- name: string (nullable = true)
 |    |-- age: integer (nullable = false)
 |-- cd: struct (nullable = false)
 |    |-- src: string (nullable = true)
 |    |-- dst: string (nullable = true)
 |    |-- relationship: string (nullable = true)
 |-- d: struct (nullable = false)
 |    |-- id: string (nullable = true)
 |    |-- name: string (nullable = true)
 |    |-- age: integer (nullable = false)

An idea -- a diatribe into an AI security product.

Can you think of a way to use stateful queries in social media networks to find perpetrators of hate-speech online who are possibly worthy of an investigation by domain experts, say in the intelligence or security domain, for potential prosecution on charges of having incited another person to cause physical violence... This is a real problem today as Swedish law effectively prohibits certain forms of online hate-speech.

An idea for a product that can be used by Swedish security agencies?

See https://näthatsgranskaren.se/ for details of a non-profit in Sweden doing such operaitons mostly manually as of early 2020.

Subgraphs

Subgraphs are built by filtering a subset of edges and vertices. For example, the following subgraph only contains people who are friends and who are more than 30 years old.

// Select subgraph of users older than 30, and edges of type "friend"
val v2 = g.vertices.filter("age > 30")
val e2 = g.edges.filter("relationship = 'friend'")
val g2 = GraphFrame(v2, e2)
v2: org.apache.spark.sql.Dataset[org.apache.spark.sql.Row] = [id: string, name: string ... 1 more field]
e2: org.apache.spark.sql.Dataset[org.apache.spark.sql.Row] = [src: string, dst: string ... 1 more field]
g2: org.graphframes.GraphFrame = GraphFrame(v:[id: string, name: string ... 1 more field], e:[src: string, dst: string ... 1 more field])
display(g2.vertices)
id name age
a Alice 34.0
b Bob 36.0
e Esther 32.0
f Fanny 36.0
g Gabby 60.0
display(g2.edges)
src dst relationship
a b friend
e d friend
d a friend
a e friend
d3.graphs.force( // let us see g2 now in one cell
  height = 500,
  width = 500,
  clicks = g2.edges.select($"src", $"dst".as("dest"), lit(1L).as("count")).as[d3.Edge])

Complex triplet filters

The following example shows how to select a subgraph based upon triplet filters which operate on:

  • an edge and
  • its src and
  • dst vertices.

This example could be extended to go beyond triplets by using more complex motifs.

// Select subgraph based on edges "e" of type "follow"
// pointing from a younger user "a" to an older user "b".
val paths = g.find("(a)-[e]->(b)")
  .filter("e.relationship = 'follow'")
  .filter("a.age < b.age")
// "paths" contains vertex info. Extract the edges.
val e2 = paths.select("e.src", "e.dst", "e.relationship")
// In Spark 1.5+, the user may simplify this call:
//  val e2 = paths.select("e.*")

// Construct the subgraph
val g2 = GraphFrame(g.vertices, e2)
paths: org.apache.spark.sql.Dataset[org.apache.spark.sql.Row] = [a: struct<id: string, name: string ... 1 more field>, e: struct<src: string, dst: string ... 1 more field> ... 1 more field]
e2: org.apache.spark.sql.DataFrame = [src: string, dst: string ... 1 more field]
g2: org.graphframes.GraphFrame = GraphFrame(v:[id: string, name: string ... 1 more field], e:[src: string, dst: string ... 1 more field])
display(g2.vertices)
id name age
a Alice 34.0
b Bob 36.0
c Charlie 30.0
d David 29.0
e Esther 32.0
f Fanny 36.0
g Gabby 60.0
display(g2.edges)
src dst relationship
c b follow
e f follow

Standard graph algorithms in GraphX conveniently via GraphFrames

GraphFrames comes with a number of standard graph algorithms built in:

  • Breadth-first search (BFS)
  • Connected components
  • Strongly connected components
  • Label Propagation Algorithm (LPA)
  • PageRank
  • Shortest paths
  • Triangle count

Read

https://graphframes.github.io/graphframes/docs/_site/user-guide.html

Search from "Esther" for users of age < 32.

// Search from "Esther" for users of age <= 32.
val paths: DataFrame = g.bfs.fromExpr("name = 'Esther'").toExpr("age < 32").run()
display(paths)
val paths: DataFrame = g.bfs.fromExpr("name = 'Esther' OR name = 'Bob'").toExpr("age < 32").run()
display(paths)

The search may also be limited by edge filters and maximum path lengths.

val filteredPaths = g.bfs.fromExpr("name = 'Esther'").toExpr("age < 32")
  .edgeFilter("relationship != 'friend'")
  .maxPathLength(3)
  .run()
display(filteredPaths)

Connected components

Compute the connected component membership of each vertex and return a graph with each vertex assigned a component ID.

READ https://graphframes.github.io/graphframes/docs/_site/user-guide.html#connected-components.

From https://graphframes.github.io/graphframes/docs/_site/user-guide.html#connected-components:-

NOTE: With GraphFrames 0.3.0 and later releases, the default Connected Components algorithm requires setting a Spark checkpoint directory. Users can revert to the old algorithm using .setAlgorithm("graphx").

Recall the following quote from Chapter 5 on Effective Transformations of the High Performance Spark Book why one needs to check-point to keep the RDD lineage DAGs from growing too large.

Types of Reuse: Cache, Persist, Checkpoint, Shuffle Files If you decide that you need to reuse your RDD, Spark provides a multitude of options for how to store the RDD. Thus it is important to understand when to use the various types of persistence.There are three primary operations that you can use to store your RDD: cache, persist, and checkpoint. In general, caching (equivalent to persisting with the in-memory storage) and persisting are most useful to avoid recomputation during one Spark job or to break RDDs with long lineages, since they keep an RDD on the executors during a Spark job. Checkpointing is most useful to prevent failures and a high cost of recomputation by saving intermediate results. Like persisting, checkpointing helps avoid computation, thus minimizing the cost of failure, and avoids recomputation by breaking the lineage graph.

sc.setCheckpointDir("/_checkpoint") // just a directory in distributed file system
val result = g.connectedComponents.run() 
display(result)
id name age component
a Alice 34.0 4.12316860416e11
b Bob 36.0 4.12316860416e11
c Charlie 30.0 4.12316860416e11
d David 29.0 4.12316860416e11
e Esther 32.0 4.12316860416e11
f Fanny 36.0 4.12316860416e11
g Gabby 60.0 1.46028888064e11

Fun Exercise: Try to modify the d3.graph function to allow a visualisation of a given Sequence of component ids in the above result.

Strongly connected components

Compute the strongly connected component (SCC) of each vertex and return a graph with each vertex assigned to the SCC containing that vertex.

READ https://graphframes.github.io/graphframes/docs/_site/user-guide.html#strongly-connected-components.

val result = g.stronglyConnectedComponents.maxIter(10).run()
display(result.orderBy("component"))
id name age component
g Gabby 60.0 1.46028888064e11
f Fanny 36.0 4.12316860416e11
a Alice 34.0 6.70014898176e11
e Esther 32.0 6.70014898176e11
d David 29.0 6.70014898176e11
b Bob 36.0 1.047972020224e12
c Charlie 30.0 1.047972020224e12

Label propagation

Run static Label Propagation Algorithm for detecting communities in networks.

Each node in the network is initially assigned to its own community. At every superstep, nodes send their community affiliation to all neighbors and update their state to the mode community affiliation of incoming messages.

LPA is a standard community detection algorithm for graphs. It is very inexpensive computationally, although

  • (1) convergence is not guaranteed and
  • (2) one can end up with trivial solutions (all nodes are identified into a single community).

READ: https://graphframes.github.io/graphframes/docs/_site/user-guide.html#label-propagation-algorithm-lpa.

val result = g.labelPropagation.maxIter(5).run()
display(result.orderBy("label"))
id name age label
g Gabby 60.0 1.46028888064e11
b Bob 36.0 1.047972020224e12
e Esther 32.0 1.382979469312e12
a Alice 34.0 1.382979469312e12
c Charlie 30.0 1.382979469312e12
f Fanny 36.0 1.46028888064e12
d David 29.0 1.46028888064e12

PageRank

Identify important vertices in a graph based on connections.

READ: https://graphframes.github.io/graphframes/docs/_site/user-guide.html#pagerank.

// Run PageRank until convergence to tolerance "tol".
val results = g.pageRank.resetProbability(0.15).tol(0.01).run()
display(results.vertices)
id name age pagerank
b Bob 36.0 2.655507832863289
e Esther 32.0 0.37085233187676075
a Alice 34.0 0.44910633706538744
f Fanny 36.0 0.3283606792049851
g Gabby 60.0 0.1799821386239711
d David 29.0 0.3283606792049851
c Charlie 30.0 2.6878300011606218
display(results.edges)
src dst relationship weight
f c follow 1.0
e f follow 0.5
e d friend 0.5
d a friend 1.0
c b follow 1.0
b c follow 1.0
a e friend 0.5
a b friend 0.5
// Run PageRank for a fixed number of iterations.
val results2 = g.pageRank.resetProbability(0.15).maxIter(10).run()
display(results2.vertices)
id name age pagerank
b Bob 36.0 2.7025217677349773
e Esther 32.0 0.3613490987992571
a Alice 34.0 0.4485115093698443
f Fanny 36.0 0.32504910549694244
g Gabby 60.0 0.17073170731707318
d David 29.0 0.32504910549694244
c Charlie 30.0 2.6667877057849627
// Run PageRank personalized for vertex "a"
val results3 = g.pageRank.resetProbability(0.15).maxIter(10).sourceId("a").run()
display(results3.vertices)
id name age pagerank
b Bob 36.0 0.3366143039702568
e Esther 32.0 7.657840357273027e-2
a Alice 34.0 0.17710831642683564
f Fanny 36.0 3.189213697274781e-2
g Gabby 60.0 0.0
d David 29.0 3.189213697274781e-2
c Charlie 30.0 0.3459147020846817

Shortest paths

Computes shortest paths to the given set of landmark vertices, where landmarks are specified by vertex ID.

READ https://graphframes.github.io/graphframes/docs/_site/user-guide.html#shortest-paths.

val paths = g.shortestPaths.landmarks(Seq("a", "d")).run()
display(paths)
g.edges.show()
+---+---+------------+
|src|dst|relationship|
+---+---+------------+
|  a|  b|      friend|
|  b|  c|      follow|
|  c|  b|      follow|
|  f|  c|      follow|
|  e|  f|      follow|
|  e|  d|      friend|
|  d|  a|      friend|
|  a|  e|      friend|
+---+---+------------+

Triangle count

Computes the number of triangles passing through each vertex.

val results = g.triangleCount.run()
display(results)
count id name age
1.0 a Alice 34.0
0.0 b Bob 36.0
0.0 c Charlie 30.0
1.0 d David 29.0
1.0 e Esther 32.0
0.0 f Fanny 36.0
0.0 g Gabby 60.0

YouTry

Read about https://graphframes.github.io/graphframes/docs/_site/user-guide.html#message-passing-via-aggregatemessages

and undestand how the below code snippet shows how to use aggregateMessages to compute the sum of the ages of adjacent users.

import org.graphframes.{examples,GraphFrame}
import org.graphframes.lib.AggregateMessages
val g: GraphFrame = examples.Graphs.friends  // get example graph

// We will use AggregateMessages utilities later, so name it "AM" for short.
val AM = AggregateMessages

// For each user, sum the ages of the adjacent users.
val msgToSrc = AM.dst("age")
val msgToDst = AM.src("age")
val agg = { g.aggregateMessages
  .sendToSrc(msgToSrc)  // send destination user's age to source
  .sendToDst(msgToDst)  // send source user's age to destination
  .agg(sum(AM.msg).as("summedAges")) } // sum up ages, stored in AM.msg column
agg.show()
+---+----------+
| id|summedAges|
+---+----------+
|  a|        97|
|  c|       108|
|  e|        99|
|  d|        66|
|  b|        94|
|  f|        62|
+---+----------+

import org.graphframes.{examples, GraphFrame}
import org.graphframes.lib.AggregateMessages
g: org.graphframes.GraphFrame = GraphFrame(v:[id: string, name: string ... 1 more field], e:[src: string, dst: string ... 1 more field])
AM: org.graphframes.lib.AggregateMessages.type = org.graphframes.lib.AggregateMessages$@706833c8
msgToSrc: org.apache.spark.sql.Column = dst[age]
msgToDst: org.apache.spark.sql.Column = src[age]
agg: org.apache.spark.sql.DataFrame = [id: string, summedAges: bigint]

There is a lot more that can be done with aggregate messaging - let's get into belief propogation algorithm for a more complex example!

Belief propogation is a powerful computational framework for Graphical Models.

as

This provides a template for building customized BP algorithms for different types of graphical models.

Project Idea

Understand parallel belief propagation using colored fields in the Scala code linked above and also pasted below in one cell (for you to modify if you want to do it in a databricks or jupyter or zeppelin notebook) unless you want to fork and extend the github repo directly with your own example.

Then use it with necessary adaptations to be able to model your favorite interacting particle system. Don't just redo the Ising model done there!

This can be used to gain intuition for various real-world scenarios, including the mathematics in your head:

  • Make a graph for contact network of a set of hosts
  • A simple model of COVID spreading in an SI or SIS or SIR or other epidemic models
    • this can be abstract and simply show your skills in programming, say create a random network
    • or be more explicit with some assumptions about the contact process (population sampled, in one or two cities, with some assumptions on contacts during transportation, school, work, etc)
    • show that you have a fully scalable simulation model that can theoretically scale to billions of hosts

The project does not have to be a recommendation to Swedish authorities! Just a start in the right direction, for instance.

Some readings that can help here include the following and references therein:

  • The Transmission Process: A Combinatorial Stochastic Process for the Evolution of Transmission Trees over Networks, Raazesh Sainudiin and David Welch, Journal of Theoretical Biology, Volume 410, Pages 137–170, 10.1016/j.jtbi.2016.07.038, 2016.

Other Project Ideas

  • try to do a scalable inference algorithm for one of the graphical models that you already know...
  • make a large simulaiton of your favourite Finite Markov Information Exchange (FMIE) process defined by Aldous (see reference in the above linked paper)
  • anything else that fancies you or your research orientation/interests and can benefit from adapting the template for the parallel belief propagation algorithm here.

If you want to do this project in databricks (or other) notebook then start by modifying the following code from the example and making it run... Then adapt... start in small steps... make a team with fellow students with complementary skills...

/*
 * Licensed to the Apache Software Foundation (ASF) under one or more
 * contributor license agreements.  See the NOTICE file distributed with
 * this work for additional information regarding copyright ownership.
 * The ASF licenses this file to You under the Apache License, Version 2.0
 * (the "License"); you may not use this file except in compliance with
 * the License.  You may obtain a copy of the License at
 *
 *    http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package org.graphframes.examples

import org.apache.spark.{SparkConf, SparkContext}
import org.apache.spark.graphx.{Graph, VertexRDD, Edge => GXEdge}
import org.apache.spark.sql.{Column, Row, SparkSession, SQLContext}
import org.apache.spark.sql.functions.{col, lit, sum, udf, when}

import org.graphframes.GraphFrame
import org.graphframes.examples.Graphs.gridIsingModel
import org.graphframes.lib.AggregateMessages


/**
 * Example code for Belief Propagation (BP)
 *
 * This provides a template for building customized BP algorithms for different types of
 * graphical models.
 *
 * This example:
 *  - Ising model on a grid
 *  - Parallel Belief Propagation using colored fields
 *
 * Ising models are probabilistic graphical models over binary variables x,,i,,.
 * Each binary variable x,,i,, corresponds to one vertex, and it may take values -1 or +1.
 * The probability distribution P(X) (over all x,,i,,) is parameterized by vertex factors a,,i,,
 * and edge factors b,,ij,,:
 * {{{
 *  P(X) = (1/Z) * exp[ \sum_i a_i x_i + \sum_{ij} b_{ij} x_i x_j ]
 * }}}
 * where Z is the normalization constant (partition function).
 * See [[https://en.wikipedia.org/wiki/Ising_model Wikipedia]] for more information on Ising models.
 *
 * Belief Propagation (BP) provides marginal probabilities of the values of the variables x,,i,,,
 * i.e., P(x,,i,,) for each i.  This allows a user to understand likely values of variables.
 * See [[https://en.wikipedia.org/wiki/Belief_propagation Wikipedia]] for more information on BP.
 *
 * We use a batch synchronous BP algorithm, where batches of vertices are updated synchronously.
 * We follow the mean field update algorithm in Slide 13 of the
 * [[http://www.eecs.berkeley.edu/~wainwrig/Talks/A_GraphModel_Tutorial  talk slides]] from:
 *  Wainwright. "Graphical models, message-passing algorithms, and convex optimization."
 *
 * The batches are chosen according to a coloring.  For background on graph colorings for inference,
 * see for example:
 *  Gonzalez et al. "Parallel Gibbs Sampling: From Colored Fields to Thin Junction Trees."
 *  AISTATS, 2011.
 *
 * The BP algorithm works by:
 *  - Coloring the graph by assigning a color to each vertex such that no neighboring vertices
 *    share the same color.
 *  - In each step of BP, update all vertices of a single color.  Alternate colors.
 */
object BeliefPropagation {

  def main(args: Array[String]): Unit = {
    val spark = SparkSession
      .builder()
      .appName("BeliefPropagation example")
      .getOrCreate()

    val sql = spark.sqlContext

    // Create graphical model g of size 3 x 3.
    val g = gridIsingModel(sql, 3)

    println("Original Ising model:")
    g.vertices.show()
    g.edges.show()

    // Run BP for 5 iterations.
    val numIter = 5
    val results = runBPwithGraphX(g, numIter)

    // Display beliefs.
    val beliefs = results.vertices.select("id", "belief")
    println(s"Done with BP. Final beliefs after $numIter iterations:")
    beliefs.show()

    spark.stop()
  }

  /**
   * Given a GraphFrame, choose colors for each vertex.  No neighboring vertices will share the
   * same color.  The number of colors is minimized.
   *
   * This is written specifically for grid graphs. For non-grid graphs, it should be generalized,
   * such as by using a greedy coloring scheme.
   *
   * @param g  Grid graph generated by [[org.graphframes.examples.Graphs.gridIsingModel()]]
   * @return  Same graph, but with a new vertex column "color" of type Int (0 or 1)
   */
  private def colorGraph(g: GraphFrame): GraphFrame = {
    val colorUDF = udf { (i: Int, j: Int) => (i + j) % 2 }
    val v = g.vertices.withColumn("color", colorUDF(col("i"), col("j")))
    GraphFrame(v, g.edges)
  }

  /**
   * Run Belief Propagation.
   *
   * This implementation of BP shows how to use GraphX's aggregateMessages method.
   * It is simple to convert to and from GraphX format.  This method does the following:
   *  - Color GraphFrame vertices for BP scheduling.
   *  - Convert GraphFrame to GraphX format.
   *  - Run BP using GraphX's aggregateMessages API.
   *  - Augment the original GraphFrame with the BP results (vertex beliefs).
   *
   * @param g  Graphical model created by `org.graphframes.examples.Graphs.gridIsingModel()`
   * @param numIter  Number of iterations of BP to run.  One iteration includes updating each
   *                 vertex's belief once.
   * @return  Same graphical model, but with [[GraphFrame.vertices]] augmented with a new column
   *          "belief" containing P(x,,i,, = +1), the marginal probability of vertex i taking
   *          value +1 instead of -1.
   */
  def runBPwithGraphX(g: GraphFrame, numIter: Int): GraphFrame = {
    // Choose colors for vertices for BP scheduling.
    val colorG = colorGraph(g)
    val numColors: Int = colorG.vertices.select("color").distinct.count().toInt

    // Convert GraphFrame to GraphX, and initialize beliefs.
    val gx0 = colorG.toGraphX
    // Schema maps for extracting attributes
    val vColsMap = colorG.vertexColumnMap
    val eColsMap = colorG.edgeColumnMap
    // Convert vertex attributes to nice case classes.
    val gx1: Graph[VertexAttr, Row] = gx0.mapVertices { case (_, attr) =>
      // Initialize belief at 0.0
      VertexAttr(attr.getDouble(vColsMap("a")), 0.0, attr.getInt(vColsMap("color")))
    }
    // Convert edge attributes to nice case classes.
    val extractEdgeAttr: (GXEdge[Row] => EdgeAttr) = { e =>
      EdgeAttr(e.attr.getDouble(eColsMap("b")))
    }
    var gx: Graph[VertexAttr, EdgeAttr] = gx1.mapEdges(extractEdgeAttr)

    // Run BP for numIter iterations.
    for (iter <- Range(0, numIter)) {
      // For each color, have that color receive messages from neighbors.
      for (color <- Range(0, numColors)) {
        // Send messages to vertices of the current color.
        val msgs: VertexRDD[Double] = gx.aggregateMessages(
          ctx =>
            // Can send to source or destination since edges are treated as undirected.
            if (ctx.dstAttr.color == color) {
              val msg = ctx.attr.b * ctx.srcAttr.belief
              // Only send message if non-zero.
              if (msg != 0) ctx.sendToDst(msg)
            } else if (ctx.srcAttr.color == color) {
              val msg = ctx.attr.b * ctx.dstAttr.belief
              // Only send message if non-zero.
              if (msg != 0) ctx.sendToSrc(msg)
            },
          _ + _)
        // Receive messages, and update beliefs for vertices of the current color.
        gx = gx.outerJoinVertices(msgs) {
          case (vID, vAttr, optMsg) =>
            if (vAttr.color == color) {
              val x = vAttr.a + optMsg.getOrElse(0.0)
              val newBelief = math.exp(-log1pExp(-x))
              VertexAttr(vAttr.a, newBelief, color)
            } else {
              vAttr
            }
        }
      }
    }

    // Convert back to GraphFrame with a new column "belief" for vertices DataFrame.
    val gxFinal: Graph[Double, Unit] = gx.mapVertices((_, attr) => attr.belief).mapEdges(_ => ())
    GraphFrame.fromGraphX(colorG, gxFinal, vertexNames = Seq("belief"))
  }

  case class VertexAttr(a: Double, belief: Double, color: Int)

  case class EdgeAttr(b: Double)

  /**
   * Run Belief Propagation.
   *
   * This implementation of BP shows how to use GraphFrame's aggregateMessages method.
   *  - Color GraphFrame vertices for BP scheduling.
   *  - Run BP using GraphFrame's aggregateMessages API.
   *  - Augment the original GraphFrame with the BP results (vertex beliefs).
   *
   * @param g  Graphical model created by `org.graphframes.examples.Graphs.gridIsingModel()`
   * @param numIter  Number of iterations of BP to run.  One iteration includes updating each
   *                 vertex's belief once.
   * @return  Same graphical model, but with [[GraphFrame.vertices]] augmented with a new column
   *          "belief" containing P(x,,i,, = +1), the marginal probability of vertex i taking
   *          value +1 instead of -1.
   */
  def runBPwithGraphFrames(g: GraphFrame, numIter: Int): GraphFrame = {
    // Choose colors for vertices for BP scheduling.
    val colorG = colorGraph(g)
    val numColors: Int = colorG.vertices.select("color").distinct.count().toInt

    // TODO: Handle vertices without any edges.

    // Initialize vertex beliefs at 0.0.
    var gx = GraphFrame(colorG.vertices.withColumn("belief", lit(0.0)), colorG.edges)

    // Run BP for numIter iterations.
    for (iter <- Range(0, numIter)) {
      // For each color, have that color receive messages from neighbors.
      for (color <- Range(0, numColors)) {
        // Define "AM" for shorthand for referring to the src, dst, edge, and msg fields.
        // (See usage below.)
        val AM = AggregateMessages
        // Send messages to vertices of the current color.
        // We may send to source or destination since edges are treated as undirected.
        val msgForSrc: Column = when(AM.src("color") === color, AM.edge("b") * AM.dst("belief"))
        val msgForDst: Column = when(AM.dst("color") === color, AM.edge("b") * AM.src("belief"))
        val logistic = udf { (x: Double) => math.exp(-log1pExp(-x)) }
        val aggregates = gx.aggregateMessages
          .sendToSrc(msgForSrc)
          .sendToDst(msgForDst)
          .agg(sum(AM.msg).as("aggMess"))
        val v = gx.vertices
        // Receive messages, and update beliefs for vertices of the current color.
        val newBeliefCol = when(v("color") === color && aggregates("aggMess").isNotNull,
          logistic(aggregates("aggMess") + v("a")))
          .otherwise(v("belief"))  // keep old beliefs for other colors
        val newVertices = v
          .join(aggregates, v("id") === aggregates("id"), "left_outer")  // join messages, vertices
          .drop(aggregates("id"))  // drop duplicate ID column (from outer join)
          .withColumn("newBelief", newBeliefCol)  // compute new beliefs
          .drop("aggMess")  // drop messages
          .drop("belief")  // drop old beliefs
          .withColumnRenamed("newBelief", "belief")
        // Cache new vertices using workaround for SPARK-13346
        val cachedNewVertices = AM.getCachedDataFrame(newVertices)
        gx = GraphFrame(cachedNewVertices, gx.edges)
      }
    }

    // Drop the "color" column from vertices
    GraphFrame(gx.vertices.drop("color"), gx.edges)
  }

  /** More numerically stable `log(1 + exp(x))` */
  private def log1pExp(x: Double): Double = {
    if (x > 0) {
      x + math.log1p(math.exp(-x))
    } else {
      math.log1p(math.exp(x))
    }
  }
}

ScaDaMaLe Course site and book

This is a scala version of the python notebook in the following talk:

Homework:

See https://www.brighttalk.com/webcast/12891/199003 (you need to subscribe freely to Bright Talk first). Then go through this scala version of the notebook from the talk.

On-Time Flight Performance with GraphFrames for Apache Spark

This notebook provides an analysis of On-Time Flight Performance and Departure Delays data using GraphFrames for Apache Spark.

Source Data:

References:

Preparation

Extract the Airports and Departure Delays information from S3 / DBFS

// Set File Paths
val tripdelaysFilePath = "/datasets/sds/flights/departuredelays.csv"
val airportsnaFilePath = "/datasets/sds/flights/airport-codes-na.txt"
tripdelaysFilePath: String = /datasets/sds/flights/departuredelays.csv
airportsnaFilePath: String = /datasets/sds/flights/airport-codes-na.txt
// Obtain airports dataset
// Note that "spark-csv" package is built-in datasource in Spark 2.0
val airportsna = sqlContext.read.format("com.databricks.spark.csv").
  option("header", "true").
  option("inferschema", "true").
  option("delimiter", "\t").
  load(airportsnaFilePath)

airportsna.createOrReplaceTempView("airports_na")

// Obtain departure Delays data
val departureDelays = sqlContext.read.format("com.databricks.spark.csv").option("header", "true").load(tripdelaysFilePath)
departureDelays.createOrReplaceTempView("departureDelays")
departureDelays.cache()

// Available IATA (International Air Transport Association) codes from the departuredelays sample dataset
val tripIATA = sqlContext.sql("select distinct iata from (select distinct origin as iata from departureDelays union all select distinct destination as iata from departureDelays) a")
tripIATA.createOrReplaceTempView("tripIATA")

// Only include airports with atleast one trip from the departureDelays dataset
val airports = sqlContext.sql("select f.IATA, f.City, f.State, f.Country from airports_na f join tripIATA t on t.IATA = f.IATA")
airports.createOrReplaceTempView("airports")
airports.cache()
airportsna: org.apache.spark.sql.DataFrame = [City: string, State: string ... 2 more fields]
departureDelays: org.apache.spark.sql.DataFrame = [date: string, delay: string ... 3 more fields]
tripIATA: org.apache.spark.sql.DataFrame = [iata: string]
airports: org.apache.spark.sql.DataFrame = [IATA: string, City: string ... 2 more fields]
res0: airports.type = [IATA: string, City: string ... 2 more fields]
// Build `departureDelays_geo` DataFrame
// Obtain key attributes such as Date of flight, delays, distance, and airport information (Origin, Destination)  
val departureDelays_geo = sqlContext.sql("select cast(f.date as int) as tripid, cast(concat(concat(concat(concat(concat(concat('2014-', concat(concat(substr(cast(f.date as string), 1, 2), '-')), substr(cast(f.date as string), 3, 2)), ' '), substr(cast(f.date as string), 5, 2)), ':'), substr(cast(f.date as string), 7, 2)), ':00') as timestamp) as `localdate`, cast(f.delay as int), cast(f.distance as int), f.origin as src, f.destination as dst, o.city as city_src, d.city as city_dst, o.state as state_src, d.state as state_dst from departuredelays f join airports o on o.iata = f.origin join airports d on d.iata = f.destination") 

// RegisterTempTable
departureDelays_geo.createOrReplaceTempView("departureDelays_geo")

// Cache and Count
departureDelays_geo.cache()
departureDelays_geo.count()
departureDelays_geo: org.apache.spark.sql.DataFrame = [tripid: int, localdate: timestamp ... 8 more fields]
res2: Long = 1361141
display(departureDelays_geo)
tripid localdate delay distance src dst city_src city_dst state_src state_dst
1011111.0 2014-01-01T11:11:00.000+0000 -5.0 221.0 MSP INL Minneapolis International Falls MN MN
1021111.0 2014-01-02T11:11:00.000+0000 7.0 221.0 MSP INL Minneapolis International Falls MN MN
1031111.0 2014-01-03T11:11:00.000+0000 0.0 221.0 MSP INL Minneapolis International Falls MN MN
1041925.0 2014-01-04T19:25:00.000+0000 0.0 221.0 MSP INL Minneapolis International Falls MN MN
1061115.0 2014-01-06T11:15:00.000+0000 33.0 221.0 MSP INL Minneapolis International Falls MN MN
1071115.0 2014-01-07T11:15:00.000+0000 23.0 221.0 MSP INL Minneapolis International Falls MN MN
1081115.0 2014-01-08T11:15:00.000+0000 -9.0 221.0 MSP INL Minneapolis International Falls MN MN
1091115.0 2014-01-09T11:15:00.000+0000 11.0 221.0 MSP INL Minneapolis International Falls MN MN
1101115.0 2014-01-10T11:15:00.000+0000 -3.0 221.0 MSP INL Minneapolis International Falls MN MN
1112015.0 2014-01-11T20:15:00.000+0000 -7.0 221.0 MSP INL Minneapolis International Falls MN MN
1121925.0 2014-01-12T19:25:00.000+0000 -5.0 221.0 MSP INL Minneapolis International Falls MN MN
1131115.0 2014-01-13T11:15:00.000+0000 -3.0 221.0 MSP INL Minneapolis International Falls MN MN
1141115.0 2014-01-14T11:15:00.000+0000 -6.0 221.0 MSP INL Minneapolis International Falls MN MN
1151115.0 2014-01-15T11:15:00.000+0000 -7.0 221.0 MSP INL Minneapolis International Falls MN MN
1161115.0 2014-01-16T11:15:00.000+0000 -3.0 221.0 MSP INL Minneapolis International Falls MN MN
1171115.0 2014-01-17T11:15:00.000+0000 4.0 221.0 MSP INL Minneapolis International Falls MN MN
1182015.0 2014-01-18T20:15:00.000+0000 -5.0 221.0 MSP INL Minneapolis International Falls MN MN
1191925.0 2014-01-19T19:25:00.000+0000 -7.0 221.0 MSP INL Minneapolis International Falls MN MN
1201115.0 2014-01-20T11:15:00.000+0000 -6.0 221.0 MSP INL Minneapolis International Falls MN MN
1211115.0 2014-01-21T11:15:00.000+0000 0.0 221.0 MSP INL Minneapolis International Falls MN MN
1221115.0 2014-01-22T11:15:00.000+0000 -4.0 221.0 MSP INL Minneapolis International Falls MN MN
1231115.0 2014-01-23T11:15:00.000+0000 -4.0 221.0 MSP INL Minneapolis International Falls MN MN
1241115.0 2014-01-24T11:15:00.000+0000 -3.0 221.0 MSP INL Minneapolis International Falls MN MN
1252015.0 2014-01-25T20:15:00.000+0000 -12.0 221.0 MSP INL Minneapolis International Falls MN MN
1261925.0 2014-01-26T19:25:00.000+0000 -5.0 221.0 MSP INL Minneapolis International Falls MN MN
1271115.0 2014-01-27T11:15:00.000+0000 0.0 221.0 MSP INL Minneapolis International Falls MN MN
1281115.0 2014-01-28T11:15:00.000+0000 -8.0 221.0 MSP INL Minneapolis International Falls MN MN
1291115.0 2014-01-29T11:15:00.000+0000 -2.0 221.0 MSP INL Minneapolis International Falls MN MN
1301115.0 2014-01-30T11:15:00.000+0000 0.0 221.0 MSP INL Minneapolis International Falls MN MN
1311115.0 2014-01-31T11:15:00.000+0000 -3.0 221.0 MSP INL Minneapolis International Falls MN MN
2012015.0 2014-02-01T20:15:00.000+0000 -4.0 221.0 MSP INL Minneapolis International Falls MN MN
2022015.0 2014-02-02T20:15:00.000+0000 0.0 221.0 MSP INL Minneapolis International Falls MN MN
2031115.0 2014-02-03T11:15:00.000+0000 -7.0 221.0 MSP INL Minneapolis International Falls MN MN
2041115.0 2014-02-04T11:15:00.000+0000 -6.0 221.0 MSP INL Minneapolis International Falls MN MN
2051115.0 2014-02-05T11:15:00.000+0000 -4.0 221.0 MSP INL Minneapolis International Falls MN MN
2061115.0 2014-02-06T11:15:00.000+0000 -2.0 221.0 MSP INL Minneapolis International Falls MN MN
2071115.0 2014-02-07T11:15:00.000+0000 -15.0 221.0 MSP INL Minneapolis International Falls MN MN
2082015.0 2014-02-08T20:15:00.000+0000 -4.0 221.0 MSP INL Minneapolis International Falls MN MN
2091925.0 2014-02-09T19:25:00.000+0000 1.0 221.0 MSP INL Minneapolis International Falls MN MN
2101115.0 2014-02-10T11:15:00.000+0000 -3.0 221.0 MSP INL Minneapolis International Falls MN MN
2111115.0 2014-02-11T11:15:00.000+0000 -7.0 221.0 MSP INL Minneapolis International Falls MN MN
2121115.0 2014-02-12T11:15:00.000+0000 -2.0 221.0 MSP INL Minneapolis International Falls MN MN
2131115.0 2014-02-13T11:15:00.000+0000 -3.0 221.0 MSP INL Minneapolis International Falls MN MN
2141115.0 2014-02-14T11:15:00.000+0000 -11.0 221.0 MSP INL Minneapolis International Falls MN MN
2152015.0 2014-02-15T20:15:00.000+0000 16.0 221.0 MSP INL Minneapolis International Falls MN MN
2161925.0 2014-02-16T19:25:00.000+0000 169.0 221.0 MSP INL Minneapolis International Falls MN MN
2171115.0 2014-02-17T11:15:00.000+0000 27.0 221.0 MSP INL Minneapolis International Falls MN MN
2181115.0 2014-02-18T11:15:00.000+0000 96.0 221.0 MSP INL Minneapolis International Falls MN MN
2191115.0 2014-02-19T11:15:00.000+0000 -9.0 221.0 MSP INL Minneapolis International Falls MN MN
2201115.0 2014-02-20T11:15:00.000+0000 -6.0 221.0 MSP INL Minneapolis International Falls MN MN
2211115.0 2014-02-21T11:15:00.000+0000 -4.0 221.0 MSP INL Minneapolis International Falls MN MN
2222015.0 2014-02-22T20:15:00.000+0000 -4.0 221.0 MSP INL Minneapolis International Falls MN MN
2231925.0 2014-02-23T19:25:00.000+0000 -3.0 221.0 MSP INL Minneapolis International Falls MN MN
2241115.0 2014-02-24T11:15:00.000+0000 -2.0 221.0 MSP INL Minneapolis International Falls MN MN
2251115.0 2014-02-25T11:15:00.000+0000 -6.0 221.0 MSP INL Minneapolis International Falls MN MN
2261115.0 2014-02-26T11:15:00.000+0000 -8.0 221.0 MSP INL Minneapolis International Falls MN MN
2271115.0 2014-02-27T11:15:00.000+0000 -8.0 221.0 MSP INL Minneapolis International Falls MN MN
2281115.0 2014-02-28T11:15:00.000+0000 5.0 221.0 MSP INL Minneapolis International Falls MN MN
3012015.0 2014-03-01T20:15:00.000+0000 -4.0 221.0 MSP INL Minneapolis International Falls MN MN
3022000.0 2014-03-02T20:00:00.000+0000 0.0 221.0 MSP INL Minneapolis International Falls MN MN
3031115.0 2014-03-03T11:15:00.000+0000 17.0 221.0 MSP INL Minneapolis International Falls MN MN
3041115.0 2014-03-04T11:15:00.000+0000 0.0 221.0 MSP INL Minneapolis International Falls MN MN
3051115.0 2014-03-05T11:15:00.000+0000 -7.0 221.0 MSP INL Minneapolis International Falls MN MN
3061115.0 2014-03-06T11:15:00.000+0000 -8.0 221.0 MSP INL Minneapolis International Falls MN MN
3071115.0 2014-03-07T11:15:00.000+0000 -10.0 221.0 MSP INL Minneapolis International Falls MN MN
3082000.0 2014-03-08T20:00:00.000+0000 -11.0 221.0 MSP INL Minneapolis International Falls MN MN
3092000.0 2014-03-09T20:00:00.000+0000 -9.0 221.0 MSP INL Minneapolis International Falls MN MN
3101115.0 2014-03-10T11:15:00.000+0000 -10.0 221.0 MSP INL Minneapolis International Falls MN MN
3111115.0 2014-03-11T11:15:00.000+0000 -8.0 221.0 MSP INL Minneapolis International Falls MN MN
3121115.0 2014-03-12T11:15:00.000+0000 -6.0 221.0 MSP INL Minneapolis International Falls MN MN
3131115.0 2014-03-13T11:15:00.000+0000 -8.0 221.0 MSP INL Minneapolis International Falls MN MN
3141115.0 2014-03-14T11:15:00.000+0000 -5.0 221.0 MSP INL Minneapolis International Falls MN MN
3152000.0 2014-03-15T20:00:00.000+0000 -11.0 221.0 MSP INL Minneapolis International Falls MN MN
3162000.0 2014-03-16T20:00:00.000+0000 -10.0 221.0 MSP INL Minneapolis International Falls MN MN
3171115.0 2014-03-17T11:15:00.000+0000 25.0 221.0 MSP INL Minneapolis International Falls MN MN
3181115.0 2014-03-18T11:15:00.000+0000 2.0 221.0 MSP INL Minneapolis International Falls MN MN
3191115.0 2014-03-19T11:15:00.000+0000 -5.0 221.0 MSP INL Minneapolis International Falls MN MN
3201115.0 2014-03-20T11:15:00.000+0000 -6.0 221.0 MSP INL Minneapolis International Falls MN MN
3211115.0 2014-03-21T11:15:00.000+0000 0.0 221.0 MSP INL Minneapolis International Falls MN MN
3222000.0 2014-03-22T20:00:00.000+0000 -10.0 221.0 MSP INL Minneapolis International Falls MN MN
3232000.0 2014-03-23T20:00:00.000+0000 -9.0 221.0 MSP INL Minneapolis International Falls MN MN
3241115.0 2014-03-24T11:15:00.000+0000 -9.0 221.0 MSP INL Minneapolis International Falls MN MN
3251115.0 2014-03-25T11:15:00.000+0000 -4.0 221.0 MSP INL Minneapolis International Falls MN MN
3261115.0 2014-03-26T11:15:00.000+0000 -5.0 221.0 MSP INL Minneapolis International Falls MN MN
3271115.0 2014-03-27T11:15:00.000+0000 9.0 221.0 MSP INL Minneapolis International Falls MN MN
3281115.0 2014-03-28T11:15:00.000+0000 -7.0 221.0 MSP INL Minneapolis International Falls MN MN
3292000.0 2014-03-29T20:00:00.000+0000 -19.0 221.0 MSP INL Minneapolis International Falls MN MN
3302000.0 2014-03-30T20:00:00.000+0000 -10.0 221.0 MSP INL Minneapolis International Falls MN MN
3311115.0 2014-03-31T11:15:00.000+0000 -8.0 221.0 MSP INL Minneapolis International Falls MN MN
2011230.0 2014-02-01T12:30:00.000+0000 -3.0 1014.0 EWR MSY Newark New Orleans NJ LA
2010719.0 2014-02-01T07:19:00.000+0000 -2.0 1014.0 EWR MSY Newark New Orleans NJ LA
2021230.0 2014-02-02T12:30:00.000+0000 -10.0 1014.0 EWR MSY Newark New Orleans NJ LA
2020709.0 2014-02-02T07:09:00.000+0000 59.0 1014.0 EWR MSY Newark New Orleans NJ LA
2021654.0 2014-02-02T16:54:00.000+0000 21.0 1014.0 EWR MSY Newark New Orleans NJ LA
2030719.0 2014-02-03T07:19:00.000+0000 -6.0 1014.0 EWR MSY Newark New Orleans NJ LA
2031659.0 2014-02-03T16:59:00.000+0000 0.0 1014.0 EWR MSY Newark New Orleans NJ LA
2031230.0 2014-02-03T12:30:00.000+0000 0.0 1014.0 EWR MSY Newark New Orleans NJ LA
2032043.0 2014-02-03T20:43:00.000+0000 0.0 1014.0 EWR MSY Newark New Orleans NJ LA
2041230.0 2014-02-04T12:30:00.000+0000 24.0 1014.0 EWR MSY Newark New Orleans NJ LA
2040719.0 2014-02-04T07:19:00.000+0000 168.0 1014.0 EWR MSY Newark New Orleans NJ LA
2041730.0 2014-02-04T17:30:00.000+0000 88.0 1014.0 EWR MSY Newark New Orleans NJ LA
2042043.0 2014-02-04T20:43:00.000+0000 106.0 1014.0 EWR MSY Newark New Orleans NJ LA
2051659.0 2014-02-05T16:59:00.000+0000 0.0 1014.0 EWR MSY Newark New Orleans NJ LA
2050719.0 2014-02-05T07:19:00.000+0000 0.0 1014.0 EWR MSY Newark New Orleans NJ LA
2050929.0 2014-02-05T09:29:00.000+0000 0.0 1014.0 EWR MSY Newark New Orleans NJ LA
2052043.0 2014-02-05T20:43:00.000+0000 46.0 1014.0 EWR MSY Newark New Orleans NJ LA
2060719.0 2014-02-06T07:19:00.000+0000 -3.0 1014.0 EWR MSY Newark New Orleans NJ LA
2061659.0 2014-02-06T16:59:00.000+0000 82.0 1014.0 EWR MSY Newark New Orleans NJ LA
2061230.0 2014-02-06T12:30:00.000+0000 61.0 1014.0 EWR MSY Newark New Orleans NJ LA
2062043.0 2014-02-06T20:43:00.000+0000 7.0 1014.0 EWR MSY Newark New Orleans NJ LA
2070719.0 2014-02-07T07:19:00.000+0000 8.0 1014.0 EWR MSY Newark New Orleans NJ LA
2071659.0 2014-02-07T16:59:00.000+0000 19.0 1014.0 EWR MSY Newark New Orleans NJ LA
2071230.0 2014-02-07T12:30:00.000+0000 27.0 1014.0 EWR MSY Newark New Orleans NJ LA
2072048.0 2014-02-07T20:48:00.000+0000 47.0 1014.0 EWR MSY Newark New Orleans NJ LA
2081230.0 2014-02-08T12:30:00.000+0000 -10.0 1014.0 EWR MSY Newark New Orleans NJ LA
2080719.0 2014-02-08T07:19:00.000+0000 -1.0 1014.0 EWR MSY Newark New Orleans NJ LA
2091229.0 2014-02-09T12:29:00.000+0000 95.0 1014.0 EWR MSY Newark New Orleans NJ LA
2091654.0 2014-02-09T16:54:00.000+0000 -5.0 1014.0 EWR MSY Newark New Orleans NJ LA
2090709.0 2014-02-09T07:09:00.000+0000 -8.0 1014.0 EWR MSY Newark New Orleans NJ LA
2092043.0 2014-02-09T20:43:00.000+0000 32.0 1014.0 EWR MSY Newark New Orleans NJ LA
2100719.0 2014-02-10T07:19:00.000+0000 14.0 1014.0 EWR MSY Newark New Orleans NJ LA
2101659.0 2014-02-10T16:59:00.000+0000 16.0 1014.0 EWR MSY Newark New Orleans NJ LA
2101230.0 2014-02-10T12:30:00.000+0000 -4.0 1014.0 EWR MSY Newark New Orleans NJ LA
2102043.0 2014-02-10T20:43:00.000+0000 -4.0 1014.0 EWR MSY Newark New Orleans NJ LA
2111230.0 2014-02-11T12:30:00.000+0000 10.0 1014.0 EWR MSY Newark New Orleans NJ LA
2110719.0 2014-02-11T07:19:00.000+0000 46.0 1014.0 EWR MSY Newark New Orleans NJ LA
2111730.0 2014-02-11T17:30:00.000+0000 -9.0 1014.0 EWR MSY Newark New Orleans NJ LA
2112043.0 2014-02-11T20:43:00.000+0000 -2.0 1014.0 EWR MSY Newark New Orleans NJ LA
2120719.0 2014-02-12T07:19:00.000+0000 1.0 1014.0 EWR MSY Newark New Orleans NJ LA
2121230.0 2014-02-12T12:30:00.000+0000 -4.0 1014.0 EWR MSY Newark New Orleans NJ LA
2120929.0 2014-02-12T09:29:00.000+0000 89.0 1014.0 EWR MSY Newark New Orleans NJ LA
2122043.0 2014-02-12T20:43:00.000+0000 36.0 1014.0 EWR MSY Newark New Orleans NJ LA
2130738.0 2014-02-13T07:38:00.000+0000 0.0 1014.0 EWR MSY Newark New Orleans NJ LA
2132041.0 2014-02-13T20:41:00.000+0000 0.0 1014.0 EWR MSY Newark New Orleans NJ LA
2140729.0 2014-02-14T07:29:00.000+0000 0.0 1014.0 EWR MSY Newark New Orleans NJ LA
2142041.0 2014-02-14T20:41:00.000+0000 0.0 1014.0 EWR MSY Newark New Orleans NJ LA
2151206.0 2014-02-15T12:06:00.000+0000 0.0 1014.0 EWR MSY Newark New Orleans NJ LA
2150659.0 2014-02-15T06:59:00.000+0000 0.0 1014.0 EWR MSY Newark New Orleans NJ LA
2160705.0 2014-02-16T07:05:00.000+0000 -5.0 1014.0 EWR MSY Newark New Orleans NJ LA
2170729.0 2014-02-17T07:29:00.000+0000 0.0 1014.0 EWR MSY Newark New Orleans NJ LA
2172041.0 2014-02-17T20:41:00.000+0000 -7.0 1014.0 EWR MSY Newark New Orleans NJ LA
2180738.0 2014-02-18T07:38:00.000+0000 0.0 1014.0 EWR MSY Newark New Orleans NJ LA
2182041.0 2014-02-18T20:41:00.000+0000 36.0 1014.0 EWR MSY Newark New Orleans NJ LA
2190727.0 2014-02-19T07:27:00.000+0000 15.0 1014.0 EWR MSY Newark New Orleans NJ LA
2200738.0 2014-02-20T07:38:00.000+0000 -7.0 1014.0 EWR MSY Newark New Orleans NJ LA
2202041.0 2014-02-20T20:41:00.000+0000 51.0 1014.0 EWR MSY Newark New Orleans NJ LA
2210729.0 2014-02-21T07:29:00.000+0000 -2.0 1014.0 EWR MSY Newark New Orleans NJ LA
2212041.0 2014-02-21T20:41:00.000+0000 0.0 1014.0 EWR MSY Newark New Orleans NJ LA
2221206.0 2014-02-22T12:06:00.000+0000 -8.0 1014.0 EWR MSY Newark New Orleans NJ LA
2220659.0 2014-02-22T06:59:00.000+0000 8.0 1014.0 EWR MSY Newark New Orleans NJ LA
2232041.0 2014-02-23T20:41:00.000+0000 8.0 1014.0 EWR MSY Newark New Orleans NJ LA
2230705.0 2014-02-23T07:05:00.000+0000 -10.0 1014.0 EWR MSY Newark New Orleans NJ LA
2240729.0 2014-02-24T07:29:00.000+0000 6.0 1014.0 EWR MSY Newark New Orleans NJ LA
2242041.0 2014-02-24T20:41:00.000+0000 -7.0 1014.0 EWR MSY Newark New Orleans NJ LA
2250738.0 2014-02-25T07:38:00.000+0000 0.0 1014.0 EWR MSY Newark New Orleans NJ LA
2260727.0 2014-02-26T07:27:00.000+0000 23.0 1014.0 EWR MSY Newark New Orleans NJ LA
2262041.0 2014-02-26T20:41:00.000+0000 174.0 1014.0 EWR MSY Newark New Orleans NJ LA
2270738.0 2014-02-27T07:38:00.000+0000 8.0 1014.0 EWR MSY Newark New Orleans NJ LA
2272041.0 2014-02-27T20:41:00.000+0000 32.0 1014.0 EWR MSY Newark New Orleans NJ LA
2280729.0 2014-02-28T07:29:00.000+0000 12.0 1014.0 EWR MSY Newark New Orleans NJ LA
2282041.0 2014-02-28T20:41:00.000+0000 49.0 1014.0 EWR MSY Newark New Orleans NJ LA
2281000.0 2014-02-28T10:00:00.000+0000 2.0 1014.0 EWR MSY Newark New Orleans NJ LA
2051230.0 2014-02-05T12:30:00.000+0000 216.0 1014.0 EWR MSY Newark New Orleans NJ LA
2131536.0 2014-02-13T15:36:00.000+0000 273.0 1014.0 EWR MSY Newark New Orleans NJ LA
2141536.0 2014-02-14T15:36:00.000+0000 6.0 1014.0 EWR MSY Newark New Orleans NJ LA
2151902.0 2014-02-15T19:02:00.000+0000 31.0 1014.0 EWR MSY Newark New Orleans NJ LA
2151536.0 2014-02-15T15:36:00.000+0000 66.0 1014.0 EWR MSY Newark New Orleans NJ LA
2162041.0 2014-02-16T20:41:00.000+0000 -4.0 1014.0 EWR MSY Newark New Orleans NJ LA
2161536.0 2014-02-16T15:36:00.000+0000 7.0 1014.0 EWR MSY Newark New Orleans NJ LA
2171536.0 2014-02-17T15:36:00.000+0000 3.0 1014.0 EWR MSY Newark New Orleans NJ LA
2181536.0 2014-02-18T15:36:00.000+0000 26.0 1014.0 EWR MSY Newark New Orleans NJ LA
2191536.0 2014-02-19T15:36:00.000+0000 -9.0 1014.0 EWR MSY Newark New Orleans NJ LA
2201536.0 2014-02-20T15:36:00.000+0000 -3.0 1014.0 EWR MSY Newark New Orleans NJ LA
2211536.0 2014-02-21T15:36:00.000+0000 34.0 1014.0 EWR MSY Newark New Orleans NJ LA
2221900.0 2014-02-22T19:00:00.000+0000 -2.0 1014.0 EWR MSY Newark New Orleans NJ LA
2221536.0 2014-02-22T15:36:00.000+0000 65.0 1014.0 EWR MSY Newark New Orleans NJ LA
2231536.0 2014-02-23T15:36:00.000+0000 -3.0 1014.0 EWR MSY Newark New Orleans NJ LA
2241536.0 2014-02-24T15:36:00.000+0000 -1.0 1014.0 EWR MSY Newark New Orleans NJ LA
2251536.0 2014-02-25T15:36:00.000+0000 0.0 1014.0 EWR MSY Newark New Orleans NJ LA
2261536.0 2014-02-26T15:36:00.000+0000 0.0 1014.0 EWR MSY Newark New Orleans NJ LA
2271536.0 2014-02-27T15:36:00.000+0000 -4.0 1014.0 EWR MSY Newark New Orleans NJ LA
2281536.0 2014-02-28T15:36:00.000+0000 8.0 1014.0 EWR MSY Newark New Orleans NJ LA
2010730.0 2014-02-01T07:30:00.000+0000 -1.0 1014.0 EWR MSY Newark New Orleans NJ LA
2021815.0 2014-02-02T18:15:00.000+0000 -1.0 1014.0 EWR MSY Newark New Orleans NJ LA
2031815.0 2014-02-03T18:15:00.000+0000 0.0 1014.0 EWR MSY Newark New Orleans NJ LA
2041815.0 2014-02-04T18:15:00.000+0000 -4.0 1014.0 EWR MSY Newark New Orleans NJ LA
2051815.0 2014-02-05T18:15:00.000+0000 -4.0 1014.0 EWR MSY Newark New Orleans NJ LA
2061815.0 2014-02-06T18:15:00.000+0000 -4.0 1014.0 EWR MSY Newark New Orleans NJ LA
2071815.0 2014-02-07T18:15:00.000+0000 -5.0 1014.0 EWR MSY Newark New Orleans NJ LA
2080730.0 2014-02-08T07:30:00.000+0000 -4.0 1014.0 EWR MSY Newark New Orleans NJ LA
2091815.0 2014-02-09T18:15:00.000+0000 -1.0 1014.0 EWR MSY Newark New Orleans NJ LA
2101815.0 2014-02-10T18:15:00.000+0000 -5.0 1014.0 EWR MSY Newark New Orleans NJ LA
2111815.0 2014-02-11T18:15:00.000+0000 4.0 1014.0 EWR MSY Newark New Orleans NJ LA
2121815.0 2014-02-12T18:15:00.000+0000 64.0 1014.0 EWR MSY Newark New Orleans NJ LA
2131805.0 2014-02-13T18:05:00.000+0000 0.0 1014.0 EWR MSY Newark New Orleans NJ LA
2141635.0 2014-02-14T16:35:00.000+0000 52.0 1014.0 EWR MSY Newark New Orleans NJ LA
2150730.0 2014-02-15T07:30:00.000+0000 0.0 1014.0 EWR MSY Newark New Orleans NJ LA
2161635.0 2014-02-16T16:35:00.000+0000 21.0 1014.0 EWR MSY Newark New Orleans NJ LA
2171635.0 2014-02-17T16:35:00.000+0000 23.0 1014.0 EWR MSY Newark New Orleans NJ LA
2181635.0 2014-02-18T16:35:00.000+0000 -5.0 1014.0 EWR MSY Newark New Orleans NJ LA
2191635.0 2014-02-19T16:35:00.000+0000 21.0 1014.0 EWR MSY Newark New Orleans NJ LA
2201635.0 2014-02-20T16:35:00.000+0000 0.0 1014.0 EWR MSY Newark New Orleans NJ LA
2211635.0 2014-02-21T16:35:00.000+0000 292.0 1014.0 EWR MSY Newark New Orleans NJ LA
2220730.0 2014-02-22T07:30:00.000+0000 28.0 1014.0 EWR MSY Newark New Orleans NJ LA
2231635.0 2014-02-23T16:35:00.000+0000 0.0 1014.0 EWR MSY Newark New Orleans NJ LA
2241635.0 2014-02-24T16:35:00.000+0000 -8.0 1014.0 EWR MSY Newark New Orleans NJ LA
2251635.0 2014-02-25T16:35:00.000+0000 6.0 1014.0 EWR MSY Newark New Orleans NJ LA
2261635.0 2014-02-26T16:35:00.000+0000 10.0 1014.0 EWR MSY Newark New Orleans NJ LA
2271635.0 2014-02-27T16:35:00.000+0000 -1.0 1014.0 EWR MSY Newark New Orleans NJ LA
2281635.0 2014-02-28T16:35:00.000+0000 -1.0 1014.0 EWR MSY Newark New Orleans NJ LA
3011206.0 2014-03-01T12:06:00.000+0000 -5.0 1014.0 EWR MSY Newark New Orleans NJ LA
3010659.0 2014-03-01T06:59:00.000+0000 -1.0 1014.0 EWR MSY Newark New Orleans NJ LA
3022041.0 2014-03-02T20:41:00.000+0000 0.0 1014.0 EWR MSY Newark New Orleans NJ LA
3020705.0 2014-03-02T07:05:00.000+0000 -6.0 1014.0 EWR MSY Newark New Orleans NJ LA
3030729.0 2014-03-03T07:29:00.000+0000 0.0 1014.0 EWR MSY Newark New Orleans NJ LA
3032041.0 2014-03-03T20:41:00.000+0000 113.0 1014.0 EWR MSY Newark New Orleans NJ LA
3040738.0 2014-03-04T07:38:00.000+0000 0.0 1014.0 EWR MSY Newark New Orleans NJ LA
3050727.0 2014-03-05T07:27:00.000+0000 -4.0 1014.0 EWR MSY Newark New Orleans NJ LA
3052041.0 2014-03-05T20:41:00.000+0000 4.0 1014.0 EWR MSY Newark New Orleans NJ LA
3060705.0 2014-03-06T07:05:00.000+0000 -1.0 1014.0 EWR MSY Newark New Orleans NJ LA
3061252.0 2014-03-06T12:52:00.000+0000 67.0 1014.0 EWR MSY Newark New Orleans NJ LA
3062100.0 2014-03-06T21:00:00.000+0000 21.0 1014.0 EWR MSY Newark New Orleans NJ LA
3070705.0 2014-03-07T07:05:00.000+0000 -7.0 1014.0 EWR MSY Newark New Orleans NJ LA
3071252.0 2014-03-07T12:52:00.000+0000 -3.0 1014.0 EWR MSY Newark New Orleans NJ LA
3072100.0 2014-03-07T21:00:00.000+0000 13.0 1014.0 EWR MSY Newark New Orleans NJ LA
3080705.0 2014-03-08T07:05:00.000+0000 -5.0 1014.0 EWR MSY Newark New Orleans NJ LA
3081250.0 2014-03-08T12:50:00.000+0000 5.0 1014.0 EWR MSY Newark New Orleans NJ LA
3091255.0 2014-03-09T12:55:00.000+0000 -9.0 1014.0 EWR MSY Newark New Orleans NJ LA
3092059.0 2014-03-09T20:59:00.000+0000 -3.0 1014.0 EWR MSY Newark New Orleans NJ LA
3100705.0 2014-03-10T07:05:00.000+0000 -5.0 1014.0 EWR MSY Newark New Orleans NJ LA
3101252.0 2014-03-10T12:52:00.000+0000 -9.0 1014.0 EWR MSY Newark New Orleans NJ LA
3102059.0 2014-03-10T20:59:00.000+0000 -4.0 1014.0 EWR MSY Newark New Orleans NJ LA
3112059.0 2014-03-11T20:59:00.000+0000 181.0 1014.0 EWR MSY Newark New Orleans NJ LA
3111252.0 2014-03-11T12:52:00.000+0000 -7.0 1014.0 EWR MSY Newark New Orleans NJ LA
3122059.0 2014-03-12T20:59:00.000+0000 22.0 1014.0 EWR MSY Newark New Orleans NJ LA
3121252.0 2014-03-12T12:52:00.000+0000 161.0 1014.0 EWR MSY Newark New Orleans NJ LA
3130705.0 2014-03-13T07:05:00.000+0000 0.0 1014.0 EWR MSY Newark New Orleans NJ LA
3131252.0 2014-03-13T12:52:00.000+0000 0.0 1014.0 EWR MSY Newark New Orleans NJ LA
3132059.0 2014-03-13T20:59:00.000+0000 0.0 1014.0 EWR MSY Newark New Orleans NJ LA
3140705.0 2014-03-14T07:05:00.000+0000 66.0 1014.0 EWR MSY Newark New Orleans NJ LA
3141252.0 2014-03-14T12:52:00.000+0000 39.0 1014.0 EWR MSY Newark New Orleans NJ LA
3142059.0 2014-03-14T20:59:00.000+0000 -6.0 1014.0 EWR MSY Newark New Orleans NJ LA
3150700.0 2014-03-15T07:00:00.000+0000 2.0 1014.0 EWR MSY Newark New Orleans NJ LA
3151250.0 2014-03-15T12:50:00.000+0000 34.0 1014.0 EWR MSY Newark New Orleans NJ LA
3161255.0 2014-03-16T12:55:00.000+0000 -2.0 1014.0 EWR MSY Newark New Orleans NJ LA
3162059.0 2014-03-16T20:59:00.000+0000 -1.0 1014.0 EWR MSY Newark New Orleans NJ LA
3170705.0 2014-03-17T07:05:00.000+0000 -11.0 1014.0 EWR MSY Newark New Orleans NJ LA
3171252.0 2014-03-17T12:52:00.000+0000 22.0 1014.0 EWR MSY Newark New Orleans NJ LA
3172059.0 2014-03-17T20:59:00.000+0000 132.0 1014.0 EWR MSY Newark New Orleans NJ LA
3182059.0 2014-03-18T20:59:00.000+0000 -5.0 1014.0 EWR MSY Newark New Orleans NJ LA
3181252.0 2014-03-18T12:52:00.000+0000 2.0 1014.0 EWR MSY Newark New Orleans NJ LA
3192059.0 2014-03-19T20:59:00.000+0000 16.0 1014.0 EWR MSY Newark New Orleans NJ LA
3191252.0 2014-03-19T12:52:00.000+0000 -4.0 1014.0 EWR MSY Newark New Orleans NJ LA
3200705.0 2014-03-20T07:05:00.000+0000 -6.0 1014.0 EWR MSY Newark New Orleans NJ LA
3201252.0 2014-03-20T12:52:00.000+0000 -4.0 1014.0 EWR MSY Newark New Orleans NJ LA
3202059.0 2014-03-20T20:59:00.000+0000 77.0 1014.0 EWR MSY Newark New Orleans NJ LA
3210705.0 2014-03-21T07:05:00.000+0000 -4.0 1014.0 EWR MSY Newark New Orleans NJ LA
3211252.0 2014-03-21T12:52:00.000+0000 9.0 1014.0 EWR MSY Newark New Orleans NJ LA
3212059.0 2014-03-21T20:59:00.000+0000 11.0 1014.0 EWR MSY Newark New Orleans NJ LA
3220705.0 2014-03-22T07:05:00.000+0000 -4.0 1014.0 EWR MSY Newark New Orleans NJ LA
3221250.0 2014-03-22T12:50:00.000+0000 -7.0 1014.0 EWR MSY Newark New Orleans NJ LA
3221600.0 2014-03-22T16:00:00.000+0000 -6.0 1014.0 EWR MSY Newark New Orleans NJ LA
3231255.0 2014-03-23T12:55:00.000+0000 5.0 1014.0 EWR MSY Newark New Orleans NJ LA
3240705.0 2014-03-24T07:05:00.000+0000 -4.0 1014.0 EWR MSY Newark New Orleans NJ LA
3241252.0 2014-03-24T12:52:00.000+0000 -2.0 1014.0 EWR MSY Newark New Orleans NJ LA
3242059.0 2014-03-24T20:59:00.000+0000 -10.0 1014.0 EWR MSY Newark New Orleans NJ LA
3252059.0 2014-03-25T20:59:00.000+0000 121.0 1014.0 EWR MSY Newark New Orleans NJ LA
3251252.0 2014-03-25T12:52:00.000+0000 -8.0 1014.0 EWR MSY Newark New Orleans NJ LA
3262059.0 2014-03-26T20:59:00.000+0000 49.0 1014.0 EWR MSY Newark New Orleans NJ LA
3261252.0 2014-03-26T12:52:00.000+0000 -2.0 1014.0 EWR MSY Newark New Orleans NJ LA
3270705.0 2014-03-27T07:05:00.000+0000 -6.0 1014.0 EWR MSY Newark New Orleans NJ LA
3271252.0 2014-03-27T12:52:00.000+0000 -6.0 1014.0 EWR MSY Newark New Orleans NJ LA
3272059.0 2014-03-27T20:59:00.000+0000 -2.0 1014.0 EWR MSY Newark New Orleans NJ LA
3280705.0 2014-03-28T07:05:00.000+0000 -3.0 1014.0 EWR MSY Newark New Orleans NJ LA
3281252.0 2014-03-28T12:52:00.000+0000 -4.0 1014.0 EWR MSY Newark New Orleans NJ LA
3282059.0 2014-03-28T20:59:00.000+0000 0.0 1014.0 EWR MSY Newark New Orleans NJ LA
3291250.0 2014-03-29T12:50:00.000+0000 -6.0 1014.0 EWR MSY Newark New Orleans NJ LA
3290705.0 2014-03-29T07:05:00.000+0000 -1.0 1014.0 EWR MSY Newark New Orleans NJ LA
3291600.0 2014-03-29T16:00:00.000+0000 1.0 1014.0 EWR MSY Newark New Orleans NJ LA
3301255.0 2014-03-30T12:55:00.000+0000 64.0 1014.0 EWR MSY Newark New Orleans NJ LA
3302059.0 2014-03-30T20:59:00.000+0000 166.0 1014.0 EWR MSY Newark New Orleans NJ LA
3310705.0 2014-03-31T07:05:00.000+0000 -3.0 1014.0 EWR MSY Newark New Orleans NJ LA
3311252.0 2014-03-31T12:52:00.000+0000 12.0 1014.0 EWR MSY Newark New Orleans NJ LA
3312059.0 2014-03-31T20:59:00.000+0000 7.0 1014.0 EWR MSY Newark New Orleans NJ LA
3011902.0 2014-03-01T19:02:00.000+0000 64.0 1014.0 EWR MSY Newark New Orleans NJ LA
3011536.0 2014-03-01T15:36:00.000+0000 -5.0 1014.0 EWR MSY Newark New Orleans NJ LA
3021536.0 2014-03-02T15:36:00.000+0000 9.0 1014.0 EWR MSY Newark New Orleans NJ LA
3031536.0 2014-03-03T15:36:00.000+0000 -10.0 1014.0 EWR MSY Newark New Orleans NJ LA
3041536.0 2014-03-04T15:36:00.000+0000 -8.0 1014.0 EWR MSY Newark New Orleans NJ LA
3051536.0 2014-03-05T15:36:00.000+0000 0.0 1014.0 EWR MSY Newark New Orleans NJ LA
3090715.0 2014-03-09T07:15:00.000+0000 1.0 1014.0 EWR MSY Newark New Orleans NJ LA
3110705.0 2014-03-11T07:05:00.000+0000 -11.0 1014.0 EWR MSY Newark New Orleans NJ LA
3120659.0 2014-03-12T06:59:00.000+0000 -5.0 1014.0 EWR MSY Newark New Orleans NJ LA
3160715.0 2014-03-16T07:15:00.000+0000 -4.0 1014.0 EWR MSY Newark New Orleans NJ LA
3180705.0 2014-03-18T07:05:00.000+0000 -7.0 1014.0 EWR MSY Newark New Orleans NJ LA
3190659.0 2014-03-19T06:59:00.000+0000 -2.0 1014.0 EWR MSY Newark New Orleans NJ LA
3230715.0 2014-03-23T07:15:00.000+0000 -4.0 1014.0 EWR MSY Newark New Orleans NJ LA
3250705.0 2014-03-25T07:05:00.000+0000 -8.0 1014.0 EWR MSY Newark New Orleans NJ LA
3260659.0 2014-03-26T06:59:00.000+0000 63.0 1014.0 EWR MSY Newark New Orleans NJ LA
3300715.0 2014-03-30T07:15:00.000+0000 2.0 1014.0 EWR MSY Newark New Orleans NJ LA
3010730.0 2014-03-01T07:30:00.000+0000 -4.0 1014.0 EWR MSY Newark New Orleans NJ LA
3021635.0 2014-03-02T16:35:00.000+0000 16.0 1014.0 EWR MSY Newark New Orleans NJ LA
3031635.0 2014-03-03T16:35:00.000+0000 -1.0 1014.0 EWR MSY Newark New Orleans NJ LA
3041635.0 2014-03-04T16:35:00.000+0000 8.0 1014.0 EWR MSY Newark New Orleans NJ LA
3051635.0 2014-03-05T16:35:00.000+0000 -5.0 1014.0 EWR MSY Newark New Orleans NJ LA
3061635.0 2014-03-06T16:35:00.000+0000 -2.0 1014.0 EWR MSY Newark New Orleans NJ LA
3071635.0 2014-03-07T16:35:00.000+0000 5.0 1014.0 EWR MSY Newark New Orleans NJ LA
3080730.0 2014-03-08T07:30:00.000+0000 -5.0 1014.0 EWR MSY Newark New Orleans NJ LA
3091825.0 2014-03-09T18:25:00.000+0000 45.0 1014.0 EWR MSY Newark New Orleans NJ LA
3101825.0 2014-03-10T18:25:00.000+0000 10.0 1014.0 EWR MSY Newark New Orleans NJ LA
3111825.0 2014-03-11T18:25:00.000+0000 5.0 1014.0 EWR MSY Newark New Orleans NJ LA
3121825.0 2014-03-12T18:25:00.000+0000 -5.0 1014.0 EWR MSY Newark New Orleans NJ LA
3131825.0 2014-03-13T18:25:00.000+0000 123.0 1014.0 EWR MSY Newark New Orleans NJ LA
3141825.0 2014-03-14T18:25:00.000+0000 6.0 1014.0 EWR MSY Newark New Orleans NJ LA
3150730.0 2014-03-15T07:30:00.000+0000 -3.0 1014.0 EWR MSY Newark New Orleans NJ LA
3161825.0 2014-03-16T18:25:00.000+0000 24.0 1014.0 EWR MSY Newark New Orleans NJ LA
3171825.0 2014-03-17T18:25:00.000+0000 6.0 1014.0 EWR MSY Newark New Orleans NJ LA
3181825.0 2014-03-18T18:25:00.000+0000 -6.0 1014.0 EWR MSY Newark New Orleans NJ LA
3191825.0 2014-03-19T18:25:00.000+0000 223.0 1014.0 EWR MSY Newark New Orleans NJ LA
3201825.0 2014-03-20T18:25:00.000+0000 178.0 1014.0 EWR MSY Newark New Orleans NJ LA
3211825.0 2014-03-21T18:25:00.000+0000 -4.0 1014.0 EWR MSY Newark New Orleans NJ LA
3220730.0 2014-03-22T07:30:00.000+0000 -3.0 1014.0 EWR MSY Newark New Orleans NJ LA
3231825.0 2014-03-23T18:25:00.000+0000 -4.0 1014.0 EWR MSY Newark New Orleans NJ LA
3241825.0 2014-03-24T18:25:00.000+0000 0.0 1014.0 EWR MSY Newark New Orleans NJ LA
3251825.0 2014-03-25T18:25:00.000+0000 222.0 1014.0 EWR MSY Newark New Orleans NJ LA
3261825.0 2014-03-26T18:25:00.000+0000 51.0 1014.0 EWR MSY Newark New Orleans NJ LA
3271825.0 2014-03-27T18:25:00.000+0000 -2.0 1014.0 EWR MSY Newark New Orleans NJ LA
3281825.0 2014-03-28T18:25:00.000+0000 26.0 1014.0 EWR MSY Newark New Orleans NJ LA
3290730.0 2014-03-29T07:30:00.000+0000 -3.0 1014.0 EWR MSY Newark New Orleans NJ LA
3301825.0 2014-03-30T18:25:00.000+0000 139.0 1014.0 EWR MSY Newark New Orleans NJ LA
3311825.0 2014-03-31T18:25:00.000+0000 25.0 1014.0 EWR MSY Newark New Orleans NJ LA
1020705.0 2014-01-02T07:05:00.000+0000 0.0 1014.0 EWR MSY Newark New Orleans NJ LA
1030705.0 2014-01-03T07:05:00.000+0000 0.0 1014.0 EWR MSY Newark New Orleans NJ LA
1040655.0 2014-01-04T06:55:00.000+0000 0.0 1014.0 EWR MSY Newark New Orleans NJ LA
1050703.0 2014-01-05T07:03:00.000+0000 4.0 1014.0 EWR MSY Newark New Orleans NJ LA
1060705.0 2014-01-06T07:05:00.000+0000 36.0 1014.0 EWR MSY Newark New Orleans NJ LA
1071230.0 2014-01-07T12:30:00.000+0000 24.0 1014.0 EWR MSY Newark New Orleans NJ LA
1070719.0 2014-01-07T07:19:00.000+0000 -1.0 1014.0 EWR MSY Newark New Orleans NJ LA
1071730.0 2014-01-07T17:30:00.000+0000 161.0 1014.0 EWR MSY Newark New Orleans NJ LA
1072043.0 2014-01-07T20:43:00.000+0000 8.0 1014.0 EWR MSY Newark New Orleans NJ LA
1080719.0 2014-01-08T07:19:00.000+0000 -2.0 1014.0 EWR MSY Newark New Orleans NJ LA
1081659.0 2014-01-08T16:59:00.000+0000 0.0 1014.0 EWR MSY Newark New Orleans NJ LA
1081230.0 2014-01-08T12:30:00.000+0000 66.0 1014.0 EWR MSY Newark New Orleans NJ LA
1082043.0 2014-01-08T20:43:00.000+0000 5.0 1014.0 EWR MSY Newark New Orleans NJ LA
1090719.0 2014-01-09T07:19:00.000+0000 0.0 1014.0 EWR MSY Newark New Orleans NJ LA
1091659.0 2014-01-09T16:59:00.000+0000 -1.0 1014.0 EWR MSY Newark New Orleans NJ LA
1091230.0 2014-01-09T12:30:00.000+0000 -3.0 1014.0 EWR MSY Newark New Orleans NJ LA
1092043.0 2014-01-09T20:43:00.000+0000 63.0 1014.0 EWR MSY Newark New Orleans NJ LA
1100719.0 2014-01-10T07:19:00.000+0000 -1.0 1014.0 EWR MSY Newark New Orleans NJ LA
1101659.0 2014-01-10T16:59:00.000+0000 244.0 1014.0 EWR MSY Newark New Orleans NJ LA
1101230.0 2014-01-10T12:30:00.000+0000 110.0 1014.0 EWR MSY Newark New Orleans NJ LA
1102043.0 2014-01-10T20:43:00.000+0000 43.0 1014.0 EWR MSY Newark New Orleans NJ LA
1111230.0 2014-01-11T12:30:00.000+0000 87.0 1014.0 EWR MSY Newark New Orleans NJ LA
1110719.0 2014-01-11T07:19:00.000+0000 -1.0 1014.0 EWR MSY Newark New Orleans NJ LA
1121654.0 2014-01-12T16:54:00.000+0000 -2.0 1014.0 EWR MSY Newark New Orleans NJ LA
1121230.0 2014-01-12T12:30:00.000+0000 21.0 1014.0 EWR MSY Newark New Orleans NJ LA
1120709.0 2014-01-12T07:09:00.000+0000 -3.0 1014.0 EWR MSY Newark New Orleans NJ LA
1122043.0 2014-01-12T20:43:00.000+0000 -1.0 1014.0 EWR MSY Newark New Orleans NJ LA
1130719.0 2014-01-13T07:19:00.000+0000 -4.0 1014.0 EWR MSY Newark New Orleans NJ LA
1131659.0 2014-01-13T16:59:00.000+0000 0.0 1014.0 EWR MSY Newark New Orleans NJ LA
1131230.0 2014-01-13T12:30:00.000+0000 14.0 1014.0 EWR MSY Newark New Orleans NJ LA
1132043.0 2014-01-13T20:43:00.000+0000 51.0 1014.0 EWR MSY Newark New Orleans NJ LA
1141230.0 2014-01-14T12:30:00.000+0000 30.0 1014.0 EWR MSY Newark New Orleans NJ LA
1140719.0 2014-01-14T07:19:00.000+0000 0.0 1014.0 EWR MSY Newark New Orleans NJ LA
1141730.0 2014-01-14T17:30:00.000+0000 69.0 1014.0 EWR MSY Newark New Orleans NJ LA
1142043.0 2014-01-14T20:43:00.000+0000 0.0 1014.0 EWR MSY Newark New Orleans NJ LA
1150719.0 2014-01-15T07:19:00.000+0000 42.0 1014.0 EWR MSY Newark New Orleans NJ LA
1151659.0 2014-01-15T16:59:00.000+0000 2.0 1014.0 EWR MSY Newark New Orleans NJ LA
1151230.0 2014-01-15T12:30:00.000+0000 0.0 1014.0 EWR MSY Newark New Orleans NJ LA
1152043.0 2014-01-15T20:43:00.000+0000 22.0 1014.0 EWR MSY Newark New Orleans NJ LA
1160719.0 2014-01-16T07:19:00.000+0000 -7.0 1014.0 EWR MSY Newark New Orleans NJ LA
1161659.0 2014-01-16T16:59:00.000+0000 -9.0 1014.0 EWR MSY Newark New Orleans NJ LA
1161230.0 2014-01-16T12:30:00.000+0000 -10.0 1014.0 EWR MSY Newark New Orleans NJ LA
1162043.0 2014-01-16T20:43:00.000+0000 3.0 1014.0 EWR MSY Newark New Orleans NJ LA
1171659.0 2014-01-17T16:59:00.000+0000 46.0 1014.0 EWR MSY Newark New Orleans NJ LA
1170719.0 2014-01-17T07:19:00.000+0000 -4.0 1014.0 EWR MSY Newark New Orleans NJ LA
1172043.0 2014-01-17T20:43:00.000+0000 54.0 1014.0 EWR MSY Newark New Orleans NJ LA
1181230.0 2014-01-18T12:30:00.000+0000 20.0 1014.0 EWR MSY Newark New Orleans NJ LA
1180719.0 2014-01-18T07:19:00.000+0000 -5.0 1014.0 EWR MSY Newark New Orleans NJ LA
1191654.0 2014-01-19T16:54:00.000+0000 -3.0 1014.0 EWR MSY Newark New Orleans NJ LA
1191230.0 2014-01-19T12:30:00.000+0000 29.0 1014.0 EWR MSY Newark New Orleans NJ LA
1190709.0 2014-01-19T07:09:00.000+0000 0.0 1014.0 EWR MSY Newark New Orleans NJ LA
1192043.0 2014-01-19T20:43:00.000+0000 5.0 1014.0 EWR MSY Newark New Orleans NJ LA
1201659.0 2014-01-20T16:59:00.000+0000 -1.0 1014.0 EWR MSY Newark New Orleans NJ LA
1200719.0 2014-01-20T07:19:00.000+0000 -1.0 1014.0 EWR MSY Newark New Orleans NJ LA
1202043.0 2014-01-20T20:43:00.000+0000 12.0 1014.0 EWR MSY Newark New Orleans NJ LA
1211230.0 2014-01-21T12:30:00.000+0000 102.0 1014.0 EWR MSY Newark New Orleans NJ LA
1210719.0 2014-01-21T07:19:00.000+0000 -7.0 1014.0 EWR MSY Newark New Orleans NJ LA
1211730.0 2014-01-21T17:30:00.000+0000 0.0 1014.0 EWR MSY Newark New Orleans NJ LA
1212043.0 2014-01-21T20:43:00.000+0000 0.0 1014.0 EWR MSY Newark New Orleans NJ LA
1220719.0 2014-01-22T07:19:00.000+0000 0.0 1014.0 EWR MSY Newark New Orleans NJ LA
1221659.0 2014-01-22T16:59:00.000+0000 6.0 1014.0 EWR MSY Newark New Orleans NJ LA
1221230.0 2014-01-22T12:30:00.000+0000 -2.0 1014.0 EWR MSY Newark New Orleans NJ LA
1222043.0 2014-01-22T20:43:00.000+0000 70.0 1014.0 EWR MSY Newark New Orleans NJ LA
1230719.0 2014-01-23T07:19:00.000+0000 12.0 1014.0 EWR MSY Newark New Orleans NJ LA
1231659.0 2014-01-23T16:59:00.000+0000 94.0 1014.0 EWR MSY Newark New Orleans NJ LA
1231230.0 2014-01-23T12:30:00.000+0000 111.0 1014.0 EWR MSY Newark New Orleans NJ LA
1232043.0 2014-01-23T20:43:00.000+0000 13.0 1014.0 EWR MSY Newark New Orleans NJ LA
1240719.0 2014-01-24T07:19:00.000+0000 -1.0 1014.0 EWR MSY Newark New Orleans NJ LA
1241659.0 2014-01-24T16:59:00.000+0000 84.0 1014.0 EWR MSY Newark New Orleans NJ LA
1241230.0 2014-01-24T12:30:00.000+0000 0.0 1014.0 EWR MSY Newark New Orleans NJ LA
1242043.0 2014-01-24T20:43:00.000+0000 56.0 1014.0 EWR MSY Newark New Orleans NJ LA
1251230.0 2014-01-25T12:30:00.000+0000 -5.0 1014.0 EWR MSY Newark New Orleans NJ LA
1250719.0 2014-01-25T07:19:00.000+0000 23.0 1014.0 EWR MSY Newark New Orleans NJ LA
1261654.0 2014-01-26T16:54:00.000+0000 113.0 1014.0 EWR MSY Newark New Orleans NJ LA
1261230.0 2014-01-26T12:30:00.000+0000 8.0 1014.0 EWR MSY Newark New Orleans NJ LA
1260709.0 2014-01-26T07:09:00.000+0000 -7.0 1014.0 EWR MSY Newark New Orleans NJ LA
1262043.0 2014-01-26T20:43:00.000+0000 31.0 1014.0 EWR MSY Newark New Orleans NJ LA
1271659.0 2014-01-27T16:59:00.000+0000 0.0 1014.0 EWR MSY Newark New Orleans NJ LA
1270719.0 2014-01-27T07:19:00.000+0000 -3.0 1014.0 EWR MSY Newark New Orleans NJ LA
1281230.0 2014-01-28T12:30:00.000+0000 0.0 1014.0 EWR MSY Newark New Orleans NJ LA
1280719.0 2014-01-28T07:19:00.000+0000 0.0 1014.0 EWR MSY Newark New Orleans NJ LA
1281730.0 2014-01-28T17:30:00.000+0000 0.0 1014.0 EWR MSY Newark New Orleans NJ LA
1282043.0 2014-01-28T20:43:00.000+0000 0.0 1014.0 EWR MSY Newark New Orleans NJ LA
1291659.0 2014-01-29T16:59:00.000+0000 -6.0 1014.0 EWR MSY Newark New Orleans NJ LA
1290719.0 2014-01-29T07:19:00.000+0000 -2.0 1014.0 EWR MSY Newark New Orleans NJ LA
1292043.0 2014-01-29T20:43:00.000+0000 -8.0 1014.0 EWR MSY Newark New Orleans NJ LA
1300719.0 2014-01-30T07:19:00.000+0000 2.0 1014.0 EWR MSY Newark New Orleans NJ LA
1301659.0 2014-01-30T16:59:00.000+0000 9.0 1014.0 EWR MSY Newark New Orleans NJ LA
1301230.0 2014-01-30T12:30:00.000+0000 0.0 1014.0 EWR MSY Newark New Orleans NJ LA
1302043.0 2014-01-30T20:43:00.000+0000 93.0 1014.0 EWR MSY Newark New Orleans NJ LA
1310719.0 2014-01-31T07:19:00.000+0000 34.0 1014.0 EWR MSY Newark New Orleans NJ LA
1311659.0 2014-01-31T16:59:00.000+0000 0.0 1014.0 EWR MSY Newark New Orleans NJ LA
1311230.0 2014-01-31T12:30:00.000+0000 5.0 1014.0 EWR MSY Newark New Orleans NJ LA
1312043.0 2014-01-31T20:43:00.000+0000 28.0 1014.0 EWR MSY Newark New Orleans NJ LA
1171230.0 2014-01-17T12:30:00.000+0000 -5.0 1014.0 EWR MSY Newark New Orleans NJ LA
1201250.0 2014-01-20T12:50:00.000+0000 -12.0 1014.0 EWR MSY Newark New Orleans NJ LA
1291230.0 2014-01-29T12:30:00.000+0000 -2.0 1014.0 EWR MSY Newark New Orleans NJ LA
1011815.0 2014-01-01T18:15:00.000+0000 125.0 1014.0 EWR MSY Newark New Orleans NJ LA
1021815.0 2014-01-02T18:15:00.000+0000 33.0 1014.0 EWR MSY Newark New Orleans NJ LA
1031815.0 2014-01-03T18:15:00.000+0000 0.0 1014.0 EWR MSY Newark New Orleans NJ LA
1040755.0 2014-01-04T07:55:00.000+0000 0.0 1014.0 EWR MSY Newark New Orleans NJ LA
1051815.0 2014-01-05T18:15:00.000+0000 172.0 1014.0 EWR MSY Newark New Orleans NJ LA
1061815.0 2014-01-06T18:15:00.000+0000 151.0 1014.0 EWR MSY Newark New Orleans NJ LA
1071815.0 2014-01-07T18:15:00.000+0000 43.0 1014.0 EWR MSY Newark New Orleans NJ LA
1081815.0 2014-01-08T18:15:00.000+0000 14.0 1014.0 EWR MSY Newark New Orleans NJ LA
1091815.0 2014-01-09T18:15:00.000+0000 3.0 1014.0 EWR MSY Newark New Orleans NJ LA
1101815.0 2014-01-10T18:15:00.000+0000 10.0 1014.0 EWR MSY Newark New Orleans NJ LA
1110730.0 2014-01-11T07:30:00.000+0000 0.0 1014.0 EWR MSY Newark New Orleans NJ LA
1121815.0 2014-01-12T18:15:00.000+0000 0.0 1014.0 EWR MSY Newark New Orleans NJ LA
1131815.0 2014-01-13T18:15:00.000+0000 -2.0 1014.0 EWR MSY Newark New Orleans NJ LA
1141815.0 2014-01-14T18:15:00.000+0000 1.0 1014.0 EWR MSY Newark New Orleans NJ LA
1151815.0 2014-01-15T18:15:00.000+0000 1.0 1014.0 EWR MSY Newark New Orleans NJ LA
1161815.0 2014-01-16T18:15:00.000+0000 8.0 1014.0 EWR MSY Newark New Orleans NJ LA
1171815.0 2014-01-17T18:15:00.000+0000 22.0 1014.0 EWR MSY Newark New Orleans NJ LA
1180730.0 2014-01-18T07:30:00.000+0000 1.0 1014.0 EWR MSY Newark New Orleans NJ LA
1191815.0 2014-01-19T18:15:00.000+0000 5.0 1014.0 EWR MSY Newark New Orleans NJ LA
1201815.0 2014-01-20T18:15:00.000+0000 5.0 1014.0 EWR MSY Newark New Orleans NJ LA
1211815.0 2014-01-21T18:15:00.000+0000 0.0 1014.0 EWR MSY Newark New Orleans NJ LA
1221815.0 2014-01-22T18:15:00.000+0000 3.0 1014.0 EWR MSY Newark New Orleans NJ LA
1231815.0 2014-01-23T18:15:00.000+0000 0.0 1014.0 EWR MSY Newark New Orleans NJ LA
1241815.0 2014-01-24T18:15:00.000+0000 84.0 1014.0 EWR MSY Newark New Orleans NJ LA
1250730.0 2014-01-25T07:30:00.000+0000 -7.0 1014.0 EWR MSY Newark New Orleans NJ LA
1261815.0 2014-01-26T18:15:00.000+0000 -5.0 1014.0 EWR MSY Newark New Orleans NJ LA
1271815.0 2014-01-27T18:15:00.000+0000 -1.0 1014.0 EWR MSY Newark New Orleans NJ LA
1281815.0 2014-01-28T18:15:00.000+0000 0.0 1014.0 EWR MSY Newark New Orleans NJ LA
1291815.0 2014-01-29T18:15:00.000+0000 -3.0 1014.0 EWR MSY Newark New Orleans NJ LA
1301815.0 2014-01-30T18:15:00.000+0000 -5.0 1014.0 EWR MSY Newark New Orleans NJ LA
1311815.0 2014-01-31T18:15:00.000+0000 -8.0 1014.0 EWR MSY Newark New Orleans NJ LA
2011055.0 2014-02-01T10:55:00.000+0000 -5.0 1303.0 LAS MSY Las Vegas New Orleans NV LA
2021025.0 2014-02-02T10:25:00.000+0000 3.0 1303.0 LAS MSY Las Vegas New Orleans NV LA
2031025.0 2014-02-03T10:25:00.000+0000 0.0 1303.0 LAS MSY Las Vegas New Orleans NV LA
2031750.0 2014-02-03T17:50:00.000+0000 -2.0 1303.0 LAS MSY Las Vegas New Orleans NV LA
2041025.0 2014-02-04T10:25:00.000+0000 6.0 1303.0 LAS MSY Las Vegas New Orleans NV LA
2041750.0 2014-02-04T17:50:00.000+0000 -6.0 1303.0 LAS MSY Las Vegas New Orleans NV LA
2051025.0 2014-02-05T10:25:00.000+0000 -4.0 1303.0 LAS MSY Las Vegas New Orleans NV LA
2051750.0 2014-02-05T17:50:00.000+0000 29.0 1303.0 LAS MSY Las Vegas New Orleans NV LA
2061025.0 2014-02-06T10:25:00.000+0000 1.0 1303.0 LAS MSY Las Vegas New Orleans NV LA
2061750.0 2014-02-06T17:50:00.000+0000 48.0 1303.0 LAS MSY Las Vegas New Orleans NV LA
2071025.0 2014-02-07T10:25:00.000+0000 -4.0 1303.0 LAS MSY Las Vegas New Orleans NV LA
2071750.0 2014-02-07T17:50:00.000+0000 20.0 1303.0 LAS MSY Las Vegas New Orleans NV LA
2081055.0 2014-02-08T10:55:00.000+0000 2.0 1303.0 LAS MSY Las Vegas New Orleans NV LA
2091025.0 2014-02-09T10:25:00.000+0000 -6.0 1303.0 LAS MSY Las Vegas New Orleans NV LA
2091750.0 2014-02-09T17:50:00.000+0000 33.0 1303.0 LAS MSY Las Vegas New Orleans NV LA
2101025.0 2014-02-10T10:25:00.000+0000 -1.0 1303.0 LAS MSY Las Vegas New Orleans NV LA
2101750.0 2014-02-10T17:50:00.000+0000 -2.0 1303.0 LAS MSY Las Vegas New Orleans NV LA
2111025.0 2014-02-11T10:25:00.000+0000 15.0 1303.0 LAS MSY Las Vegas New Orleans NV LA
2111750.0 2014-02-11T17:50:00.000+0000 -3.0 1303.0 LAS MSY Las Vegas New Orleans NV LA
2121025.0 2014-02-12T10:25:00.000+0000 -6.0 1303.0 LAS MSY Las Vegas New Orleans NV LA
2121750.0 2014-02-12T17:50:00.000+0000 158.0 1303.0 LAS MSY Las Vegas New Orleans NV LA
2131855.0 2014-02-13T18:55:00.000+0000 11.0 1303.0 LAS MSY Las Vegas New Orleans NV LA
2131215.0 2014-02-13T12:15:00.000+0000 23.0 1303.0 LAS MSY Las Vegas New Orleans NV LA
2141855.0 2014-02-14T18:55:00.000+0000 22.0 1303.0 LAS MSY Las Vegas New Orleans NV LA
2141215.0 2014-02-14T12:15:00.000+0000 18.0 1303.0 LAS MSY Las Vegas New Orleans NV LA
2150935.0 2014-02-15T09:35:00.000+0000 -4.0 1303.0 LAS MSY Las Vegas New Orleans NV LA
2151635.0 2014-02-15T16:35:00.000+0000 4.0 1303.0 LAS MSY Las Vegas New Orleans NV LA
2161855.0 2014-02-16T18:55:00.000+0000 58.0 1303.0 LAS MSY Las Vegas New Orleans NV LA
2161215.0 2014-02-16T12:15:00.000+0000 17.0 1303.0 LAS MSY Las Vegas New Orleans NV LA
2171855.0 2014-02-17T18:55:00.000+0000 14.0 1303.0 LAS MSY Las Vegas New Orleans NV LA
2171215.0 2014-02-17T12:15:00.000+0000 10.0 1303.0 LAS MSY Las Vegas New Orleans NV LA
2181855.0 2014-02-18T18:55:00.000+0000 1.0 1303.0 LAS MSY Las Vegas New Orleans NV LA
2181215.0 2014-02-18T12:15:00.000+0000 58.0 1303.0 LAS MSY Las Vegas New Orleans NV LA
2191855.0 2014-02-19T18:55:00.000+0000 -3.0 1303.0 LAS MSY Las Vegas New Orleans NV LA
2191215.0 2014-02-19T12:15:00.000+0000 32.0 1303.0 LAS MSY Las Vegas New Orleans NV LA
2201855.0 2014-02-20T18:55:00.000+0000 14.0 1303.0 LAS MSY Las Vegas New Orleans NV LA
2201215.0 2014-02-20T12:15:00.000+0000 28.0 1303.0 LAS MSY Las Vegas New Orleans NV LA
2211855.0 2014-02-21T18:55:00.000+0000 4.0 1303.0 LAS MSY Las Vegas New Orleans NV LA
2211215.0 2014-02-21T12:15:00.000+0000 11.0 1303.0 LAS MSY Las Vegas New Orleans NV LA
2220935.0 2014-02-22T09:35:00.000+0000 -5.0 1303.0 LAS MSY Las Vegas New Orleans NV LA
2221635.0 2014-02-22T16:35:00.000+0000 133.0 1303.0 LAS MSY Las Vegas New Orleans NV LA
2231855.0 2014-02-23T18:55:00.000+0000 -4.0 1303.0 LAS MSY Las Vegas New Orleans NV LA
2231215.0 2014-02-23T12:15:00.000+0000 10.0 1303.0 LAS MSY Las Vegas New Orleans NV LA
2241855.0 2014-02-24T18:55:00.000+0000 -6.0 1303.0 LAS MSY Las Vegas New Orleans NV LA
2241215.0 2014-02-24T12:15:00.000+0000 16.0 1303.0 LAS MSY Las Vegas New Orleans NV LA
2251855.0 2014-02-25T18:55:00.000+0000 7.0 1303.0 LAS MSY Las Vegas New Orleans NV LA
2251215.0 2014-02-25T12:15:00.000+0000 15.0 1303.0 LAS MSY Las Vegas New Orleans NV LA
2261855.0 2014-02-26T18:55:00.000+0000 2.0 1303.0 LAS MSY Las Vegas New Orleans NV LA
2261215.0 2014-02-26T12:15:00.000+0000 16.0 1303.0 LAS MSY Las Vegas New Orleans NV LA
2271855.0 2014-02-27T18:55:00.000+0000 10.0 1303.0 LAS MSY Las Vegas New Orleans NV LA
2271215.0 2014-02-27T12:15:00.000+0000 32.0 1303.0 LAS MSY Las Vegas New Orleans NV LA
2281855.0 2014-02-28T18:55:00.000+0000 61.0 1303.0 LAS MSY Las Vegas New Orleans NV LA
2281215.0 2014-02-28T12:15:00.000+0000 94.0 1303.0 LAS MSY Las Vegas New Orleans NV LA
3010935.0 2014-03-01T09:35:00.000+0000 10.0 1303.0 LAS MSY Las Vegas New Orleans NV LA
3011635.0 2014-03-01T16:35:00.000+0000 39.0 1303.0 LAS MSY Las Vegas New Orleans NV LA
3021855.0 2014-03-02T18:55:00.000+0000 -5.0 1303.0 LAS MSY Las Vegas New Orleans NV LA
3021215.0 2014-03-02T12:15:00.000+0000 -6.0 1303.0 LAS MSY Las Vegas New Orleans NV LA
3031855.0 2014-03-03T18:55:00.000+0000 25.0 1303.0 LAS MSY Las Vegas New Orleans NV LA
3031215.0 2014-03-03T12:15:00.000+0000 8.0 1303.0 LAS MSY Las Vegas New Orleans NV LA
3041855.0 2014-03-04T18:55:00.000+0000 -6.0 1303.0 LAS MSY Las Vegas New Orleans NV LA
3041215.0 2014-03-04T12:15:00.000+0000 28.0 1303.0 LAS MSY Las Vegas New Orleans NV LA
3051855.0 2014-03-05T18:55:00.000+0000 -3.0 1303.0 LAS MSY Las Vegas New Orleans NV LA
3051215.0 2014-03-05T12:15:00.000+0000 27.0 1303.0 LAS MSY Las Vegas New Orleans NV LA
3061855.0 2014-03-06T18:55:00.000+0000 20.0 1303.0 LAS MSY Las Vegas New Orleans NV LA
3061215.0 2014-03-06T12:15:00.000+0000 10.0 1303.0 LAS MSY Las Vegas New Orleans NV LA
3071855.0 2014-03-07T18:55:00.000+0000 36.0 1303.0 LAS MSY Las Vegas New Orleans NV LA
3071215.0 2014-03-07T12:15:00.000+0000 14.0 1303.0 LAS MSY Las Vegas New Orleans NV LA
3081940.0 2014-03-08T19:40:00.000+0000 -4.0 1303.0 LAS MSY Las Vegas New Orleans NV LA
3080830.0 2014-03-08T08:30:00.000+0000 6.0 1303.0 LAS MSY Las Vegas New Orleans NV LA
3091905.0 2014-03-09T19:05:00.000+0000 4.0 1303.0 LAS MSY Las Vegas New Orleans NV LA
3090840.0 2014-03-09T08:40:00.000+0000 -2.0 1303.0 LAS MSY Las Vegas New Orleans NV LA
3101905.0 2014-03-10T19:05:00.000+0000 49.0 1303.0 LAS MSY Las Vegas New Orleans NV LA
3100840.0 2014-03-10T08:40:00.000+0000 -1.0 1303.0 LAS MSY Las Vegas New Orleans NV LA
3111905.0 2014-03-11T19:05:00.000+0000 9.0 1303.0 LAS MSY Las Vegas New Orleans NV LA
3110840.0 2014-03-11T08:40:00.000+0000 84.0 1303.0 LAS MSY Las Vegas New Orleans NV LA
3121905.0 2014-03-12T19:05:00.000+0000 26.0 1303.0 LAS MSY Las Vegas New Orleans NV LA
3120840.0 2014-03-12T08:40:00.000+0000 -1.0 1303.0 LAS MSY Las Vegas New Orleans NV LA
3131905.0 2014-03-13T19:05:00.000+0000 37.0 1303.0 LAS MSY Las Vegas New Orleans NV LA
3130840.0 2014-03-13T08:40:00.000+0000 1.0 1303.0 LAS MSY Las Vegas New Orleans NV LA
3141905.0 2014-03-14T19:05:00.000+0000 14.0 1303.0 LAS MSY Las Vegas New Orleans NV LA
3140840.0 2014-03-14T08:40:00.000+0000 -5.0 1303.0 LAS MSY Las Vegas New Orleans NV LA
3150830.0 2014-03-15T08:30:00.000+0000 16.0 1303.0 LAS MSY Las Vegas New Orleans NV LA
3151940.0 2014-03-15T19:40:00.000+0000 95.0 1303.0 LAS MSY Las Vegas New Orleans NV LA
3161905.0 2014-03-16T19:05:00.000+0000 -4.0 1303.0 LAS MSY Las Vegas New Orleans NV LA
3160840.0 2014-03-16T08:40:00.000+0000 -6.0 1303.0 LAS MSY Las Vegas New Orleans NV LA
3171905.0 2014-03-17T19:05:00.000+0000 13.0 1303.0 LAS MSY Las Vegas New Orleans NV LA
3170840.0 2014-03-17T08:40:00.000+0000 3.0 1303.0 LAS MSY Las Vegas New Orleans NV LA
3181905.0 2014-03-18T19:05:00.000+0000 52.0 1303.0 LAS MSY Las Vegas New Orleans NV LA
3180840.0 2014-03-18T08:40:00.000+0000 2.0 1303.0 LAS MSY Las Vegas New Orleans NV LA
3191905.0 2014-03-19T19:05:00.000+0000 0.0 1303.0 LAS MSY Las Vegas New Orleans NV LA
3190840.0 2014-03-19T08:40:00.000+0000 0.0 1303.0 LAS MSY Las Vegas New Orleans NV LA
3201905.0 2014-03-20T19:05:00.000+0000 36.0 1303.0 LAS MSY Las Vegas New Orleans NV LA
3200840.0 2014-03-20T08:40:00.000+0000 68.0 1303.0 LAS MSY Las Vegas New Orleans NV LA
3211905.0 2014-03-21T19:05:00.000+0000 0.0 1303.0 LAS MSY Las Vegas New Orleans NV LA
3210840.0 2014-03-21T08:40:00.000+0000 -1.0 1303.0 LAS MSY Las Vegas New Orleans NV LA
3220830.0 2014-03-22T08:30:00.000+0000 12.0 1303.0 LAS MSY Las Vegas New Orleans NV LA
3221940.0 2014-03-22T19:40:00.000+0000 11.0 1303.0 LAS MSY Las Vegas New Orleans NV LA
3231905.0 2014-03-23T19:05:00.000+0000 9.0 1303.0 LAS MSY Las Vegas New Orleans NV LA
3230840.0 2014-03-23T08:40:00.000+0000 16.0 1303.0 LAS MSY Las Vegas New Orleans NV LA
3241905.0 2014-03-24T19:05:00.000+0000 9.0 1303.0 LAS MSY Las Vegas New Orleans NV LA
3240840.0 2014-03-24T08:40:00.000+0000 4.0 1303.0 LAS MSY Las Vegas New Orleans NV LA
3251905.0 2014-03-25T19:05:00.000+0000 10.0 1303.0 LAS MSY Las Vegas New Orleans NV LA
3250840.0 2014-03-25T08:40:00.000+0000 0.0 1303.0 LAS MSY Las Vegas New Orleans NV LA
3261905.0 2014-03-26T19:05:00.000+0000 14.0 1303.0 LAS MSY Las Vegas New Orleans NV LA
3260840.0 2014-03-26T08:40:00.000+0000 3.0 1303.0 LAS MSY Las Vegas New Orleans NV LA
3271905.0 2014-03-27T19:05:00.000+0000 13.0 1303.0 LAS MSY Las Vegas New Orleans NV LA
3270840.0 2014-03-27T08:40:00.000+0000 -5.0 1303.0 LAS MSY Las Vegas New Orleans NV LA
3281905.0 2014-03-28T19:05:00.000+0000 -1.0 1303.0 LAS MSY Las Vegas New Orleans NV LA
3280840.0 2014-03-28T08:40:00.000+0000 33.0 1303.0 LAS MSY Las Vegas New Orleans NV LA
3290830.0 2014-03-29T08:30:00.000+0000 -1.0 1303.0 LAS MSY Las Vegas New Orleans NV LA
3291940.0 2014-03-29T19:40:00.000+0000 231.0 1303.0 LAS MSY Las Vegas New Orleans NV LA
3301905.0 2014-03-30T19:05:00.000+0000 7.0 1303.0 LAS MSY Las Vegas New Orleans NV LA
3300840.0 2014-03-30T08:40:00.000+0000 15.0 1303.0 LAS MSY Las Vegas New Orleans NV LA
3311905.0 2014-03-31T19:05:00.000+0000 19.0 1303.0 LAS MSY Las Vegas New Orleans NV LA
3310840.0 2014-03-31T08:40:00.000+0000 0.0 1303.0 LAS MSY Las Vegas New Orleans NV LA
1010850.0 2014-01-01T08:50:00.000+0000 -1.0 1303.0 LAS MSY Las Vegas New Orleans NV LA
1011755.0 2014-01-01T17:55:00.000+0000 160.0 1303.0 LAS MSY Las Vegas New Orleans NV LA
1021805.0 2014-01-02T18:05:00.000+0000 138.0 1303.0 LAS MSY Las Vegas New Orleans NV LA
1020905.0 2014-01-02T09:05:00.000+0000 5.0 1303.0 LAS MSY Las Vegas New Orleans NV LA
1031805.0 2014-01-03T18:05:00.000+0000 154.0 1303.0 LAS MSY Las Vegas New Orleans NV LA
1030905.0 2014-01-03T09:05:00.000+0000 179.0 1303.0 LAS MSY Las Vegas New Orleans NV LA
1041655.0 2014-01-04T16:55:00.000+0000 113.0 1303.0 LAS MSY Las Vegas New Orleans NV LA
1040900.0 2014-01-04T09:00:00.000+0000 56.0 1303.0 LAS MSY Las Vegas New Orleans NV LA
1050905.0 2014-01-05T09:05:00.000+0000 -2.0 1303.0 LAS MSY Las Vegas New Orleans NV LA
1051805.0 2014-01-05T18:05:00.000+0000 53.0 1303.0 LAS MSY Las Vegas New Orleans NV LA
1061755.0 2014-01-06T17:55:00.000+0000 61.0 1303.0 LAS MSY Las Vegas New Orleans NV LA
1060905.0 2014-01-06T09:05:00.000+0000 23.0 1303.0 LAS MSY Las Vegas New Orleans NV LA
1071025.0 2014-01-07T10:25:00.000+0000 1.0 1303.0 LAS MSY Las Vegas New Orleans NV LA
1071750.0 2014-01-07T17:50:00.000+0000 302.0 1303.0 LAS MSY Las Vegas New Orleans NV LA
1081025.0 2014-01-08T10:25:00.000+0000 7.0 1303.0 LAS MSY Las Vegas New Orleans NV LA
1081750.0 2014-01-08T17:50:00.000+0000 52.0 1303.0 LAS MSY Las Vegas New Orleans NV LA
1091025.0 2014-01-09T10:25:00.000+0000 -5.0 1303.0 LAS MSY Las Vegas New Orleans NV LA
1091750.0 2014-01-09T17:50:00.000+0000 8.0 1303.0 LAS MSY Las Vegas New Orleans NV LA
1101025.0 2014-01-10T10:25:00.000+0000 0.0 1303.0 LAS MSY Las Vegas New Orleans NV LA
1101750.0 2014-01-10T17:50:00.000+0000 92.0 1303.0 LAS MSY Las Vegas New Orleans NV LA
1111055.0 2014-01-11T10:55:00.000+0000 31.0 1303.0 LAS MSY Las Vegas New Orleans NV LA
1121025.0 2014-01-12T10:25:00.000+0000 1.0 1303.0 LAS MSY Las Vegas New Orleans NV LA
1121750.0 2014-01-12T17:50:00.000+0000 -2.0 1303.0 LAS MSY Las Vegas New Orleans NV LA
1131025.0 2014-01-13T10:25:00.000+0000 -1.0 1303.0 LAS MSY Las Vegas New Orleans NV LA
1131750.0 2014-01-13T17:50:00.000+0000 -3.0 1303.0 LAS MSY Las Vegas New Orleans NV LA
1141025.0 2014-01-14T10:25:00.000+0000 -3.0 1303.0 LAS MSY Las Vegas New Orleans NV LA
1141750.0 2014-01-14T17:50:00.000+0000 127.0 1303.0 LAS MSY Las Vegas New Orleans NV LA
1151025.0 2014-01-15T10:25:00.000+0000 1.0 1303.0 LAS MSY Las Vegas New Orleans NV LA
1151750.0 2014-01-15T17:50:00.000+0000 -3.0 1303.0 LAS MSY Las Vegas New Orleans NV LA
1161025.0 2014-01-16T10:25:00.000+0000 -2.0 1303.0 LAS MSY Las Vegas New Orleans NV LA
1161750.0 2014-01-16T17:50:00.000+0000 0.0 1303.0 LAS MSY Las Vegas New Orleans NV LA
1171025.0 2014-01-17T10:25:00.000+0000 12.0 1303.0 LAS MSY Las Vegas New Orleans NV LA
1171750.0 2014-01-17T17:50:00.000+0000 -2.0 1303.0 LAS MSY Las Vegas New Orleans NV LA
1181055.0 2014-01-18T10:55:00.000+0000 -5.0 1303.0 LAS MSY Las Vegas New Orleans NV LA
1191025.0 2014-01-19T10:25:00.000+0000 3.0 1303.0 LAS MSY Las Vegas New Orleans NV LA
1191750.0 2014-01-19T17:50:00.000+0000 -4.0 1303.0 LAS MSY Las Vegas New Orleans NV LA
1201025.0 2014-01-20T10:25:00.000+0000 -4.0 1303.0 LAS MSY Las Vegas New Orleans NV LA
1201750.0 2014-01-20T17:50:00.000+0000 6.0 1303.0 LAS MSY Las Vegas New Orleans NV LA
1211025.0 2014-01-21T10:25:00.000+0000 3.0 1303.0 LAS MSY Las Vegas New Orleans NV LA
1211750.0 2014-01-21T17:50:00.000+0000 4.0 1303.0 LAS MSY Las Vegas New Orleans NV LA
1221025.0 2014-01-22T10:25:00.000+0000 -5.0 1303.0 LAS MSY Las Vegas New Orleans NV LA
1221750.0 2014-01-22T17:50:00.000+0000 3.0 1303.0 LAS MSY Las Vegas New Orleans NV LA
1231025.0 2014-01-23T10:25:00.000+0000 0.0 1303.0 LAS MSY Las Vegas New Orleans NV LA
1231750.0 2014-01-23T17:50:00.000+0000 30.0 1303.0 LAS MSY Las Vegas New Orleans NV LA
1241025.0 2014-01-24T10:25:00.000+0000 43.0 1303.0 LAS MSY Las Vegas New Orleans NV LA
1241750.0 2014-01-24T17:50:00.000+0000 -4.0 1303.0 LAS MSY Las Vegas New Orleans NV LA
1251055.0 2014-01-25T10:55:00.000+0000 5.0 1303.0 LAS MSY Las Vegas New Orleans NV LA
1261025.0 2014-01-26T10:25:00.000+0000 -1.0 1303.0 LAS MSY Las Vegas New Orleans NV LA
1261750.0 2014-01-26T17:50:00.000+0000 27.0 1303.0 LAS MSY Las Vegas New Orleans NV LA
1271025.0 2014-01-27T10:25:00.000+0000 -2.0 1303.0 LAS MSY Las Vegas New Orleans NV LA
1271750.0 2014-01-27T17:50:00.000+0000 2.0 1303.0 LAS MSY Las Vegas New Orleans NV LA
1281025.0 2014-01-28T10:25:00.000+0000 0.0 1303.0 LAS MSY Las Vegas New Orleans NV LA
1281750.0 2014-01-28T17:50:00.000+0000 0.0 1303.0 LAS MSY Las Vegas New Orleans NV LA
1291025.0 2014-01-29T10:25:00.000+0000 1.0 1303.0 LAS MSY Las Vegas New Orleans NV LA
1291750.0 2014-01-29T17:50:00.000+0000 -5.0 1303.0 LAS MSY Las Vegas New Orleans NV LA
1301025.0 2014-01-30T10:25:00.000+0000 0.0 1303.0 LAS MSY Las Vegas New Orleans NV LA
1301750.0 2014-01-30T17:50:00.000+0000 35.0 1303.0 LAS MSY Las Vegas New Orleans NV LA
1311025.0 2014-01-31T10:25:00.000+0000 11.0 1303.0 LAS MSY Las Vegas New Orleans NV LA
1311750.0 2014-01-31T17:50:00.000+0000 25.0 1303.0 LAS MSY Las Vegas New Orleans NV LA
2011530.0 2014-02-01T15:30:00.000+0000 -3.0 599.0 MCI MSY Kansas City New Orleans MO LA
2021105.0 2014-02-02T11:05:00.000+0000 -4.0 599.0 MCI MSY Kansas City New Orleans MO LA
2031105.0 2014-02-03T11:05:00.000+0000 -1.0 599.0 MCI MSY Kansas City New Orleans MO LA
2041105.0 2014-02-04T11:05:00.000+0000 1.0 599.0 MCI MSY Kansas City New Orleans MO LA
2051105.0 2014-02-05T11:05:00.000+0000 6.0 599.0 MCI MSY Kansas City New Orleans MO LA
2061105.0 2014-02-06T11:05:00.000+0000 40.0 599.0 MCI MSY Kansas City New Orleans MO LA
2071105.0 2014-02-07T11:05:00.000+0000 7.0 599.0 MCI MSY Kansas City New Orleans MO LA
2081530.0 2014-02-08T15:30:00.000+0000 2.0 599.0 MCI MSY Kansas City New Orleans MO LA
2091105.0 2014-02-09T11:05:00.000+0000 -2.0 599.0 MCI MSY Kansas City New Orleans MO LA
2101105.0 2014-02-10T11:05:00.000+0000 -2.0 599.0 MCI MSY Kansas City New Orleans MO LA
2111105.0 2014-02-11T11:05:00.000+0000 -1.0 599.0 MCI MSY Kansas City New Orleans MO LA
2121105.0 2014-02-12T11:05:00.000+0000 7.0 599.0 MCI MSY Kansas City New Orleans MO LA
2130800.0 2014-02-13T08:00:00.000+0000 -5.0 599.0 MCI MSY Kansas City New Orleans MO LA
2140830.0 2014-02-14T08:30:00.000+0000 3.0 599.0 MCI MSY Kansas City New Orleans MO LA
2150750.0 2014-02-15T07:50:00.000+0000 7.0 599.0 MCI MSY Kansas City New Orleans MO LA
2160930.0 2014-02-16T09:30:00.000+0000 -1.0 599.0 MCI MSY Kansas City New Orleans MO LA
2170830.0 2014-02-17T08:30:00.000+0000 10.0 599.0 MCI MSY Kansas City New Orleans MO LA
2180830.0 2014-02-18T08:30:00.000+0000 2.0 599.0 MCI MSY Kansas City New Orleans MO LA
2190830.0 2014-02-19T08:30:00.000+0000 -4.0 599.0 MCI MSY Kansas City New Orleans MO LA
2200830.0 2014-02-20T08:30:00.000+0000 9.0 599.0 MCI MSY Kansas City New Orleans MO LA
2210830.0 2014-02-21T08:30:00.000+0000 -2.0 599.0 MCI MSY Kansas City New Orleans MO LA
2220750.0 2014-02-22T07:50:00.000+0000 0.0 599.0 MCI MSY Kansas City New Orleans MO LA
2230930.0 2014-02-23T09:30:00.000+0000 2.0 599.0 MCI MSY Kansas City New Orleans MO LA
2240830.0 2014-02-24T08:30:00.000+0000 3.0 599.0 MCI MSY Kansas City New Orleans MO LA
2250830.0 2014-02-25T08:30:00.000+0000 -5.0 599.0 MCI MSY Kansas City New Orleans MO LA
2260830.0 2014-02-26T08:30:00.000+0000 251.0 599.0 MCI MSY Kansas City New Orleans MO LA
2270830.0 2014-02-27T08:30:00.000+0000 -1.0 599.0 MCI MSY Kansas City New Orleans MO LA
2280830.0 2014-02-28T08:30:00.000+0000 -2.0 599.0 MCI MSY Kansas City New Orleans MO LA
3010750.0 2014-03-01T07:50:00.000+0000 0.0 599.0 MCI MSY Kansas City New Orleans MO LA
3020930.0 2014-03-02T09:30:00.000+0000 35.0 599.0 MCI MSY Kansas City New Orleans MO LA
3030830.0 2014-03-03T08:30:00.000+0000 1.0 599.0 MCI MSY Kansas City New Orleans MO LA
3040830.0 2014-03-04T08:30:00.000+0000 11.0 599.0 MCI MSY Kansas City New Orleans MO LA
3050830.0 2014-03-05T08:30:00.000+0000 2.0 599.0 MCI MSY Kansas City New Orleans MO LA
3060830.0 2014-03-06T08:30:00.000+0000 -1.0 599.0 MCI MSY Kansas City New Orleans MO LA
3070830.0 2014-03-07T08:30:00.000+0000 -2.0 599.0 MCI MSY Kansas City New Orleans MO LA
3081610.0 2014-03-08T16:10:00.000+0000 93.0 599.0 MCI MSY Kansas City New Orleans MO LA
3090950.0 2014-03-09T09:50:00.000+0000 -1.0 599.0 MCI MSY Kansas City New Orleans MO LA
3100950.0 2014-03-10T09:50:00.000+0000 8.0 599.0 MCI MSY Kansas City New Orleans MO LA
3110950.0 2014-03-11T09:50:00.000+0000 36.0 599.0 MCI MSY Kansas City New Orleans MO LA
3120950.0 2014-03-12T09:50:00.000+0000 68.0 599.0 MCI MSY Kansas City New Orleans MO LA
3130950.0 2014-03-13T09:50:00.000+0000 13.0 599.0 MCI MSY Kansas City New Orleans MO LA
3140950.0 2014-03-14T09:50:00.000+0000 1.0 599.0 MCI MSY Kansas City New Orleans MO LA
3151610.0 2014-03-15T16:10:00.000+0000 16.0 599.0 MCI MSY Kansas City New Orleans MO LA
3160950.0 2014-03-16T09:50:00.000+0000 -5.0 599.0 MCI MSY Kansas City New Orleans MO LA
3170950.0 2014-03-17T09:50:00.000+0000 -1.0 599.0 MCI MSY Kansas City New Orleans MO LA
3180950.0 2014-03-18T09:50:00.000+0000 1.0 599.0 MCI MSY Kansas City New Orleans MO LA
3190950.0 2014-03-19T09:50:00.000+0000 -1.0 599.0 MCI MSY Kansas City New Orleans MO LA
3200950.0 2014-03-20T09:50:00.000+0000 3.0 599.0 MCI MSY Kansas City New Orleans MO LA
3210950.0 2014-03-21T09:50:00.000+0000 7.0 599.0 MCI MSY Kansas City New Orleans MO LA
3221610.0 2014-03-22T16:10:00.000+0000 38.0 599.0 MCI MSY Kansas City New Orleans MO LA
3230950.0 2014-03-23T09:50:00.000+0000 -1.0 599.0 MCI MSY Kansas City New Orleans MO LA
3240950.0 2014-03-24T09:50:00.000+0000 0.0 599.0 MCI MSY Kansas City New Orleans MO LA
3250950.0 2014-03-25T09:50:00.000+0000 4.0 599.0 MCI MSY Kansas City New Orleans MO LA
3260950.0 2014-03-26T09:50:00.000+0000 5.0 599.0 MCI MSY Kansas City New Orleans MO LA
3270950.0 2014-03-27T09:50:00.000+0000 12.0 599.0 MCI MSY Kansas City New Orleans MO LA
3280950.0 2014-03-28T09:50:00.000+0000 0.0 599.0 MCI MSY Kansas City New Orleans MO LA
3291610.0 2014-03-29T16:10:00.000+0000 12.0 599.0 MCI MSY Kansas City New Orleans MO LA
3300950.0 2014-03-30T09:50:00.000+0000 -2.0 599.0 MCI MSY Kansas City New Orleans MO LA
3310950.0 2014-03-31T09:50:00.000+0000 3.0 599.0 MCI MSY Kansas City New Orleans MO LA
1011635.0 2014-01-01T16:35:00.000+0000 -7.0 599.0 MCI MSY Kansas City New Orleans MO LA
1021635.0 2014-01-02T16:35:00.000+0000 96.0 599.0 MCI MSY Kansas City New Orleans MO LA
1031635.0 2014-01-03T16:35:00.000+0000 3.0 599.0 MCI MSY Kansas City New Orleans MO LA
1041205.0 2014-01-04T12:05:00.000+0000 1.0 599.0 MCI MSY Kansas City New Orleans MO LA
1051635.0 2014-01-05T16:35:00.000+0000 60.0 599.0 MCI MSY Kansas City New Orleans MO LA
1061635.0 2014-01-06T16:35:00.000+0000 -7.0 599.0 MCI MSY Kansas City New Orleans MO LA
1071105.0 2014-01-07T11:05:00.000+0000 14.0 599.0 MCI MSY Kansas City New Orleans MO LA
1081105.0 2014-01-08T11:05:00.000+0000 4.0 599.0 MCI MSY Kansas City New Orleans MO LA
1091105.0 2014-01-09T11:05:00.000+0000 11.0 599.0 MCI MSY Kansas City New Orleans MO LA
1101105.0 2014-01-10T11:05:00.000+0000 -1.0 599.0 MCI MSY Kansas City New Orleans MO LA
1111530.0 2014-01-11T15:30:00.000+0000 11.0 599.0 MCI MSY Kansas City New Orleans MO LA
1121105.0 2014-01-12T11:05:00.000+0000 0.0 599.0 MCI MSY Kansas City New Orleans MO LA
1131105.0 2014-01-13T11:05:00.000+0000 -5.0 599.0 MCI MSY Kansas City New Orleans MO LA
1141105.0 2014-01-14T11:05:00.000+0000 1.0 599.0 MCI MSY Kansas City New Orleans MO LA
1151105.0 2014-01-15T11:05:00.000+0000 9.0 599.0 MCI MSY Kansas City New Orleans MO LA
1161105.0 2014-01-16T11:05:00.000+0000 1.0 599.0 MCI MSY Kansas City New Orleans MO LA
1171105.0 2014-01-17T11:05:00.000+0000 -1.0 599.0 MCI MSY Kansas City New Orleans MO LA
1181530.0 2014-01-18T15:30:00.000+0000 48.0 599.0 MCI MSY Kansas City New Orleans MO LA
1191105.0 2014-01-19T11:05:00.000+0000 0.0 599.0 MCI MSY Kansas City New Orleans MO LA
1201105.0 2014-01-20T11:05:00.000+0000 -4.0 599.0 MCI MSY Kansas City New Orleans MO LA
1211105.0 2014-01-21T11:05:00.000+0000 2.0 599.0 MCI MSY Kansas City New Orleans MO LA
1221105.0 2014-01-22T11:05:00.000+0000 19.0 599.0 MCI MSY Kansas City New Orleans MO LA
1231105.0 2014-01-23T11:05:00.000+0000 -2.0 599.0 MCI MSY Kansas City New Orleans MO LA
1241105.0 2014-01-24T11:05:00.000+0000 72.0 599.0 MCI MSY Kansas City New Orleans MO LA
1251530.0 2014-01-25T15:30:00.000+0000 5.0 599.0 MCI MSY Kansas City New Orleans MO LA
1261105.0 2014-01-26T11:05:00.000+0000 -5.0 599.0 MCI MSY Kansas City New Orleans MO LA
1271105.0 2014-01-27T11:05:00.000+0000 -6.0 599.0 MCI MSY Kansas City New Orleans MO LA
1281105.0 2014-01-28T11:05:00.000+0000 0.0 599.0 MCI MSY Kansas City New Orleans MO LA
1291105.0 2014-01-29T11:05:00.000+0000 0.0 599.0 MCI MSY Kansas City New Orleans MO LA
1301105.0 2014-01-30T11:05:00.000+0000 1.0 599.0 MCI MSY Kansas City New Orleans MO LA
1311105.0 2014-01-31T11:05:00.000+0000 1.0 599.0 MCI MSY Kansas City New Orleans MO LA
3011530.0 2014-03-01T15:30:00.000+0000 72.0 409.0 BNA MSY Nashville New Orleans TN LA
3010850.0 2014-03-01T08:50:00.000+0000 2.0 409.0 BNA MSY Nashville New Orleans TN LA
3011245.0 2014-03-01T12:45:00.000+0000 4.0 409.0 BNA MSY Nashville New Orleans TN LA
3021610.0 2014-03-02T16:10:00.000+0000 14.0 409.0 BNA MSY Nashville New Orleans TN LA
3021350.0 2014-03-02T13:50:00.000+0000 15.0 409.0 BNA MSY Nashville New Orleans TN LA
3021800.0 2014-03-02T18:00:00.000+0000 56.0 409.0 BNA MSY Nashville New Orleans TN LA
3031610.0 2014-03-03T16:10:00.000+0000 13.0 409.0 BNA MSY Nashville New Orleans TN LA
3030810.0 2014-03-03T08:10:00.000+0000 0.0 409.0 BNA MSY Nashville New Orleans TN LA
3031350.0 2014-03-03T13:50:00.000+0000 -1.0 409.0 BNA MSY Nashville New Orleans TN LA
3031800.0 2014-03-03T18:00:00.000+0000 -5.0 409.0 BNA MSY Nashville New Orleans TN LA
3041610.0 2014-03-04T16:10:00.000+0000 -3.0 409.0 BNA MSY Nashville New Orleans TN LA
3040810.0 2014-03-04T08:10:00.000+0000 -4.0 409.0 BNA MSY Nashville New Orleans TN LA
3041350.0 2014-03-04T13:50:00.000+0000 10.0 409.0 BNA MSY Nashville New Orleans TN LA
3041800.0 2014-03-04T18:00:00.000+0000 7.0 409.0 BNA MSY Nashville New Orleans TN LA
3051610.0 2014-03-05T16:10:00.000+0000 -1.0 409.0 BNA MSY Nashville New Orleans TN LA
3050810.0 2014-03-05T08:10:00.000+0000 11.0 409.0 BNA MSY Nashville New Orleans TN LA
3051350.0 2014-03-05T13:50:00.000+0000 48.0 409.0 BNA MSY Nashville New Orleans TN LA
3051800.0 2014-03-05T18:00:00.000+0000 21.0 409.0 BNA MSY Nashville New Orleans TN LA
3061610.0 2014-03-06T16:10:00.000+0000 26.0 409.0 BNA MSY Nashville New Orleans TN LA
3060810.0 2014-03-06T08:10:00.000+0000 -5.0 409.0 BNA MSY Nashville New Orleans TN LA
3061350.0 2014-03-06T13:50:00.000+0000 13.0 409.0 BNA MSY Nashville New Orleans TN LA
3061800.0 2014-03-06T18:00:00.000+0000 5.0 409.0 BNA MSY Nashville New Orleans TN LA
3071610.0 2014-03-07T16:10:00.000+0000 12.0 409.0 BNA MSY Nashville New Orleans TN LA
3070810.0 2014-03-07T08:10:00.000+0000 -3.0 409.0 BNA MSY Nashville New Orleans TN LA
3071350.0 2014-03-07T13:50:00.000+0000 10.0 409.0 BNA MSY Nashville New Orleans TN LA
3071800.0 2014-03-07T18:00:00.000+0000 7.0 409.0 BNA MSY Nashville New Orleans TN LA
3081540.0 2014-03-08T15:40:00.000+0000 27.0 409.0 BNA MSY Nashville New Orleans TN LA
3081335.0 2014-03-08T13:35:00.000+0000 -4.0 409.0 BNA MSY Nashville New Orleans TN LA
3080945.0 2014-03-08T09:45:00.000+0000 11.0 409.0 BNA MSY Nashville New Orleans TN LA
3091620.0 2014-03-09T16:20:00.000+0000 0.0 409.0 BNA MSY Nashville New Orleans TN LA
3091820.0 2014-03-09T18:20:00.000+0000 25.0 409.0 BNA MSY Nashville New Orleans TN LA
3091420.0 2014-03-09T14:20:00.000+0000 12.0 409.0 BNA MSY Nashville New Orleans TN LA
3100820.0 2014-03-10T08:20:00.000+0000 -1.0 409.0 BNA MSY Nashville New Orleans TN LA
3101420.0 2014-03-10T14:20:00.000+0000 41.0 409.0 BNA MSY Nashville New Orleans TN LA
3101820.0 2014-03-10T18:20:00.000+0000 11.0 409.0 BNA MSY Nashville New Orleans TN LA
3101620.0 2014-03-10T16:20:00.000+0000 7.0 409.0 BNA MSY Nashville New Orleans TN LA
3110820.0 2014-03-11T08:20:00.000+0000 3.0 409.0 BNA MSY Nashville New Orleans TN LA
3111420.0 2014-03-11T14:20:00.000+0000 15.0 409.0 BNA MSY Nashville New Orleans TN LA
3111820.0 2014-03-11T18:20:00.000+0000 29.0 409.0 BNA MSY Nashville New Orleans TN LA
3111620.0 2014-03-11T16:20:00.000+0000 5.0 409.0 BNA MSY Nashville New Orleans TN LA
3120820.0 2014-03-12T08:20:00.000+0000 12.0 409.0 BNA MSY Nashville New Orleans TN LA
3121420.0 2014-03-12T14:20:00.000+0000 40.0 409.0 BNA MSY Nashville New Orleans TN LA
3121820.0 2014-03-12T18:20:00.000+0000 15.0 409.0 BNA MSY Nashville New Orleans TN LA
3121620.0 2014-03-12T16:20:00.000+0000 24.0 409.0 BNA MSY Nashville New Orleans TN LA
3130820.0 2014-03-13T08:20:00.000+0000 126.0 409.0 BNA MSY Nashville New Orleans TN LA
3131420.0 2014-03-13T14:20:00.000+0000 13.0 409.0 BNA MSY Nashville New Orleans TN LA
3131820.0 2014-03-13T18:20:00.000+0000 55.0 409.0 BNA MSY Nashville New Orleans TN LA
3131620.0 2014-03-13T16:20:00.000+0000 40.0 409.0 BNA MSY Nashville New Orleans TN LA
3140820.0 2014-03-14T08:20:00.000+0000 -2.0 409.0 BNA MSY Nashville New Orleans TN LA
3141420.0 2014-03-14T14:20:00.000+0000 35.0 409.0 BNA MSY Nashville New Orleans TN LA
3141820.0 2014-03-14T18:20:00.000+0000 21.0 409.0 BNA MSY Nashville New Orleans TN LA
3141620.0 2014-03-14T16:20:00.000+0000 36.0 409.0 BNA MSY Nashville New Orleans TN LA
3151335.0 2014-03-15T13:35:00.000+0000 -3.0 409.0 BNA MSY Nashville New Orleans TN LA
3150945.0 2014-03-15T09:45:00.000+0000 3.0 409.0 BNA MSY Nashville New Orleans TN LA
3151540.0 2014-03-15T15:40:00.000+0000 -3.0 409.0 BNA MSY Nashville New Orleans TN LA
3161620.0 2014-03-16T16:20:00.000+0000 22.0 409.0 BNA MSY Nashville New Orleans TN LA
3161820.0 2014-03-16T18:20:00.000+0000 39.0 409.0 BNA MSY Nashville New Orleans TN LA
3161420.0 2014-03-16T14:20:00.000+0000 0.0 409.0 BNA MSY Nashville New Orleans TN LA
3170820.0 2014-03-17T08:20:00.000+0000 1.0 409.0 BNA MSY Nashville New Orleans TN LA
3171420.0 2014-03-17T14:20:00.000+0000 112.0 409.0 BNA MSY Nashville New Orleans TN LA
3171820.0 2014-03-17T18:20:00.000+0000 12.0 409.0 BNA MSY Nashville New Orleans TN LA
3171620.0 2014-03-17T16:20:00.000+0000 56.0 409.0 BNA MSY Nashville New Orleans TN LA
3180820.0 2014-03-18T08:20:00.000+0000 0.0 409.0 BNA MSY Nashville New Orleans TN LA
3181420.0 2014-03-18T14:20:00.000+0000 25.0 409.0 BNA MSY Nashville New Orleans TN LA
3181820.0 2014-03-18T18:20:00.000+0000 36.0 409.0 BNA MSY Nashville New Orleans TN LA
3181620.0 2014-03-18T16:20:00.000+0000 1.0 409.0 BNA MSY Nashville New Orleans TN LA
3190820.0 2014-03-19T08:20:00.000+0000 -2.0 409.0 BNA MSY Nashville New Orleans TN LA
3191420.0 2014-03-19T14:20:00.000+0000 54.0 409.0 BNA MSY Nashville New Orleans TN LA
3191820.0 2014-03-19T18:20:00.000+0000 7.0 409.0 BNA MSY Nashville New Orleans TN LA
3191620.0 2014-03-19T16:20:00.000+0000 29.0 409.0 BNA MSY Nashville New Orleans TN LA
3200820.0 2014-03-20T08:20:00.000+0000 0.0 409.0 BNA MSY Nashville New Orleans TN LA
3201420.0 2014-03-20T14:20:00.000+0000 18.0 409.0 BNA MSY Nashville New Orleans TN LA
3201820.0 2014-03-20T18:20:00.000+0000 9.0 409.0 BNA MSY Nashville New Orleans TN LA
3201620.0 2014-03-20T16:20:00.000+0000 79.0 409.0 BNA MSY Nashville New Orleans TN LA
3210820.0 2014-03-21T08:20:00.000+0000 3.0 409.0 BNA MSY Nashville New Orleans TN LA
3211420.0 2014-03-21T14:20:00.000+0000 22.0 409.0 BNA MSY Nashville New Orleans TN LA
3211820.0 2014-03-21T18:20:00.000+0000 30.0 409.0 BNA MSY Nashville New Orleans TN LA
3211620.0 2014-03-21T16:20:00.000+0000 22.0 409.0 BNA MSY Nashville New Orleans TN LA
3221335.0 2014-03-22T13:35:00.000+0000 -2.0 409.0 BNA MSY Nashville New Orleans TN LA
3220945.0 2014-03-22T09:45:00.000+0000 0.0 409.0 BNA MSY Nashville New Orleans TN LA
3221540.0 2014-03-22T15:40:00.000+0000 -1.0 409.0 BNA MSY Nashville New Orleans TN LA
3231620.0 2014-03-23T16:20:00.000+0000 -2.0 409.0 BNA MSY Nashville New Orleans TN LA
3231820.0 2014-03-23T18:20:00.000+0000 6.0 409.0 BNA MSY Nashville New Orleans TN LA
3231420.0 2014-03-23T14:20:00.000+0000 -3.0 409.0 BNA MSY Nashville New Orleans TN LA
3240820.0 2014-03-24T08:20:00.000+0000 0.0 409.0 BNA MSY Nashville New Orleans TN LA
3241420.0 2014-03-24T14:20:00.000+0000 27.0 409.0 BNA MSY Nashville New Orleans TN LA
3241820.0 2014-03-24T18:20:00.000+0000 44.0 409.0 BNA MSY Nashville New Orleans TN LA
3241620.0 2014-03-24T16:20:00.000+0000 41.0 409.0 BNA MSY Nashville New Orleans TN LA
3250820.0 2014-03-25T08:20:00.000+0000 0.0 409.0 BNA MSY Nashville New Orleans TN LA
3251420.0 2014-03-25T14:20:00.000+0000 70.0 409.0 BNA MSY Nashville New Orleans TN LA
3251820.0 2014-03-25T18:20:00.000+0000 30.0 409.0 BNA MSY Nashville New Orleans TN LA
3251620.0 2014-03-25T16:20:00.000+0000 30.0 409.0 BNA MSY Nashville New Orleans TN LA
3260820.0 2014-03-26T08:20:00.000+0000 -1.0 409.0 BNA MSY Nashville New Orleans TN LA
3261420.0 2014-03-26T14:20:00.000+0000 8.0 409.0 BNA MSY Nashville New Orleans TN LA
3261820.0 2014-03-26T18:20:00.000+0000 1.0 409.0 BNA MSY Nashville New Orleans TN LA
3261620.0 2014-03-26T16:20:00.000+0000 -4.0 409.0 BNA MSY Nashville New Orleans TN LA
3270820.0 2014-03-27T08:20:00.000+0000 0.0 409.0 BNA MSY Nashville New Orleans TN LA
3271420.0 2014-03-27T14:20:00.000+0000 25.0 409.0 BNA MSY Nashville New Orleans TN LA
3271820.0 2014-03-27T18:20:00.000+0000 41.0 409.0 BNA MSY Nashville New Orleans TN LA
3271620.0 2014-03-27T16:20:00.000+0000 23.0 409.0 BNA MSY Nashville New Orleans TN LA
3280820.0 2014-03-28T08:20:00.000+0000 -5.0 409.0 BNA MSY Nashville New Orleans TN LA
3281420.0 2014-03-28T14:20:00.000+0000 52.0 409.0 BNA MSY Nashville New Orleans TN LA
3281820.0 2014-03-28T18:20:00.000+0000 17.0 409.0 BNA MSY Nashville New Orleans TN LA
3281620.0 2014-03-28T16:20:00.000+0000 15.0 409.0 BNA MSY Nashville New Orleans TN LA
3291335.0 2014-03-29T13:35:00.000+0000 1.0 409.0 BNA MSY Nashville New Orleans TN LA
3290945.0 2014-03-29T09:45:00.000+0000 20.0 409.0 BNA MSY Nashville New Orleans TN LA
3291540.0 2014-03-29T15:40:00.000+0000 35.0 409.0 BNA MSY Nashville New Orleans TN LA
3301620.0 2014-03-30T16:20:00.000+0000 0.0 409.0 BNA MSY Nashville New Orleans TN LA
3301820.0 2014-03-30T18:20:00.000+0000 22.0 409.0 BNA MSY Nashville New Orleans TN LA
3301420.0 2014-03-30T14:20:00.000+0000 10.0 409.0 BNA MSY Nashville New Orleans TN LA
3310820.0 2014-03-31T08:20:00.000+0000 -1.0 409.0 BNA MSY Nashville New Orleans TN LA
3311420.0 2014-03-31T14:20:00.000+0000 19.0 409.0 BNA MSY Nashville New Orleans TN LA
3311820.0 2014-03-31T18:20:00.000+0000 25.0 409.0 BNA MSY Nashville New Orleans TN LA
3311620.0 2014-03-31T16:20:00.000+0000 30.0 409.0 BNA MSY Nashville New Orleans TN LA
1010800.0 2014-01-01T08:00:00.000+0000 -3.0 409.0 BNA MSY Nashville New Orleans TN LA
1011210.0 2014-01-01T12:10:00.000+0000 7.0 409.0 BNA MSY Nashville New Orleans TN LA
1011835.0 2014-01-01T18:35:00.000+0000 53.0 409.0 BNA MSY Nashville New Orleans TN LA
1021215.0 2014-01-02T12:15:00.000+0000 43.0 409.0 BNA MSY Nashville New Orleans TN LA
1021835.0 2014-01-02T18:35:00.000+0000 200.0 409.0 BNA MSY Nashville New Orleans TN LA
1020800.0 2014-01-02T08:00:00.000+0000 29.0 409.0 BNA MSY Nashville New Orleans TN LA
1031215.0 2014-01-03T12:15:00.000+0000 185.0 409.0 BNA MSY Nashville New Orleans TN LA
1031835.0 2014-01-03T18:35:00.000+0000 226.0 409.0 BNA MSY Nashville New Orleans TN LA
1030800.0 2014-01-03T08:00:00.000+0000 -1.0 409.0 BNA MSY Nashville New Orleans TN LA
1041420.0 2014-01-04T14:20:00.000+0000 174.0 409.0 BNA MSY Nashville New Orleans TN LA
1040835.0 2014-01-04T08:35:00.000+0000 18.0 409.0 BNA MSY Nashville New Orleans TN LA
1051215.0 2014-01-05T12:15:00.000+0000 85.0 409.0 BNA MSY Nashville New Orleans TN LA
1051835.0 2014-01-05T18:35:00.000+0000 283.0 409.0 BNA MSY Nashville New Orleans TN LA
1050800.0 2014-01-05T08:00:00.000+0000 3.0 409.0 BNA MSY Nashville New Orleans TN LA
1061215.0 2014-01-06T12:15:00.000+0000 150.0 409.0 BNA MSY Nashville New Orleans TN LA
1061835.0 2014-01-06T18:35:00.000+0000 133.0 409.0 BNA MSY Nashville New Orleans TN LA
1060800.0 2014-01-06T08:00:00.000+0000 102.0 409.0 BNA MSY Nashville New Orleans TN LA
1071240.0 2014-01-07T12:40:00.000+0000 57.0 409.0 BNA MSY Nashville New Orleans TN LA
1071455.0 2014-01-07T14:55:00.000+0000 12.0 409.0 BNA MSY Nashville New Orleans TN LA
1070905.0 2014-01-07T09:05:00.000+0000 5.0 409.0 BNA MSY Nashville New Orleans TN LA
1071735.0 2014-01-07T17:35:00.000+0000 131.0 409.0 BNA MSY Nashville New Orleans TN LA
1081240.0 2014-01-08T12:40:00.000+0000 19.0 409.0 BNA MSY Nashville New Orleans TN LA
1081455.0 2014-01-08T14:55:00.000+0000 2.0 409.0 BNA MSY Nashville New Orleans TN LA
1080905.0 2014-01-08T09:05:00.000+0000 -2.0 409.0 BNA MSY Nashville New Orleans TN LA
1081735.0 2014-01-08T17:35:00.000+0000 34.0 409.0 BNA MSY Nashville New Orleans TN LA
1091240.0 2014-01-09T12:40:00.000+0000 14.0 409.0 BNA MSY Nashville New Orleans TN LA
1091455.0 2014-01-09T14:55:00.000+0000 24.0 409.0 BNA MSY Nashville New Orleans TN LA
1090905.0 2014-01-09T09:05:00.000+0000 -1.0 409.0 BNA MSY Nashville New Orleans TN LA
1091735.0 2014-01-09T17:35:00.000+0000 28.0 409.0 BNA MSY Nashville New Orleans TN LA
1101240.0 2014-01-10T12:40:00.000+0000 50.0 409.0 BNA MSY Nashville New Orleans TN LA
1101455.0 2014-01-10T14:55:00.000+0000 11.0 409.0 BNA MSY Nashville New Orleans TN LA
1100905.0 2014-01-10T09:05:00.000+0000 4.0 409.0 BNA MSY Nashville New Orleans TN LA
1101735.0 2014-01-10T17:35:00.000+0000 33.0 409.0 BNA MSY Nashville New Orleans TN LA
1111305.0 2014-01-11T13:05:00.000+0000 0.0 409.0 BNA MSY Nashville New Orleans TN LA
1111805.0 2014-01-11T18:05:00.000+0000 2.0 409.0 BNA MSY Nashville New Orleans TN LA
1110950.0 2014-01-11T09:50:00.000+0000 0.0 409.0 BNA MSY Nashville New Orleans TN LA
1121235.0 2014-01-12T12:35:00.000+0000 8.0 409.0 BNA MSY Nashville New Orleans TN LA
1121455.0 2014-01-12T14:55:00.000+0000 4.0 409.0 BNA MSY Nashville New Orleans TN LA
1121735.0 2014-01-12T17:35:00.000+0000 4.0 409.0 BNA MSY Nashville New Orleans TN LA
1131240.0 2014-01-13T12:40:00.000+0000 9.0 409.0 BNA MSY Nashville New Orleans TN LA
1131455.0 2014-01-13T14:55:00.000+0000 2.0 409.0 BNA MSY Nashville New Orleans TN LA
1130850.0 2014-01-13T08:50:00.000+0000 -1.0 409.0 BNA MSY Nashville New Orleans TN LA
1131735.0 2014-01-13T17:35:00.000+0000 15.0 409.0 BNA MSY Nashville New Orleans TN LA
1141240.0 2014-01-14T12:40:00.000+0000 17.0 409.0 BNA MSY Nashville New Orleans TN LA
1141455.0 2014-01-14T14:55:00.000+0000 -1.0 409.0 BNA MSY Nashville New Orleans TN LA
1140850.0 2014-01-14T08:50:00.000+0000 -4.0 409.0 BNA MSY Nashville New Orleans TN LA
1141735.0 2014-01-14T17:35:00.000+0000 7.0 409.0 BNA MSY Nashville New Orleans TN LA
1151240.0 2014-01-15T12:40:00.000+0000 -2.0 409.0 BNA MSY Nashville New Orleans TN LA
1151455.0 2014-01-15T14:55:00.000+0000 1.0 409.0 BNA MSY Nashville New Orleans TN LA
1150850.0 2014-01-15T08:50:00.000+0000 -2.0 409.0 BNA MSY Nashville New Orleans TN LA
1151735.0 2014-01-15T17:35:00.000+0000 9.0 409.0 BNA MSY Nashville New Orleans TN LA
1161240.0 2014-01-16T12:40:00.000+0000 17.0 409.0 BNA MSY Nashville New Orleans TN LA
1161455.0 2014-01-16T14:55:00.000+0000 17.0 409.0 BNA MSY Nashville New Orleans TN LA
1160850.0 2014-01-16T08:50:00.000+0000 -2.0 409.0 BNA MSY Nashville New Orleans TN LA
1161735.0 2014-01-16T17:35:00.000+0000 52.0 409.0 BNA MSY Nashville New Orleans TN LA
1171240.0 2014-01-17T12:40:00.000+0000 21.0 409.0 BNA MSY Nashville New Orleans TN LA
1171455.0 2014-01-17T14:55:00.000+0000 13.0 409.0 BNA MSY Nashville New Orleans TN LA
1170850.0 2014-01-17T08:50:00.000+0000 10.0 409.0 BNA MSY Nashville New Orleans TN LA
1171735.0 2014-01-17T17:35:00.000+0000 40.0 409.0 BNA MSY Nashville New Orleans TN LA
1181305.0 2014-01-18T13:05:00.000+0000 2.0 409.0 BNA MSY Nashville New Orleans TN LA
1181805.0 2014-01-18T18:05:00.000+0000 42.0 409.0 BNA MSY Nashville New Orleans TN LA
1180950.0 2014-01-18T09:50:00.000+0000 4.0 409.0 BNA MSY Nashville New Orleans TN LA
1191235.0 2014-01-19T12:35:00.000+0000 23.0 409.0 BNA MSY Nashville New Orleans TN LA
1191455.0 2014-01-19T14:55:00.000+0000 4.0 409.0 BNA MSY Nashville New Orleans TN LA
1191735.0 2014-01-19T17:35:00.000+0000 64.0 409.0 BNA MSY Nashville New Orleans TN LA
1201240.0 2014-01-20T12:40:00.000+0000 8.0 409.0 BNA MSY Nashville New Orleans TN LA
1201455.0 2014-01-20T14:55:00.000+0000 5.0 409.0 BNA MSY Nashville New Orleans TN LA
1200850.0 2014-01-20T08:50:00.000+0000 7.0 409.0 BNA MSY Nashville New Orleans TN LA
1201735.0 2014-01-20T17:35:00.000+0000 -3.0 409.0 BNA MSY Nashville New Orleans TN LA
1211240.0 2014-01-21T12:40:00.000+0000 41.0 409.0 BNA MSY Nashville New Orleans TN LA
1211455.0 2014-01-21T14:55:00.000+0000 -1.0 409.0 BNA MSY Nashville New Orleans TN LA
1210850.0 2014-01-21T08:50:00.000+0000 18.0 409.0 BNA MSY Nashville New Orleans TN LA
1211735.0 2014-01-21T17:35:00.000+0000 17.0 409.0 BNA MSY Nashville New Orleans TN LA
1221240.0 2014-01-22T12:40:00.000+0000 19.0 409.0 BNA MSY Nashville New Orleans TN LA
1221455.0 2014-01-22T14:55:00.000+0000 -1.0 409.0 BNA MSY Nashville New Orleans TN LA
1220850.0 2014-01-22T08:50:00.000+0000 -4.0 409.0 BNA MSY Nashville New Orleans TN LA
1221735.0 2014-01-22T17:35:00.000+0000 118.0 409.0 BNA MSY Nashville New Orleans TN LA
1231240.0 2014-01-23T12:40:00.000+0000 20.0 409.0 BNA MSY Nashville New Orleans TN LA
1231455.0 2014-01-23T14:55:00.000+0000 4.0 409.0 BNA MSY Nashville New Orleans TN LA
1230850.0 2014-01-23T08:50:00.000+0000 18.0 409.0 BNA MSY Nashville New Orleans TN LA
1231735.0 2014-01-23T17:35:00.000+0000 33.0 409.0 BNA MSY Nashville New Orleans TN LA
1241240.0 2014-01-24T12:40:00.000+0000 20.0 409.0 BNA MSY Nashville New Orleans TN LA
1241455.0 2014-01-24T14:55:00.000+0000 4.0 409.0 BNA MSY Nashville New Orleans TN LA
1240850.0 2014-01-24T08:50:00.000+0000 12.0 409.0 BNA MSY Nashville New Orleans TN LA
1241735.0 2014-01-24T17:35:00.000+0000 0.0 409.0 BNA MSY Nashville New Orleans TN LA
1251305.0 2014-01-25T13:05:00.000+0000 27.0 409.0 BNA MSY Nashville New Orleans TN LA
1251805.0 2014-01-25T18:05:00.000+0000 19.0 409.0 BNA MSY Nashville New Orleans TN LA
1250950.0 2014-01-25T09:50:00.000+0000 -2.0 409.0 BNA MSY Nashville New Orleans TN LA
1261235.0 2014-01-26T12:35:00.000+0000 0.0 409.0 BNA MSY Nashville New Orleans TN LA
1261455.0 2014-01-26T14:55:00.000+0000 5.0 409.0 BNA MSY Nashville New Orleans TN LA
1261735.0 2014-01-26T17:35:00.000+0000 3.0 409.0 BNA MSY Nashville New Orleans TN LA
1271240.0 2014-01-27T12:40:00.000+0000 17.0 409.0 BNA MSY Nashville New Orleans TN LA
1271455.0 2014-01-27T14:55:00.000+0000 -3.0 409.0 BNA MSY Nashville New Orleans TN LA
1270850.0 2014-01-27T08:50:00.000+0000 -2.0 409.0 BNA MSY Nashville New Orleans TN LA
1271735.0 2014-01-27T17:35:00.000+0000 10.0 409.0 BNA MSY Nashville New Orleans TN LA
1281240.0 2014-01-28T12:40:00.000+0000 0.0 409.0 BNA MSY Nashville New Orleans TN LA
1281455.0 2014-01-28T14:55:00.000+0000 0.0 409.0 BNA MSY Nashville New Orleans TN LA
1280850.0 2014-01-28T08:50:00.000+0000 0.0 409.0 BNA MSY Nashville New Orleans TN LA
1281735.0 2014-01-28T17:35:00.000+0000 0.0 409.0 BNA MSY Nashville New Orleans TN LA
1291240.0 2014-01-29T12:40:00.000+0000 13.0 409.0 BNA MSY Nashville New Orleans TN LA
1291455.0 2014-01-29T14:55:00.000+0000 -2.0 409.0 BNA MSY Nashville New Orleans TN LA
1290850.0 2014-01-29T08:50:00.000+0000 0.0 409.0 BNA MSY Nashville New Orleans TN LA
1291735.0 2014-01-29T17:35:00.000+0000 9.0 409.0 BNA MSY Nashville New Orleans TN LA
1301240.0 2014-01-30T12:40:00.000+0000 38.0 409.0 BNA MSY Nashville New Orleans TN LA
1301455.0 2014-01-30T14:55:00.000+0000 6.0 409.0 BNA MSY Nashville New Orleans TN LA
1300850.0 2014-01-30T08:50:00.000+0000 -1.0 409.0 BNA MSY Nashville New Orleans TN LA
1301735.0 2014-01-30T17:35:00.000+0000 57.0 409.0 BNA MSY Nashville New Orleans TN LA
1311240.0 2014-01-31T12:40:00.000+0000 31.0 409.0 BNA MSY Nashville New Orleans TN LA
1311455.0 2014-01-31T14:55:00.000+0000 22.0 409.0 BNA MSY Nashville New Orleans TN LA
1310850.0 2014-01-31T08:50:00.000+0000 -2.0 409.0 BNA MSY Nashville New Orleans TN LA
1311735.0 2014-01-31T17:35:00.000+0000 6.0 409.0 BNA MSY Nashville New Orleans TN LA
2011305.0 2014-02-01T13:05:00.000+0000 -1.0 409.0 BNA MSY Nashville New Orleans TN LA
2011805.0 2014-02-01T18:05:00.000+0000 -6.0 409.0 BNA MSY Nashville New Orleans TN LA
2010950.0 2014-02-01T09:50:00.000+0000 4.0 409.0 BNA MSY Nashville New Orleans TN LA
2021455.0 2014-02-02T14:55:00.000+0000 11.0 409.0 BNA MSY Nashville New Orleans TN LA
2021235.0 2014-02-02T12:35:00.000+0000 26.0 409.0 BNA MSY Nashville New Orleans TN LA
2021650.0 2014-02-02T16:50:00.000+0000 77.0 409.0 BNA MSY Nashville New Orleans TN LA
2031240.0 2014-02-03T12:40:00.000+0000 30.0 409.0 BNA MSY Nashville New Orleans TN LA
2031455.0 2014-02-03T14:55:00.000+0000 10.0 409.0 BNA MSY Nashville New Orleans TN LA
2030850.0 2014-02-03T08:50:00.000+0000 -1.0 409.0 BNA MSY Nashville New Orleans TN LA
2031735.0 2014-02-03T17:35:00.000+0000 -3.0 409.0 BNA MSY Nashville New Orleans TN LA
2041240.0 2014-02-04T12:40:00.000+0000 56.0 409.0 BNA MSY Nashville New Orleans TN LA
2041455.0 2014-02-04T14:55:00.000+0000 23.0 409.0 BNA MSY Nashville New Orleans TN LA
2040850.0 2014-02-04T08:50:00.000+0000 -1.0 409.0 BNA MSY Nashville New Orleans TN LA
2041735.0 2014-02-04T17:35:00.000+0000 3.0 409.0 BNA MSY Nashville New Orleans TN LA
2051240.0 2014-02-05T12:40:00.000+0000 33.0 409.0 BNA MSY Nashville New Orleans TN LA
2051455.0 2014-02-05T14:55:00.000+0000 14.0 409.0 BNA MSY Nashville New Orleans TN LA
2050850.0 2014-02-05T08:50:00.000+0000 19.0 409.0 BNA MSY Nashville New Orleans TN LA
2051735.0 2014-02-05T17:35:00.000+0000 26.0 409.0 BNA MSY Nashville New Orleans TN LA
2061240.0 2014-02-06T12:40:00.000+0000 43.0 409.0 BNA MSY Nashville New Orleans TN LA
2061455.0 2014-02-06T14:55:00.000+0000 -2.0 409.0 BNA MSY Nashville New Orleans TN LA
2060850.0 2014-02-06T08:50:00.000+0000 10.0 409.0 BNA MSY Nashville New Orleans TN LA
2061735.0 2014-02-06T17:35:00.000+0000 34.0 409.0 BNA MSY Nashville New Orleans TN LA
2071240.0 2014-02-07T12:40:00.000+0000 88.0 409.0 BNA MSY Nashville New Orleans TN LA
2071455.0 2014-02-07T14:55:00.000+0000 5.0 409.0 BNA MSY Nashville New Orleans TN LA
2070850.0 2014-02-07T08:50:00.000+0000 1.0 409.0 BNA MSY Nashville New Orleans TN LA
2071735.0 2014-02-07T17:35:00.000+0000 20.0 409.0 BNA MSY Nashville New Orleans TN LA
2081305.0 2014-02-08T13:05:00.000+0000 -6.0 409.0 BNA MSY Nashville New Orleans TN LA
2081805.0 2014-02-08T18:05:00.000+0000 0.0 409.0 BNA MSY Nashville New Orleans TN LA
2080950.0 2014-02-08T09:50:00.000+0000 -3.0 409.0 BNA MSY Nashville New Orleans TN LA
2091235.0 2014-02-09T12:35:00.000+0000 5.0 409.0 BNA MSY Nashville New Orleans TN LA
2091455.0 2014-02-09T14:55:00.000+0000 2.0 409.0 BNA MSY Nashville New Orleans TN LA
2091735.0 2014-02-09T17:35:00.000+0000 8.0 409.0 BNA MSY Nashville New Orleans TN LA
2101240.0 2014-02-10T12:40:00.000+0000 25.0 409.0 BNA MSY Nashville New Orleans TN LA
2101455.0 2014-02-10T14:55:00.000+0000 14.0 409.0 BNA MSY Nashville New Orleans TN LA
2100850.0 2014-02-10T08:50:00.000+0000 9.0 409.0 BNA MSY Nashville New Orleans TN LA
2101735.0 2014-02-10T17:35:00.000+0000 -2.0 409.0 BNA MSY Nashville New Orleans TN LA
2111240.0 2014-02-11T12:40:00.000+0000 145.0 409.0 BNA MSY Nashville New Orleans TN LA
2111455.0 2014-02-11T14:55:00.000+0000 -2.0 409.0 BNA MSY Nashville New Orleans TN LA
2110850.0 2014-02-11T08:50:00.000+0000 96.0 409.0 BNA MSY Nashville New Orleans TN LA
2111735.0 2014-02-11T17:35:00.000+0000 25.0 409.0 BNA MSY Nashville New Orleans TN LA
2121240.0 2014-02-12T12:40:00.000+0000 8.0 409.0 BNA MSY Nashville New Orleans TN LA
2121455.0 2014-02-12T14:55:00.000+0000 29.0 409.0 BNA MSY Nashville New Orleans TN LA
2120850.0 2014-02-12T08:50:00.000+0000 3.0 409.0 BNA MSY Nashville New Orleans TN LA
2121735.0 2014-02-12T17:35:00.000+0000 39.0 409.0 BNA MSY Nashville New Orleans TN LA
2131350.0 2014-02-13T13:50:00.000+0000 5.0 409.0 BNA MSY Nashville New Orleans TN LA
2131610.0 2014-02-13T16:10:00.000+0000 11.0 409.0 BNA MSY Nashville New Orleans TN LA
2130810.0 2014-02-13T08:10:00.000+0000 -4.0 409.0 BNA MSY Nashville New Orleans TN LA
2131800.0 2014-02-13T18:00:00.000+0000 9.0 409.0 BNA MSY Nashville New Orleans TN LA
2141610.0 2014-02-14T16:10:00.000+0000 37.0 409.0 BNA MSY Nashville New Orleans TN LA
2140810.0 2014-02-14T08:10:00.000+0000 13.0 409.0 BNA MSY Nashville New Orleans TN LA
2141350.0 2014-02-14T13:50:00.000+0000 46.0 409.0 BNA MSY Nashville New Orleans TN LA
2141800.0 2014-02-14T18:00:00.000+0000 21.0 409.0 BNA MSY Nashville New Orleans TN LA

Building the Graph

Now that we've imported our data, we're going to need to build our graph. To do so we're going to do two things. We are going to build the structure of the vertices (or nodes) and we're going to build the structure of the edges. What's awesome about GraphFrames is that this process is incredibly simple.

  • Rename IATA airport code to id in the Vertices Table
  • Start and End airports to src and dst for the Edges Table (flights)

These are required naming conventions for vertices and edges in GraphFrames.

WARNING: If the graphframes package, required in the cell below, is not installed, follow the instructions here.

// Note, ensure you have already installed the GraphFrames spack-package
import org.apache.spark.sql.functions._
import org.graphframes._

// Create Vertices (airports) and Edges (flights)
val tripVertices = airports.withColumnRenamed("IATA", "id").distinct()
val tripEdges = departureDelays_geo.select("tripid", "delay", "src", "dst", "city_dst", "state_dst")

// Cache Vertices and Edges
tripEdges.cache()
tripVertices.cache()
import org.apache.spark.sql.functions._
import org.graphframes._
tripVertices: org.apache.spark.sql.Dataset[org.apache.spark.sql.Row] = [id: string, City: string ... 2 more fields]
tripEdges: org.apache.spark.sql.DataFrame = [tripid: int, delay: int ... 4 more fields]
res5: tripVertices.type = [id: string, City: string ... 2 more fields]
// Vertices
// The vertices of our graph are the airports
display(tripVertices)
id City State Country
FAT Fresno CA USA
CMH Columbus OH USA
PHX Phoenix AZ USA
PAH Paducah KY USA
COS Colorado Springs CO USA
RNO Reno NV USA
MYR Myrtle Beach SC USA
VLD Valdosta GA USA
BPT Beaumont TX USA
CAE Columbia SC USA
PSC Pasco WA USA
SRQ Sarasota FL USA
LAX Los Angeles CA USA
DAY Dayton OH USA
AVP Wilkes-Barre PA USA
MFR Medford OR USA
JFK New York NY USA
BNA Nashville TN USA
CLT Charlotte NC USA
LAS Las Vegas NV USA
BDL Hartford CT USA
ILG Wilmington DE USA
ACT Waco TX USA
ATW Appleton WI USA
RHI Rhinelander WI USA
PWM Portland ME USA
SJT San Angelo TX USA
APN Alpena MI USA
GRB Green Bay WI USA
CAK Akron OH USA
LAN Lansing MI USA
FLL Fort Lauderdale FL USA
MSY New Orleans LA USA
SAT San Antonio TX USA
TPA Tampa FL USA
COD Cody WY USA
MOD Modesto CA USA
GTR Columbus MS USA
BTV Burlington VT USA
RDD Redding CA USA
HLN Helena MT USA
CPR Casper WY USA
FWA Fort Wayne IN USA
IMT Iron Mountain MI USA
DTW Detroit MI USA
BZN Bozeman MT USA
SBN South Bend IN USA
SPS Wichita Falls TX USA
BFL Bakersfield CA USA
HOB Hobbs NM USA
TVC Traverse City MI USA
CLE Cleveland OH USA
ABR Aberdeen SD USA
CHS Charleston SC USA
GUC Gunnison CO USA
IND Indianapolis IN USA
SDF Louisville KY USA
SAN San Diego CA USA
RSW Fort Myers FL USA
BOS Boston MA USA
TUL Tulsa OK USA
AGS Augusta GA USA
MOB Mobile AL USA
TUS Tucson AZ USA
KTN Ketchikan AK USA
BTR Baton Rouge LA USA
PNS Pensacola FL USA
ABQ Albuquerque NM USA
LGA New York NY USA
DAL Dallas TX USA
JNU Juneau AK USA
MAF Midland TX USA
RIC Richmond VA USA
FAR Fargo ND USA
MTJ Montrose CO USA
AMA Amarillo TX USA
ROC Rochester NY USA
SHV Shreveport LA USA
YAK Yakutat AK USA
CSG Columbus GA USA
ALO Waterloo IA USA
DRO Durango CO USA
CRP Corpus Christi TX USA
FNT Flint MI USA
GSO Greensboro NC USA
LWS Lewiston ID USA
TOL Toledo OH USA
GTF Great Falls MT USA
MKE Milwaukee WI USA
RKS Rock Springs WY USA
STL St. Louis MO USA
MHT Manchester NH USA
CRW Charleston WV USA
SLC Salt Lake City UT USA
ACV Eureka CA USA
DFW Dallas TX USA
OME Nome AK USA
ORF Norfolk VA USA
RDU Raleigh NC USA
SYR Syracuse NY USA
BQK Brunswick GA USA
ROA Roanoke VA USA
OKC Oklahoma City OK USA
EYW Key West FL USA
BOI Boise ID USA
ABY Albany GA USA
PIA Peoria IL USA
GRI Grand Island NE USA
PBI West Palm Beach FL USA
FSM Fort Smith AR USA
TYS Knoxville TN USA
DAB Daytona Beach FL USA
TTN Trenton NJ USA
MDT Harrisburg PA USA
AUS Austin TX USA
DCA Washington DC null USA
PIH Pocatello ID USA
GCC Gillette WY USA
BUR Burbank CA USA
GRK Killeen TX USA
LBB Lubbock TX USA
JAN Jackson MS USA
MSP Minneapolis MN USA
SAF Santa Fe NM USA
HPN White Plains NY USA
DHN Dothan AL USA
PSP Palm Springs CA USA
INL International Falls MN USA
CIC Chico CA USA
EGE Vail CO USA
CLD Carlsbad CA USA
RST Rochester MN USA
DEN Denver CO USA
EUG Eugene OR USA
LFT Lafayette LA USA
PVD Providence RI USA
DBQ Dubuque IA USA
SAV Savannah GA USA
SFO San Francisco CA USA
JAX Jacksonville FL USA
LIT Little Rock AR USA
IDA Idaho Falls ID USA
TYR Tyler TX USA
ANC Anchorage AK USA
HRL Harlingen TX USA
LMT Klamath Falls OR USA
PHF Newport News VA USA
HOU Houston TX USA
SPI Springfield IL USA
MOT Minot ND USA
BTM Butte MT USA
SMF Sacramento CA USA
HIB Hibbing MN USA
ROW Roswell NM USA
MBS Saginaw MI USA
ILM Wilmington NC USA
LGB Long Beach CA USA
IAD Washington DC null USA
ICT Wichita KS USA
BGR Bangor ME USA
ELP El Paso TX USA
SUX Sioux City IA USA
HSV Huntsville AL USA
SIT Sitka AK USA
CWA Wausau WI USA
LCH Lake Charles LA USA
CMI Champaign IL USA
ELM Elmira NY USA
CLL College Station TX USA
VPS Fort Walton Beach FL USA
MSN Madison WI USA
MHK Manhattan KS USA
OAJ Jacksonville NC USA
EKO Elko NV USA
FSD Sioux Falls SD USA
EWR Newark NJ USA
MEM Memphis TN USA
ADQ Kodiak AK USA
GGG Longview TX USA
BLI Bellingham WA USA
OMA Omaha NE USA
ATL Atlanta GA USA
SJC San Jose CA USA
SBA Santa Barbara CA USA
ONT Ontario CA USA
EAU Eau Claire WI USA
GPT Gulfport MS USA
SUN Sun Valley ID USA
CHO Charlottesville VA USA
MSO Missoula MT USA
CMX Hancock MI USA
ORD Chicago IL USA
EVV Evansville IN USA
MLU Monroe LA USA
LAW Lawton OK USA
BRW Barrow AK USA
SBP San Luis Obispo CA USA
LIH Lihue, Kauai HI USA
GJT Grand Junction CO USA
FAI Fairbanks AK USA
BIS Bismarck ND USA
SNA Orange County CA USA
LAR Laramie WY USA
JLN Joplin MO USA
LRD Laredo TX USA
LEX Lexington KY USA
SGU St. George UT USA
MCI Kansas City MO USA
AEX Alexandria LA USA
ISN Williston ND USA
TXK Texarkana AR USA
BIL Billings MT USA
CID Cedar Rapids IA USA
PDX Portland OR USA
ABE Allentown PA USA
DIK Dickinson ND USA
ART Watertown NY USA
GCK Garden City KS USA
BET Bethel AK USA
AVL Asheville NC USA
MCO Orlando FL USA
GSP Greenville SC USA
TWF Twin Falls ID USA
MKG Muskegon MI USA
FAY Fayetteville NC USA
SCE State College PA USA
EWN New Bern NC USA
XNA Fayetteville AR USA
MRY Monterey CA USA
MLB Melbourne FL USA
HNL Honolulu, Oahu HI USA
CVG Cincinnati OH USA
RAP Rapid City SD USA
AZO Kalamazoo MI USA
WRG Wrangell AK USA
ISP Islip NY USA
FLG Flagstaff AZ USA
BHM Birmingham AL USA
ALB Albany NY USA
SEA Seattle WA USA
GRR Grand Rapids MI USA
CHA Chattanooga TN USA
IAH Houston TX USA
SMX Santa Maria CA USA
MDW Chicago IL USA
MQT Marquette MI USA
LNK Lincoln NE USA
RDM Redmond OR USA
DLH Duluth MN USA
DSM Des Moines IA USA
OAK Oakland CA USA
PHL Philadelphia PA USA
FCA Kalispell MT USA
MFE McAllen TX USA
OGG Kahului, Maui HI USA
YUM Yuma AZ USA
BMI Bloomington IL USA
GEG Spokane WA USA
TLH Tallahassee FL USA
LSE La Crosse WI USA
MIA Miami FL USA
BRO Brownsville TX USA
JAC Jackson Hole WY USA
CDV Cordova AK USA
TRI Tri-City Airport TN USA
SWF Newburgh NY USA
MGM Montgomery AL USA
BWI Baltimore MD USA
SGF Springfield MO USA
GFK Grand Forks ND USA
GNV Gainesville FL USA
OTH North Bend OR USA
PIT Pittsburgh PA USA
BJI Bemidji MN USA
ASE Aspen CO USA
BUF Buffalo NY USA
COU Columbia MO USA
ABI Abilene TX USA
MLI Moline IL USA
// Edges
// The edges of our graph are the flights between airports
display(tripEdges)
tripid delay src dst city_dst state_dst
1011111.0 -5.0 MSP INL International Falls MN
1021111.0 7.0 MSP INL International Falls MN
1031111.0 0.0 MSP INL International Falls MN
1041925.0 0.0 MSP INL International Falls MN
1061115.0 33.0 MSP INL International Falls MN
1071115.0 23.0 MSP INL International Falls MN
1081115.0 -9.0 MSP INL International Falls MN
1091115.0 11.0 MSP INL International Falls MN
1101115.0 -3.0 MSP INL International Falls MN
1112015.0 -7.0 MSP INL International Falls MN
1121925.0 -5.0 MSP INL International Falls MN
1131115.0 -3.0 MSP INL International Falls MN
1141115.0 -6.0 MSP INL International Falls MN
1151115.0 -7.0 MSP INL International Falls MN
1161115.0 -3.0 MSP INL International Falls MN
1171115.0 4.0 MSP INL International Falls MN
1182015.0 -5.0 MSP INL International Falls MN
1191925.0 -7.0 MSP INL International Falls MN
1201115.0 -6.0 MSP INL International Falls MN
1211115.0 0.0 MSP INL International Falls MN
1221115.0 -4.0 MSP INL International Falls MN
1231115.0 -4.0 MSP INL International Falls MN
1241115.0 -3.0 MSP INL International Falls MN
1252015.0 -12.0 MSP INL International Falls MN
1261925.0 -5.0 MSP INL International Falls MN
1271115.0 0.0 MSP INL International Falls MN
1281115.0 -8.0 MSP INL International Falls MN
1291115.0 -2.0 MSP INL International Falls MN
1301115.0 0.0 MSP INL International Falls MN
1311115.0 -3.0 MSP INL International Falls MN
2012015.0 -4.0 MSP INL International Falls MN
2022015.0 0.0 MSP INL International Falls MN
2031115.0 -7.0 MSP INL International Falls MN
2041115.0 -6.0 MSP INL International Falls MN
2051115.0 -4.0 MSP INL International Falls MN
2061115.0 -2.0 MSP INL International Falls MN
2071115.0 -15.0 MSP INL International Falls MN
2082015.0 -4.0 MSP INL International Falls MN
2091925.0 1.0 MSP INL International Falls MN
2101115.0 -3.0 MSP INL International Falls MN
2111115.0 -7.0 MSP INL International Falls MN
2121115.0 -2.0 MSP INL International Falls MN
2131115.0 -3.0 MSP INL International Falls MN
2141115.0 -11.0 MSP INL International Falls MN
2152015.0 16.0 MSP INL International Falls MN
2161925.0 169.0 MSP INL International Falls MN
2171115.0 27.0 MSP INL International Falls MN
2181115.0 96.0 MSP INL International Falls MN
2191115.0 -9.0 MSP INL International Falls MN
2201115.0 -6.0 MSP INL International Falls MN
2211115.0 -4.0 MSP INL International Falls MN
2222015.0 -4.0 MSP INL International Falls MN
2231925.0 -3.0 MSP INL International Falls MN
2241115.0 -2.0 MSP INL International Falls MN
2251115.0 -6.0 MSP INL International Falls MN
2261115.0 -8.0 MSP INL International Falls MN
2271115.0 -8.0 MSP INL International Falls MN
2281115.0 5.0 MSP INL International Falls MN
3012015.0 -4.0 MSP INL International Falls MN
3022000.0 0.0 MSP INL International Falls MN
3031115.0 17.0 MSP INL International Falls MN
3041115.0 0.0 MSP INL International Falls MN
3051115.0 -7.0 MSP INL International Falls MN
3061115.0 -8.0 MSP INL International Falls MN
3071115.0 -10.0 MSP INL International Falls MN
3082000.0 -11.0 MSP INL International Falls MN
3092000.0 -9.0 MSP INL International Falls MN
3101115.0 -10.0 MSP INL International Falls MN
3111115.0 -8.0 MSP INL International Falls MN
3121115.0 -6.0 MSP INL International Falls MN
3131115.0 -8.0 MSP INL International Falls MN
3141115.0 -5.0 MSP INL International Falls MN
3152000.0 -11.0 MSP INL International Falls MN
3162000.0 -10.0 MSP INL International Falls MN
3171115.0 25.0 MSP INL International Falls MN
3181115.0 2.0 MSP INL International Falls MN
3191115.0 -5.0 MSP INL International Falls MN
3201115.0 -6.0 MSP INL International Falls MN
3211115.0 0.0 MSP INL International Falls MN
3222000.0 -10.0 MSP INL International Falls MN
3232000.0 -9.0 MSP INL International Falls MN
3241115.0 -9.0 MSP INL International Falls MN
3251115.0 -4.0 MSP INL International Falls MN
3261115.0 -5.0 MSP INL International Falls MN
3271115.0 9.0 MSP INL International Falls MN
3281115.0 -7.0 MSP INL International Falls MN
3292000.0 -19.0 MSP INL International Falls MN
3302000.0 -10.0 MSP INL International Falls MN
3311115.0 -8.0 MSP INL International Falls MN
2011230.0 -3.0 EWR MSY New Orleans LA
2010719.0 -2.0 EWR MSY New Orleans LA
2021230.0 -10.0 EWR MSY New Orleans LA
2020709.0 59.0 EWR MSY New Orleans LA
2021654.0 21.0 EWR MSY New Orleans LA
2030719.0 -6.0 EWR MSY New Orleans LA
2031659.0 0.0 EWR MSY New Orleans LA
2031230.0 0.0 EWR MSY New Orleans LA
2032043.0 0.0 EWR MSY New Orleans LA
2041230.0 24.0 EWR MSY New Orleans LA
2040719.0 168.0 EWR MSY New Orleans LA
2041730.0 88.0 EWR MSY New Orleans LA
2042043.0 106.0 EWR MSY New Orleans LA
2051659.0 0.0 EWR MSY New Orleans LA
2050719.0 0.0 EWR MSY New Orleans LA
2050929.0 0.0 EWR MSY New Orleans LA
2052043.0 46.0 EWR MSY New Orleans LA
2060719.0 -3.0 EWR MSY New Orleans LA
2061659.0 82.0 EWR MSY New Orleans LA
2061230.0 61.0 EWR MSY New Orleans LA
2062043.0 7.0 EWR MSY New Orleans LA
2070719.0 8.0 EWR MSY New Orleans LA
2071659.0 19.0 EWR MSY New Orleans LA
2071230.0 27.0 EWR MSY New Orleans LA
2072048.0 47.0 EWR MSY New Orleans LA
2081230.0 -10.0 EWR MSY New Orleans LA
2080719.0 -1.0 EWR MSY New Orleans LA
2091229.0 95.0 EWR MSY New Orleans LA
2091654.0 -5.0 EWR MSY New Orleans LA
2090709.0 -8.0 EWR MSY New Orleans LA
2092043.0 32.0 EWR MSY New Orleans LA
2100719.0 14.0 EWR MSY New Orleans LA
2101659.0 16.0 EWR MSY New Orleans LA
2101230.0 -4.0 EWR MSY New Orleans LA
2102043.0 -4.0 EWR MSY New Orleans LA
2111230.0 10.0 EWR MSY New Orleans LA
2110719.0 46.0 EWR MSY New Orleans LA
2111730.0 -9.0 EWR MSY New Orleans LA
2112043.0 -2.0 EWR MSY New Orleans LA
2120719.0 1.0 EWR MSY New Orleans LA
2121230.0 -4.0 EWR MSY New Orleans LA
2120929.0 89.0 EWR MSY New Orleans LA
2122043.0 36.0 EWR MSY New Orleans LA
2130738.0 0.0 EWR MSY New Orleans LA
2132041.0 0.0 EWR MSY New Orleans LA
2140729.0 0.0 EWR MSY New Orleans LA
2142041.0 0.0 EWR MSY New Orleans LA
2151206.0 0.0 EWR MSY New Orleans LA
2150659.0 0.0 EWR MSY New Orleans LA
2160705.0 -5.0 EWR MSY New Orleans LA
2170729.0 0.0 EWR MSY New Orleans LA
2172041.0 -7.0 EWR MSY New Orleans LA
2180738.0 0.0 EWR MSY New Orleans LA
2182041.0 36.0 EWR MSY New Orleans LA
2190727.0 15.0 EWR MSY New Orleans LA
2200738.0 -7.0 EWR MSY New Orleans LA
2202041.0 51.0 EWR MSY New Orleans LA
2210729.0 -2.0 EWR MSY New Orleans LA
2212041.0 0.0 EWR MSY New Orleans LA
2221206.0 -8.0 EWR MSY New Orleans LA
2220659.0 8.0 EWR MSY New Orleans LA
2232041.0 8.0 EWR MSY New Orleans LA
2230705.0 -10.0 EWR MSY New Orleans LA
2240729.0 6.0 EWR MSY New Orleans LA
2242041.0 -7.0 EWR MSY New Orleans LA
2250738.0 0.0 EWR MSY New Orleans LA
2260727.0 23.0 EWR MSY New Orleans LA
2262041.0 174.0 EWR MSY New Orleans LA
2270738.0 8.0 EWR MSY New Orleans LA
2272041.0 32.0 EWR MSY New Orleans LA
2280729.0 12.0 EWR MSY New Orleans LA
2282041.0 49.0 EWR MSY New Orleans LA
2281000.0 2.0 EWR MSY New Orleans LA
2051230.0 216.0 EWR MSY New Orleans LA
2131536.0 273.0 EWR MSY New Orleans LA
2141536.0 6.0 EWR MSY New Orleans LA
2151902.0 31.0 EWR MSY New Orleans LA
2151536.0 66.0 EWR MSY New Orleans LA
2162041.0 -4.0 EWR MSY New Orleans LA
2161536.0 7.0 EWR MSY New Orleans LA
2171536.0 3.0 EWR MSY New Orleans LA
2181536.0 26.0 EWR MSY New Orleans LA
2191536.0 -9.0 EWR MSY New Orleans LA
2201536.0 -3.0 EWR MSY New Orleans LA
2211536.0 34.0 EWR MSY New Orleans LA
2221900.0 -2.0 EWR MSY New Orleans LA
2221536.0 65.0 EWR MSY New Orleans LA
2231536.0 -3.0 EWR MSY New Orleans LA
2241536.0 -1.0 EWR MSY New Orleans LA
2251536.0 0.0 EWR MSY New Orleans LA
2261536.0 0.0 EWR MSY New Orleans LA
2271536.0 -4.0 EWR MSY New Orleans LA
2281536.0 8.0 EWR MSY New Orleans LA
2010730.0 -1.0 EWR MSY New Orleans LA
2021815.0 -1.0 EWR MSY New Orleans LA
2031815.0 0.0 EWR MSY New Orleans LA
2041815.0 -4.0 EWR MSY New Orleans LA
2051815.0 -4.0 EWR MSY New Orleans LA
2061815.0 -4.0 EWR MSY New Orleans LA
2071815.0 -5.0 EWR MSY New Orleans LA
2080730.0 -4.0 EWR MSY New Orleans LA
2091815.0 -1.0 EWR MSY New Orleans LA
2101815.0 -5.0 EWR MSY New Orleans LA
2111815.0 4.0 EWR MSY New Orleans LA
2121815.0 64.0 EWR MSY New Orleans LA
2131805.0 0.0 EWR MSY New Orleans LA
2141635.0 52.0 EWR MSY New Orleans LA
2150730.0 0.0 EWR MSY New Orleans LA
2161635.0 21.0 EWR MSY New Orleans LA
2171635.0 23.0 EWR MSY New Orleans LA
2181635.0 -5.0 EWR MSY New Orleans LA
2191635.0 21.0 EWR MSY New Orleans LA
2201635.0 0.0 EWR MSY New Orleans LA
2211635.0 292.0 EWR MSY New Orleans LA
2220730.0 28.0 EWR MSY New Orleans LA
2231635.0 0.0 EWR MSY New Orleans LA
2241635.0 -8.0 EWR MSY New Orleans LA
2251635.0 6.0 EWR MSY New Orleans LA
2261635.0 10.0 EWR MSY New Orleans LA
2271635.0 -1.0 EWR MSY New Orleans LA
2281635.0 -1.0 EWR MSY New Orleans LA
3011206.0 -5.0 EWR MSY New Orleans LA
3010659.0 -1.0 EWR MSY New Orleans LA
3022041.0 0.0 EWR MSY New Orleans LA
3020705.0 -6.0 EWR MSY New Orleans LA
3030729.0 0.0 EWR MSY New Orleans LA
3032041.0 113.0 EWR MSY New Orleans LA
3040738.0 0.0 EWR MSY New Orleans LA
3050727.0 -4.0 EWR MSY New Orleans LA
3052041.0 4.0 EWR MSY New Orleans LA
3060705.0 -1.0 EWR MSY New Orleans LA
3061252.0 67.0 EWR MSY New Orleans LA
3062100.0 21.0 EWR MSY New Orleans LA
3070705.0 -7.0 EWR MSY New Orleans LA
3071252.0 -3.0 EWR MSY New Orleans LA
3072100.0 13.0 EWR MSY New Orleans LA
3080705.0 -5.0 EWR MSY New Orleans LA
3081250.0 5.0 EWR MSY New Orleans LA
3091255.0 -9.0 EWR MSY New Orleans LA
3092059.0 -3.0 EWR MSY New Orleans LA
3100705.0 -5.0 EWR MSY New Orleans LA
3101252.0 -9.0 EWR MSY New Orleans LA
3102059.0 -4.0 EWR MSY New Orleans LA
3112059.0 181.0 EWR MSY New Orleans LA
3111252.0 -7.0 EWR MSY New Orleans LA
3122059.0 22.0 EWR MSY New Orleans LA
3121252.0 161.0 EWR MSY New Orleans LA
3130705.0 0.0 EWR MSY New Orleans LA
3131252.0 0.0 EWR MSY New Orleans LA
3132059.0 0.0 EWR MSY New Orleans LA
3140705.0 66.0 EWR MSY New Orleans LA
3141252.0 39.0 EWR MSY New Orleans LA
3142059.0 -6.0 EWR MSY New Orleans LA
3150700.0 2.0 EWR MSY New Orleans LA
3151250.0 34.0 EWR MSY New Orleans LA
3161255.0 -2.0 EWR MSY New Orleans LA
3162059.0 -1.0 EWR MSY New Orleans LA
3170705.0 -11.0 EWR MSY New Orleans LA
3171252.0 22.0 EWR MSY New Orleans LA
3172059.0 132.0 EWR MSY New Orleans LA
3182059.0 -5.0 EWR MSY New Orleans LA
3181252.0 2.0 EWR MSY New Orleans LA
3192059.0 16.0 EWR MSY New Orleans LA
3191252.0 -4.0 EWR MSY New Orleans LA
3200705.0 -6.0 EWR MSY New Orleans LA
3201252.0 -4.0 EWR MSY New Orleans LA
3202059.0 77.0 EWR MSY New Orleans LA
3210705.0 -4.0 EWR MSY New Orleans LA
3211252.0 9.0 EWR MSY New Orleans LA
3212059.0 11.0 EWR MSY New Orleans LA
3220705.0 -4.0 EWR MSY New Orleans LA
3221250.0 -7.0 EWR MSY New Orleans LA
3221600.0 -6.0 EWR MSY New Orleans LA
3231255.0 5.0 EWR MSY New Orleans LA
3240705.0 -4.0 EWR MSY New Orleans LA
3241252.0 -2.0 EWR MSY New Orleans LA
3242059.0 -10.0 EWR MSY New Orleans LA
3252059.0 121.0 EWR MSY New Orleans LA
3251252.0 -8.0 EWR MSY New Orleans LA
3262059.0 49.0 EWR MSY New Orleans LA
3261252.0 -2.0 EWR MSY New Orleans LA
3270705.0 -6.0 EWR MSY New Orleans LA
3271252.0 -6.0 EWR MSY New Orleans LA
3272059.0 -2.0 EWR MSY New Orleans LA
3280705.0 -3.0 EWR MSY New Orleans LA
3281252.0 -4.0 EWR MSY New Orleans LA
3282059.0 0.0 EWR MSY New Orleans LA
3291250.0 -6.0 EWR MSY New Orleans LA
3290705.0 -1.0 EWR MSY New Orleans LA
3291600.0 1.0 EWR MSY New Orleans LA
3301255.0 64.0 EWR MSY New Orleans LA
3302059.0 166.0 EWR MSY New Orleans LA
3310705.0 -3.0 EWR MSY New Orleans LA
3311252.0 12.0 EWR MSY New Orleans LA
3312059.0 7.0 EWR MSY New Orleans LA
3011902.0 64.0 EWR MSY New Orleans LA
3011536.0 -5.0 EWR MSY New Orleans LA
3021536.0 9.0 EWR MSY New Orleans LA
3031536.0 -10.0 EWR MSY New Orleans LA
3041536.0 -8.0 EWR MSY New Orleans LA
3051536.0 0.0 EWR MSY New Orleans LA
3090715.0 1.0 EWR MSY New Orleans LA
3110705.0 -11.0 EWR MSY New Orleans LA
3120659.0 -5.0 EWR MSY New Orleans LA
3160715.0 -4.0 EWR MSY New Orleans LA
3180705.0 -7.0 EWR MSY New Orleans LA
3190659.0 -2.0 EWR MSY New Orleans LA
3230715.0 -4.0 EWR MSY New Orleans LA
3250705.0 -8.0 EWR MSY New Orleans LA
3260659.0 63.0 EWR MSY New Orleans LA
3300715.0 2.0 EWR MSY New Orleans LA
3010730.0 -4.0 EWR MSY New Orleans LA
3021635.0 16.0 EWR MSY New Orleans LA
3031635.0 -1.0 EWR MSY New Orleans LA
3041635.0 8.0 EWR MSY New Orleans LA
3051635.0 -5.0 EWR MSY New Orleans LA
3061635.0 -2.0 EWR MSY New Orleans LA
3071635.0 5.0 EWR MSY New Orleans LA
3080730.0 -5.0 EWR MSY New Orleans LA
3091825.0 45.0 EWR MSY New Orleans LA
3101825.0 10.0 EWR MSY New Orleans LA
3111825.0 5.0 EWR MSY New Orleans LA
3121825.0 -5.0 EWR MSY New Orleans LA
3131825.0 123.0 EWR MSY New Orleans LA
3141825.0 6.0 EWR MSY New Orleans LA
3150730.0 -3.0 EWR MSY New Orleans LA
3161825.0 24.0 EWR MSY New Orleans LA
3171825.0 6.0 EWR MSY New Orleans LA
3181825.0 -6.0 EWR MSY New Orleans LA
3191825.0 223.0 EWR MSY New Orleans LA
3201825.0 178.0 EWR MSY New Orleans LA
3211825.0 -4.0 EWR MSY New Orleans LA
3220730.0 -3.0 EWR MSY New Orleans LA
3231825.0 -4.0 EWR MSY New Orleans LA
3241825.0 0.0 EWR MSY New Orleans LA
3251825.0 222.0 EWR MSY New Orleans LA
3261825.0 51.0 EWR MSY New Orleans LA
3271825.0 -2.0 EWR MSY New Orleans LA
3281825.0 26.0 EWR MSY New Orleans LA
3290730.0 -3.0 EWR MSY New Orleans LA
3301825.0 139.0 EWR MSY New Orleans LA
3311825.0 25.0 EWR MSY New Orleans LA
1020705.0 0.0 EWR MSY New Orleans LA
1030705.0 0.0 EWR MSY New Orleans LA
1040655.0 0.0 EWR MSY New Orleans LA
1050703.0 4.0 EWR MSY New Orleans LA
1060705.0 36.0 EWR MSY New Orleans LA
1071230.0 24.0 EWR MSY New Orleans LA
1070719.0 -1.0 EWR MSY New Orleans LA
1071730.0 161.0 EWR MSY New Orleans LA
1072043.0 8.0 EWR MSY New Orleans LA
1080719.0 -2.0 EWR MSY New Orleans LA
1081659.0 0.0 EWR MSY New Orleans LA
1081230.0 66.0 EWR MSY New Orleans LA
1082043.0 5.0 EWR MSY New Orleans LA
1090719.0 0.0 EWR MSY New Orleans LA
1091659.0 -1.0 EWR MSY New Orleans LA
1091230.0 -3.0 EWR MSY New Orleans LA
1092043.0 63.0 EWR MSY New Orleans LA
1100719.0 -1.0 EWR MSY New Orleans LA
1101659.0 244.0 EWR MSY New Orleans LA
1101230.0 110.0 EWR MSY New Orleans LA
1102043.0 43.0 EWR MSY New Orleans LA
1111230.0 87.0 EWR MSY New Orleans LA
1110719.0 -1.0 EWR MSY New Orleans LA
1121654.0 -2.0 EWR MSY New Orleans LA
1121230.0 21.0 EWR MSY New Orleans LA
1120709.0 -3.0 EWR MSY New Orleans LA
1122043.0 -1.0 EWR MSY New Orleans LA
1130719.0 -4.0 EWR MSY New Orleans LA
1131659.0 0.0 EWR MSY New Orleans LA
1131230.0 14.0 EWR MSY New Orleans LA
1132043.0 51.0 EWR MSY New Orleans LA
1141230.0 30.0 EWR MSY New Orleans LA
1140719.0 0.0 EWR MSY New Orleans LA
1141730.0 69.0 EWR MSY New Orleans LA
1142043.0 0.0 EWR MSY New Orleans LA
1150719.0 42.0 EWR MSY New Orleans LA
1151659.0 2.0 EWR MSY New Orleans LA
1151230.0 0.0 EWR MSY New Orleans LA
1152043.0 22.0 EWR MSY New Orleans LA
1160719.0 -7.0 EWR MSY New Orleans LA
1161659.0 -9.0 EWR MSY New Orleans LA
1161230.0 -10.0 EWR MSY New Orleans LA
1162043.0 3.0 EWR MSY New Orleans LA
1171659.0 46.0 EWR MSY New Orleans LA
1170719.0 -4.0 EWR MSY New Orleans LA
1172043.0 54.0 EWR MSY New Orleans LA
1181230.0 20.0 EWR MSY New Orleans LA
1180719.0 -5.0 EWR MSY New Orleans LA
1191654.0 -3.0 EWR MSY New Orleans LA
1191230.0 29.0 EWR MSY New Orleans LA
1190709.0 0.0 EWR MSY New Orleans LA
1192043.0 5.0 EWR MSY New Orleans LA
1201659.0 -1.0 EWR MSY New Orleans LA
1200719.0 -1.0 EWR MSY New Orleans LA
1202043.0 12.0 EWR MSY New Orleans LA
1211230.0 102.0 EWR MSY New Orleans LA
1210719.0 -7.0 EWR MSY New Orleans LA
1211730.0 0.0 EWR MSY New Orleans LA
1212043.0 0.0 EWR MSY New Orleans LA
1220719.0 0.0 EWR MSY New Orleans LA
1221659.0 6.0 EWR MSY New Orleans LA
1221230.0 -2.0 EWR MSY New Orleans LA
1222043.0 70.0 EWR MSY New Orleans LA
1230719.0 12.0 EWR MSY New Orleans LA
1231659.0 94.0 EWR MSY New Orleans LA
1231230.0 111.0 EWR MSY New Orleans LA
1232043.0 13.0 EWR MSY New Orleans LA
1240719.0 -1.0 EWR MSY New Orleans LA
1241659.0 84.0 EWR MSY New Orleans LA
1241230.0 0.0 EWR MSY New Orleans LA
1242043.0 56.0 EWR MSY New Orleans LA
1251230.0 -5.0 EWR MSY New Orleans LA
1250719.0 23.0 EWR MSY New Orleans LA
1261654.0 113.0 EWR MSY New Orleans LA
1261230.0 8.0 EWR MSY New Orleans LA
1260709.0 -7.0 EWR MSY New Orleans LA
1262043.0 31.0 EWR MSY New Orleans LA
1271659.0 0.0 EWR MSY New Orleans LA
1270719.0 -3.0 EWR MSY New Orleans LA
1281230.0 0.0 EWR MSY New Orleans LA
1280719.0 0.0 EWR MSY New Orleans LA
1281730.0 0.0 EWR MSY New Orleans LA
1282043.0 0.0 EWR MSY New Orleans LA
1291659.0 -6.0 EWR MSY New Orleans LA
1290719.0 -2.0 EWR MSY New Orleans LA
1292043.0 -8.0 EWR MSY New Orleans LA
1300719.0 2.0 EWR MSY New Orleans LA
1301659.0 9.0 EWR MSY New Orleans LA
1301230.0 0.0 EWR MSY New Orleans LA
1302043.0 93.0 EWR MSY New Orleans LA
1310719.0 34.0 EWR MSY New Orleans LA
1311659.0 0.0 EWR MSY New Orleans LA
1311230.0 5.0 EWR MSY New Orleans LA
1312043.0 28.0 EWR MSY New Orleans LA
1171230.0 -5.0 EWR MSY New Orleans LA
1201250.0 -12.0 EWR MSY New Orleans LA
1291230.0 -2.0 EWR MSY New Orleans LA
1011815.0 125.0 EWR MSY New Orleans LA
1021815.0 33.0 EWR MSY New Orleans LA
1031815.0 0.0 EWR MSY New Orleans LA
1040755.0 0.0 EWR MSY New Orleans LA
1051815.0 172.0 EWR MSY New Orleans LA
1061815.0 151.0 EWR MSY New Orleans LA
1071815.0 43.0 EWR MSY New Orleans LA
1081815.0 14.0 EWR MSY New Orleans LA
1091815.0 3.0 EWR MSY New Orleans LA
1101815.0 10.0 EWR MSY New Orleans LA
1110730.0 0.0 EWR MSY New Orleans LA
1121815.0 0.0 EWR MSY New Orleans LA
1131815.0 -2.0 EWR MSY New Orleans LA
1141815.0 1.0 EWR MSY New Orleans LA
1151815.0 1.0 EWR MSY New Orleans LA
1161815.0 8.0 EWR MSY New Orleans LA
1171815.0 22.0 EWR MSY New Orleans LA
1180730.0 1.0 EWR MSY New Orleans LA
1191815.0 5.0 EWR MSY New Orleans LA
1201815.0 5.0 EWR MSY New Orleans LA
1211815.0 0.0 EWR MSY New Orleans LA
1221815.0 3.0 EWR MSY New Orleans LA
1231815.0 0.0 EWR MSY New Orleans LA
1241815.0 84.0 EWR MSY New Orleans LA
1250730.0 -7.0 EWR MSY New Orleans LA
1261815.0 -5.0 EWR MSY New Orleans LA
1271815.0 -1.0 EWR MSY New Orleans LA
1281815.0 0.0 EWR MSY New Orleans LA
1291815.0 -3.0 EWR MSY New Orleans LA
1301815.0 -5.0 EWR MSY New Orleans LA
1311815.0 -8.0 EWR MSY New Orleans LA
2011055.0 -5.0 LAS MSY New Orleans LA
2021025.0 3.0 LAS MSY New Orleans LA
2031025.0 0.0 LAS MSY New Orleans LA
2031750.0 -2.0 LAS MSY New Orleans LA
2041025.0 6.0 LAS MSY New Orleans LA
2041750.0 -6.0 LAS MSY New Orleans LA
2051025.0 -4.0 LAS MSY New Orleans LA
2051750.0 29.0 LAS MSY New Orleans LA
2061025.0 1.0 LAS MSY New Orleans LA
2061750.0 48.0 LAS MSY New Orleans LA
2071025.0 -4.0 LAS MSY New Orleans LA
2071750.0 20.0 LAS MSY New Orleans LA
2081055.0 2.0 LAS MSY New Orleans LA
2091025.0 -6.0 LAS MSY New Orleans LA
2091750.0 33.0 LAS MSY New Orleans LA
2101025.0 -1.0 LAS MSY New Orleans LA
2101750.0 -2.0 LAS MSY New Orleans LA
2111025.0 15.0 LAS MSY New Orleans LA
2111750.0 -3.0 LAS MSY New Orleans LA
2121025.0 -6.0 LAS MSY New Orleans LA
2121750.0 158.0 LAS MSY New Orleans LA
2131855.0 11.0 LAS MSY New Orleans LA
2131215.0 23.0 LAS MSY New Orleans LA
2141855.0 22.0 LAS MSY New Orleans LA
2141215.0 18.0 LAS MSY New Orleans LA
2150935.0 -4.0 LAS MSY New Orleans LA
2151635.0 4.0 LAS MSY New Orleans LA
2161855.0 58.0 LAS MSY New Orleans LA
2161215.0 17.0 LAS MSY New Orleans LA
2171855.0 14.0 LAS MSY New Orleans LA
2171215.0 10.0 LAS MSY New Orleans LA
2181855.0 1.0 LAS MSY New Orleans LA
2181215.0 58.0 LAS MSY New Orleans LA
2191855.0 -3.0 LAS MSY New Orleans LA
2191215.0 32.0 LAS MSY New Orleans LA
2201855.0 14.0 LAS MSY New Orleans LA
2201215.0 28.0 LAS MSY New Orleans LA
2211855.0 4.0 LAS MSY New Orleans LA
2211215.0 11.0 LAS MSY New Orleans LA
2220935.0 -5.0 LAS MSY New Orleans LA
2221635.0 133.0 LAS MSY New Orleans LA
2231855.0 -4.0 LAS MSY New Orleans LA
2231215.0 10.0 LAS MSY New Orleans LA
2241855.0 -6.0 LAS MSY New Orleans LA
2241215.0 16.0 LAS MSY New Orleans LA
2251855.0 7.0 LAS MSY New Orleans LA
2251215.0 15.0 LAS MSY New Orleans LA
2261855.0 2.0 LAS MSY New Orleans LA
2261215.0 16.0 LAS MSY New Orleans LA
2271855.0 10.0 LAS MSY New Orleans LA
2271215.0 32.0 LAS MSY New Orleans LA
2281855.0 61.0 LAS MSY New Orleans LA
2281215.0 94.0 LAS MSY New Orleans LA
3010935.0 10.0 LAS MSY New Orleans LA
3011635.0 39.0 LAS MSY New Orleans LA
3021855.0 -5.0 LAS MSY New Orleans LA
3021215.0 -6.0 LAS MSY New Orleans LA
3031855.0 25.0 LAS MSY New Orleans LA
3031215.0 8.0 LAS MSY New Orleans LA
3041855.0 -6.0 LAS MSY New Orleans LA
3041215.0 28.0 LAS MSY New Orleans LA
3051855.0 -3.0 LAS MSY New Orleans LA
3051215.0 27.0 LAS MSY New Orleans LA
3061855.0 20.0 LAS MSY New Orleans LA
3061215.0 10.0 LAS MSY New Orleans LA
3071855.0 36.0 LAS MSY New Orleans LA
3071215.0 14.0 LAS MSY New Orleans LA
3081940.0 -4.0 LAS MSY New Orleans LA
3080830.0 6.0 LAS MSY New Orleans LA
3091905.0 4.0 LAS MSY New Orleans LA
3090840.0 -2.0 LAS MSY New Orleans LA
3101905.0 49.0 LAS MSY New Orleans LA
3100840.0 -1.0 LAS MSY New Orleans LA
3111905.0 9.0 LAS MSY New Orleans LA
3110840.0 84.0 LAS MSY New Orleans LA
3121905.0 26.0 LAS MSY New Orleans LA
3120840.0 -1.0 LAS MSY New Orleans LA
3131905.0 37.0 LAS MSY New Orleans LA
3130840.0 1.0 LAS MSY New Orleans LA
3141905.0 14.0 LAS MSY New Orleans LA
3140840.0 -5.0 LAS MSY New Orleans LA
3150830.0 16.0 LAS MSY New Orleans LA
3151940.0 95.0 LAS MSY New Orleans LA
3161905.0 -4.0 LAS MSY New Orleans LA
3160840.0 -6.0 LAS MSY New Orleans LA
3171905.0 13.0 LAS MSY New Orleans LA
3170840.0 3.0 LAS MSY New Orleans LA
3181905.0 52.0 LAS MSY New Orleans LA
3180840.0 2.0 LAS MSY New Orleans LA
3191905.0 0.0 LAS MSY New Orleans LA
3190840.0 0.0 LAS MSY New Orleans LA
3201905.0 36.0 LAS MSY New Orleans LA
3200840.0 68.0 LAS MSY New Orleans LA
3211905.0 0.0 LAS MSY New Orleans LA
3210840.0 -1.0 LAS MSY New Orleans LA
3220830.0 12.0 LAS MSY New Orleans LA
3221940.0 11.0 LAS MSY New Orleans LA
3231905.0 9.0 LAS MSY New Orleans LA
3230840.0 16.0 LAS MSY New Orleans LA
3241905.0 9.0 LAS MSY New Orleans LA
3240840.0 4.0 LAS MSY New Orleans LA
3251905.0 10.0 LAS MSY New Orleans LA
3250840.0 0.0 LAS MSY New Orleans LA
3261905.0 14.0 LAS MSY New Orleans LA
3260840.0 3.0 LAS MSY New Orleans LA
3271905.0 13.0 LAS MSY New Orleans LA
3270840.0 -5.0 LAS MSY New Orleans LA
3281905.0 -1.0 LAS MSY New Orleans LA
3280840.0 33.0 LAS MSY New Orleans LA
3290830.0 -1.0 LAS MSY New Orleans LA
3291940.0 231.0 LAS MSY New Orleans LA
3301905.0 7.0 LAS MSY New Orleans LA
3300840.0 15.0 LAS MSY New Orleans LA
3311905.0 19.0 LAS MSY New Orleans LA
3310840.0 0.0 LAS MSY New Orleans LA
1010850.0 -1.0 LAS MSY New Orleans LA
1011755.0 160.0 LAS MSY New Orleans LA
1021805.0 138.0 LAS MSY New Orleans LA
1020905.0 5.0 LAS MSY New Orleans LA
1031805.0 154.0 LAS MSY New Orleans LA
1030905.0 179.0 LAS MSY New Orleans LA
1041655.0 113.0 LAS MSY New Orleans LA
1040900.0 56.0 LAS MSY New Orleans LA
1050905.0 -2.0 LAS MSY New Orleans LA
1051805.0 53.0 LAS MSY New Orleans LA
1061755.0 61.0 LAS MSY New Orleans LA
1060905.0 23.0 LAS MSY New Orleans LA
1071025.0 1.0 LAS MSY New Orleans LA
1071750.0 302.0 LAS MSY New Orleans LA
1081025.0 7.0 LAS MSY New Orleans LA
1081750.0 52.0 LAS MSY New Orleans LA
1091025.0 -5.0 LAS MSY New Orleans LA
1091750.0 8.0 LAS MSY New Orleans LA
1101025.0 0.0 LAS MSY New Orleans LA
1101750.0 92.0 LAS MSY New Orleans LA
1111055.0 31.0 LAS MSY New Orleans LA
1121025.0 1.0 LAS MSY New Orleans LA
1121750.0 -2.0 LAS MSY New Orleans LA
1131025.0 -1.0 LAS MSY New Orleans LA
1131750.0 -3.0 LAS MSY New Orleans LA
1141025.0 -3.0 LAS MSY New Orleans LA
1141750.0 127.0 LAS MSY New Orleans LA
1151025.0 1.0 LAS MSY New Orleans LA
1151750.0 -3.0 LAS MSY New Orleans LA
1161025.0 -2.0 LAS MSY New Orleans LA
1161750.0 0.0 LAS MSY New Orleans LA
1171025.0 12.0 LAS MSY New Orleans LA
1171750.0 -2.0 LAS MSY New Orleans LA
1181055.0 -5.0 LAS MSY New Orleans LA
1191025.0 3.0 LAS MSY New Orleans LA
1191750.0 -4.0 LAS MSY New Orleans LA
1201025.0 -4.0 LAS MSY New Orleans LA
1201750.0 6.0 LAS MSY New Orleans LA
1211025.0 3.0 LAS MSY New Orleans LA
1211750.0 4.0 LAS MSY New Orleans LA
1221025.0 -5.0 LAS MSY New Orleans LA
1221750.0 3.0 LAS MSY New Orleans LA
1231025.0 0.0 LAS MSY New Orleans LA
1231750.0 30.0 LAS MSY New Orleans LA
1241025.0 43.0 LAS MSY New Orleans LA
1241750.0 -4.0 LAS MSY New Orleans LA
1251055.0 5.0 LAS MSY New Orleans LA
1261025.0 -1.0 LAS MSY New Orleans LA
1261750.0 27.0 LAS MSY New Orleans LA
1271025.0 -2.0 LAS MSY New Orleans LA
1271750.0 2.0 LAS MSY New Orleans LA
1281025.0 0.0 LAS MSY New Orleans LA
1281750.0 0.0 LAS MSY New Orleans LA
1291025.0 1.0 LAS MSY New Orleans LA
1291750.0 -5.0 LAS MSY New Orleans LA
1301025.0 0.0 LAS MSY New Orleans LA
1301750.0 35.0 LAS MSY New Orleans LA
1311025.0 11.0 LAS MSY New Orleans LA
1311750.0 25.0 LAS MSY New Orleans LA
2011530.0 -3.0 MCI MSY New Orleans LA
2021105.0 -4.0 MCI MSY New Orleans LA
2031105.0 -1.0 MCI MSY New Orleans LA
2041105.0 1.0 MCI MSY New Orleans LA
2051105.0 6.0 MCI MSY New Orleans LA
2061105.0 40.0 MCI MSY New Orleans LA
2071105.0 7.0 MCI MSY New Orleans LA
2081530.0 2.0 MCI MSY New Orleans LA
2091105.0 -2.0 MCI MSY New Orleans LA
2101105.0 -2.0 MCI MSY New Orleans LA
2111105.0 -1.0 MCI MSY New Orleans LA
2121105.0 7.0 MCI MSY New Orleans LA
2130800.0 -5.0 MCI MSY New Orleans LA
2140830.0 3.0 MCI MSY New Orleans LA
2150750.0 7.0 MCI MSY New Orleans LA
2160930.0 -1.0 MCI MSY New Orleans LA
2170830.0 10.0 MCI MSY New Orleans LA
2180830.0 2.0 MCI MSY New Orleans LA
2190830.0 -4.0 MCI MSY New Orleans LA
2200830.0 9.0 MCI MSY New Orleans LA
2210830.0 -2.0 MCI MSY New Orleans LA
2220750.0 0.0 MCI MSY New Orleans LA
2230930.0 2.0 MCI MSY New Orleans LA
2240830.0 3.0 MCI MSY New Orleans LA
2250830.0 -5.0 MCI MSY New Orleans LA
2260830.0 251.0 MCI MSY New Orleans LA
2270830.0 -1.0 MCI MSY New Orleans LA
2280830.0 -2.0 MCI MSY New Orleans LA
3010750.0 0.0 MCI MSY New Orleans LA
3020930.0 35.0 MCI MSY New Orleans LA
3030830.0 1.0 MCI MSY New Orleans LA
3040830.0 11.0 MCI MSY New Orleans LA
3050830.0 2.0 MCI MSY New Orleans LA
3060830.0 -1.0 MCI MSY New Orleans LA
3070830.0 -2.0 MCI MSY New Orleans LA
3081610.0 93.0 MCI MSY New Orleans LA
3090950.0 -1.0 MCI MSY New Orleans LA
3100950.0 8.0 MCI MSY New Orleans LA
3110950.0 36.0 MCI MSY New Orleans LA
3120950.0 68.0 MCI MSY New Orleans LA
3130950.0 13.0 MCI MSY New Orleans LA
3140950.0 1.0 MCI MSY New Orleans LA
3151610.0 16.0 MCI MSY New Orleans LA
3160950.0 -5.0 MCI MSY New Orleans LA
3170950.0 -1.0 MCI MSY New Orleans LA
3180950.0 1.0 MCI MSY New Orleans LA
3190950.0 -1.0 MCI MSY New Orleans LA
3200950.0 3.0 MCI MSY New Orleans LA
3210950.0 7.0 MCI MSY New Orleans LA
3221610.0 38.0 MCI MSY New Orleans LA
3230950.0 -1.0 MCI MSY New Orleans LA
3240950.0 0.0 MCI MSY New Orleans LA
3250950.0 4.0 MCI MSY New Orleans LA
3260950.0 5.0 MCI MSY New Orleans LA
3270950.0 12.0 MCI MSY New Orleans LA
3280950.0 0.0 MCI MSY New Orleans LA
3291610.0 12.0 MCI MSY New Orleans LA
3300950.0 -2.0 MCI MSY New Orleans LA
3310950.0 3.0 MCI MSY New Orleans LA
1011635.0 -7.0 MCI MSY New Orleans LA
1021635.0 96.0 MCI MSY New Orleans LA
1031635.0 3.0 MCI MSY New Orleans LA
1041205.0 1.0 MCI MSY New Orleans LA
1051635.0 60.0 MCI MSY New Orleans LA
1061635.0 -7.0 MCI MSY New Orleans LA
1071105.0 14.0 MCI MSY New Orleans LA
1081105.0 4.0 MCI MSY New Orleans LA
1091105.0 11.0 MCI MSY New Orleans LA
1101105.0 -1.0 MCI MSY New Orleans LA
1111530.0 11.0 MCI MSY New Orleans LA
1121105.0 0.0 MCI MSY New Orleans LA
1131105.0 -5.0 MCI MSY New Orleans LA
1141105.0 1.0 MCI MSY New Orleans LA
1151105.0 9.0 MCI MSY New Orleans LA
1161105.0 1.0 MCI MSY New Orleans LA
1171105.0 -1.0 MCI MSY New Orleans LA
1181530.0 48.0 MCI MSY New Orleans LA
1191105.0 0.0 MCI MSY New Orleans LA
1201105.0 -4.0 MCI MSY New Orleans LA
1211105.0 2.0 MCI MSY New Orleans LA
1221105.0 19.0 MCI MSY New Orleans LA
1231105.0 -2.0 MCI MSY New Orleans LA
1241105.0 72.0 MCI MSY New Orleans LA
1251530.0 5.0 MCI MSY New Orleans LA
1261105.0 -5.0 MCI MSY New Orleans LA
1271105.0 -6.0 MCI MSY New Orleans LA
1281105.0 0.0 MCI MSY New Orleans LA
1291105.0 0.0 MCI MSY New Orleans LA
1301105.0 1.0 MCI MSY New Orleans LA
1311105.0 1.0 MCI MSY New Orleans LA
3011530.0 72.0 BNA MSY New Orleans LA
3010850.0 2.0 BNA MSY New Orleans LA
3011245.0 4.0 BNA MSY New Orleans LA
3021610.0 14.0 BNA MSY New Orleans LA
3021350.0 15.0 BNA MSY New Orleans LA
3021800.0 56.0 BNA MSY New Orleans LA
3031610.0 13.0 BNA MSY New Orleans LA
3030810.0 0.0 BNA MSY New Orleans LA
3031350.0 -1.0 BNA MSY New Orleans LA
3031800.0 -5.0 BNA MSY New Orleans LA
3041610.0 -3.0 BNA MSY New Orleans LA
3040810.0 -4.0 BNA MSY New Orleans LA
3041350.0 10.0 BNA MSY New Orleans LA
3041800.0 7.0 BNA MSY New Orleans LA
3051610.0 -1.0 BNA MSY New Orleans LA
3050810.0 11.0 BNA MSY New Orleans LA
3051350.0 48.0 BNA MSY New Orleans LA
3051800.0 21.0 BNA MSY New Orleans LA
3061610.0 26.0 BNA MSY New Orleans LA
3060810.0 -5.0 BNA MSY New Orleans LA
3061350.0 13.0 BNA MSY New Orleans LA
3061800.0 5.0 BNA MSY New Orleans LA
3071610.0 12.0 BNA MSY New Orleans LA
3070810.0 -3.0 BNA MSY New Orleans LA
3071350.0 10.0 BNA MSY New Orleans LA
3071800.0 7.0 BNA MSY New Orleans LA
3081540.0 27.0 BNA MSY New Orleans LA
3081335.0 -4.0 BNA MSY New Orleans LA
3080945.0 11.0 BNA MSY New Orleans LA
3091620.0 0.0 BNA MSY New Orleans LA
3091820.0 25.0 BNA MSY New Orleans LA
3091420.0 12.0 BNA MSY New Orleans LA
3100820.0 -1.0 BNA MSY New Orleans LA
3101420.0 41.0 BNA MSY New Orleans LA
3101820.0 11.0 BNA MSY New Orleans LA
3101620.0 7.0 BNA MSY New Orleans LA
3110820.0 3.0 BNA MSY New Orleans LA
3111420.0 15.0 BNA MSY New Orleans LA
3111820.0 29.0 BNA MSY New Orleans LA
3111620.0 5.0 BNA MSY New Orleans LA
3120820.0 12.0 BNA MSY New Orleans LA
3121420.0 40.0 BNA MSY New Orleans LA
3121820.0 15.0 BNA MSY New Orleans LA
3121620.0 24.0 BNA MSY New Orleans LA
3130820.0 126.0 BNA MSY New Orleans LA
3131420.0 13.0 BNA MSY New Orleans LA
3131820.0 55.0 BNA MSY New Orleans LA
3131620.0 40.0 BNA MSY New Orleans LA
3140820.0 -2.0 BNA MSY New Orleans LA
3141420.0 35.0 BNA MSY New Orleans LA
3141820.0 21.0 BNA MSY New Orleans LA
3141620.0 36.0 BNA MSY New Orleans LA
3151335.0 -3.0 BNA MSY New Orleans LA
3150945.0 3.0 BNA MSY New Orleans LA
3151540.0 -3.0 BNA MSY New Orleans LA
3161620.0 22.0 BNA MSY New Orleans LA
3161820.0 39.0 BNA MSY New Orleans LA
3161420.0 0.0 BNA MSY New Orleans LA
3170820.0 1.0 BNA MSY New Orleans LA
3171420.0 112.0 BNA MSY New Orleans LA
3171820.0 12.0 BNA MSY New Orleans LA
3171620.0 56.0 BNA MSY New Orleans LA
3180820.0 0.0 BNA MSY New Orleans LA
3181420.0 25.0 BNA MSY New Orleans LA
3181820.0 36.0 BNA MSY New Orleans LA
3181620.0 1.0 BNA MSY New Orleans LA
3190820.0 -2.0 BNA MSY New Orleans LA
3191420.0 54.0 BNA MSY New Orleans LA
3191820.0 7.0 BNA MSY New Orleans LA
3191620.0 29.0 BNA MSY New Orleans LA
3200820.0 0.0 BNA MSY New Orleans LA
3201420.0 18.0 BNA MSY New Orleans LA
3201820.0 9.0 BNA MSY New Orleans LA
3201620.0 79.0 BNA MSY New Orleans LA
3210820.0 3.0 BNA MSY New Orleans LA
3211420.0 22.0 BNA MSY New Orleans LA
3211820.0 30.0 BNA MSY New Orleans LA
3211620.0 22.0 BNA MSY New Orleans LA
3221335.0 -2.0 BNA MSY New Orleans LA
3220945.0 0.0 BNA MSY New Orleans LA
3221540.0 -1.0 BNA MSY New Orleans LA
3231620.0 -2.0 BNA MSY New Orleans LA
3231820.0 6.0 BNA MSY New Orleans LA
3231420.0 -3.0 BNA MSY New Orleans LA
3240820.0 0.0 BNA MSY New Orleans LA
3241420.0 27.0 BNA MSY New Orleans LA
3241820.0 44.0 BNA MSY New Orleans LA
3241620.0 41.0 BNA MSY New Orleans LA
3250820.0 0.0 BNA MSY New Orleans LA
3251420.0 70.0 BNA MSY New Orleans LA
3251820.0 30.0 BNA MSY New Orleans LA
3251620.0 30.0 BNA MSY New Orleans LA
3260820.0 -1.0 BNA MSY New Orleans LA
3261420.0 8.0 BNA MSY New Orleans LA
3261820.0 1.0 BNA MSY New Orleans LA
3261620.0 -4.0 BNA MSY New Orleans LA
3270820.0 0.0 BNA MSY New Orleans LA
3271420.0 25.0 BNA MSY New Orleans LA
3271820.0 41.0 BNA MSY New Orleans LA
3271620.0 23.0 BNA MSY New Orleans LA
3280820.0 -5.0 BNA MSY New Orleans LA
3281420.0 52.0 BNA MSY New Orleans LA
3281820.0 17.0 BNA MSY New Orleans LA
3281620.0 15.0 BNA MSY New Orleans LA
3291335.0 1.0 BNA MSY New Orleans LA
3290945.0 20.0 BNA MSY New Orleans LA
3291540.0 35.0 BNA MSY New Orleans LA
3301620.0 0.0 BNA MSY New Orleans LA
3301820.0 22.0 BNA MSY New Orleans LA
3301420.0 10.0 BNA MSY New Orleans LA
3310820.0 -1.0 BNA MSY New Orleans LA
3311420.0 19.0 BNA MSY New Orleans LA
3311820.0 25.0 BNA MSY New Orleans LA
3311620.0 30.0 BNA MSY New Orleans LA
1010800.0 -3.0 BNA MSY New Orleans LA
1011210.0 7.0 BNA MSY New Orleans LA
1011835.0 53.0 BNA MSY New Orleans LA
1021215.0 43.0 BNA MSY New Orleans LA
1021835.0 200.0 BNA MSY New Orleans LA
1020800.0 29.0 BNA MSY New Orleans LA
1031215.0 185.0 BNA MSY New Orleans LA
1031835.0 226.0 BNA MSY New Orleans LA
1030800.0 -1.0 BNA MSY New Orleans LA
1041420.0 174.0 BNA MSY New Orleans LA
1040835.0 18.0 BNA MSY New Orleans LA
1051215.0 85.0 BNA MSY New Orleans LA
1051835.0 283.0 BNA MSY New Orleans LA
1050800.0 3.0 BNA MSY New Orleans LA
1061215.0 150.0 BNA MSY New Orleans LA
1061835.0 133.0 BNA MSY New Orleans LA
1060800.0 102.0 BNA MSY New Orleans LA
1071240.0 57.0 BNA MSY New Orleans LA
1071455.0 12.0 BNA MSY New Orleans LA
1070905.0 5.0 BNA MSY New Orleans LA
1071735.0 131.0 BNA MSY New Orleans LA
1081240.0 19.0 BNA MSY New Orleans LA
1081455.0 2.0 BNA MSY New Orleans LA
1080905.0 -2.0 BNA MSY New Orleans LA
1081735.0 34.0 BNA MSY New Orleans LA
1091240.0 14.0 BNA MSY New Orleans LA
1091455.0 24.0 BNA MSY New Orleans LA
1090905.0 -1.0 BNA MSY New Orleans LA
1091735.0 28.0 BNA MSY New Orleans LA
1101240.0 50.0 BNA MSY New Orleans LA
1101455.0 11.0 BNA MSY New Orleans LA
1100905.0 4.0 BNA MSY New Orleans LA
1101735.0 33.0 BNA MSY New Orleans LA
1111305.0 0.0 BNA MSY New Orleans LA
1111805.0 2.0 BNA MSY New Orleans LA
1110950.0 0.0 BNA MSY New Orleans LA
1121235.0 8.0 BNA MSY New Orleans LA
1121455.0 4.0 BNA MSY New Orleans LA
1121735.0 4.0 BNA MSY New Orleans LA
1131240.0 9.0 BNA MSY New Orleans LA
1131455.0 2.0 BNA MSY New Orleans LA
1130850.0 -1.0 BNA MSY New Orleans LA
1131735.0 15.0 BNA MSY New Orleans LA
1141240.0 17.0 BNA MSY New Orleans LA
1141455.0 -1.0 BNA MSY New Orleans LA
1140850.0 -4.0 BNA MSY New Orleans LA
1141735.0 7.0 BNA MSY New Orleans LA
1151240.0 -2.0 BNA MSY New Orleans LA
1151455.0 1.0 BNA MSY New Orleans LA
1150850.0 -2.0 BNA MSY New Orleans LA
1151735.0 9.0 BNA MSY New Orleans LA
1161240.0 17.0 BNA MSY New Orleans LA
1161455.0 17.0 BNA MSY New Orleans LA
1160850.0 -2.0 BNA MSY New Orleans LA
1161735.0 52.0 BNA MSY New Orleans LA
1171240.0 21.0 BNA MSY New Orleans LA
1171455.0 13.0 BNA MSY New Orleans LA
1170850.0 10.0 BNA MSY New Orleans LA
1171735.0 40.0 BNA MSY New Orleans LA
1181305.0 2.0 BNA MSY New Orleans LA
1181805.0 42.0 BNA MSY New Orleans LA
1180950.0 4.0 BNA MSY New Orleans LA
1191235.0 23.0 BNA MSY New Orleans LA
1191455.0 4.0 BNA MSY New Orleans LA
1191735.0 64.0 BNA MSY New Orleans LA
1201240.0 8.0 BNA MSY New Orleans LA
1201455.0 5.0 BNA MSY New Orleans LA
1200850.0 7.0 BNA MSY New Orleans LA
1201735.0 -3.0 BNA MSY New Orleans LA
1211240.0 41.0 BNA MSY New Orleans LA
1211455.0 -1.0 BNA MSY New Orleans LA
1210850.0 18.0 BNA MSY New Orleans LA
1211735.0 17.0 BNA MSY New Orleans LA
1221240.0 19.0 BNA MSY New Orleans LA
1221455.0 -1.0 BNA MSY New Orleans LA
1220850.0 -4.0 BNA MSY New Orleans LA
1221735.0 118.0 BNA MSY New Orleans LA
1231240.0 20.0 BNA MSY New Orleans LA
1231455.0 4.0 BNA MSY New Orleans LA
1230850.0 18.0 BNA MSY New Orleans LA
1231735.0 33.0 BNA MSY New Orleans LA
1241240.0 20.0 BNA MSY New Orleans LA
1241455.0 4.0 BNA MSY New Orleans LA
1240850.0 12.0 BNA MSY New Orleans LA
1241735.0 0.0 BNA MSY New Orleans LA
1251305.0 27.0 BNA MSY New Orleans LA
1251805.0 19.0 BNA MSY New Orleans LA
1250950.0 -2.0 BNA MSY New Orleans LA
1261235.0 0.0 BNA MSY New Orleans LA
1261455.0 5.0 BNA MSY New Orleans LA
1261735.0 3.0 BNA MSY New Orleans LA
1271240.0 17.0 BNA MSY New Orleans LA
1271455.0 -3.0 BNA MSY New Orleans LA
1270850.0 -2.0 BNA MSY New Orleans LA
1271735.0 10.0 BNA MSY New Orleans LA
1281240.0 0.0 BNA MSY New Orleans LA
1281455.0 0.0 BNA MSY New Orleans LA
1280850.0 0.0 BNA MSY New Orleans LA
1281735.0 0.0 BNA MSY New Orleans LA
1291240.0 13.0 BNA MSY New Orleans LA
1291455.0 -2.0 BNA MSY New Orleans LA
1290850.0 0.0 BNA MSY New Orleans LA
1291735.0 9.0 BNA MSY New Orleans LA
1301240.0 38.0 BNA MSY New Orleans LA
1301455.0 6.0 BNA MSY New Orleans LA
1300850.0 -1.0 BNA MSY New Orleans LA
1301735.0 57.0 BNA MSY New Orleans LA
1311240.0 31.0 BNA MSY New Orleans LA
1311455.0 22.0 BNA MSY New Orleans LA
1310850.0 -2.0 BNA MSY New Orleans LA
1311735.0 6.0 BNA MSY New Orleans LA
2011305.0 -1.0 BNA MSY New Orleans LA
2011805.0 -6.0 BNA MSY New Orleans LA
2010950.0 4.0 BNA MSY New Orleans LA
2021455.0 11.0 BNA MSY New Orleans LA
2021235.0 26.0 BNA MSY New Orleans LA
2021650.0 77.0 BNA MSY New Orleans LA
2031240.0 30.0 BNA MSY New Orleans LA
2031455.0 10.0 BNA MSY New Orleans LA
2030850.0 -1.0 BNA MSY New Orleans LA
2031735.0 -3.0 BNA MSY New Orleans LA
2041240.0 56.0 BNA MSY New Orleans LA
2041455.0 23.0 BNA MSY New Orleans LA
2040850.0 -1.0 BNA MSY New Orleans LA
2041735.0 3.0 BNA MSY New Orleans LA
2051240.0 33.0 BNA MSY New Orleans LA
2051455.0 14.0 BNA MSY New Orleans LA
2050850.0 19.0 BNA MSY New Orleans LA
2051735.0 26.0 BNA MSY New Orleans LA
2061240.0 43.0 BNA MSY New Orleans LA
2061455.0 -2.0 BNA MSY New Orleans LA
2060850.0 10.0 BNA MSY New Orleans LA
2061735.0 34.0 BNA MSY New Orleans LA
2071240.0 88.0 BNA MSY New Orleans LA
2071455.0 5.0 BNA MSY New Orleans LA
2070850.0 1.0 BNA MSY New Orleans LA
2071735.0 20.0 BNA MSY New Orleans LA
2081305.0 -6.0 BNA MSY New Orleans LA
2081805.0 0.0 BNA MSY New Orleans LA
2080950.0 -3.0 BNA MSY New Orleans LA
2091235.0 5.0 BNA MSY New Orleans LA
2091455.0 2.0 BNA MSY New Orleans LA
2091735.0 8.0 BNA MSY New Orleans LA
2101240.0 25.0 BNA MSY New Orleans LA
2101455.0 14.0 BNA MSY New Orleans LA
2100850.0 9.0 BNA MSY New Orleans LA
2101735.0 -2.0 BNA MSY New Orleans LA
2111240.0 145.0 BNA MSY New Orleans LA
2111455.0 -2.0 BNA MSY New Orleans LA
2110850.0 96.0 BNA MSY New Orleans LA
2111735.0 25.0 BNA MSY New Orleans LA
2121240.0 8.0 BNA MSY New Orleans LA
2121455.0 29.0 BNA MSY New Orleans LA
2120850.0 3.0 BNA MSY New Orleans LA
2121735.0 39.0 BNA MSY New Orleans LA
2131350.0 5.0 BNA MSY New Orleans LA
2131610.0 11.0 BNA MSY New Orleans LA
2130810.0 -4.0 BNA MSY New Orleans LA
2131800.0 9.0 BNA MSY New Orleans LA
2141610.0 37.0 BNA MSY New Orleans LA
2140810.0 13.0 BNA MSY New Orleans LA
2141350.0 46.0 BNA MSY New Orleans LA
2141800.0 21.0 BNA MSY New Orleans LA
// Build `tripGraph` GraphFrame
// This GraphFrame builds up on the vertices and edges based on our trips (flights)
val tripGraph = GraphFrame(tripVertices, tripEdges)
println(tripGraph)

// Build `tripGraphPrime` GraphFrame
// This graphframe contains a smaller subset of data to make it easier to display motifs and subgraphs (below)
val tripEdgesPrime = departureDelays_geo.select("tripid", "delay", "src", "dst")
val tripGraphPrime = GraphFrame(tripVertices, tripEdgesPrime)
GraphFrame(v:[id: string, City: string ... 2 more fields], e:[src: string, dst: string ... 4 more fields])
tripGraph: org.graphframes.GraphFrame = GraphFrame(v:[id: string, City: string ... 2 more fields], e:[src: string, dst: string ... 4 more fields])
tripEdgesPrime: org.apache.spark.sql.DataFrame = [tripid: int, delay: int ... 2 more fields]
tripGraphPrime: org.graphframes.GraphFrame = GraphFrame(v:[id: string, City: string ... 2 more fields], e:[src: string, dst: string ... 2 more fields])

Simple Queries

Let's start with a set of simple graph queries to understand flight performance and departure delays

println(s"Airports: ${tripGraph.vertices.count()}")
println(s"Trips: ${tripGraph.edges.count()}")
Airports: 279
Trips: 1361141
// Finding the longest Delay
val longestDelay = tripGraph.edges.groupBy().max("delay")
display(longestDelay)
max(delay)
1642.0
1642.0/60.0
res13: Double = 27.366666666666667
// Determining number of on-time / early flights vs. delayed flights
println(s"On-time / Early Flights: ${tripGraph.edges.filter("delay <= 0").count()}")
println(s"Delayed Flights: ${tripGraph.edges.filter("delay > 0").count()}")
On-time / Early Flights: 780469
Delayed Flights: 580672

What flights departing SFO are most likely to have significant delays

Note, delay can be <= 0 meaning the flight left on time or early

//tripGraph.createOrReplaceTempView("tripgraph")
val sfoDelayedTrips = tripGraph.edges.
  filter("src = 'SFO' and delay > 0").
  groupBy("src", "dst").
  avg("delay").
  sort(desc("avg(delay)"))
sfoDelayedTrips: org.apache.spark.sql.Dataset[org.apache.spark.sql.Row] = [src: string, dst: string ... 1 more field]
display(sfoDelayedTrips)
src dst avg(delay)
SFO OKC 59.073170731707314
SFO JAC 57.13333333333333
SFO COS 53.976190476190474
SFO OTH 48.09090909090909
SFO SAT 47.625
SFO MOD 46.80952380952381
SFO SUN 46.723404255319146
SFO CIC 46.72164948453608
SFO ABQ 44.8125
SFO ASE 44.285714285714285
SFO PIT 43.875
SFO MIA 43.81730769230769
SFO FAT 43.23972602739726
SFO MFR 43.11848341232228
SFO SBP 43.09770114942529
SFO MSP 42.766917293233085
SFO BOI 42.65482233502538
SFO RDM 41.98823529411764
SFO AUS 41.690677966101696
SFO SLC 41.407272727272726
SFO JFK 41.01379310344828
SFO PSP 40.909909909909906
SFO PHX 40.67272727272727
SFO MRY 40.61764705882353
SFO ACV 40.3728813559322
SFO LAS 40.107602339181284
SFO TUS 39.853658536585364
SFO SAN 38.97361809045226
SFO SBA 38.758620689655174
SFO BFL 38.51136363636363
SFO RDU 38.170731707317074
SFO STL 38.13513513513514
SFO IND 38.114285714285714
SFO EUG 37.573913043478264
SFO RNO 36.81372549019608
SFO BUR 36.75675675675676
SFO LGB 36.752941176470586
SFO HNL 36.25367647058823
SFO LAX 36.165543071161046
SFO RDD 36.11009174311926
SFO MSY 35.421052631578945
SFO SMF 34.936
SFO MDW 34.824742268041234
SFO FLL 34.76842105263158
SFO SEA 34.68854961832061
SFO MCI 34.68571428571428
SFO DFW 34.36642599277978
SFO OGG 34.171875
SFO PDX 34.14430894308943
SFO ORD 33.991130820399114
SFO LIH 32.93023255813954
SFO DEN 32.861491628614914
SFO PSC 32.604651162790695
SFO PHL 32.440677966101696
SFO BWI 31.70212765957447
SFO ONT 31.49079754601227
SFO SNA 31.18426103646833
SFO MCO 31.03488372093023
SFO MKE 31.03448275862069
SFO CLE 30.979591836734695
SFO EWR 30.354285714285716
SFO BOS 29.623471882640587
SFO LMT 29.233333333333334
SFO DTW 28.34722222222222
SFO IAH 28.322105263157894
SFO CVG 27.03125
SFO ATL 26.84860557768924
SFO IAD 26.125964010282775
SFO ANC 25.5
SFO BZN 23.964285714285715
SFO CLT 22.636363636363637
SFO DCA 21.896103896103895
// After displaying tripDelays, use Plot Options to set `state_dst` as a Key.
val tripDelays = tripGraph.edges.filter($"delay" > 0)
display(tripDelays)
tripid delay src dst city_dst state_dst
1021111.0 7.0 MSP INL International Falls MN
1061115.0 33.0 MSP INL International Falls MN
1071115.0 23.0 MSP INL International Falls MN
1091115.0 11.0 MSP INL International Falls MN
1171115.0 4.0 MSP INL International Falls MN
2091925.0 1.0 MSP INL International Falls MN
2152015.0 16.0 MSP INL International Falls MN
2161925.0 169.0 MSP INL International Falls MN
2171115.0 27.0 MSP INL International Falls MN
2181115.0 96.0 MSP INL International Falls MN
2281115.0 5.0 MSP INL International Falls MN
3031115.0 17.0 MSP INL International Falls MN
3171115.0 25.0 MSP INL International Falls MN
3181115.0 2.0 MSP INL International Falls MN
3271115.0 9.0 MSP INL International Falls MN
2020709.0 59.0 EWR MSY New Orleans LA
2021654.0 21.0 EWR MSY New Orleans LA
2041230.0 24.0 EWR MSY New Orleans LA
2040719.0 168.0 EWR MSY New Orleans LA
2041730.0 88.0 EWR MSY New Orleans LA
2042043.0 106.0 EWR MSY New Orleans LA
2052043.0 46.0 EWR MSY New Orleans LA
2061659.0 82.0 EWR MSY New Orleans LA
2061230.0 61.0 EWR MSY New Orleans LA
2062043.0 7.0 EWR MSY New Orleans LA
2070719.0 8.0 EWR MSY New Orleans LA
2071659.0 19.0 EWR MSY New Orleans LA
2071230.0 27.0 EWR MSY New Orleans LA
2072048.0 47.0 EWR MSY New Orleans LA
2091229.0 95.0 EWR MSY New Orleans LA
2092043.0 32.0 EWR MSY New Orleans LA
2100719.0 14.0 EWR MSY New Orleans LA
2101659.0 16.0 EWR MSY New Orleans LA
2111230.0 10.0 EWR MSY New Orleans LA
2110719.0 46.0 EWR MSY New Orleans LA
2120719.0 1.0 EWR MSY New Orleans LA
2120929.0 89.0 EWR MSY New Orleans LA
2122043.0 36.0 EWR MSY New Orleans LA
2182041.0 36.0 EWR MSY New Orleans LA
2190727.0 15.0 EWR MSY New Orleans LA
2202041.0 51.0 EWR MSY New Orleans LA
2220659.0 8.0 EWR MSY New Orleans LA
2232041.0 8.0 EWR MSY New Orleans LA
2240729.0 6.0 EWR MSY New Orleans LA
2260727.0 23.0 EWR MSY New Orleans LA
2262041.0 174.0 EWR MSY New Orleans LA
2270738.0 8.0 EWR MSY New Orleans LA
2272041.0 32.0 EWR MSY New Orleans LA
2280729.0 12.0 EWR MSY New Orleans LA
2282041.0 49.0 EWR MSY New Orleans LA
2281000.0 2.0 EWR MSY New Orleans LA
2051230.0 216.0 EWR MSY New Orleans LA
2131536.0 273.0 EWR MSY New Orleans LA
2141536.0 6.0 EWR MSY New Orleans LA
2151902.0 31.0 EWR MSY New Orleans LA
2151536.0 66.0 EWR MSY New Orleans LA
2161536.0 7.0 EWR MSY New Orleans LA
2171536.0 3.0 EWR MSY New Orleans LA
2181536.0 26.0 EWR MSY New Orleans LA
2211536.0 34.0 EWR MSY New Orleans LA
2221536.0 65.0 EWR MSY New Orleans LA
2281536.0 8.0 EWR MSY New Orleans LA
2111815.0 4.0 EWR MSY New Orleans LA
2121815.0 64.0 EWR MSY New Orleans LA
2141635.0 52.0 EWR MSY New Orleans LA
2161635.0 21.0 EWR MSY New Orleans LA
2171635.0 23.0 EWR MSY New Orleans LA
2191635.0 21.0 EWR MSY New Orleans LA
2211635.0 292.0 EWR MSY New Orleans LA
2220730.0 28.0 EWR MSY New Orleans LA
2251635.0 6.0 EWR MSY New Orleans LA
2261635.0 10.0 EWR MSY New Orleans LA
3032041.0 113.0 EWR MSY New Orleans LA
3052041.0 4.0 EWR MSY New Orleans LA
3061252.0 67.0 EWR MSY New Orleans LA
3062100.0 21.0 EWR MSY New Orleans LA
3072100.0 13.0 EWR MSY New Orleans LA
3081250.0 5.0 EWR MSY New Orleans LA
3112059.0 181.0 EWR MSY New Orleans LA
3122059.0 22.0 EWR MSY New Orleans LA
3121252.0 161.0 EWR MSY New Orleans LA
3140705.0 66.0 EWR MSY New Orleans LA
3141252.0 39.0 EWR MSY New Orleans LA
3150700.0 2.0 EWR MSY New Orleans LA
3151250.0 34.0 EWR MSY New Orleans LA
3171252.0 22.0 EWR MSY New Orleans LA
3172059.0 132.0 EWR MSY New Orleans LA
3181252.0 2.0 EWR MSY New Orleans LA
3192059.0 16.0 EWR MSY New Orleans LA
3202059.0 77.0 EWR MSY New Orleans LA
3211252.0 9.0 EWR MSY New Orleans LA
3212059.0 11.0 EWR MSY New Orleans LA
3231255.0 5.0 EWR MSY New Orleans LA
3252059.0 121.0 EWR MSY New Orleans LA
3262059.0 49.0 EWR MSY New Orleans LA
3291600.0 1.0 EWR MSY New Orleans LA
3301255.0 64.0 EWR MSY New Orleans LA
3302059.0 166.0 EWR MSY New Orleans LA
3311252.0 12.0 EWR MSY New Orleans LA
3312059.0 7.0 EWR MSY New Orleans LA
3011902.0 64.0 EWR MSY New Orleans LA
3021536.0 9.0 EWR MSY New Orleans LA
3090715.0 1.0 EWR MSY New Orleans LA
3260659.0 63.0 EWR MSY New Orleans LA
3300715.0 2.0 EWR MSY New Orleans LA
3021635.0 16.0 EWR MSY New Orleans LA
3041635.0 8.0 EWR MSY New Orleans LA
3071635.0 5.0 EWR MSY New Orleans LA
3091825.0 45.0 EWR MSY New Orleans LA
3101825.0 10.0 EWR MSY New Orleans LA
3111825.0 5.0 EWR MSY New Orleans LA
3131825.0 123.0 EWR MSY New Orleans LA
3141825.0 6.0 EWR MSY New Orleans LA
3161825.0 24.0 EWR MSY New Orleans LA
3171825.0 6.0 EWR MSY New Orleans LA
3191825.0 223.0 EWR MSY New Orleans LA
3201825.0 178.0 EWR MSY New Orleans LA
3251825.0 222.0 EWR MSY New Orleans LA
3261825.0 51.0 EWR MSY New Orleans LA
3281825.0 26.0 EWR MSY New Orleans LA
3301825.0 139.0 EWR MSY New Orleans LA
3311825.0 25.0 EWR MSY New Orleans LA
1050703.0 4.0 EWR MSY New Orleans LA
1060705.0 36.0 EWR MSY New Orleans LA
1071230.0 24.0 EWR MSY New Orleans LA
1071730.0 161.0 EWR MSY New Orleans LA
1072043.0 8.0 EWR MSY New Orleans LA
1081230.0 66.0 EWR MSY New Orleans LA
1082043.0 5.0 EWR MSY New Orleans LA
1092043.0 63.0 EWR MSY New Orleans LA
1101659.0 244.0 EWR MSY New Orleans LA
1101230.0 110.0 EWR MSY New Orleans LA
1102043.0 43.0 EWR MSY New Orleans LA
1111230.0 87.0 EWR MSY New Orleans LA
1121230.0 21.0 EWR MSY New Orleans LA
1131230.0 14.0 EWR MSY New Orleans LA
1132043.0 51.0 EWR MSY New Orleans LA
1141230.0 30.0 EWR MSY New Orleans LA
1141730.0 69.0 EWR MSY New Orleans LA
1150719.0 42.0 EWR MSY New Orleans LA
1151659.0 2.0 EWR MSY New Orleans LA
1152043.0 22.0 EWR MSY New Orleans LA
1162043.0 3.0 EWR MSY New Orleans LA
1171659.0 46.0 EWR MSY New Orleans LA
1172043.0 54.0 EWR MSY New Orleans LA
1181230.0 20.0 EWR MSY New Orleans LA
1191230.0 29.0 EWR MSY New Orleans LA
1192043.0 5.0 EWR MSY New Orleans LA
1202043.0 12.0 EWR MSY New Orleans LA
1211230.0 102.0 EWR MSY New Orleans LA
1221659.0 6.0 EWR MSY New Orleans LA
1222043.0 70.0 EWR MSY New Orleans LA
1230719.0 12.0 EWR MSY New Orleans LA
1231659.0 94.0 EWR MSY New Orleans LA
1231230.0 111.0 EWR MSY New Orleans LA
1232043.0 13.0 EWR MSY New Orleans LA
1241659.0 84.0 EWR MSY New Orleans LA
1242043.0 56.0 EWR MSY New Orleans LA
1250719.0 23.0 EWR MSY New Orleans LA
1261654.0 113.0 EWR MSY New Orleans LA
1261230.0 8.0 EWR MSY New Orleans LA
1262043.0 31.0 EWR MSY New Orleans LA
1300719.0 2.0 EWR MSY New Orleans LA
1301659.0 9.0 EWR MSY New Orleans LA
1302043.0 93.0 EWR MSY New Orleans LA
1310719.0 34.0 EWR MSY New Orleans LA
1311230.0 5.0 EWR MSY New Orleans LA
1312043.0 28.0 EWR MSY New Orleans LA
1011815.0 125.0 EWR MSY New Orleans LA
1021815.0 33.0 EWR MSY New Orleans LA
1051815.0 172.0 EWR MSY New Orleans LA
1061815.0 151.0 EWR MSY New Orleans LA
1071815.0 43.0 EWR MSY New Orleans LA
1081815.0 14.0 EWR MSY New Orleans LA
1091815.0 3.0 EWR MSY New Orleans LA
1101815.0 10.0 EWR MSY New Orleans LA
1141815.0 1.0 EWR MSY New Orleans LA
1151815.0 1.0 EWR MSY New Orleans LA
1161815.0 8.0 EWR MSY New Orleans LA
1171815.0 22.0 EWR MSY New Orleans LA
1180730.0 1.0 EWR MSY New Orleans LA
1191815.0 5.0 EWR MSY New Orleans LA
1201815.0 5.0 EWR MSY New Orleans LA
1221815.0 3.0 EWR MSY New Orleans LA
1241815.0 84.0 EWR MSY New Orleans LA
2021025.0 3.0 LAS MSY New Orleans LA
2041025.0 6.0 LAS MSY New Orleans LA
2051750.0 29.0 LAS MSY New Orleans LA
2061025.0 1.0 LAS MSY New Orleans LA
2061750.0 48.0 LAS MSY New Orleans LA
2071750.0 20.0 LAS MSY New Orleans LA
2081055.0 2.0 LAS MSY New Orleans LA
2091750.0 33.0 LAS MSY New Orleans LA
2111025.0 15.0 LAS MSY New Orleans LA
2121750.0 158.0 LAS MSY New Orleans LA
2131855.0 11.0 LAS MSY New Orleans LA
2131215.0 23.0 LAS MSY New Orleans LA
2141855.0 22.0 LAS MSY New Orleans LA
2141215.0 18.0 LAS MSY New Orleans LA
2151635.0 4.0 LAS MSY New Orleans LA
2161855.0 58.0 LAS MSY New Orleans LA
2161215.0 17.0 LAS MSY New Orleans LA
2171855.0 14.0 LAS MSY New Orleans LA
2171215.0 10.0 LAS MSY New Orleans LA
2181855.0 1.0 LAS MSY New Orleans LA
2181215.0 58.0 LAS MSY New Orleans LA
2191215.0 32.0 LAS MSY New Orleans LA
2201855.0 14.0 LAS MSY New Orleans LA
2201215.0 28.0 LAS MSY New Orleans LA
2211855.0 4.0 LAS MSY New Orleans LA
2211215.0 11.0 LAS MSY New Orleans LA
2221635.0 133.0 LAS MSY New Orleans LA
2231215.0 10.0 LAS MSY New Orleans LA
2241215.0 16.0 LAS MSY New Orleans LA
2251855.0 7.0 LAS MSY New Orleans LA
2251215.0 15.0 LAS MSY New Orleans LA
2261855.0 2.0 LAS MSY New Orleans LA
2261215.0 16.0 LAS MSY New Orleans LA
2271855.0 10.0 LAS MSY New Orleans LA
2271215.0 32.0 LAS MSY New Orleans LA
2281855.0 61.0 LAS MSY New Orleans LA
2281215.0 94.0 LAS MSY New Orleans LA
3010935.0 10.0 LAS MSY New Orleans LA
3011635.0 39.0 LAS MSY New Orleans LA
3031855.0 25.0 LAS MSY New Orleans LA
3031215.0 8.0 LAS MSY New Orleans LA
3041215.0 28.0 LAS MSY New Orleans LA
3051215.0 27.0 LAS MSY New Orleans LA
3061855.0 20.0 LAS MSY New Orleans LA
3061215.0 10.0 LAS MSY New Orleans LA
3071855.0 36.0 LAS MSY New Orleans LA
3071215.0 14.0 LAS MSY New Orleans LA
3080830.0 6.0 LAS MSY New Orleans LA
3091905.0 4.0 LAS MSY New Orleans LA
3101905.0 49.0 LAS MSY New Orleans LA
3111905.0 9.0 LAS MSY New Orleans LA
3110840.0 84.0 LAS MSY New Orleans LA
3121905.0 26.0 LAS MSY New Orleans LA
3131905.0 37.0 LAS MSY New Orleans LA
3130840.0 1.0 LAS MSY New Orleans LA
3141905.0 14.0 LAS MSY New Orleans LA
3150830.0 16.0 LAS MSY New Orleans LA
3151940.0 95.0 LAS MSY New Orleans LA
3171905.0 13.0 LAS MSY New Orleans LA
3170840.0 3.0 LAS MSY New Orleans LA
3181905.0 52.0 LAS MSY New Orleans LA
3180840.0 2.0 LAS MSY New Orleans LA
3201905.0 36.0 LAS MSY New Orleans LA
3200840.0 68.0 LAS MSY New Orleans LA
3220830.0 12.0 LAS MSY New Orleans LA
3221940.0 11.0 LAS MSY New Orleans LA
3231905.0 9.0 LAS MSY New Orleans LA
3230840.0 16.0 LAS MSY New Orleans LA
3241905.0 9.0 LAS MSY New Orleans LA
3240840.0 4.0 LAS MSY New Orleans LA
3251905.0 10.0 LAS MSY New Orleans LA
3261905.0 14.0 LAS MSY New Orleans LA
3260840.0 3.0 LAS MSY New Orleans LA
3271905.0 13.0 LAS MSY New Orleans LA
3280840.0 33.0 LAS MSY New Orleans LA
3291940.0 231.0 LAS MSY New Orleans LA
3301905.0 7.0 LAS MSY New Orleans LA
3300840.0 15.0 LAS MSY New Orleans LA
3311905.0 19.0 LAS MSY New Orleans LA
1011755.0 160.0 LAS MSY New Orleans LA
1021805.0 138.0 LAS MSY New Orleans LA
1020905.0 5.0 LAS MSY New Orleans LA
1031805.0 154.0 LAS MSY New Orleans LA
1030905.0 179.0 LAS MSY New Orleans LA
1041655.0 113.0 LAS MSY New Orleans LA
1040900.0 56.0 LAS MSY New Orleans LA
1051805.0 53.0 LAS MSY New Orleans LA
1061755.0 61.0 LAS MSY New Orleans LA
1060905.0 23.0 LAS MSY New Orleans LA
1071025.0 1.0 LAS MSY New Orleans LA
1071750.0 302.0 LAS MSY New Orleans LA
1081025.0 7.0 LAS MSY New Orleans LA
1081750.0 52.0 LAS MSY New Orleans LA
1091750.0 8.0 LAS MSY New Orleans LA
1101750.0 92.0 LAS MSY New Orleans LA
1111055.0 31.0 LAS MSY New Orleans LA
1121025.0 1.0 LAS MSY New Orleans LA
1141750.0 127.0 LAS MSY New Orleans LA
1151025.0 1.0 LAS MSY New Orleans LA
1171025.0 12.0 LAS MSY New Orleans LA
1191025.0 3.0 LAS MSY New Orleans LA
1201750.0 6.0 LAS MSY New Orleans LA
1211025.0 3.0 LAS MSY New Orleans LA
1211750.0 4.0 LAS MSY New Orleans LA
1221750.0 3.0 LAS MSY New Orleans LA
1231750.0 30.0 LAS MSY New Orleans LA
1241025.0 43.0 LAS MSY New Orleans LA
1251055.0 5.0 LAS MSY New Orleans LA
1261750.0 27.0 LAS MSY New Orleans LA
1271750.0 2.0 LAS MSY New Orleans LA
1291025.0 1.0 LAS MSY New Orleans LA
1301750.0 35.0 LAS MSY New Orleans LA
1311025.0 11.0 LAS MSY New Orleans LA
1311750.0 25.0 LAS MSY New Orleans LA
2041105.0 1.0 MCI MSY New Orleans LA
2051105.0 6.0 MCI MSY New Orleans LA
2061105.0 40.0 MCI MSY New Orleans LA
2071105.0 7.0 MCI MSY New Orleans LA
2081530.0 2.0 MCI MSY New Orleans LA
2121105.0 7.0 MCI MSY New Orleans LA
2140830.0 3.0 MCI MSY New Orleans LA
2150750.0 7.0 MCI MSY New Orleans LA
2170830.0 10.0 MCI MSY New Orleans LA
2180830.0 2.0 MCI MSY New Orleans LA
2200830.0 9.0 MCI MSY New Orleans LA
2230930.0 2.0 MCI MSY New Orleans LA
2240830.0 3.0 MCI MSY New Orleans LA
2260830.0 251.0 MCI MSY New Orleans LA
3020930.0 35.0 MCI MSY New Orleans LA
3030830.0 1.0 MCI MSY New Orleans LA
3040830.0 11.0 MCI MSY New Orleans LA
3050830.0 2.0 MCI MSY New Orleans LA
3081610.0 93.0 MCI MSY New Orleans LA
3100950.0 8.0 MCI MSY New Orleans LA
3110950.0 36.0 MCI MSY New Orleans LA
3120950.0 68.0 MCI MSY New Orleans LA
3130950.0 13.0 MCI MSY New Orleans LA
3140950.0 1.0 MCI MSY New Orleans LA
3151610.0 16.0 MCI MSY New Orleans LA
3180950.0 1.0 MCI MSY New Orleans LA
3200950.0 3.0 MCI MSY New Orleans LA
3210950.0 7.0 MCI MSY New Orleans LA
3221610.0 38.0 MCI MSY New Orleans LA
3250950.0 4.0 MCI MSY New Orleans LA
3260950.0 5.0 MCI MSY New Orleans LA
3270950.0 12.0 MCI MSY New Orleans LA
3291610.0 12.0 MCI MSY New Orleans LA
3310950.0 3.0 MCI MSY New Orleans LA
1021635.0 96.0 MCI MSY New Orleans LA
1031635.0 3.0 MCI MSY New Orleans LA
1041205.0 1.0 MCI MSY New Orleans LA
1051635.0 60.0 MCI MSY New Orleans LA
1071105.0 14.0 MCI MSY New Orleans LA
1081105.0 4.0 MCI MSY New Orleans LA
1091105.0 11.0 MCI MSY New Orleans LA
1111530.0 11.0 MCI MSY New Orleans LA
1141105.0 1.0 MCI MSY New Orleans LA
1151105.0 9.0 MCI MSY New Orleans LA
1161105.0 1.0 MCI MSY New Orleans LA
1181530.0 48.0 MCI MSY New Orleans LA
1211105.0 2.0 MCI MSY New Orleans LA
1221105.0 19.0 MCI MSY New Orleans LA
1241105.0 72.0 MCI MSY New Orleans LA
1251530.0 5.0 MCI MSY New Orleans LA
1301105.0 1.0 MCI MSY New Orleans LA
1311105.0 1.0 MCI MSY New Orleans LA
3011530.0 72.0 BNA MSY New Orleans LA
3010850.0 2.0 BNA MSY New Orleans LA
3011245.0 4.0 BNA MSY New Orleans LA
3021610.0 14.0 BNA MSY New Orleans LA
3021350.0 15.0 BNA MSY New Orleans LA
3021800.0 56.0 BNA MSY New Orleans LA
3031610.0 13.0 BNA MSY New Orleans LA
3041350.0 10.0 BNA MSY New Orleans LA
3041800.0 7.0 BNA MSY New Orleans LA
3050810.0 11.0 BNA MSY New Orleans LA
3051350.0 48.0 BNA MSY New Orleans LA
3051800.0 21.0 BNA MSY New Orleans LA
3061610.0 26.0 BNA MSY New Orleans LA
3061350.0 13.0 BNA MSY New Orleans LA
3061800.0 5.0 BNA MSY New Orleans LA
3071610.0 12.0 BNA MSY New Orleans LA
3071350.0 10.0 BNA MSY New Orleans LA
3071800.0 7.0 BNA MSY New Orleans LA
3081540.0 27.0 BNA MSY New Orleans LA
3080945.0 11.0 BNA MSY New Orleans LA
3091820.0 25.0 BNA MSY New Orleans LA
3091420.0 12.0 BNA MSY New Orleans LA
3101420.0 41.0 BNA MSY New Orleans LA
3101820.0 11.0 BNA MSY New Orleans LA
3101620.0 7.0 BNA MSY New Orleans LA
3110820.0 3.0 BNA MSY New Orleans LA
3111420.0 15.0 BNA MSY New Orleans LA
3111820.0 29.0 BNA MSY New Orleans LA
3111620.0 5.0 BNA MSY New Orleans LA
3120820.0 12.0 BNA MSY New Orleans LA
3121420.0 40.0 BNA MSY New Orleans LA
3121820.0 15.0 BNA MSY New Orleans LA
3121620.0 24.0 BNA MSY New Orleans LA
3130820.0 126.0 BNA MSY New Orleans LA
3131420.0 13.0 BNA MSY New Orleans LA
3131820.0 55.0 BNA MSY New Orleans LA
3131620.0 40.0 BNA MSY New Orleans LA
3141420.0 35.0 BNA MSY New Orleans LA
3141820.0 21.0 BNA MSY New Orleans LA
3141620.0 36.0 BNA MSY New Orleans LA
3150945.0 3.0 BNA MSY New Orleans LA
3161620.0 22.0 BNA MSY New Orleans LA
3161820.0 39.0 BNA MSY New Orleans LA
3170820.0 1.0 BNA MSY New Orleans LA
3171420.0 112.0 BNA MSY New Orleans LA
3171820.0 12.0 BNA MSY New Orleans LA
3171620.0 56.0 BNA MSY New Orleans LA
3181420.0 25.0 BNA MSY New Orleans LA
3181820.0 36.0 BNA MSY New Orleans LA
3181620.0 1.0 BNA MSY New Orleans LA
3191420.0 54.0 BNA MSY New Orleans LA
3191820.0 7.0 BNA MSY New Orleans LA
3191620.0 29.0 BNA MSY New Orleans LA
3201420.0 18.0 BNA MSY New Orleans LA
3201820.0 9.0 BNA MSY New Orleans LA
3201620.0 79.0 BNA MSY New Orleans LA
3210820.0 3.0 BNA MSY New Orleans LA
3211420.0 22.0 BNA MSY New Orleans LA
3211820.0 30.0 BNA MSY New Orleans LA
3211620.0 22.0 BNA MSY New Orleans LA
3231820.0 6.0 BNA MSY New Orleans LA
3241420.0 27.0 BNA MSY New Orleans LA
3241820.0 44.0 BNA MSY New Orleans LA
3241620.0 41.0 BNA MSY New Orleans LA
3251420.0 70.0 BNA MSY New Orleans LA
3251820.0 30.0 BNA MSY New Orleans LA
3251620.0 30.0 BNA MSY New Orleans LA
3261420.0 8.0 BNA MSY New Orleans LA
3261820.0 1.0 BNA MSY New Orleans LA
3271420.0 25.0 BNA MSY New Orleans LA
3271820.0 41.0 BNA MSY New Orleans LA
3271620.0 23.0 BNA MSY New Orleans LA
3281420.0 52.0 BNA MSY New Orleans LA
3281820.0 17.0 BNA MSY New Orleans LA
3281620.0 15.0 BNA MSY New Orleans LA
3291335.0 1.0 BNA MSY New Orleans LA
3290945.0 20.0 BNA MSY New Orleans LA
3291540.0 35.0 BNA MSY New Orleans LA
3301820.0 22.0 BNA MSY New Orleans LA
3301420.0 10.0 BNA MSY New Orleans LA
3311420.0 19.0 BNA MSY New Orleans LA
3311820.0 25.0 BNA MSY New Orleans LA
3311620.0 30.0 BNA MSY New Orleans LA
1011210.0 7.0 BNA MSY New Orleans LA
1011835.0 53.0 BNA MSY New Orleans LA
1021215.0 43.0 BNA MSY New Orleans LA
1021835.0 200.0 BNA MSY New Orleans LA
1020800.0 29.0 BNA MSY New Orleans LA
1031215.0 185.0 BNA MSY New Orleans LA
1031835.0 226.0 BNA MSY New Orleans LA
1041420.0 174.0 BNA MSY New Orleans LA
1040835.0 18.0 BNA MSY New Orleans LA
1051215.0 85.0 BNA MSY New Orleans LA
1051835.0 283.0 BNA MSY New Orleans LA
1050800.0 3.0 BNA MSY New Orleans LA
1061215.0 150.0 BNA MSY New Orleans LA
1061835.0 133.0 BNA MSY New Orleans LA
1060800.0 102.0 BNA MSY New Orleans LA
1071240.0 57.0 BNA MSY New Orleans LA
1071455.0 12.0 BNA MSY New Orleans LA
1070905.0 5.0 BNA MSY New Orleans LA
1071735.0 131.0 BNA MSY New Orleans LA
1081240.0 19.0 BNA MSY New Orleans LA
1081455.0 2.0 BNA MSY New Orleans LA
1081735.0 34.0 BNA MSY New Orleans LA
1091240.0 14.0 BNA MSY New Orleans LA
1091455.0 24.0 BNA MSY New Orleans LA
1091735.0 28.0 BNA MSY New Orleans LA
1101240.0 50.0 BNA MSY New Orleans LA
1101455.0 11.0 BNA MSY New Orleans LA
1100905.0 4.0 BNA MSY New Orleans LA
1101735.0 33.0 BNA MSY New Orleans LA
1111805.0 2.0 BNA MSY New Orleans LA
1121235.0 8.0 BNA MSY New Orleans LA
1121455.0 4.0 BNA MSY New Orleans LA
1121735.0 4.0 BNA MSY New Orleans LA
1131240.0 9.0 BNA MSY New Orleans LA
1131455.0 2.0 BNA MSY New Orleans LA
1131735.0 15.0 BNA MSY New Orleans LA
1141240.0 17.0 BNA MSY New Orleans LA
1141735.0 7.0 BNA MSY New Orleans LA
1151455.0 1.0 BNA MSY New Orleans LA
1151735.0 9.0 BNA MSY New Orleans LA
1161240.0 17.0 BNA MSY New Orleans LA
1161455.0 17.0 BNA MSY New Orleans LA
1161735.0 52.0 BNA MSY New Orleans LA
1171240.0 21.0 BNA MSY New Orleans LA
1171455.0 13.0 BNA MSY New Orleans LA
1170850.0 10.0 BNA MSY New Orleans LA
1171735.0 40.0 BNA MSY New Orleans LA
1181305.0 2.0 BNA MSY New Orleans LA
1181805.0 42.0 BNA MSY New Orleans LA
1180950.0 4.0 BNA MSY New Orleans LA
1191235.0 23.0 BNA MSY New Orleans LA
1191455.0 4.0 BNA MSY New Orleans LA
1191735.0 64.0 BNA MSY New Orleans LA
1201240.0 8.0 BNA MSY New Orleans LA
1201455.0 5.0 BNA MSY New Orleans LA
1200850.0 7.0 BNA MSY New Orleans LA
1211240.0 41.0 BNA MSY New Orleans LA
1210850.0 18.0 BNA MSY New Orleans LA
1211735.0 17.0 BNA MSY New Orleans LA
1221240.0 19.0 BNA MSY New Orleans LA
1221735.0 118.0 BNA MSY New Orleans LA
1231240.0 20.0 BNA MSY New Orleans LA
1231455.0 4.0 BNA MSY New Orleans LA
1230850.0 18.0 BNA MSY New Orleans LA
1231735.0 33.0 BNA MSY New Orleans LA
1241240.0 20.0 BNA MSY New Orleans LA
1241455.0 4.0 BNA MSY New Orleans LA
1240850.0 12.0 BNA MSY New Orleans LA
1251305.0 27.0 BNA MSY New Orleans LA
1251805.0 19.0 BNA MSY New Orleans LA
1261455.0 5.0 BNA MSY New Orleans LA
1261735.0 3.0 BNA MSY New Orleans LA
1271240.0 17.0 BNA MSY New Orleans LA
1271735.0 10.0 BNA MSY New Orleans LA
1291240.0 13.0 BNA MSY New Orleans LA
1291735.0 9.0 BNA MSY New Orleans LA
1301240.0 38.0 BNA MSY New Orleans LA
1301455.0 6.0 BNA MSY New Orleans LA
1301735.0 57.0 BNA MSY New Orleans LA
1311240.0 31.0 BNA MSY New Orleans LA
1311455.0 22.0 BNA MSY New Orleans LA
1311735.0 6.0 BNA MSY New Orleans LA
2010950.0 4.0 BNA MSY New Orleans LA
2021455.0 11.0 BNA MSY New Orleans LA
2021235.0 26.0 BNA MSY New Orleans LA
2021650.0 77.0 BNA MSY New Orleans LA
2031240.0 30.0 BNA MSY New Orleans LA
2031455.0 10.0 BNA MSY New Orleans LA
2041240.0 56.0 BNA MSY New Orleans LA
2041455.0 23.0 BNA MSY New Orleans LA
2041735.0 3.0 BNA MSY New Orleans LA
2051240.0 33.0 BNA MSY New Orleans LA
2051455.0 14.0 BNA MSY New Orleans LA
2050850.0 19.0 BNA MSY New Orleans LA
2051735.0 26.0 BNA MSY New Orleans LA
2061240.0 43.0 BNA MSY New Orleans LA
2060850.0 10.0 BNA MSY New Orleans LA
2061735.0 34.0 BNA MSY New Orleans LA
2071240.0 88.0 BNA MSY New Orleans LA
2071455.0 5.0 BNA MSY New Orleans LA
2070850.0 1.0 BNA MSY New Orleans LA
2071735.0 20.0 BNA MSY New Orleans LA
2091235.0 5.0 BNA MSY New Orleans LA
2091455.0 2.0 BNA MSY New Orleans LA
2091735.0 8.0 BNA MSY New Orleans LA
2101240.0 25.0 BNA MSY New Orleans LA
2101455.0 14.0 BNA MSY New Orleans LA
2100850.0 9.0 BNA MSY New Orleans LA
2111240.0 145.0 BNA MSY New Orleans LA
2110850.0 96.0 BNA MSY New Orleans LA
2111735.0 25.0 BNA MSY New Orleans LA
2121240.0 8.0 BNA MSY New Orleans LA
2121455.0 29.0 BNA MSY New Orleans LA
2120850.0 3.0 BNA MSY New Orleans LA
2121735.0 39.0 BNA MSY New Orleans LA
2131350.0 5.0 BNA MSY New Orleans LA
2131610.0 11.0 BNA MSY New Orleans LA
2131800.0 9.0 BNA MSY New Orleans LA
2141610.0 37.0 BNA MSY New Orleans LA
2140810.0 13.0 BNA MSY New Orleans LA
2141350.0 46.0 BNA MSY New Orleans LA
2141800.0 21.0 BNA MSY New Orleans LA
2151530.0 35.0 BNA MSY New Orleans LA
2150850.0 7.0 BNA MSY New Orleans LA
2161800.0 17.0 BNA MSY New Orleans LA
2170810.0 1.0 BNA MSY New Orleans LA
2171350.0 1.0 BNA MSY New Orleans LA
2180810.0 11.0 BNA MSY New Orleans LA
2181350.0 40.0 BNA MSY New Orleans LA
2181800.0 1.0 BNA MSY New Orleans LA
2191350.0 7.0 BNA MSY New Orleans LA
2191800.0 21.0 BNA MSY New Orleans LA
2201610.0 1.0 BNA MSY New Orleans LA
2200810.0 16.0 BNA MSY New Orleans LA
2201350.0 5.0 BNA MSY New Orleans LA
2201800.0 162.0 BNA MSY New Orleans LA
2211610.0 46.0 BNA MSY New Orleans LA
2210810.0 1.0 BNA MSY New Orleans LA
2211350.0 10.0 BNA MSY New Orleans LA
2211800.0 10.0 BNA MSY New Orleans LA
2221530.0 1.0 BNA MSY New Orleans LA
2231350.0 2.0 BNA MSY New Orleans LA
2231800.0 6.0 BNA MSY New Orleans LA
2241350.0 12.0 BNA MSY New Orleans LA
2250810.0 26.0 BNA MSY New Orleans LA
2251800.0 103.0 BNA MSY New Orleans LA
2261610.0 7.0 BNA MSY New Orleans LA
2260810.0 1.0 BNA MSY New Orleans LA
2261350.0 11.0 BNA MSY New Orleans LA
2261800.0 6.0 BNA MSY New Orleans LA
2271800.0 9.0 BNA MSY New Orleans LA
2281610.0 23.0 BNA MSY New Orleans LA
2281350.0 8.0 BNA MSY New Orleans LA
2281800.0 4.0 BNA MSY New Orleans LA
3011117.0 36.0 CLT MSY New Orleans LA
3011635.0 77.0 CLT MSY New Orleans LA
3021117.0 30.0 CLT MSY New Orleans LA
3031825.0 9.0 CLT MSY New Orleans LA
3061825.0 32.0 CLT MSY New Orleans LA
3062010.0 33.0 CLT MSY New Orleans LA
3070750.0 3.0 CLT MSY New Orleans LA
3071435.0 16.0 CLT MSY New Orleans LA
3081115.0 28.0 CLT MSY New Orleans LA
3091115.0 28.0 CLT MSY New Orleans LA
3090909.0 118.0 CLT MSY New Orleans LA
3102010.0 4.0 CLT MSY New Orleans LA
3110750.0 27.0 CLT MSY New Orleans LA
3121115.0 16.0 CLT MSY New Orleans LA
3122010.0 31.0 CLT MSY New Orleans LA
3121435.0 5.0 CLT MSY New Orleans LA
3141825.0 28.0 CLT MSY New Orleans LA
3141115.0 5.0 CLT MSY New Orleans LA
3140915.0 17.0 CLT MSY New Orleans LA
3161840.0 24.0 CLT MSY New Orleans LA
3162010.0 34.0 CLT MSY New Orleans LA
3161435.0 2.0 CLT MSY New Orleans LA
3171825.0 23.0 CLT MSY New Orleans LA
3171115.0 2.0 CLT MSY New Orleans LA
3172010.0 2.0 CLT MSY New Orleans LA
3171435.0 8.0 CLT MSY New Orleans LA
3170915.0 8.0 CLT MSY New Orleans LA
3180750.0 46.0 CLT MSY New Orleans LA
3182010.0 1.0 CLT MSY New Orleans LA
3180915.0 5.0 CLT MSY New Orleans LA
3190915.0 65.0 CLT MSY New Orleans LA
3202010.0 24.0 CLT MSY New Orleans LA
3201435.0 5.0 CLT MSY New Orleans LA
3210750.0 2.0 CLT MSY New Orleans LA
3230909.0 14.0 CLT MSY New Orleans LA
3241115.0 21.0 CLT MSY New Orleans LA
3240915.0 4.0 CLT MSY New Orleans LA
3251435.0 56.0 CLT MSY New Orleans LA
3250915.0 1.0 CLT MSY New Orleans LA
3261115.0 9.0 CLT MSY New Orleans LA
3261435.0 96.0 CLT MSY New Orleans LA
3260915.0 8.0 CLT MSY New Orleans LA
3271115.0 1.0 CLT MSY New Orleans LA
3270915.0 23.0 CLT MSY New Orleans LA
3281115.0 37.0 CLT MSY New Orleans LA
3282010.0 46.0 CLT MSY New Orleans LA
3291825.0 150.0 CLT MSY New Orleans LA
3291115.0 3.0 CLT MSY New Orleans LA
3292010.0 53.0 CLT MSY New Orleans LA
3291635.0 8.0 CLT MSY New Orleans LA
3290915.0 2.0 CLT MSY New Orleans LA
3311115.0 18.0 CLT MSY New Orleans LA
3311435.0 1.0 CLT MSY New Orleans LA
1011815.0 11.0 CLT MSY New Orleans LA
1011435.0 40.0 CLT MSY New Orleans LA
1021815.0 22.0 CLT MSY New Orleans LA
1022015.0 2.0 CLT MSY New Orleans LA
1021435.0 1.0 CLT MSY New Orleans LA
1042020.0 53.0 CLT MSY New Orleans LA
1041435.0 15.0 CLT MSY New Orleans LA
1051815.0 45.0 CLT MSY New Orleans LA
1052015.0 19.0 CLT MSY New Orleans LA
1051435.0 60.0 CLT MSY New Orleans LA
1060750.0 7.0 CLT MSY New Orleans LA
1061120.0 15.0 CLT MSY New Orleans LA
1071825.0 58.0 CLT MSY New Orleans LA
1071435.0 11.0 CLT MSY New Orleans LA
1081435.0 13.0 CLT MSY New Orleans LA
1080915.0 1.0 CLT MSY New Orleans LA
1091117.0 13.0 CLT MSY New Orleans LA
1100750.0 21.0 CLT MSY New Orleans LA
1101825.0 8.0 CLT MSY New Orleans LA
1101117.0 27.0 CLT MSY New Orleans LA
1101635.0 55.0 CLT MSY New Orleans LA
1101435.0 13.0 CLT MSY New Orleans LA
1110750.0 115.0 CLT MSY New Orleans LA
1111117.0 49.0 CLT MSY New Orleans LA
1111635.0 145.0 CLT MSY New Orleans LA
1112010.0 2.0 CLT MSY New Orleans LA
1111435.0 126.0 CLT MSY New Orleans LA
1110915.0 72.0 CLT MSY New Orleans LA
1121117.0 5.0 CLT MSY New Orleans LA
1121435.0 1.0 CLT MSY New Orleans LA
1131435.0 3.0 CLT MSY New Orleans LA
1151117.0 16.0 CLT MSY New Orleans LA
1151435.0 2.0 CLT MSY New Orleans LA
1171117.0 16.0 CLT MSY New Orleans LA
1181117.0 3.0 CLT MSY New Orleans LA
1180915.0 14.0 CLT MSY New Orleans LA
1191117.0 2.0 CLT MSY New Orleans LA
1200750.0 51.0 CLT MSY New Orleans LA
1211825.0 2.0 CLT MSY New Orleans LA
1211435.0 4.0 CLT MSY New Orleans LA
1221117.0 10.0 CLT MSY New Orleans LA
1221435.0 25.0 CLT MSY New Orleans LA
1230750.0 23.0 CLT MSY New Orleans LA
1231117.0 27.0 CLT MSY New Orleans LA
1231635.0 4.0 CLT MSY New Orleans LA
1230915.0 131.0 CLT MSY New Orleans LA
1241117.0 5.0 CLT MSY New Orleans LA
1252010.0 1.0 CLT MSY New Orleans LA
1250915.0 2.0 CLT MSY New Orleans LA
1271825.0 27.0 CLT MSY New Orleans LA
1271117.0 52.0 CLT MSY New Orleans LA
1290750.0 26.0 CLT MSY New Orleans LA
1291117.0 19.0 CLT MSY New Orleans LA
1291635.0 21.0 CLT MSY New Orleans LA
1291435.0 6.0 CLT MSY New Orleans LA
1290915.0 1.0 CLT MSY New Orleans LA
1311825.0 50.0 CLT MSY New Orleans LA
1310915.0 1.0 CLT MSY New Orleans LA
2011117.0 30.0 CLT MSY New Orleans LA
2011635.0 23.0 CLT MSY New Orleans LA
2010900.0 2.0 CLT MSY New Orleans LA
2031117.0 8.0 CLT MSY New Orleans LA
2031435.0 6.0 CLT MSY New Orleans LA
2041117.0 22.0 CLT MSY New Orleans LA
2051117.0 36.0 CLT MSY New Orleans LA
2051435.0 13.0 CLT MSY New Orleans LA
2050915.0 7.0 CLT MSY New Orleans LA
2060750.0 34.0 CLT MSY New Orleans LA
2061117.0 3.0 CLT MSY New Orleans LA
2061635.0 14.0 CLT MSY New Orleans LA
2071825.0 11.0 CLT MSY New Orleans LA
2090915.0 79.0 CLT MSY New Orleans LA
2101435.0 4.0 CLT MSY New Orleans LA
2121635.0 42.0 CLT MSY New Orleans LA
2121435.0 1.0 CLT MSY New Orleans LA
2140750.0 151.0 CLT MSY New Orleans LA
2141825.0 33.0 CLT MSY New Orleans LA
2142010.0 28.0 CLT MSY New Orleans LA
2141435.0 13.0 CLT MSY New Orleans LA
2140915.0 174.0 CLT MSY New Orleans LA
2150915.0 4.0 CLT MSY New Orleans LA
2161117.0 27.0 CLT MSY New Orleans LA
2161435.0 12.0 CLT MSY New Orleans LA
2171117.0 2.0 CLT MSY New Orleans LA
2171435.0 2.0 CLT MSY New Orleans LA
2170915.0 30.0 CLT MSY New Orleans LA
2200915.0 6.0 CLT MSY New Orleans LA
2211117.0 2.0 CLT MSY New Orleans LA
2211435.0 24.0 CLT MSY New Orleans LA
2210915.0 52.0 CLT MSY New Orleans LA
2232010.0 74.0 CLT MSY New Orleans LA
2251435.0 5.0 CLT MSY New Orleans LA
2261825.0 53.0 CLT MSY New Orleans LA
2272010.0 10.0 CLT MSY New Orleans LA
2271435.0 16.0 CLT MSY New Orleans LA
2280750.0 2.0 CLT MSY New Orleans LA
2281117.0 3.0 CLT MSY New Orleans LA
3011715.0 20.0 DAL MSY New Orleans LA
3011830.0 124.0 DAL MSY New Orleans LA
3021710.0 174.0 DAL MSY New Orleans LA
3021335.0 30.0 DAL MSY New Orleans LA
3022025.0 84.0 DAL MSY New Orleans LA
3021855.0 55.0 DAL MSY New Orleans LA
3030605.0 19.0 DAL MSY New Orleans LA
3031335.0 22.0 DAL MSY New Orleans LA
3032025.0 2.0 DAL MSY New Orleans LA
3030920.0 2.0 DAL MSY New Orleans LA
3031710.0 29.0 DAL MSY New Orleans LA
3031100.0 3.0 DAL MSY New Orleans LA
3031855.0 3.0 DAL MSY New Orleans LA
3041335.0 15.0 DAL MSY New Orleans LA
3042025.0 13.0 DAL MSY New Orleans LA
3052025.0 16.0 DAL MSY New Orleans LA
3051710.0 45.0 DAL MSY New Orleans LA
3051855.0 17.0 DAL MSY New Orleans LA
3061335.0 24.0 DAL MSY New Orleans LA
3062025.0 52.0 DAL MSY New Orleans LA
3060920.0 30.0 DAL MSY New Orleans LA
3061710.0 16.0 DAL MSY New Orleans LA
3061100.0 22.0 DAL MSY New Orleans LA
3070805.0 9.0 DAL MSY New Orleans LA
3071335.0 60.0 DAL MSY New Orleans LA
3072025.0 26.0 DAL MSY New Orleans LA
3071710.0 12.0 DAL MSY New Orleans LA
3071100.0 13.0 DAL MSY New Orleans LA
3071855.0 66.0 DAL MSY New Orleans LA
3081440.0 107.0 DAL MSY New Orleans LA
3081745.0 4.0 DAL MSY New Orleans LA
3091900.0 15.0 DAL MSY New Orleans LA
3092055.0 35.0 DAL MSY New Orleans LA
3091810.0 15.0 DAL MSY New Orleans LA
3091455.0 2.0 DAL MSY New Orleans LA
3101900.0 15.0 DAL MSY New Orleans LA
3102055.0 21.0 DAL MSY New Orleans LA
3101810.0 7.0 DAL MSY New Orleans LA
3111900.0 19.0 DAL MSY New Orleans LA
3112055.0 103.0 DAL MSY New Orleans LA
3111205.0 15.0 DAL MSY New Orleans LA
3110825.0 3.0 DAL MSY New Orleans LA
3111810.0 7.0 DAL MSY New Orleans LA
3111455.0 4.0 DAL MSY New Orleans LA
3121900.0 50.0 DAL MSY New Orleans LA
3122055.0 57.0 DAL MSY New Orleans LA
3121205.0 30.0 DAL MSY New Orleans LA
3120825.0 2.0 DAL MSY New Orleans LA
3121810.0 9.0 DAL MSY New Orleans LA
3131900.0 70.0 DAL MSY New Orleans LA
3130930.0 7.0 DAL MSY New Orleans LA
3132055.0 77.0 DAL MSY New Orleans LA
3130600.0 3.0 DAL MSY New Orleans LA
3130825.0 4.0 DAL MSY New Orleans LA
3131810.0 10.0 DAL MSY New Orleans LA
3141900.0 28.0 DAL MSY New Orleans LA
3142055.0 25.0 DAL MSY New Orleans LA
3140600.0 8.0 DAL MSY New Orleans LA
3141205.0 54.0 DAL MSY New Orleans LA
3141810.0 1.0 DAL MSY New Orleans LA
3141455.0 4.0 DAL MSY New Orleans LA
3150830.0 2.0 DAL MSY New Orleans LA
3151440.0 5.0 DAL MSY New Orleans LA
3161900.0 15.0 DAL MSY New Orleans LA
3162055.0 22.0 DAL MSY New Orleans LA
3161810.0 5.0 DAL MSY New Orleans LA
3160930.0 7.0 DAL MSY New Orleans LA
3171900.0 83.0 DAL MSY New Orleans LA
3170930.0 1.0 DAL MSY New Orleans LA
3172055.0 81.0 DAL MSY New Orleans LA
3170825.0 7.0 DAL MSY New Orleans LA
3171810.0 20.0 DAL MSY New Orleans LA
3181900.0 46.0 DAL MSY New Orleans LA
3182055.0 148.0 DAL MSY New Orleans LA
3180600.0 8.0 DAL MSY New Orleans LA
3181205.0 32.0 DAL MSY New Orleans LA
3180825.0 7.0 DAL MSY New Orleans LA
3181810.0 92.0 DAL MSY New Orleans LA
3181455.0 11.0 DAL MSY New Orleans LA
3191900.0 29.0 DAL MSY New Orleans LA
3192055.0 71.0 DAL MSY New Orleans LA
3191205.0 10.0 DAL MSY New Orleans LA
3191810.0 11.0 DAL MSY New Orleans LA
3191455.0 2.0 DAL MSY New Orleans LA
3201900.0 26.0 DAL MSY New Orleans LA
3202055.0 34.0 DAL MSY New Orleans LA
3200600.0 19.0 DAL MSY New Orleans LA
3201205.0 4.0 DAL MSY New Orleans LA
3200825.0 5.0 DAL MSY New Orleans LA
3201810.0 31.0 DAL MSY New Orleans LA
3211900.0 52.0 DAL MSY New Orleans LA
3212055.0 23.0 DAL MSY New Orleans LA
3210600.0 1.0 DAL MSY New Orleans LA
3211205.0 29.0 DAL MSY New Orleans LA
3210825.0 13.0 DAL MSY New Orleans LA
3211810.0 14.0 DAL MSY New Orleans LA
3211455.0 9.0 DAL MSY New Orleans LA
3221750.0 7.0 DAL MSY New Orleans LA
3221440.0 23.0 DAL MSY New Orleans LA
3231900.0 36.0 DAL MSY New Orleans LA
3231810.0 6.0 DAL MSY New Orleans LA
3231455.0 8.0 DAL MSY New Orleans LA
3231210.0 16.0 DAL MSY New Orleans LA
3231045.0 13.0 DAL MSY New Orleans LA
3230930.0 6.0 DAL MSY New Orleans LA
3241900.0 15.0 DAL MSY New Orleans LA
3242055.0 36.0 DAL MSY New Orleans LA
3241205.0 23.0 DAL MSY New Orleans LA
3240825.0 5.0 DAL MSY New Orleans LA
3241810.0 9.0 DAL MSY New Orleans LA
3241455.0 17.0 DAL MSY New Orleans LA
3251900.0 58.0 DAL MSY New Orleans LA
3252055.0 51.0 DAL MSY New Orleans LA
3251205.0 5.0 DAL MSY New Orleans LA
3250825.0 5.0 DAL MSY New Orleans LA
3251810.0 17.0 DAL MSY New Orleans LA
3251455.0 10.0 DAL MSY New Orleans LA
3261900.0 15.0 DAL MSY New Orleans LA
3262055.0 69.0 DAL MSY New Orleans LA
3261205.0 6.0 DAL MSY New Orleans LA
3260825.0 3.0 DAL MSY New Orleans LA
3261810.0 20.0 DAL MSY New Orleans LA
3261455.0 10.0 DAL MSY New Orleans LA
3271900.0 36.0 DAL MSY New Orleans LA
3272055.0 78.0 DAL MSY New Orleans LA
3271205.0 17.0 DAL MSY New Orleans LA
3270825.0 8.0 DAL MSY New Orleans LA
3271810.0 45.0 DAL MSY New Orleans LA
3271455.0 11.0 DAL MSY New Orleans LA
3281900.0 46.0 DAL MSY New Orleans LA
3280930.0 11.0 DAL MSY New Orleans LA
3282055.0 65.0 DAL MSY New Orleans LA
3281205.0 13.0 DAL MSY New Orleans LA
3280825.0 6.0 DAL MSY New Orleans LA
3281810.0 49.0 DAL MSY New Orleans LA
3281455.0 1.0 DAL MSY New Orleans LA
3290830.0 1.0 DAL MSY New Orleans LA
3291440.0 7.0 DAL MSY New Orleans LA
3301900.0 126.0 DAL MSY New Orleans LA
3301810.0 4.0 DAL MSY New Orleans LA
3301455.0 4.0 DAL MSY New Orleans LA
3301045.0 29.0 DAL MSY New Orleans LA
3300930.0 4.0 DAL MSY New Orleans LA
3311900.0 47.0 DAL MSY New Orleans LA
3310930.0 10.0 DAL MSY New Orleans LA
3312055.0 3.0 DAL MSY New Orleans LA
3311205.0 20.0 DAL MSY New Orleans LA
3310825.0 21.0 DAL MSY New Orleans LA
3311810.0 18.0 DAL MSY New Orleans LA
3311455.0 3.0 DAL MSY New Orleans LA
1012115.0 24.0 DAL MSY New Orleans LA
1011235.0 8.0 DAL MSY New Orleans LA
1011650.0 70.0 DAL MSY New Orleans LA
1011525.0 21.0 DAL MSY New Orleans LA
1011120.0 5.0 DAL MSY New Orleans LA
1021120.0 40.0 DAL MSY New Orleans LA
1021650.0 37.0 DAL MSY New Orleans LA
1020925.0 3.0 DAL MSY New Orleans LA
1022110.0 115.0 DAL MSY New Orleans LA
1021235.0 66.0 DAL MSY New Orleans LA
1020605.0 31.0 DAL MSY New Orleans LA
1021525.0 91.0 DAL MSY New Orleans LA
1021910.0 12.0 DAL MSY New Orleans LA
1031120.0 121.0 DAL MSY New Orleans LA
1031650.0 154.0 DAL MSY New Orleans LA
1030925.0 46.0 DAL MSY New Orleans LA
1032110.0 120.0 DAL MSY New Orleans LA
1031235.0 43.0 DAL MSY New Orleans LA
1031525.0 45.0 DAL MSY New Orleans LA
1031910.0 194.0 DAL MSY New Orleans LA
1040710.0 6.0 DAL MSY New Orleans LA
1041730.0 108.0 DAL MSY New Orleans LA
1041420.0 49.0 DAL MSY New Orleans LA
1040930.0 45.0 DAL MSY New Orleans LA
1041540.0 1.0 DAL MSY New Orleans LA
1052110.0 110.0 DAL MSY New Orleans LA
1051235.0 3.0 DAL MSY New Orleans LA
1051525.0 24.0 DAL MSY New Orleans LA
1051150.0 32.0 DAL MSY New Orleans LA
1051910.0 29.0 DAL MSY New Orleans LA
1050925.0 11.0 DAL MSY New Orleans LA
1051650.0 101.0 DAL MSY New Orleans LA
1061120.0 48.0 DAL MSY New Orleans LA
1061650.0 29.0 DAL MSY New Orleans LA
1062110.0 103.0 DAL MSY New Orleans LA
1061235.0 71.0 DAL MSY New Orleans LA
1061525.0 18.0 DAL MSY New Orleans LA
1072015.0 46.0 DAL MSY New Orleans LA
1071535.0 53.0 DAL MSY New Orleans LA
1070630.0 1.0 DAL MSY New Orleans LA
1071930.0 1.0 DAL MSY New Orleans LA
1070925.0 17.0 DAL MSY New Orleans LA
1071025.0 22.0 DAL MSY New Orleans LA
1071230.0 2.0 DAL MSY New Orleans LA
1071635.0 2.0 DAL MSY New Orleans LA
1082015.0 28.0 DAL MSY New Orleans LA
1081535.0 31.0 DAL MSY New Orleans LA
1081930.0 16.0 DAL MSY New Orleans LA
1080925.0 4.0 DAL MSY New Orleans LA
1081025.0 24.0 DAL MSY New Orleans LA
1081230.0 8.0 DAL MSY New Orleans LA
1081635.0 29.0 DAL MSY New Orleans LA
1092015.0 89.0 DAL MSY New Orleans LA
1091535.0 20.0 DAL MSY New Orleans LA
1090925.0 39.0 DAL MSY New Orleans LA
1091025.0 94.0 DAL MSY New Orleans LA
1091230.0 73.0 DAL MSY New Orleans LA
1091635.0 35.0 DAL MSY New Orleans LA
1102015.0 100.0 DAL MSY New Orleans LA
1101535.0 70.0 DAL MSY New Orleans LA
1101930.0 118.0 DAL MSY New Orleans LA
1100925.0 10.0 DAL MSY New Orleans LA
1101025.0 9.0 DAL MSY New Orleans LA
1101230.0 21.0 DAL MSY New Orleans LA
1101635.0 57.0 DAL MSY New Orleans LA
1111750.0 36.0 DAL MSY New Orleans LA
1110645.0 2.0 DAL MSY New Orleans LA
1111450.0 3.0 DAL MSY New Orleans LA
1111625.0 50.0 DAL MSY New Orleans LA
1122015.0 2.0 DAL MSY New Orleans LA
1121535.0 8.0 DAL MSY New Orleans LA
1121620.0 33.0 DAL MSY New Orleans LA
1121930.0 23.0 DAL MSY New Orleans LA
1120925.0 3.0 DAL MSY New Orleans LA
1121230.0 6.0 DAL MSY New Orleans LA
1131535.0 3.0 DAL MSY New Orleans LA
1130630.0 2.0 DAL MSY New Orleans LA
1130925.0 9.0 DAL MSY New Orleans LA
1131025.0 18.0 DAL MSY New Orleans LA
1142015.0 10.0 DAL MSY New Orleans LA
1140630.0 5.0 DAL MSY New Orleans LA
1140925.0 12.0 DAL MSY New Orleans LA
1141025.0 16.0 DAL MSY New Orleans LA
1141230.0 3.0 DAL MSY New Orleans LA
1141635.0 5.0 DAL MSY New Orleans LA
1151930.0 1.0 DAL MSY New Orleans LA
1150925.0 8.0 DAL MSY New Orleans LA
1151025.0 19.0 DAL MSY New Orleans LA
1162015.0 6.0 DAL MSY New Orleans LA
1161535.0 26.0 DAL MSY New Orleans LA
1161930.0 5.0 DAL MSY New Orleans LA
1160925.0 10.0 DAL MSY New Orleans LA
1161025.0 23.0 DAL MSY New Orleans LA
1161230.0 4.0 DAL MSY New Orleans LA
1161635.0 28.0 DAL MSY New Orleans LA
1172015.0 17.0 DAL MSY New Orleans LA
1171535.0 2.0 DAL MSY New Orleans LA
1171025.0 3.0 DAL MSY New Orleans LA
1171230.0 17.0 DAL MSY New Orleans LA
1171635.0 30.0 DAL MSY New Orleans LA
1180645.0 19.0 DAL MSY New Orleans LA
1181450.0 3.0 DAL MSY New Orleans LA
1181625.0 7.0 DAL MSY New Orleans LA
1191535.0 23.0 DAL MSY New Orleans LA
1191620.0 4.0 DAL MSY New Orleans LA
1191930.0 219.0 DAL MSY New Orleans LA
1190925.0 5.0 DAL MSY New Orleans LA
1200925.0 12.0 DAL MSY New Orleans LA
1201025.0 33.0 DAL MSY New Orleans LA
1201230.0 1.0 DAL MSY New Orleans LA
1201635.0 6.0 DAL MSY New Orleans LA
1211535.0 95.0 DAL MSY New Orleans LA
// States with the longest cumulative delays (with individual delays > 100 minutes) (origin: Seattle)
display(tripGraph.edges.filter($"src" === "SEA" && $"delay" > 100))
tripid delay src dst city_dst state_dst
3201938.0 108.0 SEA BUR Burbank CA
3201655.0 107.0 SEA SNA Orange County CA
1011950.0 123.0 SEA OAK Oakland CA
1021950.0 194.0 SEA OAK Oakland CA
1021615.0 317.0 SEA OAK Oakland CA
1021755.0 385.0 SEA OAK Oakland CA
1031950.0 283.0 SEA OAK Oakland CA
1031615.0 364.0 SEA OAK Oakland CA
1031325.0 130.0 SEA OAK Oakland CA
1061755.0 107.0 SEA OAK Oakland CA
1081330.0 118.0 SEA OAK Oakland CA
2282055.0 150.0 SEA OAK Oakland CA
3061600.0 130.0 SEA OAK Oakland CA
3170815.0 199.0 SEA DCA Washington DC null
2151845.0 128.0 SEA KTN Ketchikan AK
2281845.0 104.0 SEA KTN Ketchikan AK
3130720.0 117.0 SEA KTN Ketchikan AK
1011411.0 177.0 SEA IAH Houston TX
1022347.0 158.0 SEA IAH Houston TX
1021411.0 170.0 SEA IAH Houston TX
1031201.0 116.0 SEA IAH Houston TX
1031900.0 178.0 SEA IAH Houston TX
1042347.0 114.0 SEA IAH Houston TX
1062347.0 136.0 SEA IAH Houston TX
1101203.0 173.0 SEA IAH Houston TX
1172300.0 125.0 SEA IAH Houston TX
1250605.0 227.0 SEA IAH Houston TX
1291203.0 106.0 SEA IAH Houston TX
2141157.0 127.0 SEA IAH Houston TX
2150740.0 466.0 SEA IAH Houston TX
2180750.0 105.0 SEA IAH Houston TX
3010740.0 103.0 SEA IAH Houston TX
3021152.0 124.0 SEA IAH Houston TX
3121152.0 340.0 SEA IAH Houston TX
3140600.0 139.0 SEA IAH Houston TX
3171152.0 121.0 SEA IAH Houston TX
3280600.0 103.0 SEA IAH Houston TX
1151746.0 229.0 SEA HNL Honolulu, Oahu HI
1271746.0 111.0 SEA HNL Honolulu, Oahu HI
1030840.0 294.0 SEA HNL Honolulu, Oahu HI
2091035.0 132.0 SEA HNL Honolulu, Oahu HI
3141035.0 295.0 SEA HNL Honolulu, Oahu HI
3141930.0 128.0 SEA HNL Honolulu, Oahu HI
3311930.0 104.0 SEA HNL Honolulu, Oahu HI
3030840.0 185.0 SEA HNL Honolulu, Oahu HI
3240845.0 114.0 SEA HNL Honolulu, Oahu HI
1041740.0 256.0 SEA SJC San Jose CA
1061815.0 200.0 SEA SJC San Jose CA
3031600.0 161.0 SEA SJC San Jose CA
1031100.0 145.0 SEA LGB Long Beach CA
1041737.0 320.0 SEA LGB Long Beach CA
1081728.0 122.0 SEA LGB Long Beach CA
1221140.0 189.0 SEA LGB Long Beach CA
2121140.0 365.0 SEA LGB Long Beach CA
3070710.0 115.0 SEA LGB Long Beach CA
3180935.0 135.0 SEA LGB Long Beach CA
2141245.0 176.0 SEA RNO Reno NV
1052147.0 110.0 SEA BOS Boston MA
1081420.0 109.0 SEA BOS Boston MA
1112313.0 110.0 SEA BOS Boston MA
1232313.0 110.0 SEA BOS Boston MA
2140945.0 105.0 SEA BOS Boston MA
2032313.0 114.0 SEA BOS Boston MA
2121420.0 108.0 SEA BOS Boston MA
2141415.0 152.0 SEA BOS Boston MA
3282307.0 119.0 SEA BOS Boston MA
1110905.0 130.0 SEA EWR Newark NJ
1022227.0 236.0 SEA EWR Newark NJ
1180703.0 138.0 SEA EWR Newark NJ
2030905.0 212.0 SEA EWR Newark NJ
3141530.0 131.0 SEA EWR Newark NJ
3171530.0 181.0 SEA EWR Newark NJ
3202200.0 168.0 SEA EWR Newark NJ
1032115.0 196.0 SEA LAS Las Vegas NV
1201840.0 113.0 SEA LAS Las Vegas NV
1260840.0 165.0 SEA LAS Las Vegas NV
1261840.0 121.0 SEA LAS Las Vegas NV
1031905.0 103.0 SEA LAS Las Vegas NV
1041550.0 156.0 SEA LAS Las Vegas NV
1061820.0 213.0 SEA LAS Las Vegas NV
1061515.0 116.0 SEA LAS Las Vegas NV
1080805.0 235.0 SEA LAS Las Vegas NV
1170800.0 247.0 SEA LAS Las Vegas NV
2191235.0 210.0 SEA LAS Las Vegas NV
2281430.0 121.0 SEA LAS Las Vegas NV
2281235.0 187.0 SEA LAS Las Vegas NV
2170830.0 610.0 SEA LAS Las Vegas NV
2051205.0 110.0 SEA LAS Las Vegas NV
2111835.0 133.0 SEA LAS Las Vegas NV
2132005.0 135.0 SEA LAS Las Vegas NV
2272005.0 102.0 SEA LAS Las Vegas NV
3031430.0 108.0 SEA LAS Las Vegas NV
3141410.0 102.0 SEA LAS Las Vegas NV
3151205.0 103.0 SEA LAS Las Vegas NV
3281245.0 140.0 SEA LAS Las Vegas NV
3181520.0 103.0 SEA LAS Las Vegas NV
3292000.0 107.0 SEA LAS Las Vegas NV
1051955.0 160.0 SEA FAI Fairbanks AK
1040955.0 126.0 SEA DEN Denver CO
1040650.0 103.0 SEA DEN Denver CO
1160650.0 120.0 SEA DEN Denver CO
1011940.0 167.0 SEA DEN Denver CO
1041039.0 113.0 SEA DEN Denver CO
1041437.0 256.0 SEA DEN Denver CO
1041937.0 191.0 SEA DEN Denver CO
1040605.0 138.0 SEA DEN Denver CO
1061937.0 111.0 SEA DEN Denver CO
1121937.0 118.0 SEA DEN Denver CO
1171937.0 104.0 SEA DEN Denver CO
1021523.0 118.0 SEA DEN Denver CO
1041521.0 177.0 SEA DEN Denver CO
1061055.0 154.0 SEA DEN Denver CO
1281515.0 137.0 SEA DEN Denver CO
1011450.0 102.0 SEA DEN Denver CO
1021205.0 425.0 SEA DEN Denver CO
1031450.0 211.0 SEA DEN Denver CO
2210955.0 132.0 SEA DEN Denver CO
2111537.0 156.0 SEA DEN Denver CO
2110700.0 625.0 SEA DEN Denver CO
2191039.0 148.0 SEA DEN Denver CO
2211039.0 105.0 SEA DEN Denver CO
2031055.0 174.0 SEA DEN Denver CO
2051055.0 112.0 SEA DEN Denver CO
2211110.0 106.0 SEA DEN Denver CO
3131405.0 154.0 SEA DEN Denver CO
3181930.0 115.0 SEA DEN Denver CO
3191749.0 103.0 SEA DEN Denver CO
3011405.0 109.0 SEA DEN Denver CO
3121519.0 231.0 SEA DEN Denver CO
3061445.0 148.0 SEA DEN Denver CO
3181440.0 132.0 SEA DEN Denver CO
1011306.0 206.0 SEA IAD Washington DC null
1050806.0 105.0 SEA IAD Washington DC null
1052226.0 111.0 SEA IAD Washington DC null
1291256.0 108.0 SEA IAD Washington DC null
2031256.0 185.0 SEA IAD Washington DC null
2041256.0 129.0 SEA IAD Washington DC null
2101256.0 144.0 SEA IAD Washington DC null
2191316.0 122.0 SEA IAD Washington DC null
3080800.0 273.0 SEA IAD Washington DC null
3162225.0 174.0 SEA IAD Washington DC null
3201316.0 111.0 SEA IAD Washington DC null
3261311.0 104.0 SEA IAD Washington DC null
1111300.0 133.0 SEA PSP Palm Springs CA
1110910.0 171.0 SEA PSP Palm Springs CA
3170915.0 114.0 SEA PSP Palm Springs CA
3310645.0 179.0 SEA PSP Palm Springs CA
1161050.0 132.0 SEA SBA Santa Barbara CA
2091050.0 310.0 SEA SBA Santa Barbara CA
3191045.0 109.0 SEA SBA Santa Barbara CA
3241045.0 140.0 SEA SBA Santa Barbara CA
2122225.0 228.0 SEA CLT Charlotte NC
2142225.0 104.0 SEA CLT Charlotte NC
2152225.0 113.0 SEA CLT Charlotte NC
3081110.0 110.0 SEA CLT Charlotte NC
1290940.0 316.0 SEA ABQ Albuquerque NM
1171153.0 119.0 SEA PDX Portland OR
1171439.0 112.0 SEA PDX Portland OR
2091041.0 309.0 SEA PDX Portland OR
2090845.0 133.0 SEA PDX Portland OR
3021455.0 226.0 SEA PDX Portland OR
3021914.0 165.0 SEA PDX Portland OR
3090926.0 112.0 SEA PDX Portland OR
3251041.0 274.0 SEA PDX Portland OR
3261728.0 109.0 SEA PDX Portland OR
3301728.0 108.0 SEA PDX Portland OR
1112205.0 101.0 SEA MIA Miami FL
1262205.0 130.0 SEA MIA Miami FL
2142215.0 229.0 SEA MIA Miami FL
3292220.0 117.0 SEA MIA Miami FL
1012140.0 136.0 SEA SMF Sacramento CA
1010715.0 164.0 SEA SMF Sacramento CA
1021930.0 109.0 SEA SMF Sacramento CA
1031630.0 113.0 SEA SMF Sacramento CA
1041440.0 137.0 SEA SMF Sacramento CA
1041710.0 102.0 SEA SMF Sacramento CA
2211915.0 103.0 SEA SMF Sacramento CA
3262140.0 113.0 SEA SMF Sacramento CA
3271855.0 113.0 SEA SMF Sacramento CA
3191020.0 139.0 SEA SMF Sacramento CA
1291410.0 136.0 SEA PHX Phoenix AZ
1040830.0 294.0 SEA PHX Phoenix AZ
1300830.0 371.0 SEA PHX Phoenix AZ
1031510.0 119.0 SEA PHX Phoenix AZ
1061510.0 180.0 SEA PHX Phoenix AZ
1290720.0 147.0 SEA PHX Phoenix AZ
2082020.0 130.0 SEA PHX Phoenix AZ
2281855.0 186.0 SEA PHX Phoenix AZ
2110520.0 463.0 SEA PHX Phoenix AZ
2111132.0 107.0 SEA PHX Phoenix AZ
2160830.0 110.0 SEA PHX Phoenix AZ
2241132.0 107.0 SEA PHX Phoenix AZ
2251615.0 103.0 SEA PHX Phoenix AZ
3041455.0 108.0 SEA PHX Phoenix AZ
3051745.0 169.0 SEA PHX Phoenix AZ
3091455.0 126.0 SEA PHX Phoenix AZ
3251132.0 123.0 SEA PHX Phoenix AZ
3221530.0 121.0 SEA PHX Phoenix AZ
1060830.0 116.0 SEA DFW Dallas TX
1180830.0 132.0 SEA DFW Dallas TX
1281350.0 115.0 SEA DFW Dallas TX
1291545.0 247.0 SEA DFW Dallas TX
2031545.0 230.0 SEA DFW Dallas TX
2040830.0 135.0 SEA DFW Dallas TX
2061115.0 110.0 SEA DFW Dallas TX
2061545.0 125.0 SEA DFW Dallas TX
2061350.0 126.0 SEA DFW Dallas TX
2080830.0 356.0 SEA DFW Dallas TX
2090830.0 128.0 SEA DFW Dallas TX
3012320.0 123.0 SEA DFW Dallas TX
3152320.0 143.0 SEA DFW Dallas TX
3151400.0 146.0 SEA DFW Dallas TX
3301400.0 277.0 SEA DFW Dallas TX
1171220.0 110.0 SEA SFO San Francisco CA
1291220.0 103.0 SEA SFO San Francisco CA
1031125.0 107.0 SEA SFO San Francisco CA
1120924.0 268.0 SEA SFO San Francisco CA
1161058.0 131.0 SEA SFO San Francisco CA
1171058.0 138.0 SEA SFO San Francisco CA
1010955.0 104.0 SEA SFO San Francisco CA
1021914.0 105.0 SEA SFO San Francisco CA
1041830.0 131.0 SEA SFO San Francisco CA
1051214.0 139.0 SEA SFO San Francisco CA
1061214.0 384.0 SEA SFO San Francisco CA
1111310.0 124.0 SEA SFO San Francisco CA
1241310.0 133.0 SEA SFO San Francisco CA
1281310.0 250.0 SEA SFO San Francisco CA
1051855.0 166.0 SEA SFO San Francisco CA
2060955.0 148.0 SEA SFO San Francisco CA
2072125.0 105.0 SEA SFO San Francisco CA
2071845.0 203.0 SEA SFO San Francisco CA
2071220.0 139.0 SEA SFO San Francisco CA
2071100.0 113.0 SEA SFO San Francisco CA
2071405.0 144.0 SEA SFO San Francisco CA
2080955.0 121.0 SEA SFO San Francisco CA
2091835.0 124.0 SEA SFO San Francisco CA
2091405.0 101.0 SEA SFO San Francisco CA
2101220.0 134.0 SEA SFO San Francisco CA
2100955.0 107.0 SEA SFO San Francisco CA
2101100.0 105.0 SEA SFO San Francisco CA
2101405.0 105.0 SEA SFO San Francisco CA
2130955.0 108.0 SEA SFO San Francisco CA
2131100.0 139.0 SEA SFO San Francisco CA
2141100.0 107.0 SEA SFO San Francisco CA
2281100.0 130.0 SEA SFO San Francisco CA
2231058.0 136.0 SEA SFO San Francisco CA
2021310.0 115.0 SEA SFO San Francisco CA
2091820.0 149.0 SEA SFO San Francisco CA
2181526.0 106.0 SEA SFO San Francisco CA
2271905.0 154.0 SEA SFO San Francisco CA
2021450.0 139.0 SEA SFO San Francisco CA
2060950.0 150.0 SEA SFO San Francisco CA
2061450.0 140.0 SEA SFO San Francisco CA
2061855.0 119.0 SEA SFO San Francisco CA
2071855.0 146.0 SEA SFO San Francisco CA
2081330.0 164.0 SEA SFO San Francisco CA
2091450.0 106.0 SEA SFO San Francisco CA
2091855.0 182.0 SEA SFO San Francisco CA
2261450.0 259.0 SEA SFO San Francisco CA
2261855.0 224.0 SEA SFO San Francisco CA
2270950.0 174.0 SEA SFO San Francisco CA
2271450.0 240.0 SEA SFO San Francisco CA
2280950.0 207.0 SEA SFO San Francisco CA
2281450.0 331.0 SEA SFO San Francisco CA
2281855.0 124.0 SEA SFO San Francisco CA
3142043.0 101.0 SEA SFO San Francisco CA
3180950.0 155.0 SEA SFO San Francisco CA
3260950.0 117.0 SEA SFO San Francisco CA
3281430.0 112.0 SEA SFO San Francisco CA
3291050.0 138.0 SEA SFO San Francisco CA
3062055.0 113.0 SEA SFO San Francisco CA
3091028.0 143.0 SEA SFO San Francisco CA
3112055.0 116.0 SEA SFO San Francisco CA
3261043.0 121.0 SEA SFO San Francisco CA
3311043.0 257.0 SEA SFO San Francisco CA
3171237.0 182.0 SEA SFO San Francisco CA
3251933.0 197.0 SEA SFO San Francisco CA
3011330.0 115.0 SEA SFO San Francisco CA
3311045.0 189.0 SEA SFO San Francisco CA
3311440.0 101.0 SEA SFO San Francisco CA
1031152.0 397.0 SEA ATL Atlanta GA
1050830.0 106.0 SEA ATL Atlanta GA
1051152.0 107.0 SEA ATL Atlanta GA
1121159.0 201.0 SEA ATL Atlanta GA
1250630.0 206.0 SEA ATL Atlanta GA
1301159.0 117.0 SEA ATL Atlanta GA
1301322.0 179.0 SEA ATL Atlanta GA
2021159.0 145.0 SEA ATL Atlanta GA
2171320.0 133.0 SEA ATL Atlanta GA
3171320.0 109.0 SEA ATL Atlanta GA
1092015.0 119.0 SEA FAT Fresno CA
2012015.0 189.0 SEA FAT Fresno CA
2091150.0 232.0 SEA FAT Fresno CA
1021425.0 298.0 SEA ORD Chicago IL
1030600.0 103.0 SEA ORD Chicago IL
1081205.0 135.0 SEA ORD Chicago IL
1161205.0 582.0 SEA ORD Chicago IL
1241205.0 174.0 SEA ORD Chicago IL
1300815.0 209.0 SEA ORD Chicago IL
1021235.0 113.0 SEA ORD Chicago IL
1020830.0 151.0 SEA ORD Chicago IL
1051235.0 240.0 SEA ORD Chicago IL
1050830.0 163.0 SEA ORD Chicago IL
1241235.0 171.0 SEA ORD Chicago IL
1301235.0 111.0 SEA ORD Chicago IL
1300830.0 141.0 SEA ORD Chicago IL
1012359.0 227.0 SEA ORD Chicago IL
1040859.0 302.0 SEA ORD Chicago IL
1241110.0 223.0 SEA ORD Chicago IL
1311411.0 142.0 SEA ORD Chicago IL
2051235.0 115.0 SEA ORD Chicago IL
2050830.0 128.0 SEA ORD Chicago IL
2171235.0 204.0 SEA ORD Chicago IL
2170830.0 220.0 SEA ORD Chicago IL
2031615.0 185.0 SEA ORD Chicago IL
2171415.0 164.0 SEA ORD Chicago IL
2261415.0 138.0 SEA ORD Chicago IL
3120820.0 179.0 SEA ORD Chicago IL
3121200.0 151.0 SEA ORD Chicago IL
3200600.0 140.0 SEA ORD Chicago IL
3051235.0 140.0 SEA ORD Chicago IL
3120830.0 204.0 SEA ORD Chicago IL
3132240.0 127.0 SEA ORD Chicago IL
3162240.0 150.0 SEA ORD Chicago IL
3181417.0 127.0 SEA ORD Chicago IL
1091350.0 133.0 SEA MDW Chicago IL
1261350.0 109.0 SEA MDW Chicago IL
3171420.0 111.0 SEA MDW Chicago IL
3310600.0 206.0 SEA MDW Chicago IL
2271820.0 203.0 SEA COS Colorado Springs CO
3171825.0 205.0 SEA COS Colorado Springs CO
1250755.0 233.0 SEA JNU Juneau AK
1310755.0 210.0 SEA JNU Juneau AK
1311120.0 105.0 SEA JNU Juneau AK
3030755.0 110.0 SEA JNU Juneau AK
3130750.0 320.0 SEA JNU Juneau AK
1062320.0 107.0 SEA DTW Detroit MI
3121405.0 135.0 SEA ONT Ontario CA
3130725.0 174.0 SEA ONT Ontario CA
1171425.0 105.0 SEA LAX Los Angeles CA
1041700.0 264.0 SEA LAX Los Angeles CA
1051700.0 136.0 SEA LAX Los Angeles CA
1071645.0 151.0 SEA LAX Los Angeles CA
1311645.0 136.0 SEA LAX Los Angeles CA
1251020.0 130.0 SEA LAX Los Angeles CA
1261020.0 108.0 SEA LAX Los Angeles CA
1291258.0 126.0 SEA LAX Los Angeles CA
2022140.0 131.0 SEA LAX Los Angeles CA
2130610.0 135.0 SEA LAX Los Angeles CA
2091645.0 104.0 SEA LAX Los Angeles CA
2131645.0 134.0 SEA LAX Los Angeles CA
2031805.0 212.0 SEA LAX Los Angeles CA
2071805.0 105.0 SEA LAX Los Angeles CA
2071649.0 126.0 SEA LAX Los Angeles CA
2081649.0 154.0 SEA LAX Los Angeles CA
2091649.0 245.0 SEA LAX Los Angeles CA
2131705.0 107.0 SEA LAX Los Angeles CA
2161010.0 124.0 SEA LAX Los Angeles CA
2271149.0 192.0 SEA LAX Los Angeles CA
3141650.0 197.0 SEA LAX Los Angeles CA
3152105.0 115.0 SEA LAX Los Angeles CA
3171700.0 131.0 SEA LAX Los Angeles CA
3291700.0 118.0 SEA LAX Los Angeles CA
1050037.0 102.0 SEA MSP Minneapolis MN
1070700.0 193.0 SEA MSP Minneapolis MN
1130700.0 429.0 SEA MSP Minneapolis MN
2240655.0 109.0 SEA MSP Minneapolis MN
2121515.0 118.0 SEA MSP Minneapolis MN
1060800.0 132.0 SEA MCO Orlando FL
2220955.0 157.0 SEA SAN San Diego CA
3010955.0 108.0 SEA SAN San Diego CA
1031300.0 108.0 SEA ANC Anchorage AK
1062110.0 149.0 SEA ANC Anchorage AK
1132112.0 106.0 SEA ANC Anchorage AK
2072350.0 141.0 SEA ANC Anchorage AK
2091815.0 133.0 SEA ANC Anchorage AK
3181605.0 187.0 SEA ANC Anchorage AK
3231915.0 115.0 SEA ANC Anchorage AK
3311605.0 135.0 SEA ANC Anchorage AK
1022258.0 180.0 SEA JFK New York NY
1042258.0 285.0 SEA JFK New York NY
1022259.0 116.0 SEA JFK New York NY
2090715.0 110.0 SEA JFK New York NY
2022145.0 101.0 SEA JFK New York NY
2032145.0 165.0 SEA JFK New York NY
2031535.0 181.0 SEA JFK New York NY
2042145.0 201.0 SEA JFK New York NY
2142140.0 113.0 SEA JFK New York NY
2222140.0 118.0 SEA JFK New York NY
2032258.0 130.0 SEA JFK New York NY
2220700.0 404.0 SEA JFK New York NY
3310715.0 385.0 SEA JFK New York NY
3192140.0 119.0 SEA JFK New York NY
3091300.0 125.0 SEA JFK New York NY
1241000.0 806.0 SEA OGG Kahului, Maui HI
1030845.0 342.0 SEA PHL Philadelphia PA
1050845.0 174.0 SEA PHL Philadelphia PA
1210845.0 866.0 SEA PHL Philadelphia PA
1022215.0 121.0 SEA PHL Philadelphia PA
1031130.0 146.0 SEA PHL Philadelphia PA
1090835.0 148.0 SEA PHL Philadelphia PA
1170835.0 203.0 SEA PHL Philadelphia PA
2030845.0 202.0 SEA PHL Philadelphia PA
3130835.0 290.0 SEA PHL Philadelphia PA
1031810.0 142.0 SEA SLC Salt Lake City UT
1041016.0 117.0 SEA SLC Salt Lake City UT
1291725.0 111.0 SEA SLC Salt Lake City UT
1021555.0 175.0 SEA SLC Salt Lake City UT
1041825.0 110.0 SEA SLC Salt Lake City UT
2131635.0 134.0 SEA SLC Salt Lake City UT
2230710.0 739.0 SEA SLC Salt Lake City UT
2240710.0 477.0 SEA SLC Salt Lake City UT
2061005.0 119.0 SEA SLC Salt Lake City UT
3051315.0 123.0 SEA SLC Salt Lake City UT
3260710.0 149.0 SEA SLC Salt Lake City UT
3281750.0 125.0 SEA SLC Salt Lake City UT

Vertex Degrees

  • inDegrees: Incoming connections to the airport
  • outDegrees: Outgoing connections from the airport
  • degrees: Total connections to and from the airport

Reviewing the various properties of the property graph to understand the incoming and outgoing connections between airports.

// Degrees
// The number of degrees - the number of incoming and outgoing connections - for various airports within this sample dataset
display(tripGraph.degrees.sort($"degree".desc).limit(20))
id degree
ATL 179774.0
DFW 133966.0
ORD 125405.0
LAX 106853.0
DEN 103699.0
IAH 85685.0
PHX 79672.0
SFO 77635.0
LAS 66101.0
CLT 56103.0
EWR 54407.0
MCO 54300.0
LGA 50927.0
SLC 50780.0
BOS 49936.0
DTW 46705.0
MSP 46235.0
SEA 45816.0
JFK 43661.0
BWI 42526.0

City / Flight Relationships through Motif Finding

To more easily understand the complex relationship of city airports and their flights with each other, we can use motifs to find patterns of airports (i.e. vertices) connected by flights (i.e. edges). The result is a DataFrame in which the column names are given by the motif keys.

/*
Using tripGraphPrime to more easily display 
- The associated edge (ab, bc) relationships 
- With the different the city / airports (a, b, c) where SFO is the connecting city (b)
- Ensuring that flight ab (i.e. the flight to SFO) occured before flight bc (i.e. flight leaving SFO)
- Note, TripID was generated based on time in the format of MMDDHHMM converted to int
- Therefore bc.tripid < ab.tripid + 10000 means the second flight (bc) occured within approx a day of the first flight (ab)
Note: In reality, we would need to be more careful to link trips ab and bc.
*/
val motifs = tripGraphPrime.
  find("(a)-[ab]->(b); (b)-[bc]->(c)").
  filter("(b.id = 'SFO') and (ab.delay > 500 or bc.delay > 500) and bc.tripid > ab.tripid and bc.tripid < ab.tripid + 10000")

display(motifs)

Determining Airport Ranking using PageRank

There are a large number of flights and connections through these various airports included in this Departure Delay Dataset. Using the pageRank algorithm, Spark iteratively traverses the graph and determines a rough estimate of how important the airport is.

// Determining Airport ranking of importance using `pageRank`
val ranks = tripGraph.pageRank.resetProbability(0.15).maxIter(5).run()
ranks: org.graphframes.GraphFrame = GraphFrame(v:[id: string, City: string ... 3 more fields], e:[src: string, dst: string ... 5 more fields])
display(ranks.vertices.orderBy($"pagerank".desc).limit(20))
id City State Country pagerank
ATL Atlanta GA USA 18.910104616729814
DFW Dallas TX USA 13.699227467378964
ORD Chicago IL USA 13.163049993795985
DEN Denver CO USA 9.723388283811563
LAX Los Angeles CA USA 8.703656827807166
IAH Houston TX USA 7.991324463091128
SFO San Francisco CA USA 6.903242998287933
PHX Phoenix AZ USA 6.505886984498643
SLC Salt Lake City UT USA 5.799587684561128
LAS Las Vegas NV USA 5.25359244560915
SEA Seattle WA USA 4.626877547905697
EWR Newark NJ USA 4.401221169028188
MCO Orlando FL USA 4.389045874474043
CLT Charlotte NC USA 4.378459524081744
DTW Detroit MI USA 4.223377976049847
MSP Minneapolis MN USA 4.1490048912541795
LGA New York NY USA 4.129454491295321
BOS Boston MA USA 3.812077076528526
BWI Baltimore MD USA 3.53116352570383
JFK New York NY USA 3.521942669296845

BTW, A lot more delicate air-traffic arithmetic is possible for a full month of airplane co-trajectories over the radar range of Atlanta, Georgia, one of the busiest airports in the world.

See for instance:

Using the tripGraph, we can quickly determine what are the most popular single city hop flights

// Determine the most popular flights (single city hops)
import org.apache.spark.sql.functions._

val topTrips = tripGraph.edges.
  groupBy("src", "dst").
  agg(count("delay").as("trips"))
import org.apache.spark.sql.functions._
topTrips: org.apache.spark.sql.DataFrame = [src: string, dst: string ... 1 more field]
// Show the top 20 most popular flights (single city hops)
display(topTrips.orderBy($"trips".desc).limit(20))
src dst trips
SFO LAX 3232.0
LAX SFO 3198.0
LAS LAX 3016.0
LAX LAS 2964.0
JFK LAX 2720.0
LAX JFK 2719.0
ATL LGA 2501.0
LGA ATL 2500.0
LAX PHX 2394.0
PHX LAX 2387.0
HNL OGG 2380.0
OGG HNL 2379.0
LAX SAN 2215.0
SAN LAX 2214.0
SJC LAX 2208.0
LAX SJC 2201.0
ATL MCO 2136.0
MCO ATL 2090.0
JFK SFO 2084.0
SFO JFK 2084.0

Top Transfer Cities

Many airports are used as transfer points instead of the final Destination. An easy way to calculate this is by calculating the ratio of inDegree (the number of flights to the airport) / outDegree (the number of flights leaving the airport). Values close to 1 may indicate many transfers, whereas values < 1 indicate many outgoing flights and > 1 indicate many incoming flights. Note, this is a simple calculation that does not take into account of timing or scheduling of flights, just the overall aggregate number within the dataset.

// Calculate the inDeg (flights into the airport) and outDeg (flights leaving the airport)
val inDeg = tripGraph.inDegrees
val outDeg = tripGraph.outDegrees

// Calculate the degreeRatio (inDeg/outDeg), perform inner join on "id" column
val degreeRatio = inDeg.join(outDeg, inDeg("id") === outDeg("id")).
  drop(outDeg("id")).
  selectExpr("id", "double(inDegree)/double(outDegree) as degreeRatio").
  cache()

// Join back to the `airports` DataFrame (instead of registering temp table as above)
val nonTransferAirports = degreeRatio.as("d").join(airports.as("a"), $"d.id" === $"a.IATA").
  selectExpr("id", "city", "degreeRatio").
  filter("degreeRatio < 0.9 or degreeRatio > 1.1")

// List out the city airports which have abnormal degree ratios
display(nonTransferAirports)
id city degreeRatio
GFK Grand Forks 1.3333333333333333
FAI Fairbanks 1.1232686980609419
OME Nome 0.5084745762711864
BRW Barrow 0.28651685393258425
// Join back to the `airports` DataFrame (instead of registering temp table as above)
val transferAirports = degreeRatio.as("d").join(airports.as("a"), $"d.id" === $"a.IATA"). //degreeRatio.join(airports, degreeRatio("id") === airports("IATA")).
  selectExpr("id", "city", "degreeRatio").
  filter("degreeRatio between 0.9 and 1.1")
  
// List out the top 10 transfer city airports
display(transferAirports.orderBy("degreeRatio").limit(10))
id city degreeRatio
MSP Minneapolis 0.9375183338222353
DEN Denver 0.958025717037065
DFW Dallas 0.964339653074092
ORD Chicago 0.9671063983310065
SLC Salt Lake City 0.9827417906368358
IAH Houston 0.9846895050147083
PHX Phoenix 0.9891643572266746
OGG Kahului, Maui 0.9898718478710211
HNL Honolulu, Oahu 0.990535889872173
SFO San Francisco 0.9909473252295224

Breadth-first search (BFS) is designed to traverse the graph to quickly find the desired vertices (i.e. airports) and edges (i.e flights). Let's try to find the shortest number of connections between cities based on the dataset. Note, these examples do not take into account of time or distance, just hops between cities.

// Example 1: Direct Seattle to San Francisco
// This method returns a DataFrame of valid shortest paths from vertices matching "fromExpr" to vertices matching "toExpr"
val filteredPaths = tripGraph.bfs.fromExpr((col("id") === "SEA")).toExpr(col("id") === "SFO").maxPathLength(1).run()
display(filteredPaths)

As you can see, there are a number of direct flights between Seattle and San Francisco.

// Example 2: Direct San Francisco and Buffalo
// You can also specify expression as a String, instead of Column
val filteredPaths = tripGraph.bfs.fromExpr("id = 'SFO'").toExpr("id = 'BUF'").maxPathLength(1).run()
filteredPaths: org.apache.spark.sql.DataFrame = [id: string, City: string ... 2 more fields]
filteredPaths.show()
+---+----+-----+-------+
| id|City|State|Country|
+---+----+-----+-------+
+---+----+-----+-------+
display(filteredPaths) // display instead of show - same diference

But there are no direct flights between San Francisco and Buffalo.

// Example 2a: Flying from San Francisco to Buffalo
val filteredPaths = tripGraph.bfs.fromExpr("id = 'SFO'").toExpr("id = 'BUF'").maxPathLength(2).run()
display(filteredPaths)

But there are flights from San Francisco to Buffalo with Minneapolis as the transfer point.

Loading the D3 Visualization

Using the airports D3 visualization to visualize airports and flight paths

Warning: classes defined within packages cannot be redefined without a cluster restart.
Compilation successful.
d3a1.graphs.help()

Produces a force-directed graph given a collection of edges of the following form:
case class Edge(src: String, dest: String, count: Long)

Usage:
%scala
import d3._
graphs.force(
  height = 500,
  width = 500,
  clicks: Dataset[Edge])

// On-time and Early Arrivals
import d3a1._

graphs.force(
  height = 800,
  width = 1200,
  clicks = sql("select src, dst as dest, count(1) as count from departureDelays_geo where delay <= 0 group by src, dst").as[Edge])