本文介绍了插值不规则网格的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个包含纬度/经度和深度参数的数据集,该数据集是在不规则网格上获取的.我想绘制一个插值的测深图.我已经看到了常规网格的几种解决方案,但这并不适用...任何建议将不胜感激.

I have a dataset with lat/lon and depth parameters, taken on an irregular grid. I'd like to plot an interpolated bathymetry map. I've seen several solutions for regular grids, but that just doesn't apply... Any suggestions would be appreciated.

我数据的50点子集:

df <- structure(list(Lat = c(49.33805, 49.33805, 49.33817, 49.33819,
49.33823, 49.33823, 49.33827, 49.33829, 49.33834, 49.33844, 49.33846,
49.33846, 49.33847, 49.33847, 49.33847, 49.33848, 49.33849, 49.33849,
49.33849, 49.33856, 49.33859, 49.33861, 49.33862, 49.33865, 49.33866,
49.33868, 49.33869, 49.33869, 49.3387, 49.33871, 49.33872, 49.33875,
49.33877, 49.33878, 49.33882, 49.33883, 49.33883, 49.33884, 49.33884,
49.33884, 49.33887, 49.33888, 49.33889, 49.33891, 49.33891, 49.33891,
49.33893, 49.33893, 49.33894, 49.33895), Long = c(-117.76914,
-117.76943, -117.76852, -117.76878, -117.76912, -117.76953, -117.76981,
-117.76847, -117.76991, -117.76768, -117.76883, -117.76914, -117.76679,
-117.76954, -117.76989, -117.76743, -117.76655, -117.76788, -117.76844,
-117.77002, -117.76815, -117.76704, -117.76775, -117.76608, -117.76644,
-117.7695, -117.76883, -117.76986, -117.76573, -117.76911, -117.76843,
-117.76741, -117.76673, -117.77012, -117.76543, -117.76715, -117.76813,
-117.76512, -117.76611, -117.76781, -117.76572, -117.76477, -117.76641,
-117.76451, -117.7688, -117.76952, -117.76912, -117.76987, -117.76739,
-117.76507), Depth = c(5.75, 5.75, 5.75, 5.75, 9.75, 5.75, 4.75,
10.75, 3.75, 6.75, 12.75, 15.75, 4.75, 8.75, 5.75, 2.75, 5.75,
9.75, 15.75, 2.75, 14.75, 14.75, 16.75, 5.75, 12.75, 10.75, 16.75,
7.75, 7.75, 15.75, 16.75, 14.75, 11.75, 2.75, 5.75, 15.75, 17.75,
5.75, 10.75, 15.75, 13.75, 3.75, 16.75, 4.75, 16.75, 12.75, 16.75,
8.75, 16.75, 7.75), N = c(389L, 390L, 352L, 353L, 388L, 391L,
426L, 351L, 427L, 316L, 354L, 387L, 247L, 392L, 425L, 280L, 246L,
317L, 350L, 428L, 318L, 279L, 315L, 216L, 245L, 393L, 355L, 424L,
215L, 386L, 349L, 281L, 248L, 429L, 187L, 278L, 319L, 186L, 217L,
314L, 214L, 161L, 244L, 160L, 356L, 394L, 385L, 423L, 282L, 185L
), VelMagnit = c(7.84, 5.74, 5.41, 9.59, 7.02, 9.39, 13.1, 7.16,
29.22, 2.02, 1.44, 6.88, 35.82, 8, 12.6, 37.27, 26.95, 13.3,
3.35, 11.1, 7.48, 23.57, 18.77, 38.21, 20.69, 4.53, 7, 8.84,
74.77, 9.49, 18.75, 8.26, 32.66, 2.77, 39.31, 22.61, 29.11, 36.88,
33.37, 30.51, 21.39, 37.23, 16.66, 20.46, 8.66, 7.08, 19.23,
4.16, 16.01, 25.98), VelAngle = c(109.359, 234.926, 64.855, 73.644,
100.67, 63.435, 159.905, 331.645, 331.593, 147.095, 123.69, 57.465,
268.24, 167.005, 178.636, 224.239, 253.179, 246.519, 17.354,
178.968, 307.942, 253.487, 279.814, 260.661, 277.778, 223.21,
30.964, 201.922, 260.764, 288.435, 346.112, 308.118, 277.212,
154.359, 271.166, 231.103, 318.203, 248.025, 256.13, 271.315,
234.898, 250.543, 248.518, 241.054, 328.696, 193.055, 324.739,
170.311, 321.34, 248.076), North = c(5465321.35407466, 5465320.45673062,
5465334.20185859, 5465335.84649416, 5465340.32938523, 5465340.53806541,
5465345.46949452, 5465347.29204307, 5465353.67668219, 5465362.67550185,
5465366.05612295, 5465366.13117831, 5465365.62894912, 5465368.30742982,
5465368.10764226, 5465366.85006568, 5465367.60985361, 5465369.27129842,
5465369.44129325, 5465378.49168744, 5465380.30823023, 5465381.65815607,
5465383.53421217, 5465384.93126624, 5465386.83124086, 5465391.62499386,
5465391.43748737, 5465392.17083906, 5465390.93768874, 5465393.93779788,
5465395.22644872, 5465396.81815796, 5465398.99484539, 5465402.67778048,
5465404.02489866, 5465406.43767199, 5465406.45411863, 5465405.13054023,
5465406.62568988, 5465408.19081624, 5465409.83421333, 5465409.91360362,
5465411.67748384, 5465413.14356129, 5465416.11549776, 5465416.75272559,
5465418.21530199, 5465418.6115072, 5465418.87768738, 5465417.78379895
), East = c(444125.003387342, 444103.946731878, 444170.258760669,
444151.770882767, 444126.431718875, 444097.212992858, 444076.978665012,
444174.228007541, 444069.150472669, 444231.481904453, 444148.344059708,
444125.684605454, 444296.448416587, 444096.50059478, 444071.375433859,
444249.563863466, 444313.78879066, 444216.996727711, 444176.233348778,
444061.593340175, 444197.652741389, 444278.150298904, 444227.007871585,
444347.827629692, 444321.648646752, 444099.506214185, 444148.486188144,
444073.2190657, 444373.88336123, 444127.863992462, 444177.120505223,
444251.29961245, 444300.804805398, 444054.654670874, 444395.709813492,
444270.773540085, 444199.146474186, 444418.264802441, 444346.449347451,
444222.979333791, 444374.314694461, 444443.29084392, 444324.123924214,
444462.496268479, 444151.098575609, 444098.352789667, 444127.224871463,
444073.059940659, 444253.383634326, 444421.480670821), angle = c(5.945307017286,
3.75374943543428, 0.438863040413974, 0.285466052456192, 6.09695867599179,
0.463646715792294, 5.06311289357295, 2.06568443619789, 2.06659200740893,
5.28668957075342, 5.6951838821827, 0.567842872136355, 3.17231044842489,
4.93919451668135, 4.73619527138189, 3.94027277259492, 3.43517448706776,
3.55141341525058, 1.2679118884038, 4.73040077826527, 2.4793798287981,
3.42979887297162, 2.97030604079907, 3.30458895243354, 3.00584094436967,
3.95823221059794, 1.03037257720737, 4.32977790176249, 3.30279126330399,
2.81984120598464, 1.81318765331187, 2.47630804931459, 3.01571950793596,
5.15990885388856, 3.12124211451154, 3.82047337273803, 2.30029159425097,
3.52512875671555, 3.38366982084141, 3.11864157392607, 3.75423812762484,
3.48118136615033, 3.51652428350322, 3.64679565887207, 2.1171541958392,
4.48453624653683, 2.18621687434062, 4.88149393161042, 2.24554061561591,
3.52423863879703), EEnd = c(444127.468963086, 444102.380839669,
444171.891201757, 444154.838181978, 444128.731259986, 444100.012551216,
444078.478954484, 444173.094500332, 444064.516846156, 444231.84769125,
444148.743444163, 444127.618030096, 444284.514049334, 444097.10023751,
444071.475410837, 444240.896688604, 444305.18982274, 444212.930508718,
444176.566422062, 444061.659980224, 444195.686415001, 444270.617678339,
444220.842763233, 444335.259781332, 444314.815430257, 444098.472355955,
444149.686686742, 444072.118945325, 444349.283143613, 444124.862991856,
444175.620350655, 444249.133451857, 444290.004269359, 444055.054225809,
444382.609193401, 444264.907933091, 444192.679266209, 444406.864613959,
444335.650346807, 444212.812012208, 444368.481430089, 444431.589557366,
444318.956366165, 444456.528248516, 444149.598724913, 444097.819698049,
444123.524365878, 444073.293316846, 444250.049831143, 444413.446962578
), NEnd = c(5465320.48779101, 5465319.35726437, 5465334.9681139,
5465336.74669044, 5465339.89612933, 5465341.93784146, 5465341.36865202,
5465349.3923619, 5465362.24389325, 5465362.11018973, 5465365.78986733,
5465367.3645667, 5465365.26223633, 5465365.70905731, 5465363.90883235,
5465357.94954373, 5465365.01023277, 5465367.50485919, 5465370.50712937,
5465374.79228761, 5465381.8412898, 5465379.42503303, 5465384.60066272,
5465382.8644171, 5465387.76460223, 5465390.52443166, 5465393.4382991,
5465389.43723712, 5465386.93745905, 5465394.93813439, 5465401.29374106,
5465398.51774401, 5465400.36156861, 5465401.84537415, 5465404.29154015,
5465401.70523086, 5465413.68805938, 5465400.53035034, 5465403.95920727,
5465408.42420823, 5465405.73422226, 5465405.77984105, 5465409.64380369,
5465409.84278294, 5465418.58193088, 5465414.45372291, 5465423.44926401,
5465417.24462022, 5465423.04491277, 5465414.55035932), LatEnd = c(49.3380474342345,
49.3380349676146, 49.3381817413127, 49.3381961774213, 49.3382221137942,
49.3382378465177, 49.3382307534342, 49.3383115871151, 49.3384172309777,
49.3384313488661, 49.3384568417901, 49.3384690705233, 49.3384645117795,
49.3384513844775, 49.3384328439213, 49.3383947540559, 49.3384641332503,
49.3384781403051, 49.3385018169049, 49.3385298326984, 49.3386055088849,
49.3385906265511, 49.3386326282497, 49.3386274634674, 49.3386696711786,
49.3386747064999, 49.3387056057661, 49.3386625123754, 49.3386653770491,
49.3387168224261, 49.3387786336194, 49.3387603885808, 49.3387807064111,
49.3387725497545, 49.3388245039422, 49.3387904992063, 49.3388916724367,
49.3387928857403, 49.3388172315733, 49.3388461694421, 49.3388361915708,
49.3388423539545, 49.3388668368414, 49.3388811684793, 49.3389317464578,
49.3388898732875, 49.3389731367353, 49.338912727242, 49.3389810765077,
49.3389195855133), LonEnd = c(-117.769107642156, -117.769452798913,
-117.768498238181, -117.768733207393, -117.769092988058, -117.769488562773,
-117.769784874489, -117.768483695931, -117.769979980219, -117.767676786145,
-117.768821165483, -117.769112160817, -117.766952315992, -117.769531981989,
-117.769884434776, -117.76755165188, -117.766667694915, -117.76793792113,
-117.768438864769, -117.770021063608, -117.768177279629, -117.767145568728,
-117.767831407383, -117.766256298647, -117.766538384655, -117.769516575962,
-117.768812056346, -117.769879158813, -117.766063845997, -117.769153946831,
-117.768456198264, -117.767443953382, -117.766881652868, -117.770115783579,
-117.765607558364, -117.767227274384, -117.768223129479, -117.765273174343,
-117.766253868597, -117.767945278942, -117.765802218797, -117.764933584222,
-117.766484443928, -117.764590885974, -117.768816790031, -117.769528915231,
-117.769176368711, -117.76986689595, -117.767434770472, -117.765184527934
)), .Names = c("Lat", "Lon", "Depth", "N", "VelMagnit", "VelAngle",
"North", "East", "angle", "EEnd", "NEnd", "LatEnd", "LonEnd"), row.names = c(NA,
50L), class = "data.frame")

library(ggplot2)
library(ggmap)

prep <- get_googlemap(
center = c(-117.7670, 49.34027),
zoom = 17,
maptype = 'hybrid',
scale = 2)

map <- ggmap(prep,
    size = c(100, 200),
    extent='device',
    darken = 0.5,
    legend = "bottom",
    base_layer = ggplot(data = df, aes(x = Lon, y = Lat)))

map +
    geom_point(aes(fill = Depth), size = 3, shape = 21)

推荐答案

在CRAN上阅读空间任务视图,并使用此处提到的一种插值技术.特别地,automap包可以进行克里金法和距离反比加权.您不仅可以将不规则样本的估计值获取到常规网格中,还可以获取误差估计值.

Read the Spatial Task View on CRAN and use one of the interpolation techniques mentioned there. In particular the automap package can do kriging and inverse distance weighting. You can get not only estimates from irregular samples onto a regular grid but error estimates too.

如果将输出生成为raster对象,则可以使用raster包中的所有商品进行可视化和操作,并使用rasterVis包中的所有商品进行可视化.

If you generate your output into a raster object you can use all the goodies from the raster package for visualisation and manipulation, and the rasterVis packages for visualisation.

这篇关于插值不规则网格的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

08-06 14:10