The well data contains information about the βcollarβ: X, Y and Z (Z is the surface elevation, and Z = 0 is some zero level, such as the average sea level), as well as the length of the wellbore in the Z direction.
How can I create a 3D graph of well traces (curves)? I am looking for solutions in R, but also interested in python (although not marked as such if it is just embarrassing).
The result may be similar to this image from ArcScene:
.
Here, the borehole traces are colored by another parameter from one or several separate files and are tied to the borehole name or some index. (This viewer also allows you to rotate the viewport with the mouse.)
Wells may also not be vertical, but not straight.
Here are some details:
> dput(collars) structure(list(boreid = c(47063L, 47311L, 49511L, 52752L, 58935L, 58937L, 65763L, 67441L, 67442L, 77351L, 77436L, 77945L, 84156L, 89809L, 90138L, 95482L, 96560L, 103583L, 104536L, 105222L, 105483L, 105548L, 110720L, 180221L, 301001L, 302293L, 306496L, 306497L, 325725L, 326668L, 327068L, 333303L, 333332L, 333927L, 374749L, 374946L, 376243L, 376244L, 958884L, 958898L, 959394L, 965482L ), easting = c(554952L, 492126L, 537529L, 499972L, 490997L, 487258L, 555368L, 496144L, 493860L, 451445L, 452195L, 525050L, 439191L, 485774L, 519132L, 491804L, 459810L, 476288L, 499113L, 474318L, 513550L, 501624L, 484463L, 489155L, 558105L, 532973L, 531296L, 531852L, 532313L, 485727L, 540972L, 478073L, 517917L, 429608L, 467779L, 469052L, 471671L, 457678L, 511513L, 402157L, 461493L, 511070L), northing = c(5804714L, 5730703L, 5787590L, 5797164L, 5782344L, 5786531L, 5797011L, 5775664L, 5776207L, 5773871L, 5771346L, 5793440L, 5771468L, 5776930L, 5781414L, 5794889L, 5773111L, 5782370L, 5734834L, 5732385L, 5758450L, 5781360L, 5745034L, 5769765L, 5800168L, 5778723L, 5766709L, 5772101L, 5808899L, 5723574L, 5785123L, 5731540L, 5761725L, 5774060L, 5774283L, 5774569L, 5779113L, 5777001L, 5773012L, 5767950L, 5766123L, 5753167L), elevation = c(32.68, 10.4, 2, 33.41, 16.8, 22.34, 3.64, 33.7, 12.3, 39, 45.6, 32.94, 168.2, 13.6, 0.9, 27, 34, 21.05, 4.2, 20.7, 28.17, 20.5, 80, 160.1, 20.7, 0.6, 8.5, 1.5, 68.6, 4.6, 5.5, 18.15, 23.5, 56.3, 27.4, 31.6, 24.5, 36.7, 78.09, 125, 96.89, 26.75), total_depth = c(619.25, 1773, 1238, 496.83, 900.02, 872.36, 1031.75, 1181.11, 1155, 528.8, 775, 875.75, 249.94, 903.29, 1049.8, 178, 840.23, 727.67, 1586.47, 353.9, 1389.2, 905, 333, 327, 1294, 3661, 2290, 1862, 1197, 1422, 1400, 840, 1524, 221.1, 825, 849.4, 742.6, 607, 2345, 2001.8, 1443, 2493.5)), .Names = c("boreid", "easting", "northing", "elevation", "total_depth"), class = "data.frame", row.names = c(NA, -42L))