diff --git a/.gitignore b/.gitignore index e8360bc..c9b87ca 100644 --- a/.gitignore +++ b/.gitignore @@ -5,3 +5,4 @@ *.Rproj CRAN-SUBMISSION cran-comments.md +.Renviron.R diff --git a/DESCRIPTION b/DESCRIPTION index a47caf0..e85d7b7 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -11,7 +11,7 @@ BugReports: https://github.com/DOI-USGS/ncdfgeom/issues Imports: RNetCDF, ncmeta, sf, dplyr, methods, stars, areal Depends: R (>= 3.5) -Suggests: testthat, knitr, rmarkdown, pkgdown, jsonlite, zip, ncdf4 +Suggests: testthat, knitr, rmarkdown, pkgdown, jsonlite, zip, ncdf4, nhdplusTools License: CC0 Encoding: UTF-8 VignetteBuilder: knitr diff --git a/docs/articles/polygon_intersection.html b/docs/articles/polygon_intersection.html new file mode 100644 index 0000000..ce199fa --- /dev/null +++ b/docs/articles/polygon_intersection.html @@ -0,0 +1,213 @@ + + + + + + + +Area Weight Generation for Polygon Intersections • ncdfgeom + + + + + + + + + + + + +
+
+ + + + +
+
+ + + + +

This article demonstrates how to create area weights for two sets of +polygons.

+

It +is a comparison with the gdptools python package +demonstration here.

+

See calculate_area_intersection_weights() for additional +demonstration and info.

+
+
+gdptools_weights <- read.csv(system.file("extdata/gdptools_prl_out.csv", package = "ncdfgeom"), 
+                             colClasses = c("character", "character", "numeric"))
+
+gdptools_weights <- dplyr::rename(gdptools_weights, gdptools_wght = wght)
+
+gage_id <- "USGS-01482100"
+basin <- nhdplusTools::get_nldi_basin(list(featureSource = "nwissite", featureId = gage_id))
+huc08 <- nhdplusTools::get_huc(id = na.omit(unique(gdptools_weights$huc8)), type = "huc08")
+#> Spherical geometry (s2) switched off
+#> Spherical geometry (s2) switched on
+huc12 <- nhdplusTools::get_huc(id = na.omit(unique(gdptools_weights$huc12)), type = "huc12")
+#> Spherical geometry (s2) switched off
+#> Spherical geometry (s2) switched on
+
+org_par <- par(mar = c(0, 0, 0, 0))
+plot(sf::st_as_sfc(sf::st_bbox(huc12)))
+plot(sf::st_geometry(basin), lwd = 4, add = TRUE)
+plot(sf::st_simplify(sf::st_geometry(huc08), dTolerance = 500), add = TRUE, lwd = 2)
+plot(sf::st_simplify(sf::st_geometry(huc12), dTolerance = 500), add = TRUE, lwd = 0.2, border = "grey")
+

+
+par(org_par)
+
+weights <- ncdfgeom::calculate_area_intersection_weights(
+  x = sf::st_transform(dplyr::select(huc12, huc12), 6931),
+  y = sf::st_transform(dplyr::select(huc08, huc8), 6931),
+  normalize = TRUE
+)
+#> Loading required namespace: areal
+
+weights <- dplyr::left_join(weights, gdptools_weights, by = c("huc8", "huc12"))
+

With weights calculated, we can do a little investigation into the +differences.

+
+
+weights$diff <- weights$w - weights$w
+
+# make sure nothing is way out of whack
+max(weights$diff, na.rm = TRUE)
+#> [1] 0
+
+# ensure the weights generally sum as we would expect.
+sum(weights$gdptools_wght, na.rm = TRUE)
+#> [1] 24.99911
+sum(weights$w, na.rm = TRUE)
+#> [1] 25
+length(unique(na.omit(weights$huc8)))
+#> [1] 25
+
+# see how many NA values we have in each.
+sum(is.na(weights$w))
+#> [1] 1
+sum(is.na(weights$gdptools_wght))
+#> [1] 14
+
+# look at cases where gptools has NA and ncdfgeom does not
+weights[is.na(weights$gdptools_wght),]
+#> # A tibble: 14 × 5
+#>    huc12        huc8         w gdptools_wght  diff
+#>    <chr>        <chr>    <dbl>         <dbl> <dbl>
+#>  1 020402040000 02040302     0            NA     0
+#>  2 020403010800 02040302     0            NA     0
+#>  3 020402050801 02040204     0            NA     0
+#>  4 020402050802 02040204     0            NA     0
+#>  5 020402050803 02040204     0            NA     0
+#>  6 020402060106 02040204     0            NA     0
+#>  7 020402060603 02040204     0            NA     0
+#>  8 020402060604 02040204     0            NA     0
+#>  9 020402060605 02040204     0            NA     0
+#> 10 020402060702 02040204     0            NA     0
+#> 11 020402060703 02040204     0            NA     0
+#> 12 020402070103 02040204     0            NA     0
+#> 13 020600010000 02060002     0            NA     0
+#> 14 020600030104 NA          NA            NA    NA
+
+ + + +
+ + + + +
+ + + + + + + + diff --git a/docs/articles/polygon_intersection_files/figure-html/unnamed-chunk-1-1.png b/docs/articles/polygon_intersection_files/figure-html/unnamed-chunk-1-1.png new file mode 100644 index 0000000..6ccf91b Binary files /dev/null and b/docs/articles/polygon_intersection_files/figure-html/unnamed-chunk-1-1.png differ diff --git a/inst/extdata/gdptools_prl_out.csv b/inst/extdata/gdptools_prl_out.csv new file mode 100644 index 0000000..5809884 --- /dev/null +++ b/inst/extdata/gdptools_prl_out.csv @@ -0,0 +1,1810 @@ +huc8,huc12,wght +02020005,020200050102,0.030074292916485106 +02020005,020200050104,0.033674943205652175 +02020005,020200060902,2.183603544369748e-05 +02020005,020200050202,0.0330770578109353 +02020005,020200050204,0.03721187044637244 +02020005,020200050105,0.03367409096644196 +02020005,020200050205,0.030401472208221012 +02020005,020401020303,9.61700979847573e-06 +02020005,020401020301,1.1229735252792198e-05 +02020005,020200060403,6.048010791102109e-07 +02020005,020200060402,6.115794770394011e-06 +02020005,020200060805,2.8164249361633322e-05 +02020005,020200060908,1.1267059318414508e-05 +02020005,020200060702,1.022952469787115e-05 +02020005,020200060907,1.0054998160871024e-06 +02020005,020200060701,1.828662397171194e-05 +02020005,020200060806,1.8731232619852147e-05 +02020005,020200050101,0.029226659161179346 +02020005,020200060904,9.476872223886897e-06 +02020005,020200050103,0.03918787679660007 +02020005,020200050201,0.04566576616942973 +02020005,020200060903,3.170535031569278e-05 +02020005,020200060203,8.32832271449578e-06 +02020005,020200060804,3.1287723788321135e-05 +02020005,020200050501,0.018549909931124445 +02020005,020200060803,3.6098568918905623e-05 +02020005,020200060204,4.439583934863621e-05 +02020005,020200050502,0.03141354059221916 +02020005,020200050503,0.022628670315232052 +02020005,020200060802,3.2586420633831344e-05 +02020005,020200050504,0.020558575572183206 +02020005,020200060801,0.00010020258387162397 +02020005,020200060201,2.9943035365423278e-05 +02020005,020200041102,4.868769481487948e-05 +02020005,020200050704,0.026768679409753797 +02020005,020200050705,0.02481803024408739 +02020005,020200041101,1.475331322569984e-05 +02020005,020200041006,5.620710248078418e-05 +02020005,020200041003,2.2677663625648608e-05 +02020005,020200050505,0.02204062786777997 +02020005,020200050404,0.026174638306495315 +02020005,020200050703,0.029831740173022085 +02020005,020200050401,0.01749614083834537 +02020005,020200050405,0.035842305416231644 +02020005,020200050403,0.03690466186645854 +02020005,020200050302,0.027117876192714496 +02020005,020200050702,0.024180495841307655 +02020005,020200050305,0.024269135855693617 +02020005,020200050402,0.029470454912141012 +02020005,020200050701,0.02334690770450269 +02020005,020200050605,0.05129669586666322 +02020005,020200050304,0.032880380700497716 +02020005,020200041001,0.00014176215376286206 +02020005,020200050604,0.026482916791829503 +02020005,020200050303,0.016042937667923213 +02020005,020200050602,0.03292408260868594 +02020005,020200050603,0.014411415541414717 +02020005,020200040907,2.602520759013785e-05 +02020005,020200050601,0.024682543415215072 +02020005,020200040906,6.772532920100314e-06 +02020005,020200050203,0.02728623508426744 +02020005,020200050301,0.019238926311483166 +02020005,020401020302,3.9866052781791755e-05 +02020005,020401010101,2.22841714775774e-05 +02020006,020200080204,2.8685195986393653e-06 +02020006,020200080201,1.9924149277679662e-05 +02020006,020200080104,5.9365092528138665e-06 +02020006,020200070605,2.196284582514506e-05 +02020006,020200060906,0.022002924587583763 +02020006,020200070604,1.7890096996001806e-05 +02020006,020200070603,3.993205073504095e-06 +02020006,020200060905,0.03268298988879854 +02020006,020200050102,2.8336061179130637e-06 +02020006,020200050104,1.7373741242909535e-05 +02020006,020200060902,0.023769552625045782 +02020006,020200050204,8.297524904858335e-06 +02020006,020200060901,0.019538300681869476 +02020006,020401020303,1.2982338629713461e-05 +02020006,020200070602,1.4098311281118089e-05 +02020006,020200070501,7.472458951825841e-06 +02020006,020401020304,1.106397187029951e-05 +02020006,011000050305,6.571241543514853e-07 +02020006,011000050101,1.945728367225512e-05 +02020006,011000050201,1.84155817538664e-05 +02020006,011000050202,2.164925896466828e-05 +02020006,020200060603,0.012607811859621041 +02020006,020200060606,0.01760907207548049 +02020006,020200060604,0.02071256314076368 +02020006,020200030604,3.2691203999484903e-06 +02020006,020200060601,0.016603190369335604 +02020006,020200030801,2.4099358729771976e-05 +02020006,020200030802,5.775431643768713e-06 +02020006,020200060602,0.01281066341974973 +02020006,011000050203,2.9069914163933126e-05 +02020006,011000050501,1.874965792389206e-05 +02020006,020200061002,0.013098449272705473 +02020006,011000050504,1.218775672144244e-05 +02020006,020200061001,0.016221443324804834 +02020006,020200061004,0.01211787128312987 +02020006,020200061003,0.019717903727838954 +02020006,020200060504,0.017375311034760657 +02020006,020200080202,2.07209385332327e-05 +02020006,020200060505,0.02045400648274588 +02020006,020200060607,0.01591600914218868 +02020006,020200060501,0.00941282624518751 +02020006,020200060502,0.00910003838114537 +02020006,020200060605,0.012453098368722736 +02020006,020200060608,0.01658549676454959 +02020006,020200060506,0.014253970825131685 +02020006,020200060609,0.010172805416647137 +02020006,020200060304,0.01319642656142508 +02020006,020200060407,0.010876601920546528 +02020006,020200060404,0.012957126797688246 +02020006,020200060101,0.010478849718747985 +02020006,020200031003,3.0811259852891806e-06 +02020006,020200060103,0.012735344495000907 +02020006,020200060102,0.009437275098786052 +02020006,020200060301,0.01375848178025467 +02020006,020200031005,9.408357307998058e-06 +02020006,020200060503,0.007391394175103074 +02020006,020200061005,0.014554069653820735 +02020006,020200061006,0.018950233989461177 +02020006,020200061104,0.01078098765194758 +02020006,020200080101,3.0606144445763217e-05 +02020006,020200061103,0.00871900158032192 +02020006,020200061101,0.01699815686721188 +02020006,020200061105,0.012878028165333889 +02020006,020200061102,0.015392840339639424 +02020006,020200060703,0.012483007421015758 +02020006,020200060104,0.006987971417099697 +02020006,020200031105,6.472882275667152e-06 +02020006,020200060303,0.006641508514953693 +02020006,020200031107,1.1067242377648887e-05 +02020006,020200060302,0.020244463074086103 +02020006,020200041110,2.6337113473913492e-05 +02020006,020200060405,0.008392776034767518 +02020006,020200060305,0.008475614392984734 +02020006,020200060406,0.01187959324437917 +02020006,020200060401,0.01258322826104935 +02020006,020200060808,0.020272412447975074 +02020006,020200060807,0.018405688529189255 +02020006,020200060403,0.027160613083012927 +02020006,020200060206,0.0165406120398827 +02020006,020200060402,0.02302996106083782 +02020006,020200060805,0.01772639769852408 +02020006,020200041109,1.690747449177404e-05 +02020006,020200060205,0.010289000546161978 +02020006,020200041108,1.2600912998042094e-05 +02020006,020200060202,0.009572127309119036 +02020006,020200060908,0.023599592320203883 +02020006,020200060702,0.007544210780650127 +02020006,020200060907,0.01720705309837261 +02020006,020200060701,0.009108198035044536 +02020006,020200060806,0.013037434051923358 +02020006,020200050101,2.372173570032488e-05 +02020006,020200060904,0.022297156363454525 +02020006,020200050103,1.3809914003153173e-05 +02020006,020200050201,1.6574386738419285e-05 +02020006,020200060903,0.013354178096481597 +02020006,020200060203,0.008436209127871441 +02020006,020200060804,0.01685650023999187 +02020006,020200050501,1.380525539232183e-05 +02020006,020200060803,0.01507904793541405 +02020006,020200060204,0.015090482423234805 +02020006,020200050502,2.1453615285057797e-05 +02020006,020200050503,5.507468556739288e-06 +02020006,020200060802,0.01661445800421181 +02020006,020200060801,0.0229897260379852 +02020006,020200041105,3.4620704774750133e-06 +02020006,020200060201,0.013101754164516607 +02020006,020200041102,6.130751963123327e-06 +02020006,020200050704,3.943370485059932e-06 +02020006,020200050505,7.989377807726953e-06 +02020006,020200050404,2.3691409149949974e-05 +02020006,020200050703,1.9744024862029545e-05 +02020006,020200050401,1.402458727793099e-05 +02020006,020200050403,5.178748357216485e-06 +02020007,020200080404,8.835663782092062e-06 +02020007,020200080403,6.860080720709778e-06 +02020007,020200080402,6.508132299844323e-05 +02020007,020301030101,3.749283751194408e-05 +02020007,020200080104,3.265255847967322e-06 +02020007,020200080102,8.73800257047776e-05 +02020007,020200070407,0.027633526487808594 +02020007,020200070605,0.023747826490791407 +02020007,020200070406,0.036765540966009536 +02020007,020200060906,6.514121284300427e-05 +02020007,020200070604,0.029650483051051963 +02020007,020200070603,0.04381559248135227 +02020007,020200060905,5.3298443435848245e-05 +02020007,020200080406,1.511414935751988e-05 +02020007,020200080502,2.0134162523779798e-05 +02020007,020200070403,0.0166332432703406 +02020007,020200070405,0.04426979325878138 +02020007,020200070304,0.03893652709203025 +02020007,020200070402,0.024765582050622514 +02020007,020200070404,0.02378681848333697 +02020007,020200070303,0.03489283538878975 +02020007,020200070302,0.024749046126463472 +02020007,020200070504,0.04984251933807921 +02020007,020200070602,0.02839255707129704 +02020007,020200070601,0.016732030699352418 +02020007,020200070505,0.03312140189345113 +02020007,020200070501,0.04023541804103786 +02020007,020200070502,0.039716615197677184 +02020007,020200061105,1.7083919199469003e-06 +02020007,020301030501,5.804603411912676e-05 +02020007,020301030401,1.996173886996939e-05 +02020007,020200070101,0.02513374897288985 +02020007,020200070103,0.02596271199745121 +02020007,020200080401,4.3519733476932634e-05 +02020007,020200070201,0.031764287261208585 +02020007,020200070204,0.023451089786833773 +02020007,020200070202,0.02472157092723763 +02020007,020200070401,0.03959883956963865 +02020007,020200070203,0.0296503321894955 +02020007,020200070207,0.04254063630279498 +02020007,020200070104,0.016003841685761352 +02020007,020200070205,0.01599751049974871 +02020007,020200070206,0.03444730795480279 +02020007,020200070301,0.02555943387603063 +02020007,020200070102,0.051116822862674105 +02020007,020200070503,0.0354497452369782 +02030103,020301040205,6.326589836995768e-06 +02030103,020301010401,1.8177671765061962e-05 +02030103,020301030901,0.04044835597953942 +02030103,020301010105,1.13522625437092e-05 +02030103,020301010104,7.611465563758704e-05 +02030103,020301010103,8.459993564319666e-06 +02030103,020200080504,8.167457174137518e-06 +02030103,020301010405,5.508200369616198e-05 +02030103,020301010404,5.378357902171283e-05 +02030103,020301030904,0.014590261175654342 +02030103,020301030903,0.033130434248079446 +02030103,020301030906,0.041769838604403274 +02030103,020301030905,0.018524003742458377 +02030103,020301030902,0.025931440948393752 +02030103,020301030703,0.015812297366921264 +02030103,020301030803,0.021592561236327735 +02030103,020301030805,0.02558337288428717 +02030103,020301040203,1.2118294690117892e-05 +02030103,020301040202,1.731316256654945e-05 +02030103,020301040101,6.223257017280878e-05 +02030103,020301030605,0.02561077453103256 +02030103,020301030203,0.02287921133584897 +02030103,020301030202,0.016088673520121687 +02030103,020200080405,1.745893911898546e-05 +02030103,020301030204,0.030773441871304826 +02030103,020301030201,0.038898110145926625 +02030103,020200080404,1.6274918879053332e-05 +02030103,020301030102,0.015877378420945325 +02030103,020200080403,3.699285748892963e-05 +02030103,020301030101,0.036256760090788646 +02030103,020301030702,0.019933119307558964 +02030103,020301030804,0.020926698238615905 +02030103,020301030701,0.018073270135834395 +02030103,020301030802,0.030834362023186564 +02030103,020301030801,0.02001132244380432 +02030103,020301030205,0.033217399055199354 +02030103,020301030606,0.02107183329759951 +02030103,020301030503,0.02112394939038247 +02030103,020301030103,0.04127452754543722 +02030103,020301030404,0.03083161002438708 +02030103,020301050504,3.1397252670800614e-05 +02030103,020301030604,0.021761635956184362 +02030103,020301030601,0.02092552426198515 +02030103,020301030602,0.028971825933687217 +02030103,020301050502,3.293689643752509e-05 +02030103,020301030603,0.018217190794795668 +02030103,020301050205,2.4724509668529923e-05 +02030103,020301030302,0.01435956426983414 +02030103,020301030303,0.025587054622709233 +02030103,020301030502,0.04445843442876184 +02030103,020301030402,0.020328561859365494 +02030103,020301030301,0.021356874204655586 +02030103,020301030403,0.02342116057949106 +02030103,020301030501,0.032751714040134876 +02030103,020301030401,0.045977812161320186 +02030103,020200070101,4.489028737847189e-05 +02030103,020200070103,1.939862530024755e-06 +02030103,020200070201,4.291040883852551e-05 +02030103,020200070202,2.882914808150824e-05 +02030103,020200070203,6.808127155558491e-06 +02030103,020301050204,3.479251858158526e-05 +02030103,020301050206,1.783284137038088e-06 +02030103,020301050201,1.6177190469446338e-05 +02030105,020301040301,3.1593317885834925e-05 +02030105,020301040404,1.0493421192780666e-06 +02030105,020301040401,2.2372658108115304e-05 +02030105,020301040403,1.6766955057268224e-05 +02030105,020301040201,6.668180553947641e-06 +02030105,020301050402,0.02040482123022077 +02030105,020301050404,0.01457743133901295 +02030105,020301050403,0.019719961043560632 +02030105,020301050405,0.02703355590170643 +02030105,020301050401,0.03967905784603567 +02030105,020301050507,0.024727903269190006 +02030105,020301040103,1.907140881488382e-05 +02030105,020301040101,1.5535268424749875e-05 +02030105,020301040102,3.220176170068365e-05 +02030105,020301050303,0.013516840903601413 +02030105,020301050305,0.020217182032274076 +02030105,020301050505,0.04221759214510799 +02030105,020301050307,0.03466288720926427 +02030105,020301050503,0.012854273000880727 +02030105,020301050504,0.046016606574274185 +02030105,020301050306,0.01396664794283699 +02030105,020301030604,4.1817544435229236e-05 +02030105,020301050506,0.03330674214647064 +02030105,020301050304,0.011150089025367934 +02030105,020301050310,0.014484634115699328 +02030105,020301030602,3.074352212570167e-05 +02030105,020301050312,0.045016316665049835 +02030105,020301050502,0.01571595917394965 +02030105,020301030603,5.225280953214296e-05 +02030105,020301050501,0.02217429650819478 +02030105,020301050311,0.014850040660533548 +02030105,020301050308,0.019937428654582274 +02030105,020301050309,0.024980285552484927 +02030105,020301050302,0.02509599848510443 +02030105,020301050205,0.032059451658158246 +02030105,020301030301,1.588866188849701e-05 +02030105,020301030403,2.524783800368925e-05 +02030105,020301030401,2.702858637057934e-05 +02030105,020301050204,0.02587747626455483 +02030105,020301050206,0.023215590155407233 +02030105,020301050109,0.027109979921493412 +02030105,020301050203,0.022443977508115814 +02030105,020301050301,0.019581961943618203 +02030105,020301050107,0.022294355942480252 +02030105,020301050201,0.033526507648307766 +02030105,020301050101,0.014843636308088852 +02030105,020301050108,0.039545611170893155 +02030105,020301050202,0.03401490372740574 +02030105,020301050102,0.024198116364304217 +02030105,020301050106,0.027959204978647487 +02030105,020301050105,0.04586932731895167 +02030105,020301050104,0.012779301011837305 +02030105,020301050103,0.037575462197653633 +02040101,020401020101,5.603474259172452e-06 +02040101,020401010606,0.016353576298828314 +02040101,020401030603,5.344011272039295e-05 +02040101,020401010605,0.026139496690908155 +02040101,020401010602,0.018881078884785043 +02040101,020401030601,3.1290650048431675e-05 +02040101,020401030203,1.2534023707298984e-05 +02040101,020401040104,6.230633380100437e-06 +02040101,020401040103,1.7157061186057118e-05 +02040101,020401040105,5.863755304893079e-05 +02040101,020401010503,0.02775693261610157 +02040101,020401010504,0.020463482867196032 +02040101,020401010603,0.04084251762242741 +02040101,020401010502,0.030353744068251063 +02040101,020200050203,1.745883281997074e-05 +02040101,020200050301,7.656422856472145e-06 +02040101,020401020302,3.5200366242523635e-05 +02040101,020401010101,0.027321077266634988 +02040101,020401020305,3.929994890738362e-05 +02040101,020401010103,0.021412847695705037 +02040101,020401010102,0.021093354027958054 +02040101,020401020402,3.5746754989413625e-05 +02040101,020401010105,0.043762799013809514 +02040101,020401020104,4.275323120247446e-05 +02040101,020401020404,2.0445196447756576e-05 +02040101,020401020203,4.017420312013685e-05 +02040101,020401020502,7.883971122691137e-06 +02040101,020401020501,1.6333044197230397e-05 +02040101,020401010104,0.022989011904738267 +02040101,020401010202,0.02527384560898758 +02040101,020401010106,0.02873296703659908 +02040101,020401010201,0.025131872231475515 +02040101,020401010203,0.021016449319794843 +02040101,020401010505,0.015486859518856843 +02040101,020401010604,0.03192861013575573 +02040101,020401010506,0.020523793889587492 +02040101,020401010501,0.03509033015647177 +02040101,020401010404,0.018900705883657873 +02040101,020401010601,0.018029859960588222 +02040101,020401010405,0.021058094357682373 +02040101,020401010406,0.030304244989779284 +02040101,020401030201,3.350068395123526e-05 +02040101,020401010403,0.018637238054231474 +02040101,020401010204,0.018657498621200617 +02040101,020401020503,2.5197952653816428e-05 +02040101,020401020505,1.672600840858312e-05 +02040101,020401010205,0.04109043918857846 +02040101,020401020507,3.6433139849847335e-05 +02040101,020401020504,1.471055531032914e-05 +02040101,020401020506,2.7003590948205096e-05 +02040101,020401010207,0.04427728938477664 +02040101,020401010306,0.015191959175404734 +02040101,020401010206,0.041539355685474 +02040101,020401010402,0.028723503145782182 +02040101,020401030202,1.7628009059080493e-05 +02040101,020401010401,0.019525117948717537 +02040101,020401030101,1.19478264619153e-05 +02040101,020401010307,0.03060016010451503 +02040101,020401010305,0.030863494157232156 +02040101,020401010301,0.0258426057143632 +02040101,020401010304,0.01856232330291795 +02040101,020401010302,0.029232806679970354 +02040101,020401010303,0.027394905751669082 +02040102,020200050104,2.226614407373729e-05 +02040102,020200060902,2.0756574323839148e-06 +02040102,020200060901,8.827575457385024e-05 +02040102,020200050105,2.1167294575532606e-05 +02040102,020200050205,1.0851441891317396e-05 +02040102,020401020303,0.05614668802692314 +02040102,020401020301,0.02290067255131981 +02040102,020401020304,0.041808158025294126 +02040102,020401020102,0.03327153640524724 +02040102,020401020201,0.05943732656432501 +02040102,020401020401,0.03015133405627441 +02040102,020401020101,0.03594855228017721 +02040102,020401040101,2.1884205496756082e-05 +02040102,020401040103,9.83304611082303e-06 +02040102,020401010503,1.9377883730854294e-05 +02040102,020401010502,4.654240763534454e-05 +02040102,020200050203,3.193685681416623e-05 +02040102,020401020302,0.059283885696820825 +02040102,020401020306,0.03133714135006184 +02040102,020401010101,2.0316658949800853e-05 +02040102,020401020305,0.042030036020479014 +02040102,020401010103,2.164266672589542e-05 +02040102,020401020402,0.04459590549188252 +02040102,020401010105,8.884758304171706e-05 +02040102,020401020103,0.042300980540589735 +02040102,020401020403,0.032826706678149284 +02040102,020401020202,0.057950498918600914 +02040102,020401020104,0.04390967012408209 +02040102,020401020405,0.04219860907398155 +02040102,020401020404,0.03822161954396792 +02040102,020401020204,0.05946356367228609 +02040102,020401020203,0.023437059266862216 +02040102,020401020502,0.0447876200162616 +02040102,020401020501,0.0321731856409613 +02040102,020401010202,7.107308532058574e-05 +02040102,020401010501,6.643908888376158e-06 +02040102,020401010404,4.234169109886125e-05 +02040102,020401010406,4.1325363000717696e-05 +02040102,020401010403,1.6304019677786248e-05 +02040102,020401010204,4.5939047230141166e-05 +02040102,020401020503,0.031799991735166525 +02040102,020401020505,0.02298651342177962 +02040102,020401010205,1.135545141149101e-05 +02040102,020401020507,0.028337839484515945 +02040102,020401020504,0.020456306334713473 +02040102,020401020506,0.021408933432743787 +02040102,020401010207,3.999413663964714e-05 +02040102,020401010306,4.462373255660569e-05 +02040102,020401010307,5.1525250911829336e-06 +02040103,020401010606,4.899132381029961e-05 +02040103,020401030603,0.08762375111579436 +02040103,020401030602,0.05016045674711009 +02040103,020401010605,0.00011656339502016544 +02040103,020401010602,4.355285200509812e-05 +02040103,020401030601,0.07280144770858257 +02040103,020401030505,0.11629452497052792 +02040103,020401030302,0.07016396088131917 +02040103,020401030203,0.04024065635015675 +02040103,020401030502,0.028046240948291504 +02040103,020401030501,0.028599532362945997 +02040103,020401030503,0.06795047826400497 +02040103,020401030402,0.08620631571406863 +02040103,020401010601,2.2282475099766404e-05 +02040103,020401010405,2.200916960788993e-05 +02040103,020401030201,0.02826010911374887 +02040103,020401030504,0.02618713098854524 +02040103,020401030301,0.06732334130211787 +02040103,020401030103,0.08897153900815954 +02040103,020401030102,0.03732257388508596 +02040103,020401030401,0.026601582506984366 +02040103,020401010402,5.7118658498247356e-05 +02040103,020401030202,0.048453779968118976 +02040103,020401010401,2.7542833796296616e-05 +02040103,020401030101,0.027936757933860124 +02040104,020200060905,2.0969347590844028e-06 +02040104,020200070302,1.829912980727472e-05 +02040104,020200070504,5.2543580866052376e-05 +02040104,020200060902,6.377926405498875e-06 +02040104,020200060901,1.918663473364776e-05 +02040104,020200070501,2.9509891787893373e-05 +02040104,020200070502,2.9022347008545495e-05 +02040104,020401020304,7.936296946132009e-06 +02040104,020401020102,3.416643838047385e-05 +02040104,020401020201,1.1618148279349346e-05 +02040104,020401020101,3.048554472561466e-05 +02040104,020200070206,1.1257104205979394e-05 +02040104,020200070301,2.6330788856119293e-05 +02040104,020401010606,1.1800041882828061e-05 +02040104,020401030603,3.20681623415152e-05 +02040104,020401030602,4.0500131415446317e-05 +02040104,020200070102,2.1663409723820185e-05 +02040104,020401030502,1.170779906039179e-05 +02040104,020401030501,1.5970081770471004e-05 +02040104,020401030503,2.0575586156905642e-05 +02040104,020200070503,1.8380887623798125e-05 +02040104,020401040102,0.017034223410555896 +02040104,020401040104,0.03062716161693153 +02040104,020401040101,0.012099912521936616 +02040104,020401040103,0.017610111327846466 +02040104,020401040105,0.025057499420707233 +02040104,020401010503,3.310113864883063e-05 +02040104,020401010504,4.7804016693321005e-06 +02040104,020401010603,4.316074495729539e-05 +02040105,020301050303,1.8097221403726766e-05 +02040105,020301050307,7.4851695413253575e-06 +02040105,020301050304,3.359406981013426e-05 +02040105,020301050302,5.664495500643841e-05 +02040105,020301030401,4.001753145139735e-05 +02040105,020200070101,4.937630070127752e-05 +02040105,020200070103,2.608216646946034e-05 +02040105,020301050301,3.992921502847781e-05 +02040105,020301050107,9.924383823665656e-06 +02040105,020301050201,1.3506452473942095e-06 +02040105,020301050101,8.810390807972149e-06 +02040105,020301050108,4.7195196510627513e-07 +02040105,020301050102,3.427402015866433e-05 +02040105,020301050106,3.6433243032086184e-05 +02040105,020301050105,7.899265788956201e-06 +02040105,020301050104,3.230181170753193e-05 +02040105,020301050103,4.7277844890900035e-05 +02040105,020200070102,2.8114415855943806e-05 +02040106,020401030503,2.662165345850306e-05 +02040106,020401030402,7.1259035093877265e-06 +02040201,020301050303,7.134633237784307e-06 +02040301,020301040304,1.7929877157161176e-05 +02040301,020301040302,2.6027717850938438e-05 +02040301,020301040301,2.0589723917607604e-05 +02040301,020301050402,8.974266499187551e-06 +02040301,020301050401,2.535955020991329e-05 +02040301,020301050303,3.379599056337269e-07 +02040301,020301050307,8.39133383638844e-06 +02050101,020200050304,7.644308027231683e-06 +02050101,020200050604,1.7472470528668569e-06 +02050101,020200050303,5.94931019348742e-06 +02050101,020200050602,9.20153139589353e-06 +02050101,020200050603,1.377668094683898e-05 +02050101,020200050601,8.298237087526189e-06 +02050101,020200040903,6.619428075718479e-07 +02050101,020200040902,1.994516822834773e-05 +02050101,020200040708,3.5807837677674328e-06 +02050101,020200040705,1.219690657737685e-05 +02050101,020200040704,2.334101651646387e-05 +02050101,020200040703,7.861107265780537e-06 +02050101,020200040906,1.7941312716235543e-05 +02050101,020200040308,1.3729121122710555e-05 +02050101,020200040202,2.898870004598833e-06 +02050101,020200050301,6.476987836287137e-06 +02050101,020401010101,9.217177843831779e-06 +02050101,020401010102,1.058455403947679e-05 +02050101,020401010104,7.32985842983239e-06 +02050101,020401010106,1.858182777499491e-05 +02050101,020401010201,1.2468465099295269e-05 +02050101,020401010203,4.946080157703126e-06 +02050101,020401010205,1.654563272474252e-05 +02050101,020401010206,1.6745587183776736e-05 +02050101,020401010402,1.0995602661583582e-06 +02050101,020401010401,4.948697529199959e-06 +02050101,020401010307,1.7577255617379614e-05 +02050101,020401010305,8.698684528051727e-06 +02050101,020401010301,1.0888202923473784e-05 +02050101,020401010302,2.365733435224921e-05 +02050101,020401010303,2.0774621120916742e-05 +02050107,020401030402,4.595865168157647e-05 +02050107,020401030301,1.7507729948533333e-05 +02050107,020401030103,2.5182075684027676e-05 +02050107,020401030102,1.572805952174803e-05 +02050107,020401030401,1.315639175551451e-06 +02050107,020401010401,8.734834945156635e-06 +02050107,020401030101,2.8840344540800684e-06 +02020005,020501010403,4.484540870370937e-05 +02020005,020501010402,3.0505828624180383e-05 +02020005,020501010301,2.6451420046370043e-05 +02020005,020501010201,2.889047873971321e-05 +02020005,020501010202,1.755563238178726e-06 +02020006,020401040302,4.434388346609467e-06 +02020006,020401040301,1.1360240617164419e-05 +02020007,020401040201,4.6927614122122106e-05 +02020007,020401040203,3.9253479222415045e-05 +02020007,020401040302,4.588971785409584e-05 +02020007,020401040308,4.028773698579053e-05 +02020007,020401040305,6.035040086868864e-05 +02020007,020401050501,9.258701283500062e-06 +02020007,020401050502,2.6976716902182367e-05 +02020007,020401050201,6.218998745860398e-06 +02020007,020401050101,8.837115184548162e-05 +02020007,020401041002,2.848430201688496e-05 +02020007,020401040303,3.918697341266449e-05 +02030103,020401050501,6.0221492242346945e-05 +02030105,020403010301,1.3178132111843895e-05 +02030105,020403010201,1.141512385555118e-05 +02030105,020403010202,4.9684107416890025e-06 +02030105,020403010101,3.1512985228855916e-05 +02030105,020402010104,1.820009488035845e-06 +02030105,020401050801,3.462823304563174e-05 +02030105,020401050803,3.728094375963322e-05 +02030105,020401050910,2.2042134027707877e-05 +02030105,020401050907,2.6808933721118183e-05 +02030105,020401050909,1.2630156089536893e-05 +02030105,020401050906,4.0203084177790614e-05 +02030105,020401050905,1.9204368013875478e-05 +02030105,020401050902,1.57438091474118e-05 +02030105,020401050901,1.0727685794359757e-05 +02030105,020401050904,6.372751850824955e-06 +02030105,020401050501,4.750393919298926e-05 +02030105,020401050502,3.428260765802272e-05 +02030105,020401050503,4.747731572105108e-05 +02030105,020401050504,6.236629544235682e-05 +02040101,020401040504,9.244915670977078e-06 +02040101,020501010401,2.8769332464896486e-05 +02040101,020501010402,2.798566551381235e-06 +02040101,020501010404,4.066313286469557e-05 +02040101,020501011001,1.2198993057636957e-05 +02040101,020401040501,3.848548754810779e-05 +02040101,020501011002,3.495395090919287e-05 +02040101,020501011004,3.533822237068291e-05 +02040101,020501011104,3.9522786536046314e-05 +02040101,020501011301,3.880344323643302e-05 +02040101,020501011201,3.6381997149659666e-05 +02040101,020501011304,3.51804046116948e-05 +02040101,020501011203,4.513232870805988e-06 +02040101,020501011205,2.685278156702869e-05 +02040101,020501011209,1.670177357212379e-05 +02040101,020501011206,1.6626818092555538e-05 +02040101,020501011208,1.1788774706023146e-05 +02040102,020401040301,5.5935098789350505e-05 +02040102,020401040303,4.74948249113649e-05 +02040103,020401060102,1.9034668534535413e-05 +02040103,020401040504,1.9802215732854986e-05 +02040103,020401040401,9.744675277284037e-05 +02040103,020401040601,3.448944243213275e-05 +02040103,020401040901,7.569976569202241e-05 +02040103,020401040403,6.4512877257944e-05 +02040103,020401060201,9.829742759487537e-06 +02040104,020401040902,0.028407274743983895 +02040104,020401040803,0.02317413109346819 +02040104,020401060502,1.6873317982225e-05 +02040104,020401040801,0.013628950468067806 +02040104,020401060402,3.089977254976313e-05 +02040104,020401060501,8.28063999419271e-06 +02040104,020401060101,1.1663464829069656e-05 +02040104,020401060102,1.0167328379551865e-05 +02040104,020401060103,1.5914715342529776e-05 +02040104,020401040201,0.016160387882982043 +02040104,020401040203,0.020037571370796627 +02040104,020401040202,0.011151496696174346 +02040104,020401040302,0.017991363082251355 +02040104,020401040308,0.028516498199842078 +02040104,020401040301,0.022461435649480818 +02040104,020401040307,0.029070587311070928 +02040104,020401040305,0.03020678134472386 +02040104,020401040306,0.012654476561968463 +02040104,020401040304,0.019823720133863004 +02040104,020401050101,1.4606485776081614e-05 +02040104,020401041002,0.021256127343023103 +02040104,020401050102,1.1746692301803249e-05 +02040104,020401041001,0.010793146883948791 +02040104,020401040505,0.028587309697786924 +02040104,020401040303,0.01987372276564891 +02040104,020401040704,0.034962170738353594 +02040104,020401040107,0.020988321419767735 +02040104,020401040106,0.012831027149851482 +02040104,020401040701,0.015988516051606737 +02040104,020401040503,0.012735626648179987 +02040104,020401040702,0.015884410696250968 +02040104,020401040502,0.018503253465437897 +02040104,020401040504,0.02628267555541906 +02040104,020401050103,1.050483581971476e-05 +02040104,020401041003,0.011006042314040398 +02040104,020401040705,0.027654087543632695 +02040104,020401040703,0.011057019719172482 +02040104,020401050104,1.7380289876779366e-05 +02040104,020401041005,0.024732892935176217 +02040104,020401040605,0.02154672142450682 +02040104,020401050601,1.561851542362225e-05 +02040104,020401040606,0.011933501177552788 +02040104,020401040604,0.019742628576336907 +02040104,020401040904,0.017187948254812443 +02040104,020401040602,0.025125604366909818 +02040104,020401050602,9.69220543457783e-06 +02040104,020401040401,0.024439734899624796 +02040104,020401040603,0.01372812700407208 +02040104,020401040905,0.020687114819761276 +02040104,020401041004,0.013637363534922807 +02040104,020401040601,0.011122633125278137 +02040104,020401040804,0.009186661340293882 +02040104,020401040903,0.01892823878879305 +02040104,020401040805,0.014888072808725136 +02040104,020401040901,0.02717252026239906 +02040104,020401040802,0.014354768729334303 +02040104,020401040501,0.015369536920794366 +02040104,020401040402,0.015969242712505546 +02040104,020401040403,0.01535759328046358 +02040104,020401060303,4.039850448578335e-06 +02040105,020402010104,1.835770797664068e-05 +02040105,020401050801,0.02608551752811859 +02040105,020402010105,2.223608061640981e-05 +02040105,020402010404,1.2383002569201023e-05 +02040105,020401050802,0.009726881820266023 +02040105,020401050803,0.03173698849568755 +02040105,020401050910,0.027550341408936214 +02040105,020401050907,0.011102533710757851 +02040105,020401050909,0.029401637162367517 +02040105,020401050906,0.01961929148134729 +02040105,020401050905,0.017349212779589965 +02040105,020401050908,0.027678997948371514 +02040105,020401050902,0.01068797490223366 +02040105,020402010201,2.5938498687569447e-05 +02040105,020402010403,2.072184156965059e-05 +02040105,020401050911,0.017674867634429606 +02040105,020402010405,1.2877768556475762e-05 +02040105,020402010303,3.2247834735625515e-05 +02040105,020402010301,3.877661644045321e-05 +02040105,020401050703,0.01941175440326422 +02040105,020401050901,0.012957214809761091 +02040105,020401050904,0.03677654039319533 +02040105,020401050903,0.017715265172382207 +02040105,020401050702,0.03046932210412281 +02040105,020401050605,0.02659103257979957 +02040105,020401050604,0.0217232671868867 +02040105,020401050701,0.032386813459225984 +02040105,020401050303,0.022573798012647063 +02040105,020401060812,2.18969474991597e-06 +02040105,020402030807,3.67294451589768e-05 +02040105,020402030804,4.565298185434562e-05 +02040105,020401060811,5.08424127228388e-05 +02040105,020401060813,3.492390276078057e-05 +02040105,020401060809,3.505017591743e-05 +02040105,020401060810,1.2390035818237312e-05 +02040105,020401060806,6.408120173149956e-06 +02040105,020401060502,3.861528041552135e-05 +02040105,020401050501,0.026676139570849786 +02040105,020401050502,0.033419620746835244 +02040105,020401050201,0.028563920695497003 +02040105,020401050101,0.04736002148963389 +02040105,020401050503,0.02372021984486298 +02040105,020401050202,0.032062382744467995 +02040105,020401041002,2.3830893047434892e-05 +02040105,020401050102,0.031191937716837002 +02040105,020401050401,0.01651143954469891 +02040105,020401050103,0.025017148822542808 +02040105,020401050204,0.02778336424868374 +02040105,020401041003,1.0083173617676047e-05 +02040105,020401050203,0.026750766010773572 +02040105,020401050504,0.030540399943950244 +02040105,020401050402,0.02556705125195186 +02040105,020401050104,0.026697768334527708 +02040105,020401041005,5.973487665968849e-05 +02040105,020401050601,0.03672115229749349 +02040105,020401050603,0.042249506052065226 +02040105,020401050602,0.03275190461588513 +02040105,020401041004,2.3241140360558696e-05 +02040105,020401050301,0.012895616978622747 +02040105,020401050302,0.023203201824162644 +02040106,020401050605,2.9387539716117845e-05 +02040106,020401050604,1.684668889184191e-05 +02040106,020401050701,7.2999468238370315e-06 +02040106,020401050303,4.0328159320943954e-05 +02040106,020401060812,0.004432860320334517 +02040106,020402030806,8.743112016983951e-06 +02040106,020402030804,1.8276151942756404e-05 +02040106,020401060811,0.042450457258692606 +02040106,020401060813,0.029888102966892763 +02040106,020401060809,0.01155459242044129 +02040106,020401060810,0.02459206551383715 +02040106,020401060808,0.011478016826733878 +02040106,020402030801,3.223955755670892e-05 +02040106,020401060703,0.0286652330025601 +02040106,020401060806,0.01867807308667121 +02040106,020401060805,0.011384078868463739 +02040106,020401040902,2.4843983035691693e-05 +02040106,020401040803,2.1162434312397317e-05 +02040106,020401060502,0.026293385429652143 +02040106,020401040801,6.645803702808675e-05 +02040106,020401060402,0.022836103048317923 +02040106,020401060501,0.03114152993987768 +02040106,020401060101,0.019233976303849907 +02040106,020401060102,0.03667559525850507 +02040106,020401060401,0.013631591231754309 +02040106,020401060103,0.023222951684632138 +02040106,020401050603,6.727317549007997e-07 +02040106,020401050602,3.7979619072624814e-06 +02040106,020401041004,1.2184358791958436e-05 +02040106,020401050301,9.963198042774413e-06 +02040106,020401040805,1.4069184139459443e-05 +02040106,020401050302,2.3112498716822778e-05 +02040106,020401040901,7.770456146773995e-06 +02040106,020402030802,1.3034231628854566e-05 +02040106,020401060807,0.014596017886207563 +02040106,020401060602,0.02934263236558127 +02040106,020401060702,0.03279725537469619 +02040106,020401060803,0.007122437579693288 +02040106,020401060701,0.017422072823023074 +02040106,020401060804,0.028970684773831207 +02040106,020401060802,0.016469227865460602 +02040106,020401060601,0.031041040503495994 +02040106,020402030304,2.3864860510717956e-05 +02040106,020402030303,2.968729925458926e-05 +02040106,020401060404,0.027809349057739984 +02040106,020401060403,0.01712220489437219 +02040106,020401060303,0.02816691888465284 +02040106,020401060201,0.044259974635188166 +02040106,020401060202,0.011681370612564133 +02040106,020401060104,0.01553548885399917 +02040106,020401060301,0.012727503296920361 +02040106,020401060304,0.0452066748831647 +02040106,020401060310,0.03299867827077231 +02040106,020401060204,0.0405262251953227 +02040106,020401060203,0.037627112831452564 +02040106,020401060302,0.0164762765132396 +02040106,020401060307,0.013028377388123078 +02040106,020401060306,0.01675165545065319 +02040106,020401060305,0.014499138175418896 +02040106,020402030301,4.933162819086461e-05 +02040106,020401060801,0.03772815435326338 +02040106,020402030305,1.4040163240279732e-05 +02040106,020401060309,0.02812316334299135 +02040106,020401060308,0.024897494417784286 +02040106,020402030103,1.2113224642812125e-05 +02040106,020402030102,6.685674617541491e-05 +02040106,020402030101,4.396349370886863e-05 +02040201,020402020302,7.19685302147043e-05 +02040201,020402020305,3.225387755796074e-05 +02040201,020403010302,7.994570266314067e-05 +02040201,020403010301,4.376326734539314e-05 +02040201,020402010104,0.04848544825135574 +02040201,020401050801,0.00011636807814929016 +02040201,020402010101,0.04758901381488614 +02040201,020402010103,0.08032103320544345 +02040201,020402020103,8.272936443329984e-05 +02040201,020402010102,0.0283695178820009 +02040201,020402010401,0.04340327095005608 +02040201,020402010105,0.06100297166616188 +02040201,020402010402,0.025219678703577712 +02040201,020402020104,6.196342221774586e-05 +02040201,020402010406,0.0847682037827825 +02040201,020402010404,0.04864314407751287 +02040201,020401050802,2.9115570199302005e-05 +02040201,020401050803,6.346077372907349e-05 +02040201,020401050910,5.652463366385911e-05 +02040201,020401050909,6.425007542353037e-05 +02040201,020401050908,3.629249862311941e-05 +02040201,020402010201,0.05803221706212146 +02040201,020402010403,0.020207805347784324 +02040201,020402010407,0.047283952473030695 +02040201,020401050911,6.42949388370339e-05 +02040201,020402010405,0.03739114820108231 +02040201,020402010303,0.08522681035785401 +02040201,020402020301,6.335527652508729e-05 +02040201,020402010302,0.031730704785880345 +02040201,020402020304,3.276252930524668e-06 +02040201,020402010301,0.06331142675929129 +02040201,020402020303,0.00010594196633034838 +02040201,020401050703,6.615091869470452e-05 +02040201,020402010203,0.07905249644981006 +02040201,020402010204,0.06291140038456905 +02040201,020402030901,8.264395917376112e-05 +02040201,020402010202,0.04580460040471281 +02040201,020402030808,3.1440848315885485e-05 +02040201,020402030807,6.446422273205902e-05 +02040202,020403010402,2.554765905846742e-05 +02040202,020403010501,1.4691600551634544e-07 +02040202,020402020101,0.02356328192165751 +02040202,020403010503,3.45857615856819e-05 +02040202,020402020102,0.041394893826103424 +02040202,020403010605,3.451475693488618e-05 +02040202,020402020201,0.029445250958261632 +02040202,020403010601,2.6427510598570667e-05 +02040202,020403010603,2.669779825807809e-05 +02040202,020402020204,0.049769828669163955 +02040202,020402020203,0.025660049183882032 +02040202,020402020202,0.04080307036557181 +02040202,020403020101,4.6468608832685835e-05 +02040202,020402020302,0.028229300587125906 +02040202,020402020401,0.03076594027169326 +02040202,020402020305,0.013328369798665191 +02040202,020402020501,0.01688452054662669 +02040202,020402020502,0.022383817847060672 +02040202,020402060401,1.021830916084638e-05 +02040202,020402060402,4.666197089286655e-05 +02040202,020402060403,3.668269909854015e-06 +02040202,020402020506,0.04360492811248375 +02040202,020402040000,0.0 +02040202,020403010304,1.3526562999396537e-05 +02040202,020403010303,1.8586824999181642e-05 +02040202,020403010302,5.09675896753714e-06 +02040202,020402010101,3.574467206771734e-05 +02040202,020402020103,0.04340626670636002 +02040202,020402010102,1.7806834454109298e-05 +02040202,020402020104,0.02001509481344313 +02040202,020402010406,5.2736732572912364e-05 +02040202,020402010407,2.221057764603242e-05 +02040202,020402010303,3.3386650337933965e-05 +02040202,020402020301,0.01870171403224931 +02040202,020402010302,2.3379803176236285e-05 +02040202,020402020304,0.02480958837906308 +02040202,020402020303,0.0238601279534461 +02040202,020402020404,0.03529481862183221 +02040202,020402020403,0.02302204298489399 +02040202,020402020503,0.016201858733874946 +02040202,020402020405,0.03950183834139621 +02040202,020402020402,0.027816018516723145 +02040202,020402020507,0.033763452298825894 +02040202,020402031008,9.973531910558171e-05 +02040202,020402030902,6.320596988874349e-05 +02040202,020402020504,0.01927367722063904 +02040202,020402031007,3.7844853129070114e-05 +02040202,020402010203,2.7806708144113136e-05 +02040202,020402030901,1.5377562001288539e-06 +02040202,020402020606,0.03956853664942741 +02040202,020402060102,2.7001997384410794e-05 +02040202,020402020607,0.04401208616637163 +02040202,020402020608,0.05328506120474974 +02040202,020402060101,2.811179034107966e-05 +02040202,020402060103,1.5148759158926189e-05 +02040202,020402050601,1.0587351725257205e-05 +02040202,020402050602,3.864543941194521e-06 +02040202,020402020505,0.04682839143994704 +02040202,020402020601,0.033386311823084214 +02040202,020402020602,0.03281521763577924 +02040202,020402020605,0.03093183881361442 +02040202,020402020604,0.016551441472601992 +02040202,020402031006,3.4084576294647373e-06 +02040202,020402031004,3.4487468271113593e-05 +02040202,020402020603,0.010108410085139217 +02040202,020402050401,1.0672482603991196e-05 +02040202,020402050402,2.0885505540395828e-05 +02040202,020402050104,5.338227210782747e-06 +02040202,020402050105,1.3375188414677435e-05 +02040203,020402010201,5.909954316226112e-07 +02040203,020402020303,1.664936241357785e-05 +02040203,020402020405,1.4698356740858312e-05 +02040203,020402020402,2.1968046781818864e-05 +02040203,020402020507,1.4829785867936557e-05 +02040203,020402031008,0.01725487434087264 +02040203,020402030902,0.01887468129228663 +02040203,020402020504,1.9849040909207976e-05 +02040203,020402031007,0.027999427347067448 +02040203,020401050703,6.4681973270177186e-06 +02040203,020401050702,2.764476365150492e-05 +02040203,020401050701,2.998925328220561e-05 +02040203,020402010203,1.2864500242350694e-05 +02040203,020402030901,0.014376482041206631 +02040203,020402010202,2.6308302195769472e-05 +02040203,020402031005,0.011100348166697473 +02040203,020402030808,0.029144233606805778 +02040203,020402030807,0.03181703109761218 +02040203,020402030809,0.020014536950490207 +02040203,020402030803,0.009105856410485056 +02040203,020402030806,0.022791744838460967 +02040203,020402030804,0.025482783645536414 +02040203,020401060811,6.242582125418847e-06 +02040203,020402030801,0.009366296021388802 +02040203,020401060703,8.280364460044506e-06 +02040203,020402020505,2.951761907476518e-05 +02040203,020402020601,2.3671287193753024e-06 +02040203,020402020602,7.156902371201501e-06 +02040203,020402031006,0.027114304757812725 +02040203,020402031004,0.012187230005096217 +02040203,020402031003,0.02030182480438492 +02040203,020402050104,1.6958354699764554e-05 +02040203,020402031001,0.00759880327744352 +02040203,020402030702,0.02449732963156613 +02040203,020402050101,3.234256971101301e-05 +02040203,020402050103,1.3312709300960278e-05 +02040203,020402030701,0.012159321915503018 +02040203,020402031002,0.017032949731251957 +02040203,020402030805,0.028990246270250458 +02040203,020402030802,0.0124647879548941 +02040203,020402030502,0.008145514035098918 +02040203,020402030611,0.015909162859015686 +02040203,020402030503,0.02743941328238134 +02040203,020402030501,0.012338828088001123 +02040203,020402030610,0.013457755664300108 +02040203,020402030607,0.009180112219300414 +02040203,020402030609,0.021024297281991965 +02040203,020401060702,3.5555015583604185e-05 +02040203,020401060701,4.388584729469729e-06 +02040203,020401060601,2.7000753404085313e-05 +02040203,020402030304,0.01688123921030381 +02040203,020402030303,0.01200375625149305 +02040203,020401060310,8.421315087749387e-06 +02040203,020402030306,0.011345405806178446 +02040203,020402030307,0.019844623047194813 +02040203,020402030604,0.013100539536476786 +02040203,020402030605,0.008209096317391196 +02040203,020402030409,0.01006346000571058 +02040203,020402030603,0.020811034375865428 +02040203,020402030408,0.011388579997097886 +02040203,020402030602,0.013172535949342146 +02040203,020402030407,0.008466477755096444 +02040203,020402030601,0.009171523673016305 +02040203,020401060306,1.5929199752076628e-05 +02040203,020402030301,0.014769464595452338 +02040203,020401060801,2.3733794640496943e-05 +02040203,020402030305,0.028790798687624942 +02040203,020401060309,7.86675361231571e-06 +02040203,020402030302,0.00934051144145929 +02040203,020401060308,3.807881431705446e-05 +02040203,020402030103,0.01791209865808788 +02040203,020402030102,0.03047887111698339 +02040203,020402030205,0.009020236201312367 +02040203,020402030101,0.023129151807649417 +02040203,020402030608,0.011563630387392672 +02040203,020402030606,0.00932930492564381 +02040203,020402030401,0.008434598569858655 +02040203,020402030402,0.020440594283634435 +02040203,020402030406,0.01624874242172609 +02040203,020402030405,0.010445064598240262 +02040203,020402030404,0.01153125258526754 +02040203,020402030403,0.017997328606339087 +02040203,020402030206,0.00884560979447921 +02040203,020402030207,0.024709102287638667 +02040203,020402030204,0.023122242678337967 +02040203,020402030201,0.013303992339911789 +02040203,020402030203,0.018517182665184866 +02040203,020402030202,0.009752423414392121 +02040204,020402060701,4.956812523531956e-06 +02040204,020402070605,0.0014131544066980212 +02040204,020402040000,0.9900507266059186 +02040204,020402020608,4.1018764886125784e-05 +02040204,020402060602,1.888371453544776e-05 +02040204,020402060203,0.00032293917252049264 +02040204,020402060103,0.002397340523217953 +02040204,020402050601,0.0015082709105435407 +02040204,020402060105,0.0005531477539191268 +02040204,020402050602,0.00100218120392209 +02040204,020402050701,0.0001943344309392182 +02040204,020402050505,8.641247284299685e-05 +02040204,020402050702,0.0007412935045571736 +02040204,020402050703,0.00041356946678854605 +02040204,020402050705,0.00045244219559002443 +02040204,020402050704,0.0002702897631787405 +02040205,020402040000,7.964087720937427e-05 +02040205,020402020608,5.294442732909833e-05 +02040205,020402070103,3.9244528122933554e-05 +02040205,020402070102,2.5054202220256417e-05 +02040205,020402050601,0.010170372649903557 +02040205,020402050602,0.013635436480535511 +02040205,020402050701,0.012114787866557638 +02040205,020402050505,0.018655245642530627 +02040205,020402050403,0.015160280398586218 +02040205,020402050702,0.016310857618529153 +02040205,020402050504,0.013005911389508632 +02040205,020402050703,0.016751058017616328 +02040205,020402020602,7.500093796891966e-07 +02040205,020402020605,5.184161228302508e-05 +02040205,020402020604,3.3096905002852765e-05 +02040205,020402031004,1.1942473684292457e-05 +02040205,020402020603,2.325176560786605e-05 +02040205,020402050401,0.0395415717228855 +02040205,020402031003,5.575818567976628e-05 +02040205,020402070101,1.2412010292604507e-05 +02040205,020402050803,0.042422960261923146 +02040205,020402050801,0.016518522198963933 +02040205,020402050802,0.06308091571044781 +02040205,020402050705,0.0423203177981275 +02040205,020402050704,0.01357093951474726 +02040205,020402050402,0.03354111463327254 +02040205,020402050503,0.018995949908598275 +02040205,020402050307,0.03595915069239852 +02040205,020402050308,0.03691438530406375 +02040205,020402050501,0.01994574394193301 +02040205,020402050305,0.013499974300806784 +02040205,020402050306,0.0292356564643921 +02040205,020402050502,0.03266399419377814 +02040205,020402050304,0.023457559388456575 +02040205,020402050104,0.027622911654852367 +02040205,020402050105,0.027967008900397803 +02040205,020402050205,0.03123986096031453 +02040205,020402030702,4.904412122623133e-05 +02040205,020402050102,0.023985023572070795 +02040205,020402050101,0.027098529049679364 +02040205,020402050103,0.058186910297081486 +02040205,020402050201,0.006435568157430685 +02040205,020402050303,0.04491966598407261 +02040205,020402050302,0.013242297975332103 +02040205,020402050301,0.0182170955836415 +02040205,020402050203,0.028998944248941907 +02040205,020402050204,0.03588067791069928 +02040205,020402050202,0.07783765912810514 +02040206,020403020407,1.4034968942212802e-07 +02040206,020403020406,4.0684803290821616e-05 +02040206,020403020303,4.133133708631549e-05 +02040206,020403020405,3.177544067525212e-05 +02040206,020403020404,2.1829275885824796e-05 +02040206,020403020302,1.8665559951638325e-05 +02040206,020402060702,0.0682364699430059 +02040206,020402060701,0.025075363254793655 +02040206,020403020203,1.2301231107388897e-05 +02040206,020403020107,1.8542059015961534e-05 +02040206,020403020104,2.0981010828414376e-05 +02040206,020403020106,4.788112929968733e-06 +02040206,020403020301,9.726170387514235e-05 +02040206,020402060703,0.033210670707589075 +02040206,020402060506,0.034911624307865215 +02040206,020402060507,0.04744552070337305 +02040206,020403020101,1.4719053581093642e-05 +02040206,020402020502,9.234102535264716e-06 +02040206,020402060605,0.05816688002653033 +02040206,020402060505,0.02441515539247226 +02040206,020402060504,0.018856157188245792 +02040206,020402060501,0.018342953173437947 +02040206,020402060503,0.03779701630751135 +02040206,020403020103,3.58191901782203e-05 +02040206,020403020102,2.9033768228776493e-05 +02040206,020402060502,0.015319506323336948 +02040206,020402060405,0.04509404853242212 +02040206,020402060401,0.028778697521239176 +02040206,020402060402,0.044763140402321586 +02040206,020402060404,0.03202125852979431 +02040206,020402060403,0.023747790853063673 +02040206,020402020506,3.2967465365762965e-05 +02040206,020402060302,0.03580977013712202 +02040206,020402060604,0.06587032001880044 +02040206,020402040000,3.5268976808436466e-05 +02040206,020402060303,0.023196198206685066 +02040206,020402060601,0.0152874099930008 +02040206,020402060603,0.02052914237134814 +02040206,020402060301,0.04414275072608511 +02040206,020402020606,1.3352871430749711e-05 +02040206,020402060201,0.033791572693406026 +02040206,020402060102,0.041478336993797126 +02040206,020402060104,0.015771799316645362 +02040206,020402060202,0.01219918158412181 +02040206,020402020608,9.401890015679657e-05 +02040206,020402060101,0.014117948833237573 +02040206,020402060106,0.04131855985333333 +02040206,020402060602,0.03061783144782474 +02040206,020402060203,0.021154647193162523 +02040206,020402060103,0.01512903757265324 +02040206,020402060105,0.012908143856372253 +02040301,020403010406,0.012349588607796112 +02040301,020403010407,0.019978056452335476 +02040301,020403010405,0.022499585676383035 +02040301,020403010703,0.01451548989486779 +02040301,020403010701,0.024542732223290283 +02040301,020403010704,0.02253032814552134 +02040301,020403010702,0.020008392630071137 +02040301,020403010402,0.020403391349902673 +02040301,020403010608,0.017456275610102788 +02040301,020403010501,0.029302141562270383 +02040301,020403010705,0.014991004120946588 +02040301,020403020403,2.0354559751276853e-05 +02040301,020403010610,0.030897566780072515 +02040301,020403010609,0.023757496818831197 +02040301,020403020401,1.2793507554349933e-05 +02040301,020403010607,0.025403385362583488 +02040301,020403020202,3.45542383202346e-05 +02040301,020403010502,0.027932990911714937 +02040301,020403010505,0.022829267959144743 +02040301,020402020101,4.2018548713482905e-05 +02040301,020403010503,0.035371331286404975 +02040301,020402020102,4.653174379386562e-05 +02040301,020403010504,0.033789333297095436 +02040301,020403010605,0.03910716559401876 +02040301,020402020201,6.091019216295511e-05 +02040301,020403010601,0.016903624640061714 +02040301,020403010602,0.027998216078125342 +02040301,020403010606,0.045225789838987576 +02040301,020403020201,4.5120984351962515e-06 +02040301,020403020108,3.647093262366564e-05 +02040301,020403010604,0.03458844404913471 +02040301,020403020105,2.0223199626903488e-05 +02040301,020403020106,1.008199298089378e-05 +02040301,020403010603,0.037827232942765056 +02040301,020402020203,3.666851401489165e-07 +02040301,020402020202,3.801063958442436e-05 +02040301,020403020101,2.2787946580185803e-05 +02040301,020403010800,6.338729677988822e-05 +02040301,020403010404,0.016713888738301284 +02040301,020403010401,0.01215756500289006 +02040301,020403010306,0.022482930673789103 +02040301,020403010403,0.02214617951910381 +02040301,020403010305,0.02333217566287758 +02040301,020403010304,0.027219674279891998 +02040301,020403010303,0.02339060535222916 +02040301,020403010302,0.02657154432471586 +02040301,020403010301,0.02785576527627119 +02040301,020403010103,0.01595925626236681 +02040301,020403010105,0.011587734114064135 +02040301,020403010104,0.029857850263473828 +02040301,020403010203,0.014751942676784363 +02040301,020403010102,0.03297173029546209 +02040301,020403010201,0.030605440498169323 +02040301,020403010202,0.024435571942603186 +02040301,020403010101,0.01719902338252659 +02040301,020402010104,4.624102971289836e-06 +02040301,020402010101,1.471523188316688e-05 +02040301,020402010103,2.885335673864379e-05 +02040301,020402020103,1.5025280822334407e-05 +02040302,020403010705,2.3382088939931053e-05 +02040302,020403020403,0.03173993730101637 +02040302,020403020408,0.02912230180141918 +02040302,020403010609,8.114923975925393e-05 +02040302,020403020401,0.042843419395041674 +02040302,020403020402,0.04726929684503879 +02040302,020403010607,9.778307528087703e-05 +02040302,020403020205,0.05283342804016237 +02040302,020403020202,0.07280577572387234 +02040302,020403020407,0.025381627696108106 +02040302,020403020304,0.025260585386622604 +02040302,020403020406,0.0363986304819035 +02040302,020403020303,0.04204698278748878 +02040302,020403020405,0.04133844711550957 +02040302,020403020404,0.014099812495175014 +02040302,020403020302,0.04802647362604608 +02040302,020402060702,0.00015691524072907926 +02040302,020402060701,6.666505138162527e-05 +02040302,020403010602,8.32016349682378e-06 +02040302,020403020204,0.057552177306018484 +02040302,020403010606,3.132296602728676e-05 +02040302,020403020201,0.04965850356506193 +02040302,020403020203,0.049160564040161225 +02040302,020403020108,0.046988803744327415 +02040302,020403010604,0.00010200860171419243 +02040302,020403020107,0.03272088756080231 +02040302,020403020105,0.019978016930654107 +02040302,020403020104,0.03649255686652789 +02040302,020403020106,0.044798138269363116 +02040302,020403020301,0.04975364148972944 +02040302,020402060703,2.098676001612123e-05 +02040302,020402060506,5.3226540012591476e-05 +02040302,020402060507,4.6169759408983e-05 +02040302,020403010603,5.053233644024061e-06 +02040302,020402020202,2.1593346888098627e-05 +02040302,020403020101,0.050506556419700525 +02040302,020402020501,4.9508032590280695e-05 +02040302,020402020502,1.7628275333417535e-05 +02040302,020402060503,1.4442257316537245e-05 +02040302,020403020103,0.028768753394512108 +02040302,020403020102,0.02341093737372008 +02040302,020402060405,4.784760572646304e-05 +02040302,020402060401,9.328399090058214e-05 +02050101,020501010401,0.0069170804628738095 +02050101,020501010403,0.016638804389704387 +02050101,020501010402,0.015414006097532613 +02050101,020501010301,0.017214993248137037 +02050101,020501010201,0.009867697527566626 +02050101,020501010405,0.019179723344108907 +02050101,020501010404,0.012249919521592031 +02050101,020501010303,0.010391524010352758 +02050101,020501010302,0.014445940559209417 +02050101,020501010202,0.011181291748658503 +02050101,020501010203,0.00895303956614727 +02050101,020501010204,0.010037376396076193 +02050101,020501010602,0.008507968405904839 +02050101,020501010304,0.01025590952239524 +02050101,020501011001,0.009038789674363338 +02050101,020501010406,0.006642506907560717 +02050101,020501010604,0.020698292657796175 +02050101,020501010605,0.018644553438114914 +02050101,020501010603,0.018296914896451588 +02050101,020501010601,0.007031092150999749 +02050101,020501011002,0.010927442916880675 +02050101,020501011004,0.011840353578952119 +02050101,020501011005,0.008504171866655622 +02050101,020501011104,0.013009911301888 +02050101,020501011103,0.011271835554088035 +02050101,020501011301,0.00809021142687468 +02050101,020501011105,0.008705232606214825 +02050101,020501011003,0.007515081210225011 +02050101,020501010606,0.010475085240743023 +02050101,020501010101,0.009867677512787285 +02050101,020501010103,0.01697709467480791 +02050101,020501010503,0.011807372872777725 +02050101,020501010502,0.01298607693688882 +02050101,020501010501,0.008595794493508349 +02050101,020501010102,0.01802025813306569 +02050101,020501010504,0.014316993007352865 +02050101,020501011102,0.01411181697759012 +02050101,020501011101,0.008921168324722367 +02050101,020501010801,0.014845049809336161 +02050101,020501010701,0.009261436885162616 +02050101,020501010802,0.019284963294980865 +02050101,020501010903,0.01843537483577817 +02050101,020501010702,0.014601947265568424 +02050101,020501010803,0.022825889580783274 +02050101,020501010703,0.016749094871161888 +02050101,020501010901,0.006798730944891719 +02050101,020501010905,0.01622620693399031 +02050101,020501011201,0.017476680471512438 +02050101,020501011302,0.009040493868397805 +02050101,020501011303,0.005505168152406502 +02050101,020501011304,0.010445822781019498 +02050101,020501010910,0.026979253514807205 +02050101,020501011203,0.021324802793325992 +02050101,020501010909,0.00981387648886604 +02050101,020501011305,0.015045145596538642 +02050101,020501011205,0.013559449539649302 +02050101,020501011209,0.012304085274440036 +02050101,020501010902,0.010726790434102816 +02050101,020501010908,0.02295248919999651 +02050101,020501010904,0.014510656472250081 +02050101,020501010906,0.00993078905643941 +02050101,020501010907,0.011342742944667581 +02050101,020501020501,1.3906516731970877e-05 +02050101,020501011202,0.018350911735019442 +02050101,020501011206,0.015527011747210122 +02050101,020501011306,0.017267088017880343 +02050101,020501011208,0.016496050130931326 +02050101,020501011308,0.01923049460741529 +02050101,020501011204,0.01095896430775695 +02050101,020501011207,0.011918408797864937 +02050101,020501011307,0.007175063825216605 +02050101,020501011312,0.012174317511715799 +02050101,020501011310,0.021261606544387225 +02050101,020501011313,0.016646331157222003 +02050101,020501011309,0.011467122157885885 +02050101,020501011311,0.013378134372512373 +02050107,020501011301,2.043949903702248e-06 +02050107,020401060201,2.312428179801065e-05 +02050107,020401060304,7.207863441420773e-06 +02050107,020401060204,1.7092788505605405e-05 +02050107,020401060203,4.2154159442959774e-05 +02050107,020401060302,2.5192307187126968e-05 +02050107,020401060307,1.1185978268264263e-05 +02050107,020401060306,1.6975460206183147e-06 +02050107,020401060305,1.4933710607951794e-05 +02050107,020402030101,7.065905051147053e-06 +02050107,020501011302,1.4091738999940014e-05 +02050301,020402030101,2.0319421105356978e-05 +02050301,020402030201,2.1043879996636807e-05 +02050301,020402030203,1.591042553567384e-05 +02050301,020402030202,1.7794876013346687e-05 +02050305,020402030402,2.7162104823923066e-05 +02050305,020402030404,1.5698023099961974e-05 +02050305,020402030403,9.91348031581759e-06 +02050305,020402030206,8.967552662920657e-06 +02050305,020402030207,1.1733054816477096e-05 +02050305,020402030203,5.849401021670182e-06 +02050305,020402030202,1.1607879666411408e-05 +02050306,020402030702,6.2309299584663725e-06 +02050306,020402050103,3.6160317694588874e-06 +02050306,020402030701,2.589014108861081e-06 +02050306,020402050203,9.61533183566114e-06 +02050306,020402050204,1.417183626283726e-05 +02050306,020402030605,2.1846543571699575e-06 +02050306,020402030408,9.570807937693612e-06 +02050306,020402050202,2.755837583711347e-05 +02050306,020402030608,1.2232236880092577e-05 +02050306,020402030606,8.121156967962519e-06 +02050306,020402030401,1.3119414488407485e-05 +02050306,020402030402,5.8663572420972e-06 +02050306,020402030406,1.556891784153711e-05 +02060002,020402070301,3.3037910051582015e-06 +02060002,020402070201,1.6553670459109914e-05 +02060002,020402070101,2.8283373913164804e-05 +02060002,020402050803,1.4515180512886259e-05 +02060002,020402050802,3.381287815580482e-05 +02060002,020402050705,1.3618018907390316e-05 +02060002,020402050501,2.581674978843957e-05 +02060002,020402050502,3.713996443248184e-05 +02060002,020402050302,2.7723806919604552e-05 +02060002,020402050301,7.88940798317151e-06 +02060002,020402050203,8.78447648202332e-06 +02040101,020501070102,4.48233532223109e-06 +02040103,020501070103,6.608394484675735e-05 +02040103,020501070104,3.460245410601319e-05 +02040103,020501070102,5.143811301961611e-05 +02040103,020501070107,8.935898243877037e-05 +02040103,020501070106,4.342910230099966e-05 +02040106,020501070107,2.522634820576154e-05 +02040106,020501070108,3.993675161572116e-05 +02040106,020501070202,2.333287006540721e-05 +02040106,020501070401,6.914482864500025e-05 +02040106,020501070305,2.930090836950971e-06 +02040106,020501070402,6.81610112207046e-05 +02040106,020501070803,1.2494606860222955e-05 +02040106,020501070403,0.0 +02040203,020501070803,1.3634370835482205e-05 +02040203,020503010501,4.577564236631729e-05 +02040203,020503010701,4.3257328563292905e-06 +02050101,020501061206,1.4724456578420486e-05 +02050101,020501061205,4.0079825794225e-06 +02050101,020501020607,1.4805455206610443e-05 +02050101,020501020603,1.4781644084911465e-05 +02050101,020501020602,1.1114481776481721e-05 +02050101,020501020601,4.105659637153797e-06 +02050101,020501020610,9.743677012375954e-06 +02050101,020501020608,9.47025023370436e-06 +02050101,020501020803,2.2388304578019567e-05 +02050101,020501020804,1.087704013885358e-05 +02050101,020501070102,1.1953059807831582e-05 +02050101,020501070101,4.013942924050196e-06 +02050101,020501061201,1.3845344966285147e-05 +02050101,020501061202,1.1879934434233093e-05 +02050101,020501061203,9.010440260817415e-06 +02050101,020501060701,0.0 +02050101,020501030202,9.018672548652528e-06 +02050101,020501030203,1.0839200617487542e-05 +02050101,020501030204,4.740287051314846e-06 +02050101,020501020808,2.2920104111703363e-05 +02050101,020501020807,1.1753590145484129e-05 +02050101,020501060803,6.981078631057885e-06 +02050101,020501060602,1.5665686119042112e-05 +02050101,020501020810,1.0448767743910728e-05 +02050101,020501030201,6.2992802590532416e-06 +02050107,020501070103,0.02927985896921093 +02050107,020501070104,0.019026942052263855 +02050107,020501061001,3.1437412553276145e-05 +02050107,020501061002,1.531514755613388e-05 +02050107,020501061101,2.7492626214508156e-05 +02050107,020501061102,1.995007400706891e-05 +02050107,020501070102,0.010688208124849453 +02050107,020501070101,0.009194401360660772 +02050107,020501061201,7.102131570266899e-06 +02050107,020501070107,0.03176768821748034 +02050107,020501070106,0.019688223641645342 +02050107,020501070108,0.03241114753270918 +02050107,020501070109,0.02110974497215197 +02050107,020501070105,0.01042774131886037 +02050107,020501070110,0.013038827150754361 +02050107,020501061408,1.7543291262533668e-05 +02050107,020501061407,2.9859228430219013e-06 +02050107,020501061409,3.058624118937552e-05 +02050107,020501070201,0.009817539529711657 +02050107,020501070202,0.020699954655567163 +02050107,020501070401,0.029239420691208176 +02050107,020501070205,0.019270164210030416 +02050107,020501070204,0.010306240658696402 +02050107,020501070305,0.01845206702887888 +02050107,020501070206,0.004295540660460368 +02050107,020501070208,0.005227396869029247 +02050107,020501070203,0.020682177421700722 +02050107,020501070304,0.022370421108716784 +02050107,020501070207,0.007911742760467235 +02050107,020501070301,0.026171910213481083 +02050107,020501070302,0.018378406133751635 +02050107,020501070307,0.025392876242402353 +02050107,020501061302,3.7704579927765366e-05 +02050107,020501070303,0.019807854576063127 +02050107,020501070501,0.01699906723075909 +02050107,020501070504,0.018455056886961554 +02050107,020501070503,0.01744186655788012 +02050107,020501070502,0.011426585964762126 +02050107,020501070704,0.025365850985039205 +02050107,020501061301,1.3174091027100093e-05 +02050107,020501060901,6.850970238733492e-06 +02050107,020501070701,0.011011936630739643 +02050107,020502060301,1.0497619823855901e-05 +02050107,020501070703,0.009591651844041026 +02050107,020501070702,0.018946861067539542 +02050107,020501070601,0.015504395010145507 +02050107,020502060801,3.0220996143557438e-05 +02050107,020502060701,4.5030829667481724e-05 +02050107,020502060802,2.1487512768255446e-07 +02050107,020501070402,0.03499575470283151 +02050107,020501070306,0.011174935650526897 +02050107,020501070803,0.02610853093785537 +02050107,020501070403,0.034773094256427425 +02050107,020501070802,0.011846629348275935 +02050107,020501070801,0.00948163383877578 +02050107,020501070804,0.022553790334124336 +02050107,020501071001,0.01865254290788854 +02050107,020501070805,0.016415503165712223 +02050107,020501071002,0.022956729514389748 +02050107,020503010501,2.6895812223023003e-05 +02050107,020501070901,0.020632715220332505 +02050107,020503010101,1.0934660063041424e-05 +02050107,020503010102,7.823346956884138e-06 +02050107,020501070902,0.029100345603887284 +02050107,020501070707,0.01996382983417488 +02050107,020501070705,0.020925086526863527 +02050107,020501070706,0.009409108796914457 +02050107,020501071003,0.019117721651441478 +02050107,020501070602,0.023080057447355216 +02050107,020501071004,0.0043687364146709606 +02050107,020501071005,0.018077373541177805 +02050107,020502061101,1.8945902968360066e-05 +02050107,020501071006,0.026187675733507717 +02050107,020503010104,4.5675877184516524e-05 +02050107,020503011001,1.2881072529450385e-06 +02050107,020502061207,9.671796578091684e-06 +02050107,020502060702,2.5137707032145043e-05 +02050107,020502061102,4.462068054078755e-06 +02050107,020502061103,4.094038088374934e-05 +02050301,020502061201,2.888429917368746e-06 +02050301,020501070803,3.9561642459189794e-05 +02050301,020501070801,1.770563097506398e-05 +02050301,020503010501,0.045323509073512895 +02050301,020501070901,4.525762515282766e-05 +02050301,020503010701,0.021997231167278274 +02050301,020503010101,0.021880645708730002 +02050301,020503010702,0.031119257607629347 +02050301,020503010901,0.023867569897498494 +02050301,020503010801,0.030981972008599902 +02050301,020503010102,0.021950024349183517 +02050301,020503010503,0.04209939303864309 +02050301,020503010902,0.013413266000222772 +02050301,020501071003,1.57012802748587e-05 +02050301,020501071006,3.314572423888497e-05 +02050301,020503010104,0.030459826466840857 +02050301,020503010502,0.02084506433553741 +02050301,020503010103,0.020097853562984023 +02050301,020503010802,0.029575104488852474 +02050301,020503010904,0.030979243832903083 +02050301,020503011001,0.024426374466138514 +02050301,020503010903,0.012114875378669412 +02050301,020503011002,0.029466739779150264 +02050301,020502061207,5.510862365545082e-05 +02050301,020503011003,0.02716394805114247 +02050301,020503011005,0.027397479829044773 +02050301,020503011004,0.022284613454307482 +02050301,020503011006,0.029844729321687996 +02050301,020503041204,3.558532570826419e-05 +02050301,020503010406,0.035764055703982035 +02050301,020503010305,0.03167429966271982 +02050301,020503010603,0.0144817071550482 +02050301,020503010601,0.02563996775215222 +02050301,020503010602,0.019806870339629544 +02050301,020503041002,4.896792942862164e-05 +02050301,020502061005,5.14789009840713e-05 +02050301,020503010302,0.012783803064434223 +02050301,020503010405,0.04189947735949139 +02050301,020503010304,0.04040607072109744 +02050301,020503041001,1.4774208643322962e-05 +02050301,020502061002,4.555745370801381e-06 +02050301,020502061001,1.9749125471662208e-05 +02050301,020503010303,0.012636006376227273 +02050301,020503010301,0.023026973991140353 +02050301,020503010404,0.013822183357715522 +02050301,020503010202,0.025469364212282495 +02050301,020502040301,4.09165390682668e-05 +02050301,020503010403,0.04220456383887208 +02050301,020503040802,2.3348152295658517e-05 +02050301,020503040801,1.865789789614443e-05 +02050301,020503040601,4.583743990550571e-05 +02050301,020503010201,0.039162749420411626 +02050301,020503040603,2.6347552784309606e-05 +02050301,020503010402,0.03492564691113533 +02050301,020503040602,1.9638955986632406e-05 +02050301,020502040302,3.291673693797495e-05 +02050301,020503010401,0.02826394607375766 +02050301,020503020702,1.4292505710773223e-05 +02050301,020502040101,2.2443493107928932e-05 +02050301,020502040104,0.0 +02050301,020502040106,3.969036225619875e-06 +02050301,020503020701,2.968469054311106e-06 +02050305,020503010701,1.3090385493937295e-07 +02050305,020503010702,1.866152452433097e-05 +02050305,020503010901,4.012727976339626e-05 +02050305,020503010902,5.374658407096569e-06 +02050305,020503011005,5.5832485661571414e-05 +02050305,020503050408,0.011186193193599318 +02050305,020503050407,0.009500681620251177 +02050305,020503011006,5.1229958532004775e-06 +02050305,020503050405,0.00946671315247041 +02050305,020503050406,0.014824583946279637 +02050305,020503050404,0.011590968246009426 +02050305,020503041204,1.5438116126048658e-05 +02050305,020503050107,0.029290117273170217 +02050305,020503050403,0.022149787470289437 +02050305,020503050502,0.012957405944740494 +02050305,020503041203,1.718765148791289e-05 +02050305,020503050402,0.010220684357278327 +02050305,020503050106,0.031183569754330814 +02050305,020503050501,0.020443037417520064 +02050305,020503050401,0.013137661731889 +02050305,020503050308,0.023555094408418246 +02050305,020503041101,2.666715437865407e-05 +02050305,020503050301,0.010611374328705951 +02050305,020503050104,0.014661955505965501 +02050305,020503050307,0.008784970101695875 +02050305,020503050304,0.012816166527006945 +02050305,020503050305,0.0015278683104271015 +02050305,020503050103,0.010467810408423034 +02050305,020503050105,0.014300900762673449 +02050305,020503050302,0.01376451577356978 +02050305,020503050306,0.030206410834552756 +02050305,020503050102,0.008599554382083433 +02050305,020503050201,0.010015244764642705 +02050305,020503050303,0.009235541911412027 +02050305,020503050101,0.021726158093573984 +02050305,020503050202,0.01311579565685875 +02050305,020503040903,9.519932843148325e-06 +02050305,020503040905,5.246026359534232e-06 +02050305,020503050203,0.03401484897796957 +02050305,020503040901,1.2225205489176535e-05 +02040203,020503061103,1.3721786222628827e-05 +02040203,020503061102,1.930248134924977e-05 +02040203,020503061101,1.7499766011246868e-05 +02040203,020503060901,1.445515106610537e-05 +02040203,020503060902,6.718823092245927e-06 +02040203,020503060903,5.031800175484801e-06 +02040203,020503050702,3.587699361698873e-05 +02040203,020503050603,1.3699857641113678e-05 +02040203,020503050601,1.1287225108709004e-05 +02040203,020503050703,7.143567534487166e-06 +02040203,020503050602,1.9352785344745094e-05 +02040203,020503050802,7.061212919666879e-06 +02040205,020600020401,1.1597016657485437e-05 +02040205,020600020301,2.1911621222594068e-05 +02040205,020600020206,3.0178687261784047e-05 +02040205,020600020204,4.0497434621656246e-05 +02040205,020600020205,1.0922289053821622e-05 +02040205,020600020203,6.98112732616488e-05 +02040205,020600020201,4.616422030019928e-05 +02040205,020503061402,3.152458600517876e-05 +02040205,020503061403,1.449931565501787e-05 +02040205,020503061201,4.815410771714861e-05 +02040205,020503061103,5.468343419102243e-05 +02050301,020503050604,6.728253986088729e-06 +02050301,020503050602,3.2294979759753044e-05 +02050301,020503051002,7.364584437409112e-05 +02050301,020503051006,8.019461707735125e-06 +02050305,020503060903,6.143746477875132e-06 +02050305,020503050702,0.02167156048870524 +02050305,020503050603,0.01894202886259199 +02050305,020503060801,1.1013654738026324e-05 +02050305,020503050601,0.012927313022656477 +02050305,020503050701,0.010077360707939402 +02050305,020503061702,6.262344536499909e-06 +02050305,020503061701,1.3944950021723113e-05 +02050305,020503050604,0.009478050492478657 +02050305,020503050904,0.012817581036761769 +02050305,020503050902,0.02595819963183699 +02050305,020503050906,0.019860337655161795 +02050305,020503050903,0.017180095374211668 +02050305,020503051011,0.024708081272340775 +02050305,020503050905,0.01450317475334231 +02050305,020503051009,0.009453155465212438 +02050305,020503051003,0.018970392400637776 +02050305,020503060504,3.1228490547497425e-05 +02050305,020503060503,1.2047026003262701e-05 +02050305,020503050505,0.03009642532686974 +02050305,020503060302,1.8498382210438864e-05 +02050305,020503060303,1.0186724941794132e-05 +02050305,020503060301,1.051493491514463e-05 +02050305,020503050504,0.027281632750957595 +02050305,020503060201,1.582031736718929e-05 +02050305,020503050503,0.025329180136842187 +02050305,020503060202,7.90402025546542e-06 +02050305,020700040802,1.6421616315542977e-05 +02050305,020700040803,2.527468647591368e-05 +02050305,020700040701,1.501374322986878e-05 +02050305,020700040601,3.476341591357146e-05 +02050305,020700040602,8.613762429507949e-06 +02050305,020700040702,1.1063380269473754e-05 +02050305,020700040603,1.8767013341149876e-05 +02050305,020503050703,0.021095437508167888 +02050305,020503060802,1.691160936250947e-05 +02050305,020503050602,0.025863794027207915 +02050305,020503050802,0.032849683373355316 +02050305,020503050606,0.013120929373226602 +02050305,020503050901,0.017655341987828334 +02050305,020503050605,0.02189498790604896 +02050305,020503050801,0.007959371491760495 +02050305,020503051010,0.027978301156416682 +02050305,020503051008,0.006103626882066644 +02050305,020503051002,0.024053420484784926 +02050305,020503051004,0.009619755460165476 +02050305,020503051007,0.014622634600185315 +02050305,020503051006,0.01777417806013147 +02050305,020503051005,0.0101348393233869 +02050305,020503051001,0.016172176113632003 +02050306,020503061713,0.012787827328977175 +02050306,020600020203,1.1193680845518708e-05 +02050306,020600020202,1.3068598086899639e-06 +02050306,020600020201,4.023460671311885e-06 +02050306,020600020102,8.00626033355465e-06 +02050306,020600020103,1.4865158218941096e-05 +02050306,020503061402,0.008222462895395686 +02050306,020503061403,0.0209458176420243 +02050306,020503061502,0.015395334184415958 +02050306,020503061401,0.007278696834098982 +02050306,020503061503,0.013396772742667722 +02050306,020503061501,0.019331431302169567 +02050306,020503061711,0.015664352006080993 +02050306,020503061712,0.00953456791303781 +02050306,020503061203,0.008612175855138165 +02050306,020503061709,0.01712425435066577 +02050306,020503061710,0.01619337164867846 +02050306,020503061204,0.013628466854848139 +02050306,020503061201,0.020524407431268765 +02050306,020503061103,0.024623995790853136 +02050306,020503061102,0.014314150189307637 +02050306,020503061101,0.006471198410247071 +02050306,020503061202,0.019478841931454608 +02050306,020503061106,0.02268440648960259 +02050306,020503061104,0.01098865212768406 +02050306,020503060901,0.019186918581273534 +02050306,020503060904,0.00994110724555506 +02050306,020503061107,0.022178648042132564 +02050306,020600030201,1.9320149285859805e-05 +02050306,020503061604,0.016405849793129184 +02050306,020600030104,1.9618157253680144e-05 +02050306,020503061603,0.01526525133180365 +02050306,020600030101,2.0456907407324066e-05 +02050306,020503060902,0.012999096256259753 +02050306,020503061105,0.007004027090592778 +02050306,020503060903,0.014168766607286793 +02050306,020503061001,0.014718246466726337 +02050306,020503060801,0.011885488635482656 +02050306,020503060804,0.013975930458119077 +02050306,020503061708,0.01766024484802244 +02050306,020503061304,0.015370885804340264 +02050306,020503061002,0.011637495966624764 +02050306,020503061303,0.011383291964617306 +02050306,020503061706,0.006834567839833635 +02050306,020503061707,0.007691580860397165 +02050306,020503061302,0.0113103046172511 +02050306,020503061301,0.017614068777292685 +02050306,020503061704,0.020143465904776735 +02050306,020503061705,0.007665747425500814 +02050306,020600030501,2.3379766923866126e-06 +02050306,020503061602,0.01557158219497531 +02050306,020503061601,0.021416777897900356 +02050306,020600030401,2.9821518251626392e-05 +02050306,020600010000,4.273464357339861e-09 +02050306,020503061703,0.01374380070703041 +02050306,020503060602,0.017917784612868567 +02050306,020503061702,0.015140977450651436 +02050306,020503060706,0.007429804148384205 +02050306,020503060601,0.01311794068733671 +02050306,020503060707,0.00864641942975565 +02050306,020503060705,0.01051419463038112 +02050306,020503060603,0.01596215717329 +02050306,020503060704,0.008423340058576876 +02050306,020503060402,0.014396486545481684 +02050306,020503061701,0.007649091662241491 +02050306,020503051011,9.743016187105251e-05 +02050306,020503051009,1.2773119874699852e-05 +02050306,020503060703,0.013339520989888989 +02050306,020503060504,0.014525026243723847 +02050306,020503060401,0.011929568365567243 +02050306,020503060702,0.006753232981183483 +02050306,020503060502,0.01736513199792585 +02050306,020503060501,0.007105083647853873 +02050306,020503060503,0.009349772740067796 +02050306,020503050505,2.2381178809566957e-05 +02050306,020503060102,0.015976994003299733 +02050306,020503060204,0.010447767174649932 +02050306,020600030301,2.406098635957582e-05 +02050306,020503060701,0.009556018286973611 +02050306,020700090404,1.0757673382475637e-05 +02050306,020503060101,0.01354770175071852 +02050306,020700090502,7.516126146039517e-06 +02050306,020503060302,0.012661038036417714 +02050306,020503060303,0.022847146947126872 +02050306,020503060203,0.017989773418722134 +02050306,020503060301,0.008754394104837493 +02050306,020503050504,1.2929999813439823e-05 +02050306,020700090101,1.164166171806279e-05 +02050306,020503060201,0.0135972563142124 +02050306,020503050503,3.0782395830353444e-05 +02050306,020503060202,0.01671142563114531 +02050306,020700090202,1.6524205900017325e-05 +02050306,020700090501,1.2181476775560102e-05 +02050306,020700090102,6.421451035941147e-06 +02050306,020700090203,2.192042030384759e-06 +02050306,020700040801,1.0396566189464752e-06 +02050306,020700040802,7.862007442648057e-06 +02050306,020503060802,0.01789841859510584 +02050306,020503050802,1.791008171394576e-05 +02050306,020503060803,0.006897652458041634 +02050306,020503051010,2.6109240279356115e-05 +02060002,020600050202,5.1934718534541777e-05 +02060002,020600020402,0.04537094998519815 +02060002,020600020403,0.019866574278095614 +02060002,020600050101,5.825076140415866e-05 +02060002,020600020404,0.02352775368825831 +02060002,020600050103,2.8894072275064312e-05 +02060002,020600020401,0.0370878648582431 +02060002,020600020301,0.04108178484937825 +02060002,020600020206,0.05367151835501982 +02060002,020600020207,0.026011148829127174 +02060002,020600020302,0.03470851706921497 +02060002,020600020105,0.0010994974447621599 +02060002,020600020104,0.020248046034326568 +02060002,020503061713,1.527843501476221e-05 +02060002,020600020204,0.037275979674518823 +02060002,020600020205,0.028227638307337544 +02060002,020600020203,0.046826966388672446 +02060002,020600020202,0.04139796003904881 +02060002,020600020101,0.018476385679432498 +02060002,020600020201,0.015565152074522642 +02060002,020600020102,0.036579087698615904 +02060002,020600020103,0.0246903083271347 +02060002,020503061403,2.56676247906928e-05 +02060002,020600020406,0.0530930882126603 +02060002,020600020407,0.05417298699390594 +02060002,020600020409,0.03806362098060824 +02060002,020600020405,0.034993695818591485 +02060002,020600020408,0.039612668375541164 +02060002,020600020501,0.01048295444808553 +02060002,020600020410,0.040728550715821085 +02060002,020600020502,0.018260053794395152 +02060002,020600020503,0.0033785632360292875 +02060002,020503061502,3.3311759269236174e-05 +02060002,020503061503,5.4761412676805956e-05 +02060002,020600050105,1.6441157787688074e-05 +02060002,020600050104,5.877045161954772e-05 +02060002,020600050301,3.5254208689147125e-05 +02060002,020600020601,0.018767711388643363 +02060002,020600020602,0.026804026486461085 +02060002,020600020605,0.035842399472776974 +02060002,020600020603,0.0037554404883647858 +02060002,020600020604,0.010588399174725142 +02060002,020600020411,0.03131917519616543 +02060002,020600050504,2.81878275520872e-05 +02060002,020600050505,3.099174844893487e-05 +02060002,020600050506,1.5692534566220702e-06 +02060002,020600020608,0.00037708683609017436 +02060002,020600020606,0.0037687051765889178 +02060002,020600020609,0.00023541385122690837 +02060002,020600020607,0.01441491980214206 +02060002,020600020504,0.008959705048048069 diff --git a/vignettes/polygon_intersection.Rmd b/vignettes/polygon_intersection.Rmd new file mode 100644 index 0000000..6cadbd5 --- /dev/null +++ b/vignettes/polygon_intersection.Rmd @@ -0,0 +1,92 @@ +--- +title: "Area Weight Generation for Polygon Intersections" +output: rmarkdown::html_vignette +vignette: > + %\VignetteIndexEntry{Area Weight Generation for Polygon Intersections} + %\VignetteEngine{knitr::rmarkdown} + %\VignetteEncoding{UTF-8} +--- + +```{r setup_1, include = FALSE} +local <- (Sys.getenv("BUILD_VIGNETTES") == "TRUE") + +knitr::opts_chunk$set( + collapse = TRUE, + comment = "#>", + eval=local, + fig.width=6, + fig.height=4 +) + +library(ncdfgeom) + +if(!require(nhdplusTools)) { + warning("need nhdplusTools for this demo") + knitr::opts_chunk$set(eval = FALSE) +} + +org_options <- options(scipen = 9999) +``` + +This article demonstrates how to create area weights for two sets of polygons. + +[It is a comparison with the `gdptools` python package demonstration here.](https://gdptools.readthedocs.io/en/latest/Examples/PolyToPoly/Updated_PolytoPoly_weights.html) + +See `calculate_area_intersection_weights()` for additional demonstration and info. + +```{r} + +gdptools_weights <- read.csv(system.file("extdata/gdptools_prl_out.csv", package = "ncdfgeom"), + colClasses = c("character", "character", "numeric")) + +gdptools_weights <- dplyr::rename(gdptools_weights, gdptools_wght = wght) + +gage_id <- "USGS-01482100" +basin <- nhdplusTools::get_nldi_basin(list(featureSource = "nwissite", featureId = gage_id)) +huc08 <- nhdplusTools::get_huc(id = na.omit(unique(gdptools_weights$huc8)), type = "huc08") +huc12 <- nhdplusTools::get_huc(id = na.omit(unique(gdptools_weights$huc12)), type = "huc12") + +org_par <- par(mar = c(0, 0, 0, 0)) +plot(sf::st_as_sfc(sf::st_bbox(huc12))) +plot(sf::st_geometry(basin), lwd = 4, add = TRUE) +plot(sf::st_simplify(sf::st_geometry(huc08), dTolerance = 500), add = TRUE, lwd = 2) +plot(sf::st_simplify(sf::st_geometry(huc12), dTolerance = 500), add = TRUE, lwd = 0.2, border = "grey") +par(org_par) + +weights <- ncdfgeom::calculate_area_intersection_weights( + x = sf::st_transform(dplyr::select(huc12, huc12), 6931), + y = sf::st_transform(dplyr::select(huc08, huc8), 6931), + normalize = TRUE +) + +weights <- dplyr::left_join(weights, gdptools_weights, by = c("huc8", "huc12")) + +``` + +With weights calculated, we can do a little investigation into the differences. + +```{r} + +weights$diff <- weights$w - weights$w + +# make sure nothing is way out of whack +max(weights$diff, na.rm = TRUE) + +# ensure the weights generally sum as we would expect. +sum(weights$gdptools_wght, na.rm = TRUE) +sum(weights$w, na.rm = TRUE) +length(unique(na.omit(weights$huc8))) + +# see how many NA values we have in each. +sum(is.na(weights$w)) +sum(is.na(weights$gdptools_wght)) + +# look at cases where gptools has NA and ncdfgeom does not +weights[is.na(weights$gdptools_wght),] + +``` + +```{r cleanup, echo=FALSE} +options(org_options) +unlink("climdiv_prcp.nc") +```