diff --git a/404.html b/404.html index a074799..cb006ae 100644 --- a/404.html +++ b/404.html @@ -4,7 +4,7 @@ WebODM Lightning - + diff --git a/assets/js/8ddc361b.166adf1c.js b/assets/js/8ddc361b.166adf1c.js new file mode 100644 index 0000000..9091ec1 --- /dev/null +++ b/assets/js/8ddc361b.166adf1c.js @@ -0,0 +1 @@ +(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[818],{8781:(e,t,r)=>{e.exports={src:{srcSet:r.p+"assets/ideal-img/gcp_marker.950a2f5.640.png 640w,"+r.p+"assets/ideal-img/gcp_marker.c8f5984.1024.png 1024w",images:[{path:r.p+"assets/ideal-img/gcp_marker.950a2f5.640.png",width:640,height:283},{path:r.p+"assets/ideal-img/gcp_marker.c8f5984.1024.png",width:1024,height:453}],src:r.p+"assets/ideal-img/gcp_marker.950a2f5.640.png",toString:function(){return r.p+"assets/ideal-img/gcp_marker.950a2f5.640.png"},placeholder:void 0,width:640,height:283},preSrc:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAECAYAAAC3OK7NAAAACXBIWXMAAFGCAABRggFYdP86AAAAlElEQVR4nD3KPQrCMACG4XeoaEEcOhUsdHR0c/EWGQSvIPQQrm5WJ4cMoSfJz9pAzxBygW4ukQj6Le/wPQAFQFmWDdD0fX+w1t611s9xHB/GGJH/vB3Q1nXdAotpmk4ppRRjfOeGEIYfXALrruty0Vqf53lO3vsvjDH+YVFV1VYIcQRWSqm9c+7mvb8aY15Syguw+QBPWkE1RVAJ0wAAAABJRU5ErkJggg=="}},7290:(e,t,r)=>{e.exports={src:{srcSet:r.p+"assets/ideal-img/ground_control_point_marker.c8b64be.640.jpg 640w,"+r.p+"assets/ideal-img/ground_control_point_marker.3374ede.1024.jpg 1024w",images:[{path:r.p+"assets/ideal-img/ground_control_point_marker.c8b64be.640.jpg",width:640,height:540},{path:r.p+"assets/ideal-img/ground_control_point_marker.3374ede.1024.jpg",width:1024,height:865}],src:r.p+"assets/ideal-img/ground_control_point_marker.c8b64be.640.jpg",toString:function(){return r.p+"assets/ideal-img/ground_control_point_marker.c8b64be.640.jpg"},placeholder:void 0,width:640,height:540},preSrc:"data:image/jpeg;base64,/9j/2wBDAAYEBQYFBAYGBQYHBwYIChAKCgkJChQODwwQFxQYGBcUFhYaHSUfGhsjHBYWICwgIyYnKSopGR8tMC0oMCUoKSj/2wBDAQcHBwoIChMKChMoGhYaKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCj/wAARCAAIAAoDASIAAhEBAxEB/8QAFgABAQEAAAAAAAAAAAAAAAAAAAQG/8QAHhABAAEDBQEAAAAAAAAAAAAAAQIAAxEEBRIhMWH/xAAVAQEBAAAAAAAAAAAAAAAAAAAAAf/EABcRAQADAAAAAAAAAAAAAAAAAAABESH/2gAMAwEAAhEDEQA/AMNsmiu6WS3pZlJww84uPH7VrLkslvi9oPVKVKIx/9k="}},8480:(e,t,r)=>{"use strict";r.r(t),r.d(t,{assets:()=>c,contentTitle:()=>n,default:()=>A,frontMatter:()=>i,metadata:()=>g,toc:()=>l});var o=r(5893),s=r(1151),a=r(2986);const i={},n="Getting GCPs (optional)",g={id:"getting-started/getting-ground-control-points",title:"Getting GCPs (optional)",description:"It's highly recommended to use Ground Control Points (GCPs) if your images are not georeferenced. When images are not georeferenced, not using GCPs will cause your models to be improperly oriented and scaled.",source:"@site/docs/01-getting-started/02-getting-ground-control-points.md",sourceDirName:"01-getting-started",slug:"/getting-started/getting-ground-control-points",permalink:"/getting-started/getting-ground-control-points",draft:!1,unlisted:!1,tags:[],version:"current",sidebarPosition:2,frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Image Capture",permalink:"/getting-started/image-capture"},next:{title:"Creating a Task",permalink:"/getting-started/creating-a-task"}},c={},l=[{value:"Field Measuring",id:"field-measuring",level:2},{value:"Other Sources",id:"other-sources",level:2},{value:"Create a gcp_list.txt",id:"create-a-gcp_listtxt",level:2}];function d(e){const t=Object.assign({h1:"h1",admonition:"admonition",p:"p",h2:"h2",a:"a",ul:"ul",li:"li",strong:"strong",code:"code"},(0,s.ah)(),e.components);return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(t.h1,{id:"getting-gcps-optional",children:"Getting GCPs (optional)"}),"\n",(0,o.jsx)(t.admonition,{type:"note",children:(0,o.jsx)(t.p,{children:"It's highly recommended to use Ground Control Points (GCPs) if your images are not georeferenced. When images are not georeferenced, not using GCPs will cause your models to be improperly oriented and scaled."})}),"\n",(0,o.jsx)(t.p,{children:"A ground control point is a precise position measurement taken on the ground, often using a high-accuracy GNSS device. These measurements are typically collected near easily recognizable features like street corners or by positioning visible markers on the terrain."}),"\n",(0,o.jsx)(a.Z,{img:r(7290),alt:"A ground control point marker. Image courtesy of Michele M. Tobias & Alex Mandel CC BY-SA 4.0",padded:!0,smooth:!0}),"\n",(0,o.jsx)(t.p,{children:"Images containing visible markers can be tagged by establishing a mapping between the image location of the markers and their real-world positions."}),"\n",(0,o.jsx)(a.Z,{img:r(8781),alt:"A GCP marker is photographed by camera A to produce Image A. In a second step, the pixel location of the marker (1500,1000) from Image A can be manually tagged with its real world coordinates (latitude 40, longitude -85)",padded:!0}),"\n",(0,o.jsx)(t.p,{children:"The recommended number of ground control points typically ranges from 5 to 8, evenly distributed across the surveyed area. Using more than 8 ground control points doesn't necessarily improve accuracy."}),"\n",(0,o.jsx)(t.p,{children:"When the same marker is visible in multiple images, it should be tagged in each of those images. Ideally, each marker should be tagged at least 3 times. This means a marker should be captured in at least 3 images."}),"\n",(0,o.jsx)(t.p,{children:"You can also measure the GCP coordinates from other sources such as older maps of an area or LiDAR surveys."}),"\n",(0,o.jsx)(t.h2,{id:"field-measuring",children:"Field Measuring"}),"\n",(0,o.jsxs)(t.p,{children:["This requires the area to be accessible. You must take note of the coordinate system that you will be using to collect your measurements. We suggest to download a CSV template from the ",(0,o.jsx)(t.a,{href:"https://webodm.net/gcpeditor",children:"GCP Interface"})," for recording your measurements."]}),"\n",(0,o.jsx)(t.p,{children:"After placing your targets evenly across the area (preferably not at the edges), record their location using a GNSS device."}),"\n",(0,o.jsx)(t.h2,{id:"other-sources",children:"Other Sources"}),"\n",(0,o.jsxs)(t.ul,{children:["\n",(0,o.jsx)(t.li,{children:"High accuracy sources include existing maps of the same area."}),"\n",(0,o.jsx)(t.li,{children:"From a basemap (e.g. Google Maps). The accuracy of these points might not be very good, but they can still be useful if the images in your project lack georeferencing. These can also be useful if the goal is to align the results perfectly with the basemap."}),"\n"]}),"\n",(0,o.jsxs)(t.p,{children:["To create GCPs from basemaps, the ",(0,o.jsx)(t.a,{href:"https://webodm.net/gcpeditor",children:"GCP Interface"})," has a function that lets you select points on a map. You can access this function by clicking the ",(0,o.jsx)(t.strong,{children:"Create GCP File From Map"})," button."]}),"\n",(0,o.jsx)(t.h2,{id:"create-a-gcp_listtxt",children:"Create a gcp_list.txt"}),"\n",(0,o.jsxs)(t.p,{children:["After you've measured your GCP targets, read ",(0,o.jsx)(t.a,{href:"/how-to/ground-control-points",children:"How To Use Ground Control Points"})," to create a ",(0,o.jsx)(t.code,{children:"gcp_list.txt"})," file which will be used for processing."]})]})}const A=function(e={}){const{wrapper:t}=Object.assign({},(0,s.ah)(),e.components);return t?(0,o.jsx)(t,Object.assign({},e,{children:(0,o.jsx)(d,e)})):d(e)}}}]); \ No newline at end of file diff --git a/assets/js/8ddc361b.18038945.js b/assets/js/8ddc361b.18038945.js deleted file mode 100644 index d1bf327..0000000 --- a/assets/js/8ddc361b.18038945.js +++ /dev/null @@ -1 +0,0 @@ -(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[818],{8781:(e,t,o)=>{e.exports={src:{srcSet:o.p+"assets/ideal-img/gcp_marker.950a2f5.640.png 640w,"+o.p+"assets/ideal-img/gcp_marker.c8f5984.1024.png 1024w",images:[{path:o.p+"assets/ideal-img/gcp_marker.950a2f5.640.png",width:640,height:283},{path:o.p+"assets/ideal-img/gcp_marker.c8f5984.1024.png",width:1024,height:453}],src:o.p+"assets/ideal-img/gcp_marker.950a2f5.640.png",toString:function(){return o.p+"assets/ideal-img/gcp_marker.950a2f5.640.png"},placeholder:void 0,width:640,height:283},preSrc:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAECAYAAAC3OK7NAAAACXBIWXMAAFGCAABRggFYdP86AAAAlElEQVR4nD3KPQrCMACG4XeoaEEcOhUsdHR0c/EWGQSvIPQQrm5WJ4cMoSfJz9pAzxBygW4ukQj6Le/wPQAFQFmWDdD0fX+w1t611s9xHB/GGJH/vB3Q1nXdAotpmk4ppRRjfOeGEIYfXALrruty0Vqf53lO3vsvjDH+YVFV1VYIcQRWSqm9c+7mvb8aY15Syguw+QBPWkE1RVAJ0wAAAABJRU5ErkJggg=="}},7290:(e,t,o)=>{e.exports={src:{srcSet:o.p+"assets/ideal-img/ground_control_point_marker.c8b64be.640.jpg 640w,"+o.p+"assets/ideal-img/ground_control_point_marker.3374ede.1024.jpg 1024w",images:[{path:o.p+"assets/ideal-img/ground_control_point_marker.c8b64be.640.jpg",width:640,height:540},{path:o.p+"assets/ideal-img/ground_control_point_marker.3374ede.1024.jpg",width:1024,height:865}],src:o.p+"assets/ideal-img/ground_control_point_marker.c8b64be.640.jpg",toString:function(){return o.p+"assets/ideal-img/ground_control_point_marker.c8b64be.640.jpg"},placeholder:void 0,width:640,height:540},preSrc:"data:image/jpeg;base64,/9j/2wBDAAYEBQYFBAYGBQYHBwYIChAKCgkJChQODwwQFxQYGBcUFhYaHSUfGhsjHBYWICwgIyYnKSopGR8tMC0oMCUoKSj/2wBDAQcHBwoIChMKChMoGhYaKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCj/wAARCAAIAAoDASIAAhEBAxEB/8QAFgABAQEAAAAAAAAAAAAAAAAAAAQG/8QAHhABAAEDBQEAAAAAAAAAAAAAAQIAAxEEBRIhMWH/xAAVAQEBAAAAAAAAAAAAAAAAAAAAAf/EABcRAQADAAAAAAAAAAAAAAAAAAABESH/2gAMAwEAAhEDEQA/AMNsmiu6WS3pZlJww84uPH7VrLkslvi9oPVKVKIx/9k="}},8480:(e,t,o)=>{"use strict";o.r(t),o.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>h,frontMatter:()=>a,metadata:()=>c,toc:()=>g});var s=o(5893),r=o(1151),n=o(2986);const a={},i="Getting GCPs (optional)",c={id:"getting-started/getting-ground-control-points",title:"Getting GCPs (optional)",description:"It's highly recommended to use Ground Control Points (GCPs) if your images are not georeferenced. When images are not georeferenced, not using GCPs will cause your models to be improperly oriented and scaled.",source:"@site/docs/01-getting-started/02-getting-ground-control-points.md",sourceDirName:"01-getting-started",slug:"/getting-started/getting-ground-control-points",permalink:"/getting-started/getting-ground-control-points",draft:!1,unlisted:!1,tags:[],version:"current",sidebarPosition:2,frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Image Capture",permalink:"/getting-started/image-capture"},next:{title:"Creating a Task",permalink:"/getting-started/creating-a-task"}},l={},g=[{value:"Field Measuring",id:"field-measuring",level:2},{value:"Other Sources",id:"other-sources",level:2},{value:"Create a gcp_list.txt",id:"create-a-gcp_listtxt",level:2}];function d(e){const t=Object.assign({h1:"h1",admonition:"admonition",p:"p",sup:"sup",a:"a",h2:"h2",ul:"ul",li:"li",strong:"strong",code:"code",section:"section",ol:"ol"},(0,r.ah)(),e.components);return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(t.h1,{id:"getting-gcps-optional",children:"Getting GCPs (optional)"}),"\n",(0,s.jsx)(t.admonition,{type:"note",children:(0,s.jsx)(t.p,{children:"It's highly recommended to use Ground Control Points (GCPs) if your images are not georeferenced. When images are not georeferenced, not using GCPs will cause your models to be improperly oriented and scaled."})}),"\n",(0,s.jsxs)(t.p,{children:["A ground control point is a precise position measurement taken on the ground, often using high-accuracy GPS",(0,s.jsx)(t.sup,{children:(0,s.jsx)(t.a,{href:"#user-content-fn-gps",id:"user-content-fnref-gps","data-footnote-ref":!0,"aria-describedby":"footnote-label",children:"1"})}),". These measurements are typically collected near easily recognizable features like street corners or by positioning visible markers on the terrain."]}),"\n",(0,s.jsx)(n.Z,{img:o(7290),alt:"A ground control point marker. Image courtesy of Michele M. Tobias & Alex Mandel CC BY-SA 4.0",padded:!0,smooth:!0}),"\n",(0,s.jsx)(t.p,{children:"Images containing visible markers can be tagged by establishing a mapping between the image location of the markers and their real-world positions."}),"\n",(0,s.jsx)(n.Z,{img:o(8781),alt:"A GCP marker is photographed by camera A to produce Image A. In a second step, the pixel location of the marker (1500,1000) from Image A can be manually tagged with its real world coordinates (latitude 40, longitude -85)",padded:!0}),"\n",(0,s.jsx)(t.p,{children:"The recommended number of ground control points typically ranges from 5 to 8, evenly distributed across the surveyed area. Using more than 8 ground control points doesn't necessarily improve accuracy."}),"\n",(0,s.jsx)(t.p,{children:"When the same marker is visible in multiple images, it should be tagged in each of those images. Ideally, each marker should be tagged at least 3 times. This means a marker should be captured in at least 3 images."}),"\n",(0,s.jsx)(t.p,{children:"You can also measure the GCP coordinates from other sources such as older maps of an area or LiDAR surveys."}),"\n",(0,s.jsx)(t.h2,{id:"field-measuring",children:"Field Measuring"}),"\n",(0,s.jsxs)(t.p,{children:["This requires the area to be accessible. You must take note of the coordinate system that you will be using to collect your measurements. We suggest to download a CSV template from the ",(0,s.jsx)(t.a,{href:"https://webodm.net/gcpeditor",children:"GCP Interface"})," for recording your measurements."]}),"\n",(0,s.jsx)(t.p,{children:"After placing your targets evenly across the area (preferably not at the edges), record their location using a GPS device."}),"\n",(0,s.jsx)(t.h2,{id:"other-sources",children:"Other Sources"}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsx)(t.li,{children:"High accuracy sources include existing maps of the same area."}),"\n",(0,s.jsx)(t.li,{children:"From a basemap (e.g. Google Maps). The accuracy of these points might not be very good, but they can still be useful if the images in your project lack georeferencing. These can also be useful if the goal is to align the results perfectly with the basemap."}),"\n"]}),"\n",(0,s.jsxs)(t.p,{children:["To create GCPs from basemaps, the ",(0,s.jsx)(t.a,{href:"https://webodm.net/gcpeditor",children:"GCP Interface"})," has a function that lets you select points on a map. You can access this function by clicking the ",(0,s.jsx)(t.strong,{children:"Create GCP File From Map"})," button."]}),"\n",(0,s.jsx)(t.h2,{id:"create-a-gcp_listtxt",children:"Create a gcp_list.txt"}),"\n",(0,s.jsxs)(t.p,{children:["After you've measured your GCP targets, read ",(0,s.jsx)(t.a,{href:"/how-to/ground-control-points",children:"How To Use Ground Control Points"})," to create a ",(0,s.jsx)(t.code,{children:"gcp_list.txt"})," file which will be used for processing."]}),"\n",(0,s.jsxs)(t.section,{"data-footnotes":!0,className:"footnotes",children:[(0,s.jsx)(t.h2,{className:"sr-only",id:"footnote-label",children:"Footnotes"}),"\n",(0,s.jsxs)(t.ol,{children:["\n",(0,s.jsxs)(t.li,{id:"user-content-fn-gps",children:["\n",(0,s.jsxs)(t.p,{children:["We loosely use GPS as a synonym for GNSS. ",(0,s.jsx)(t.a,{href:"#user-content-fnref-gps","data-footnote-backref":!0,className:"data-footnote-backref","aria-label":"Back to content",children:"\u21a9"})]}),"\n"]}),"\n"]}),"\n"]})]})}const h=function(e={}){const{wrapper:t}=Object.assign({},(0,r.ah)(),e.components);return t?(0,s.jsx)(t,Object.assign({},e,{children:(0,s.jsx)(d,e)})):d(e)}}}]); \ No newline at end of file diff --git a/assets/js/runtime~main.3feb76b5.js b/assets/js/runtime~main.7471e9aa.js similarity index 98% rename from assets/js/runtime~main.3feb76b5.js rename to assets/js/runtime~main.7471e9aa.js index e7947c2..4e17a79 100644 --- a/assets/js/runtime~main.3feb76b5.js +++ b/assets/js/runtime~main.7471e9aa.js @@ -1 +1 @@ -(()=>{"use strict";var e,t,r,a,o,n={},c={};function f(e){var t=c[e];if(void 0!==t)return t.exports;var r=c[e]={exports:{}};return n[e].call(r.exports,r,r.exports,f),r.exports}f.m=n,e=[],f.O=(t,r,a,o)=>{if(!r){var n=1/0;for(d=0;d=o)&&Object.keys(f.O).every((e=>f.O[e](r[b])))?r.splice(b--,1):(c=!1,o0&&e[d-1][2]>o;d--)e[d]=e[d-1];e[d]=[r,a,o]},f.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return f.d(t,{a:t}),t},r=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,f.t=function(e,a){if(1&a&&(e=this(e)),8&a)return e;if("object"==typeof e&&e){if(4&a&&e.__esModule)return e;if(16&a&&"function"==typeof e.then)return e}var o=Object.create(null);f.r(o);var n={};t=t||[null,r({}),r([]),r(r)];for(var c=2&a&&e;"object"==typeof c&&!~t.indexOf(c);c=r(c))Object.getOwnPropertyNames(c).forEach((t=>n[t]=()=>e[t]));return n.default=()=>e,f.d(o,n),o},f.d=(e,t)=>{for(var r in t)f.o(t,r)&&!f.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},f.f={},f.e=e=>Promise.all(Object.keys(f.f).reduce(((t,r)=>(f.f[r](e,t),t)),[])),f.u=e=>"assets/js/"+({53:"935f2afb",68:"e1835986",85:"1f391b9e",88:"193334ab",102:"8555311e",103:"a1cc567b",109:"683233c0",303:"cc01dae5",368:"a94703ab",414:"393be207",518:"a7bd4aaa",545:"a7f6eb5f",592:"common",609:"73da4eb8",621:"57ea8382",626:"8ab516b5",661:"5e95c892",663:"e57fab61",692:"5ee0f748",712:"14006581",817:"14eb3368",818:"8ddc361b",898:"c19f478c",918:"17896441",920:"1a4e3797"}[e]||e)+"."+{53:"0bd07774",68:"42a402e0",85:"05e55bf7",88:"0488e66c",102:"ad1d7e34",103:"e89d2d1e",109:"472ee8f4",137:"7c0d646d",153:"70ae7b7e",303:"0399459c",368:"99f88e1c",414:"0e2c8139",426:"eadea3d3",518:"3b2c0fb8",545:"0e4ca73c",592:"36e15280",609:"1718b75c",621:"65efb22a",626:"777efe00",661:"ac8a99e5",663:"97cba314",692:"87303dfd",712:"3ebf18b9",817:"d00b5ba7",818:"18038945",868:"505db22f",898:"16ffc49e",918:"4e1a5071",920:"a1840d4f",945:"9446977c"}[e]+".js",f.miniCssF=e=>{},f.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),f.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),a={},o="docs:",f.l=(e,t,r,n)=>{if(a[e])a[e].push(t);else{var c,b;if(void 0!==r)for(var i=document.getElementsByTagName("script"),d=0;d{c.onerror=c.onload=null,clearTimeout(s);var o=a[e];if(delete a[e],c.parentNode&&c.parentNode.removeChild(c),o&&o.forEach((e=>e(r))),t)return t(r)},s=setTimeout(l.bind(null,void 0,{type:"timeout",target:c}),12e4);c.onerror=l.bind(null,c.onerror),c.onload=l.bind(null,c.onload),b&&document.head.appendChild(c)}},f.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},f.p="/",f.gca=function(e){return e={14006581:"712",17896441:"918","935f2afb":"53",e1835986:"68","1f391b9e":"85","193334ab":"88","8555311e":"102",a1cc567b:"103","683233c0":"109",cc01dae5:"303",a94703ab:"368","393be207":"414",a7bd4aaa:"518",a7f6eb5f:"545",common:"592","73da4eb8":"609","57ea8382":"621","8ab516b5":"626","5e95c892":"661",e57fab61:"663","5ee0f748":"692","14eb3368":"817","8ddc361b":"818",c19f478c:"898","1a4e3797":"920"}[e]||e,f.p+f.u(e)},(()=>{var e={552:0,532:0};f.f.j=(t,r)=>{var a=f.o(e,t)?e[t]:void 0;if(0!==a)if(a)r.push(a[2]);else if(/^5[35]2$/.test(t))e[t]=0;else{var o=new Promise(((r,o)=>a=e[t]=[r,o]));r.push(a[2]=o);var n=f.p+f.u(t),c=new Error;f.l(n,(r=>{if(f.o(e,t)&&(0!==(a=e[t])&&(e[t]=void 0),a)){var o=r&&("load"===r.type?"missing":r.type),n=r&&r.target&&r.target.src;c.message="Loading chunk "+t+" failed.\n("+o+": "+n+")",c.name="ChunkLoadError",c.type=o,c.request=n,a[1](c)}}),"chunk-"+t,t)}},f.O.j=t=>0===e[t];var t=(t,r)=>{var a,o,n=r[0],c=r[1],b=r[2],i=0;if(n.some((t=>0!==e[t]))){for(a in c)f.o(c,a)&&(f.m[a]=c[a]);if(b)var d=b(f)}for(t&&t(r);i{"use strict";var e,t,r,a,o,n={},c={};function f(e){var t=c[e];if(void 0!==t)return t.exports;var r=c[e]={exports:{}};return n[e].call(r.exports,r,r.exports,f),r.exports}f.m=n,e=[],f.O=(t,r,a,o)=>{if(!r){var n=1/0;for(d=0;d=o)&&Object.keys(f.O).every((e=>f.O[e](r[b])))?r.splice(b--,1):(c=!1,o0&&e[d-1][2]>o;d--)e[d]=e[d-1];e[d]=[r,a,o]},f.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return f.d(t,{a:t}),t},r=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,f.t=function(e,a){if(1&a&&(e=this(e)),8&a)return e;if("object"==typeof e&&e){if(4&a&&e.__esModule)return e;if(16&a&&"function"==typeof e.then)return e}var o=Object.create(null);f.r(o);var n={};t=t||[null,r({}),r([]),r(r)];for(var c=2&a&&e;"object"==typeof c&&!~t.indexOf(c);c=r(c))Object.getOwnPropertyNames(c).forEach((t=>n[t]=()=>e[t]));return n.default=()=>e,f.d(o,n),o},f.d=(e,t)=>{for(var r in t)f.o(t,r)&&!f.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},f.f={},f.e=e=>Promise.all(Object.keys(f.f).reduce(((t,r)=>(f.f[r](e,t),t)),[])),f.u=e=>"assets/js/"+({53:"935f2afb",68:"e1835986",85:"1f391b9e",88:"193334ab",102:"8555311e",103:"a1cc567b",109:"683233c0",303:"cc01dae5",368:"a94703ab",414:"393be207",518:"a7bd4aaa",545:"a7f6eb5f",592:"common",609:"73da4eb8",621:"57ea8382",626:"8ab516b5",661:"5e95c892",663:"e57fab61",692:"5ee0f748",712:"14006581",817:"14eb3368",818:"8ddc361b",898:"c19f478c",918:"17896441",920:"1a4e3797"}[e]||e)+"."+{53:"0bd07774",68:"42a402e0",85:"05e55bf7",88:"0488e66c",102:"ad1d7e34",103:"e89d2d1e",109:"472ee8f4",137:"7c0d646d",153:"70ae7b7e",303:"0399459c",368:"99f88e1c",414:"0e2c8139",426:"eadea3d3",518:"3b2c0fb8",545:"0e4ca73c",592:"36e15280",609:"1718b75c",621:"65efb22a",626:"777efe00",661:"ac8a99e5",663:"97cba314",692:"87303dfd",712:"3ebf18b9",817:"d00b5ba7",818:"166adf1c",868:"505db22f",898:"16ffc49e",918:"4e1a5071",920:"a1840d4f",945:"9446977c"}[e]+".js",f.miniCssF=e=>{},f.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),f.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),a={},o="docs:",f.l=(e,t,r,n)=>{if(a[e])a[e].push(t);else{var c,b;if(void 0!==r)for(var i=document.getElementsByTagName("script"),d=0;d{c.onerror=c.onload=null,clearTimeout(s);var o=a[e];if(delete a[e],c.parentNode&&c.parentNode.removeChild(c),o&&o.forEach((e=>e(r))),t)return t(r)},s=setTimeout(l.bind(null,void 0,{type:"timeout",target:c}),12e4);c.onerror=l.bind(null,c.onerror),c.onload=l.bind(null,c.onload),b&&document.head.appendChild(c)}},f.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},f.p="/",f.gca=function(e){return e={14006581:"712",17896441:"918","935f2afb":"53",e1835986:"68","1f391b9e":"85","193334ab":"88","8555311e":"102",a1cc567b:"103","683233c0":"109",cc01dae5:"303",a94703ab:"368","393be207":"414",a7bd4aaa:"518",a7f6eb5f:"545",common:"592","73da4eb8":"609","57ea8382":"621","8ab516b5":"626","5e95c892":"661",e57fab61:"663","5ee0f748":"692","14eb3368":"817","8ddc361b":"818",c19f478c:"898","1a4e3797":"920"}[e]||e,f.p+f.u(e)},(()=>{var e={552:0,532:0};f.f.j=(t,r)=>{var a=f.o(e,t)?e[t]:void 0;if(0!==a)if(a)r.push(a[2]);else if(/^5[35]2$/.test(t))e[t]=0;else{var o=new Promise(((r,o)=>a=e[t]=[r,o]));r.push(a[2]=o);var n=f.p+f.u(t),c=new Error;f.l(n,(r=>{if(f.o(e,t)&&(0!==(a=e[t])&&(e[t]=void 0),a)){var o=r&&("load"===r.type?"missing":r.type),n=r&&r.target&&r.target.src;c.message="Loading chunk "+t+" failed.\n("+o+": "+n+")",c.name="ChunkLoadError",c.type=o,c.request=n,a[1](c)}}),"chunk-"+t,t)}},f.O.j=t=>0===e[t];var t=(t,r)=>{var a,o,n=r[0],c=r[1],b=r[2],i=0;if(n.some((t=>0!==e[t]))){for(a in c)f.o(c,a)&&(f.m[a]=c[a]);if(b)var d=b(f)}for(t&&t(r);i Creating a Task | WebODM Lightning - + diff --git a/getting-started/getting-ground-control-points/index.html b/getting-started/getting-ground-control-points/index.html index 78ad885..0a7bc00 100644 --- a/getting-started/getting-ground-control-points/index.html +++ b/getting-started/getting-ground-control-points/index.html @@ -4,13 +4,13 @@ Getting GCPs (optional) | WebODM Lightning - +

Getting GCPs (optional)

note

It's highly recommended to use Ground Control Points (GCPs) if your images are not georeferenced. When images are not georeferenced, not using GCPs will cause your models to be improperly oriented and scaled.

-

A ground control point is a precise position measurement taken on the ground, often using high-accuracy GPS1. These measurements are typically collected near easily recognizable features like street corners or by positioning visible markers on the terrain.

+

A ground control point is a precise position measurement taken on the ground, often using a high-accuracy GNSS device. These measurements are typically collected near easily recognizable features like street corners or by positioning visible markers on the terrain.

A ground control point marker. Image courtesy of Michele M. Tobias & Alex Mandel CC BY-SA 4.0

Images containing visible markers can be tagged by establishing a mapping between the image location of the markers and their real-world positions.

A GCP marker is photographed by camera A to produce Image A. In a second step, the pixel location of the marker (1500,1000) from Image A can be manually tagged with its real world coordinates (latitude 40, longitude -85)
@@ -19,7 +19,7 @@

You can also measure the GCP coordinates from other sources such as older maps of an area or LiDAR surveys.

Field Measuring

This requires the area to be accessible. You must take note of the coordinate system that you will be using to collect your measurements. We suggest to download a CSV template from the GCP Interface for recording your measurements.

-

After placing your targets evenly across the area (preferably not at the edges), record their location using a GPS device.

+

After placing your targets evenly across the area (preferably not at the edges), record their location using a GNSS device.

Other Sources

  • High accuracy sources include existing maps of the same area.
  • @@ -27,13 +27,6 @@

To create GCPs from basemaps, the GCP Interface has a function that lets you select points on a map. You can access this function by clicking the Create GCP File From Map button.

Create a gcp_list.txt

-

After you've measured your GCP targets, read How To Use Ground Control Points to create a gcp_list.txt file which will be used for processing.

-

Footnotes

-
    -
  1. -

    We loosely use GPS as a synonym for GNSS.

    -
  2. -
-
+

After you've measured your GCP targets, read How To Use Ground Control Points to create a gcp_list.txt file which will be used for processing.

\ No newline at end of file diff --git a/getting-started/image-capture/index.html b/getting-started/image-capture/index.html index 7f59241..c3080cd 100644 --- a/getting-started/image-capture/index.html +++ b/getting-started/image-capture/index.html @@ -4,7 +4,7 @@ Image Capture | WebODM Lightning - + diff --git a/how-to/calculate-volumes/index.html b/how-to/calculate-volumes/index.html index 6ba7f28..68ca582 100644 --- a/how-to/calculate-volumes/index.html +++ b/how-to/calculate-volumes/index.html @@ -4,7 +4,7 @@ Calculate Volumes | WebODM Lightning - + diff --git a/how-to/ground-control-points/index.html b/how-to/ground-control-points/index.html index 1dc9dc7..20e70fa 100644 --- a/how-to/ground-control-points/index.html +++ b/how-to/ground-control-points/index.html @@ -4,7 +4,7 @@ Use Ground Control Points | WebODM Lightning - + diff --git a/how-to/image-masks/index.html b/how-to/image-masks/index.html index 8cbb913..35b1384 100644 --- a/how-to/image-masks/index.html +++ b/how-to/image-masks/index.html @@ -4,7 +4,7 @@ Use Image Masks | WebODM Lightning - + diff --git a/how-to/index.html b/how-to/index.html index c8b66d6..04e1c94 100644 --- a/how-to/index.html +++ b/how-to/index.html @@ -4,7 +4,7 @@ How To | WebODM Lightning - + diff --git a/how-to/share-results/index.html b/how-to/share-results/index.html index fef9c62..a138132 100644 --- a/how-to/share-results/index.html +++ b/how-to/share-results/index.html @@ -4,7 +4,7 @@ Share Results | WebODM Lightning - + diff --git a/index.html b/index.html index e0032f3..1c7f2aa 100644 --- a/index.html +++ b/index.html @@ -4,7 +4,7 @@ Getting Started | WebODM Lightning - + diff --git a/markdown-page/index.html b/markdown-page/index.html index 68c5c58..1ef2075 100644 --- a/markdown-page/index.html +++ b/markdown-page/index.html @@ -4,7 +4,7 @@ Markdown page example | WebODM Lightning - + diff --git a/references/create-successful-maps/index.html b/references/create-successful-maps/index.html index 30a1e67..ccd29ab 100644 --- a/references/create-successful-maps/index.html +++ b/references/create-successful-maps/index.html @@ -4,7 +4,7 @@ Create Successful Maps | WebODM Lightning - + diff --git a/references/index.html b/references/index.html index 03eec59..f44e2b6 100644 --- a/references/index.html +++ b/references/index.html @@ -4,7 +4,7 @@ References | WebODM Lightning - + diff --git a/references/task-options/index.html b/references/task-options/index.html index d12a152..0f63b96 100644 --- a/references/task-options/index.html +++ b/references/task-options/index.html @@ -4,7 +4,7 @@ Task Options | WebODM Lightning - + diff --git a/search/index.html b/search/index.html index 9141094..88b34c5 100644 --- a/search/index.html +++ b/search/index.html @@ -4,7 +4,7 @@ Search the documentation | WebODM Lightning - +