{"id":11058,"date":"2021-04-22T17:05:15","date_gmt":"2021-04-22T08:05:15","guid":{"rendered":"http:\/\/www.gisdeveloper.co.kr\/?p=11058"},"modified":"2021-04-23T04:20:47","modified_gmt":"2021-04-22T19:20:47","slug":"%ed%81%ac%eb%a6%ac%ea%b9%85kriging-%ea%b3%b5%ea%b0%84%eb%b6%84%ec%84%9d","status":"publish","type":"post","link":"http:\/\/www.gisdeveloper.co.kr\/?p=11058","title":{"rendered":"\ud06c\ub9ac\uae45(Kriging) \uacf5\uac04\ubd84\uc11d"},"content":{"rendered":"<p>\uacf5\uac04 \uc0c1\uc5d0 \ubd84\ud3ec\ub41c \uac12 \uae30\ubc18\uc758 \ubcf4\uac04 \ubc29\uc2dd \uc911 \ud558\ub098\uc778 \ud06c\ub9ac\uae45\uc744 \uae30\ub2a5 \ub2e8\uc704\ub85c \ub9cc\ub4e0 \ucf54\ub4dc\ub97c \uc815\ub9ac\ud55c \uae00\uc785\ub2c8\ub2e4. GIS \uc5d4\uc9c4\uc740 \uc6f9 GIS \ucef4\ud3ec\ub10c\ud2b8\uc778 FingerEyes-Xr\ub97c \uc0ac\uc6a9\ud588\uc2b5\ub2c8\ub2e4. \ud06c\ub9ac\uae45 \uc54c\uace0\ub9ac\uc998\uc740 \uc624\ud508\uc18c\uc2a4 \ub77c\uc774\ube0c\ub7ec\ub9ac\uc778 <a href='https:\/\/oeo4b.github.io\/'>kriging.js<\/a>\ub97c \uc0ac\uc6a9\ud558\uc600\uc73c\ubbc0\ub85c  Leaflet\uc774\ub098 OpenLayers\uc5d0 \ub300\ud55c API\uc5d0 \uc775\uc219\ud55c \uac1c\ubc1c\uc790\ub77c\uba74 \ud574\ub2f9 GIS \ucef4\ud3ec\ub10c\ud2b8\ub85c\ub3c4 \ud06c\ub9ac\uae45 \uacb0\uacfc\uc5d0 \ub300\ud55c \ud6a8\uacfc\uc801\uc778 \uc2dc\uac01\ud654\ub97c \uad6c\ud604\ud560 \uc218 \uc788\uc744 \uac83\uc785\ub2c8\ub2e4. \uc6f9 \uae30\ubc18\uc5d0\uc11c \uc218\ud589\ub418\uc9c0\ub9cc \ubcc4\ub3c4\uc758 \uc11c\ubc84\uac00 \ud544\uc694\ud558\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4. \uc9c0\ub3c4\ub294 VWorld\uc758 \ubc30\uacbd\uc9c0\ub3c4\ub97c \uadf8\ub300\ub85c \uc774\uc6a9\ud560 \uac83\uc774\uba70 \ud06c\ub9ac\uae45\uc744 \uc704\ud55c \uc785\ub825 \ub370\uc774\ud130\ub294 \uc2e4\ud589\uc2dc \ub3d9\uc801\uc73c\ub85c \uc0dd\uc131\ud560 \uac83\uc774\uae30 \ub54c\ubb38\uc785\ub2c8\ub2e4.<\/p>\n<p>\uacb0\uacfc\ub97c \uc774\ubbf8\uc9c0\ub85c \uba3c\uc800 \uc0b4\ud3b4\ubcf4\uba74 \uc544\ub798\uc640 \uac19\uc2b5\ub2c8\ub2e4.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.gisdeveloper.co.kr\/wp-content\/uploads\/2021\/04\/kriging.png\" alt=\"\" width=\"1920\" height=\"1554\" class=\"aligncenter size-full wp-image-11059\" \/><\/p>\n<p>0~100\uae4c\uc9c0\uc758 \uac12\uc744 \uac00\uc9c0\ub294 \ucd1d 35\uac1c\uc758 \uc9c0\uc810\uc774 \uc788\uace0 \ud2b9\uc815 \uc601\uc5ed \uc548\uc5d0\uc11c \ud06c\ub9ac\uae45 \ubd84\uc11d\uc744 \uc218\ud589\ud574 \uadf8 \uacb0\uacfc\ub97c \uadf8\ub77c\ub514\uc5b8\ud2b8 \uc0c9\uc0c1\uc73c\ub85c \ud45c\ud604\ud558\ub294 \uac83\uc778\ub370\uc694. \uba3c\uc800 \ud2b9\uc815 \uc601\uc5ed\uc5d0 \ub300\ud55c \uc88c\ud45c\ub97c \uc9c0\uc815\ud558\uace0 \uc9c0\ub3c4\uc5d0 \ud45c\uc2dc\ud558\ub294 \ucf54\ub4dc\ub294 \ub2e4\uc74c\uacfc \uac19\uc2b5\ub2c8\ub2e4.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"js\">\r\nlet psd = new Xr.data.PolygonShapeData([[\r\n    new Xr.PointD(14289447.80, 4437166.67),\r\n    new Xr.PointD(14289920.87, 4437347.65),\r\n    new Xr.PointD(14289963.20, 4437210.07),\r\n    new Xr.PointD(14290033.05, 4437198.42),\r\n    new Xr.PointD(14289981.19, 4436636.45),\r\n    new Xr.PointD(14289942.04, 4436488.28),\r\n    new Xr.PointD(14289879.60, 4436349.64),\r\n    new Xr.PointD(14289733.55, 4436420.55),\r\n    new Xr.PointD(14289717.67, 4436438.54)\r\n]]);\r\n\r\nlet psr = new Xr.data.PolygonGraphicRow(0, psd);\r\n\r\npsr.brushSymbol().opacity(0);\r\npsr.penSymbol().color('#ff0000');\r\n\r\ngl.rowSet().add(psr);\r\n<\/pre>\n<p>0~100\uae4c\uc9c0 \ub09c\uc218\ub85c \ubd80\uc5ec\ub41c \uac12\uc744 \uac00\uc9c0\ub294 \ucd1d 35\uac1c\uc758 \uc9c0\uc810\uc744 \uc9c0\ub3c4\uc5d0 \ud45c\uc2dc\ud558\ub294 \ucf54\ub4dc\ub294 \ub2e4\uc74c\uacfc \uac19\uad6c\uc694.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"js\">\r\nconst x = [\r\n    14289539.88, 14289633.01, 14289713.44, 14289812.93, 14289912.41,\r\n    14289598.08, 14289698.63, 14289809.75, 14289883.83, 14289952.62,\r\n    14289747.31, 14289760.01, 14289779.06, 14289793.88, 14289815.04,\r\n    14289836.21, 14289864.78, 14289920.87, 14289698.63, 14289665.82,\r\n    14289758.95, 14289697.57, 14289771.65, 14289732.49, 14289804.46,\r\n    14289828.8, 14289839.38, 14289853.14, 14289885.95, 14289853.14,\r\n    14289878.54, 14289876.42, 14289942.04, 14289929.34, 14289912.41\r\n];\r\n\r\nconst y = [\r\n    4437041.79, 4437076.72, 4437109.52, 4437148.68, 4437185.72,\r\n    4436892.57, 4436923.26, 4436970.88, 4436999.46, 4436999.46,\r\n    4436877.75, 4436834.36, 4436785.67, 4436736.99, 4436681.96,\r\n    4436626.92, 4436563.42, 4436512.62, 4436824.83, 4436761.33,\r\n    4436740.17, 4436667.14, 4436638.57, 4436577.18, 4436553.90,\r\n    4436927.49, 4436879.87, 4436834.36, 4436790.97, 4436723.23,\r\n    4436687.25, 4436629.04, 4436890.45, 4436744.40, 4436600.47\r\n];\r\n\r\nconst t = [];\r\n\r\nfor (let i = 0; i < x.length; i++) {\r\n    t[i] = Math.random() * 100.0;\r\n\r\n    let p = new Xr.PointD(x[i], y[i]);\r\n    let tsd = new Xr.data.TextShapeData({ x: x[i], y: y[i], text: t[i] >> 0 });\r\n    let pgr = new Xr.data.TextGraphicRow(i + 1, tsd);\r\n\r\n    gl.rowSet().remove(i + 1);\r\n    gl.rowSet().add(pgr);\r\n}\r\n<\/pre>\n<p>\ud06c\ub9ac\uae45\uc744 \uc704\ud55c \uc785\ub825\uac12\uc774 \uc900\ube44\ub418\uc5b4 \uc788\uc73c\ubbc0\ub85c \ud06c\ub9ac\uae45 \ubd84\uc11d\uc744 \uc544\ub798\uc758 \ucf54\ub4dc\ucc98\ub7fc \uc218\ud589\ud569\ub2c8\ub2e4.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"js\">\r\nconst variogram = kriging.train(t, x, y, \"spherical\", 0, 100);\r\n<\/pre>\n<p>\uc774\uc81c \ud06c\ub9ac\uae45 \ubd84\uc11d \uacb0\uacfc\ub97c \uc9c0\ub3c4\uc5d0 \ud45c\uc2dc\ud558\uae30 \uc704\ud574 GridLayer\ub97c \uc0ac\uc6a9\ud558\uac8c \ub418\ub294\ub370, \ud06c\ub9ac\uae45 \ubd84\uc11d \uacb0\uacfc \ubaa8\ub378\uc744 \ud1a0\ub300\ub85c \ubaa8\ub974\ub294 \uc9c0\uc810\uc5d0 \ub300\ud55c \uac12\ub3c4 \uc608\uce21\ud560 \uc218 \uc788\uc73c\uba70 \uc774 \uac12\ub4e4\uc744 \ud1a0\ub300\ub85c \uc801\uc808\ud558\uac8c \uc0c9\uc0c1\uc744 \ubc30\ud569\ud558\uba74 \ub429\ub2c8\ub2e4. \uc774\ub7ec\ud55c \ucf54\ub4dc\ub294 \ub2e4\uc74c\uacfc \uac19\uc2b5\ub2c8\ub2e4.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"js\">\r\ngridLyr.reset();\r\n\r\nconst minX = psr.MBR().minX;\r\nconst maxX = psr.MBR().maxX;\r\nconst minY = psr.MBR().minY;\r\nconst maxY = psr.MBR().maxY;\r\n\r\nfor (let x = minX; x < maxX; x += cellRes) {\r\n    for (let y = minY; y < maxY; y += cellRes) {\r\n        const v = kriging.predict(x, y, variogram);\r\n        gridLyr.value(x, y, v);\r\n    }\r\n}\r\n\r\nlet clrTbl = new Xr.ColorTable(6);\r\n                    \r\nclrTbl.set(5, 225, 228, 177, 230);\r\nclrTbl.set(4, 190, 208, 122, 230);\r\nclrTbl.set(3, 152, 193, 99, 230);\r\nclrTbl.set(2, 97, 168, 93, 230);\r\nclrTbl.set(1, 46, 146, 85, 230);\r\nclrTbl.set(0, 20, 102, 59, 230);\r\n\r\nif (clrTbl.build()) {\r\n    gridLyr.updateByColorTable(clrTbl, psd);\r\n    map.update();\r\n}\r\n<\/pre>\n<p>GridLayer\uc5d0 \ub300\ud55c \ubcc0\uc218\ub294 gridLyr\uc774\uba70 \ud06c\ub9ac\uae45 \ubcf4\uac04\uc744 \ud1b5\ud574 gridLayer \ub0b4\ubd80\uc758 \uc804\uccb4 \uc140\uac12\ub4e4\uc774 \uc5c5\ub370\uc774\ud2b8\ub429\ub2c8\ub2e4. updateByColorTable \ud568\uc218\ub97c \ud1b5\ud574 \ud45c\ud604\ud560 \uc0c9\uc0c1\uacfc \uc6d0\ud558\ub294 \uacbd\uacc4 \uc774\uc678\uc758 \uc140\uc740 \ud22c\uba85\ud558\uac8c \uc798\ub9ac\uac8c \ub429\ub2c8\ub2e4. \uc6d0\ud558\ub294 \uacbd\uacc4\ub294 psd\ub77c\ub294 \ubcc0\uc218\ub85c \uc9c0\uc815\ud558\uace0 \uc788\ub294\ub370 \uc774 psd\ub294 \uc55e\uc11c \uc0dd\uc131\ud55c \ud2b9\uc815 \uc601\uc5ed\uc5d0 \ub300\ud55c \uadf8\ub798\ud53d \uc694\uc18c \uac1d\uccb4\uc785\ub2c8\ub2e4. \ucc38\uace0\ub85c gridLyr \uac1d\uccb4\uc758 \uc0dd\uc131 \ucf54\ub4dc\ub294 \ub2e4\uc74c\uacfc \uac19\uc2b5\ub2c8\ub2e4.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"js\">\r\nlet cellRes = 1;\r\nlet gridLyr = new Xr.layers.GridLayer(\"grid\",\r\n    {\r\n        mbr: psr.MBR(),\r\n        resolution: cellRes\r\n    }\r\n);\r\n<\/pre>\n<p>\uc774\uc0c1\uc73c\ub85c \uc798 \ub9cc\ub4e4\uc5b4\uc9c4 \ud06c\ub9ac\uae45 \ub77c\uc774\ube0c\ub7ec\ub9ac\ub97c \uc774\uc6a9\ud558\uc5ec \uc6f9 \uc0c1\uc5d0\uc11c \ud06c\ub9ac\uae45 \ubd84\uc11d\uc744 \uc218\ud589\ud558\uace0 \uadf8 \ubd84\uc11d \uacb0\uacfc\ub97c \uc2dc\uac01\ud654\ud558\ub294 \ucf54\ub4dc\uc5d0 \ub300\ud574 \uc0b4\ud3b4 \ubcf4\uc558\uc2b5\ub2c8\ub2e4.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\uacf5\uac04 \uc0c1\uc5d0 \ubd84\ud3ec\ub41c \uac12 \uae30\ubc18\uc758 \ubcf4\uac04 \ubc29\uc2dd \uc911 \ud558\ub098\uc778 \ud06c\ub9ac\uae45\uc744 \uae30\ub2a5 \ub2e8\uc704\ub85c \ub9cc\ub4e0 \ucf54\ub4dc\ub97c \uc815\ub9ac\ud55c \uae00\uc785\ub2c8\ub2e4. GIS \uc5d4\uc9c4\uc740 \uc6f9 GIS \ucef4\ud3ec\ub10c\ud2b8\uc778 FingerEyes-Xr\ub97c \uc0ac\uc6a9\ud588\uc2b5\ub2c8\ub2e4. \ud06c\ub9ac\uae45 \uc54c\uace0\ub9ac\uc998\uc740 \uc624\ud508\uc18c\uc2a4 \ub77c\uc774\ube0c\ub7ec\ub9ac\uc778 kriging.js\ub97c \uc0ac\uc6a9\ud558\uc600\uc73c\ubbc0\ub85c Leaflet\uc774\ub098 OpenLayers\uc5d0 \ub300\ud55c API\uc5d0 \uc775\uc219\ud55c \uac1c\ubc1c\uc790\ub77c\uba74 \ud574\ub2f9 GIS \ucef4\ud3ec\ub10c\ud2b8\ub85c\ub3c4 \ud06c\ub9ac\uae45 \uacb0\uacfc\uc5d0 \ub300\ud55c \ud6a8\uacfc\uc801\uc778 \uc2dc\uac01\ud654\ub97c \uad6c\ud604\ud560 \uc218 \uc788\uc744 \uac83\uc785\ub2c8\ub2e4. \uc6f9 \uae30\ubc18\uc5d0\uc11c \uc218\ud589\ub418\uc9c0\ub9cc \ubcc4\ub3c4\uc758 \uc11c\ubc84\uac00 \ud544\uc694\ud558\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4. \uc9c0\ub3c4\ub294 &hellip; <\/p>\n<p class=\"link-more\"><a href=\"http:\/\/www.gisdeveloper.co.kr\/?p=11058\" class=\"more-link\">\ub354 \ubcf4\uae30<span class=\"screen-reader-text\"> &#8220;\ud06c\ub9ac\uae45(Kriging) \uacf5\uac04\ubd84\uc11d&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[70,7],"tags":[],"class_list":["post-11058","post","type-post","status-publish","format-standard","hentry","category-fingereyes-xr","category-gis-working-history"],"_links":{"self":[{"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=\/wp\/v2\/posts\/11058","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=11058"}],"version-history":[{"count":4,"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=\/wp\/v2\/posts\/11058\/revisions"}],"predecessor-version":[{"id":11063,"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=\/wp\/v2\/posts\/11058\/revisions\/11063"}],"wp:attachment":[{"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=11058"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=11058"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=11058"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}