1"use strict";(self.webpackChunksimplemap_github_io=self.webpackChunksimplemap_github_io||[]).push([[7366],{3905:(e,t,a)=>{a.d(t,{Zo:()=>d,kt:()=>g});var n=a(7294);function i(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function r(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function o(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?r(Object(a),!0).forEach((function(t){i(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):r(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function l(e,t){if(null==e)return{};var a,n,i=function(e,t){if(null==e)return{};var a,n,i={},r=Object.keys(e);for(n=0;n<r.length;n++)a=r[n],t.indexOf(a)>=0||(i[a]=e[a]);return i}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(n=0;n<r.length;n++)a=r[n],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(i[a]=e[a])}return i}var s=n.createContext({}),p=function(e){var t=n.useContext(s),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},d=function(e){var t=p(e.components);return n.createElement(s.Provider,{value:t},e.children)},m="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},u=n.forwardRef((function(e,t){var a=e.components,i=e.mdxType,r=e.originalType,s=e.parentName,d=l(e,["components","mdxType","originalType","parentName"]),m=p(a),u=i,g=m["".concat(s,".").concat(u)]||m[u]||c[u]||r;return a?n.createElement(g,o(o({ref:t},d),{},{components:a})):n.createElement(g,o({ref:t},d))}));function g(e,t){var a=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var r=a.length,o=new Array(r);o[0]=u;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[m]="string"==typeof e?e:i,o[1]=l;for(var p=2;p<r;p++)o[p]=a[p];return n.createElement.apply(null,o)}return n.createElement.apply(null,a)}u.displayName="MDXCreateElement"},9336:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>s,contentTitle:()=>o,default:()=>c,frontMatter:()=>r,metadata:()=>l,toc:()=>p});var n=a(7462),i=(a(7294),a(3905));const r={id:"precision_agriculture",title:"Precision Agriculture",sidebar_label:"Precision Agriculture",sidebar_position:2},o=void 0,l={unversionedId:"development/precision_agriculture",id:"development/precision_agriculture",title:"Precision Agriculture",description:"Remote sensing has as one of its objectives, to be able to provide useful information in the shortest possible time for decision-making. Therefore, it is considered a fundamental tool in precision agriculture, since it allows the monitoring of crops throughout the growing season, providing timely information as a diagnostic evaluation. This task must identify the factor that operates in a restrictive manner and decide, in a timely manner, on corrective agronomic intervention.",source:"@site/docs/development/precision-agriculture.md",sourceDirName:"development",slug:"/development/precision_agriculture",permalink:"/docs/development/precision_agriculture",draft:!1,editUrl:"https://github.com/RentadroneCL/rentadronecl.github.io/tree/main/docs/development/precision-agriculture.md",tags:[],version:"current",sidebarPosition:2,frontMatter:{id:"precision_agriculture",title:"Precision Agriculture",sidebar_label:"Precision Agriculture",sidebar_position:2},sidebar:"tutorialSidebar",previous:{title:"Photovoltaic Fault Detector",permalink:"/docs/development/detection_models"},next:{title:"Models Deployment",permalink:"/docs/development/deployment"}},s={},p=[{value:"Quickstart",id:"quickstart",level:2},{value:"Before You Begin: Python 3.6",id:"before-you-begin-python-36",level:3},{value:"Install GDAL/OGR",id:"install-gdalogr",level:3},{value:"Install GDAL for Python",id:"install-gdal-for-python",level:3},{value:"Multispectral bands",id:"multispectral-bands",level:2},{value:"Vegetation index calculations",id:"vegetation-index-calculations",level:2},{value:"Defining plant health status labels",id:"defining-plant-health-status-labels",level:2},{value:"Limitations of this solution",id:"limitations-of-this-solution",level:2},{value:"Methodology",id:"methodology",level:2},{value:"Data Preprocessing",id:"data-preprocessing",level:2},{value:"Input generation to create multispectral orthomosaics",id:"input-generation-to-create-multispectral-orthomosaics",level:3},{value:"Steps in Open Drone Map (using the WebODM interface):",id:"steps-in-open-drone-map-using-the-webodm-interface",level:4},{value:"Steps in QGIS:",id:"steps-in-qgis",level:3},{value:"example of the utility",id:"example-of-the-utility",level:2},{value:"Example of an output data",id:"example-of-an-output-data",level:2}],d={toc:p},m="wrapper";
1function c(e){let{components:t,...r}=e;return(0,i.kt)(m,(0,n.Z)({},d,r,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("p",null,"Remote sensing has as one of its objectives, to be able to provide useful information in the shortest possible time for decision-making. Therefore, it is considered a fundamental tool in precision agriculture, since it allows the monitoring of crops throughout the growing season, providing timely information as a diagnostic evaluation. This task must identify the factor that operates in a restrictive manner and decide, in a timely manner, on corrective agronomic intervention."),(0,i.kt)("p",null,"A promising approach to this is one that integrates data derived from temporal, mosaic, multispectral, and thermal imaging. Both processes allow us to obtain products such as: Thermal maps and Normalized vegetation index maps; These products allow us to identify stress zones which serve as support in agricultural management tasks."),(0,i.kt)("p",null,"That is why our objective is to develop an Open Source platform, distributed on a GitHub platform, that is capable of generating local calculations and mapping (plant by plant) of most important vegetation indices, through the processing of images taken with UAV."),(0,i.kt)("p",null,"Key words: Vegetation index, phenological status, agricultural management, Open Source platform."),(0,i.kt)("h2",{id:"quickstart"},"Quickstart"),(0,i.kt)("blockquote",null,(0,i.kt)("p",{parentName:"blockquote"},"This installation method corresponds to Debian based systems, you must find the proper libs and requirements based on your distro base that can be different.")),(0,i.kt)("h3",{id:"before-you-begin-python-36"},"Before You Begin: Python 3.6"),(0,i.kt)("p",null,"If you are installing the GDAL/OGR packages into a virtual environment based on Python 3.6, you may need to install the python3.6-dev package."),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-bash"},"sudo apt-get install python3.6-dev\n")),(0,i.kt)("h3",{id:"install-gdalogr"},"Install GDAL/OGR"),(0,i.kt)("p",null,"install the gdal-bin package (this should automatically grab any necessary dependencies, including at least the relevant libgdal version)."),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-bash"},"sudo apt-get install gdal-bin\n")),(0,i.kt)("p",null,"To verify the installation, you can run ",(0,i.kt)("inlineCode",{parentName:"p"},"ogrinfo --version"),"."),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-bash"},"ogrinfo --version\n")),(0,i.kt)("h3",{id:"install-gdal-for-python"},"Install GDAL for Python"),(0,i.kt)("p",null,"Before installing the ",(0,i.kt)("a",{parentName:"p",href:"https://pypi.org/project/GDAL/"},"GDAL Python libraries"),", you\u2019ll need to install the GDAL development libraries."),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-bash"},"sudo apt-get install libgdal-dev libspatialindex-dev\n")),(0,i.kt)("blockquote",null,(0,i.kt)("p",{parentName:"blockquote"},"In order to avoid errors of missing requirement when you try to install with pip package-management system, the ",(0,i.kt)("a",{parentName:"p",href:"https://pypi.org/project/GDAL/"},"GDAL Python libraries")," version must coincide with the system installed version.")),(0,i.kt)("h2",{id:"multispectral-bands"},"Multispectral bands"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Table N\xba 1:")," Multispectral band wavelengths available."),(0,i.kt)("table",null,(0,i.kt)("thead",{parentName:"table"},(0,i.kt)("tr",{parentName:"thead"},(0,i.kt)("th",{parentName:"tr",align:null},"Band"),(0,i.kt)("th",{parentName:"tr",align:null},"Wavelength"))),(0,i.kt)("tbody",{parentName:"table"},(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:null},"Blue"),(0,i.kt)("td",{parentName:"tr",align:null},"450 nm")),(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:null},"Green"),(0,i.kt)("td",{parentName:"tr",align:null},"560 nm")),(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:null},"Red"),(0,i.kt)("td",{parentName:"tr",align:null},"650 nm")),(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:null},"Red Edge"),(0,i.kt)("td",{parentName:"tr",align:null},"730 nm")),(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:null},"Near infrared"),(0,i.kt)("td",{parentName:"tr",align:null},"840 nm")))),(0,i.kt)("h2",{id:"vegetation-index-calculations"},"Vegetation index calculations"),(0,i.kt)("p",null,"The following spectral index can be generated from these lengths (Table N\xba 2)."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Table N\xba2:")," Spectral index generated from the available wavelengths of camera on board UAV."),(0,i.kt)("table",null,(0,i.kt)("thead",{parentName:"table"},(0,i.kt)("tr",{parentName:"thead"},(0,i.kt)("th",{parentName:"tr",align:null},"\xcdndex"),(0,i.kt)("th",{parentName:"tr",align:null},"Equation"))),(0,i.kt)("tbody",{parentName:"table"},(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:null},"Normalised Difference Index"),(0,i.kt)("td",{parentName:"tr",align:null},"NDVI = ( Rnir- Rr)/(Rnir+Rr)")),(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:null},"Green Normalized Difference Vegetation Index"),(0,i.kt)("td",{parentName:"tr",align:null},"GNDVI = (Rnir - Rgreen)/(Rnir + Rgreen)")),(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:null},"Normalised Difference Red Edge"),(0,i.kt)("td",{parentName:"tr",align:null},"NDRE = (Rnir - Red edge)/ (Red edge + NIR)")),(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:null},"Leaf Chlorophyll Index"),(0,i.kt)("td",{parentName:"tr",align:null},"LCI = (Rnir - Red edge)/(Rnir + Red)")),(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:null},"Optimized Soil Adjusted Vegetation Index"),(0,i.kt)("td",{parentName:"tr",align:null},"OSAVI = (Nir-Red)/(Nir+Red+0.16")))),(0,i.kt)("h2",{id:"defining-plant-health-status-labels"},"Defining plant health status labels"),(0,i.kt)("table",null,(0,i.kt)("thead",{parentName:"table"},(0,i.kt)("tr",{parentName:"thead"},(0,i.kt)("th",{parentName:"tr",align:null}),(0,i.kt)("th",{parentName:"tr",align:null},"NDVI 1"),(0,i.kt)("th",{parentName:"tr",align:null},"NDVI 1 < NDVI 2"))),(0,i.kt)("tbody",{parentName:"table"},(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:null},"Rank"),(0,i.kt)("td",{parentName:"tr",align:null},"Description"),(0,i.kt)("td",{parentName:"tr",align:null},"Description")),(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:null},"-1 to 0"),(0,i.kt)("td",{parentName:"tr",align:null},"Water, Bare Soils"),(0,i.kt)("td",{parentName:"tr",align:null},"Water, Bare Soils")),(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:null},"0 to 0,15"),(0,i.kt)("td",{parentName:"tr",align:null},"Soils with sparse, sparse vegetation or crops in the initial stage of development (sprouting)"),(0,i.kt)("td",{parentName:"tr",align:null},"Poor vigor, weak plants")),(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:null},"0,15 to 0,30"),(0,i.kt)("td",{parentName:"tr",align:null},"Plants in intermediate stage of development (leaf production)"),(0,i.kt)("td",{parentName:"tr",align:null},"Bad leaf / flower ratio")),(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:null},"0,30 to 0,45"),(0,i.kt)("td",{parentName:"tr",align:null},"Plants in intermediate stage of development (leaf production)"),(0,i.kt)("td",{parentName:"tr",align:null},"Bad flower / fruit ratio; fruits with low sugar content, lack of color in the fruits, fruits of low caliber")),(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:null},"0,45 to 0,60"),(0,i.kt)("td",{parentName:"tr",align:null},"Plants in the adult stage or phase (fruit production)"),(0,i.kt)("td",{parentName:"tr",align:null},"Bad flower / fruit ratio; fruits with low sugar content, lack of color in the fruits, fruits of low caliber")),(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:null},"0,60 to >0,80"),(0,i.kt)("td",{parentName:"tr",align:null},"Plants in the adult stage or stage (Fruit maturity)"),(0,i.kt)("td",{parentName:"tr",align:null},"Bad flower / fruit ratio; fruits with low sugar content, lack of color in the fruits, fruits of low caliber")))),(0,i.kt)("h2",{id:"limitations-of-this-solution"},"Limitations of this solution"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"The multispectral orthomosaics have to be built before using the tool."),(0,i.kt)("li",{parentName:"ul"},"Charge the RGB bands separately."),(0,i.kt)("li",{parentName:"ul"},"Must know the format of the bands you will be using and the metadata of each image (tiff, GeoTiff)."),(0,i.kt)("li",{parentName:"ul"},"In this case the methodology and support only will be for Phantom 4 RTK Multispectral user.")),(0,i.kt)("h2",{id:"methodology"},"Methodology"),(0,i.kt)("p",null,"To complete the main objective we consider following diagram methodology (Image N\xba1). Was proposed, which reflects the process of generating the information necessary for decision- making during the management of a production cycles of a crop in general."),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"Process_Diag",src:a(8087).Z,width:"2065",height:"1286"})),(0,i.kt)("p",null,"Several diagrams of sub- processes were also proposed.\n1- To asse
1ss the growth status of plants. Image N\xba2, NDVI multi-time series."),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"Diagrama2",src:a(4051).Z,width:"1698",height:"1295"})),(0,i.kt)("h2",{id:"data-preprocessing"},"Data Preprocessing"),(0,i.kt)("h3",{id:"input-generation-to-create-multispectral-orthomosaics"},"Input generation to create multispectral orthomosaics"),(0,i.kt)("p",null,"To generate the input of the Precision Agriculture algorithms of ",(0,i.kt)("a",{parentName:"p",href:"https://rentadrone.cl"},"Rentadrone.cl"),"., Which are orthomosaic of different multispectral bands, the following steps must be carried out in two well-known Open Source softwares. These are ",(0,i.kt)("a",{parentName:"p",href:"https://github.com/OpenDroneMap"},"Open Drone Map")," and ",(0,i.kt)("a",{parentName:"p",href:"https://github.com/qgis"},"QGIS"),"."),(0,i.kt)("h4",{id:"steps-in-open-drone-map-using-the-webodm-interface"},"Steps in Open Drone Map ",(0,i.kt)("a",{parentName:"h4",href:"https://docs.webodm.org/#:~:text=WebODM%20is%20a%20free%2C%20user,software%20like%20QGIS%20or%20AutoCAD."},"(using the WebODM interface)"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},"Add Project"),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},"Set project NAME: \u201cSector_Name\u201d\nDescription: Spectral Channel (Green)\n",(0,i.kt)("img",{alt:"Spectral Channel (Green)",src:a(6400).Z,width:"657",height:"364"})),(0,i.kt)("p",{parentName:"li"},"Select Images: to generate the orthomosaic of each channel (Green in this example) it is necessary to select from the dataset only of the images ending in the number corresponding to each channel image. This is number 2 for this example: DJI_0022, DJI_0032, DJI_0032. You can filter using the expression * 2.tif in the corresponding directory window.")))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},"Select Images: to generate the orthomosaic of each channel (Green in this example) it is necessary to select from the dataset only of the images ending in the number corresponding to each channel image. This is number 2 for this example: DJI_0022, DJI_0032, DJI_0032. You can filter using the expression * 2.tif in the corresponding directory window."),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"For UAV DJI P4 Multispectral, he numeric endings of the files per channel are described below:",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"DJI_0020.JPG (RGB)"),(0,i.kt)("li",{parentName:"ul"},"DJI_0021.TIFF (Blue)"),(0,i.kt)("li",{parentName:"ul"},"DJI_0022.TIFF (Green)"),(0,i.kt)("li",{parentName:"ul"},"DJI_0023.TIFF (Red)"),(0,i.kt)("li",{parentName:"ul"},"DJI_0024.TIFF (RedEdge)"),(0,i.kt)("li",{parentName:"ul"},"DJI_0025TIFF (NIR)"))))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},"Then, we select all the filtered images and upload to our project."),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"In this example we have loaded 172 images to generate the orthophoto that make up the Green channel.\n",(0,i.kt)("img",{alt:"File explorer",src:a(5973).Z,width:"464",height:"338"}),(0,i.kt)("blockquote",{parentName:"li"},(0,i.kt)("p",{parentName:"blockquote"},'In "Options" we activate ',(0,i.kt)("inlineCode",{parentName:"p"},"ortophoto-png")," and we give it save.")))),(0,i.kt)("p",{parentName:"li"},(0,i.kt)("img",{alt:"Ortophoto",src:a(2084).Z,width:"666",height:"372"})),(0,i.kt)("blockquote",{parentName:"li"},(0,i.kt)("p",{parentName:"blockquote"},"Activate ",(0,i.kt)("inlineCode",{parentName:"p"},"Start Processing")," to generate the orthophoto of the Green channel. This process must be repeated for the generation of each spectral channel.")),(0,i.kt)("p",{parentName:"li"},(0,i.kt)("img",{alt:"Start processing",src:a(8007).Z,width:"686",height:"383"}))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},"Extraction of the file already generated in this case a georeferenced orthophoto."),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"After completing the process, we display the ",(0,i.kt)("inlineCode",{parentName:"li"},"1 Task")," and download it in ",(0,i.kt)("inlineCode",{parentName:"li"},"(GeoTiff)"),".\n",(0,i.kt)("img",{alt:"1 Task",src:a(1284).Z,width:"668",height:"376"}),"\nThe resulting file is named ",(0,i.kt)("inlineCode",{parentName:"li"},"odm_orthophoto.tiff"),", it only remains to rename the file in this case with the termination of the corresponding channel, in this case the image is the Blue channel. ",(0,i.kt)("inlineCode",{parentName:"li"},"odm_orthophoto_(Project)_blue.tiff")," and take it to the location provided for the project.\n",(0,i.kt)("img",{alt:"Blue Tiff",src:a(969).Z,width:"569",height:"233"}))))),(0,i.kt)("h3",{id:"steps-in-qgis"},"Steps in QGIS:"),(0,i.kt)("p",null,"After generating the RGB orthomosaics and each of the multispectral bands: Red Edge, NIR, Red, Green, Blue, we use ",(0,i.kt)("a",{parentName:"p",href:"https://github.com/qgis"},"QGIS")," for their correct alignment using the Georeferencer tool, for which we have to identify distinguishable elements in both RGB orthomosaic as in each multispectral orthomosaic located on the contour of our area of interest, (example Image a) for greater precision of this process, marks or targets could be placed on the ground."),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},"Control point distribution in RGB orthomosaic\n",(0,i.kt)("img",{alt:"Control point",src:a(4476).Z,width:"665",height:"625"}))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},"Control point for multispectral band alignment.\n",(0,i.kt)("img",{alt:"Multispectral ban",src:a(4240).Z,width:"721",height:"481"})))),(0,i.kt)("p",null,"After identifying the control points in each image we will use QGIS to align the images using the Georeferencer tool shown below.\n",(0,i.kt)("img",{alt:"Gcp qgis",src:a(9326).Z,width:"671",height:"408"})),(0,i.kt)("p",null,"Using the Georeferencer we will be able to generate the GCPs in the RGB orthomosaic that we will use as a reference for each multispectral orthomosaic to align it to the RGB."),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"step 1. open the RGB orthomosaic from the Georeferencer tool."),(0,i.kt)("li",{parentName:"ul"},"step 2. identify and create the GCPs in RGB"),(0,i.kt)("li",{parentName:"ul"},"step 3. save the GCPs in .points format from the options window (image c)"),(0,i.kt)("li",{parentName:"ul"},"step 4. Open each multispectral band mosaic from the georeferencer, load the GCPs and adjust to each point separately."),(0,i.kt)("li",{parentName:"ul"},"step 5. save each orthomosaic.")),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"Orthomosaic",src:a(8663).Z,width:"720",height:"437"})),(0,i.kt)("p",null,"Finally, after georeferencing each Orthomosaic, the input data will be ready for the processes of c
1alculation and mapping of vegetation indices using Rentadrone.cl's Precision Agriculture algorithms."),(0,i.kt)("h2",{id:"example-of-the-utility"},"example of the utility"),(0,i.kt)("p",null,"The geodata underlying the map are generate with ",(0,i.kt)("a",{parentName:"p",href:"https://www.openstreetmap.org/"},"OpenStreetMap (OSM)")),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"Images",src:a(4416).Z,width:"1273",height:"540"})),(0,i.kt)("h2",{id:"example-of-an-output-data"},"Example of an output data"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},(0,i.kt)("em",{parentName:"strong"},"GeoTIFF georeferencing information"))),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-json"},'{\n "SourceFile": "/tmp/phpdiUnOQ",\n "ExifTool:ExifToolVersion": 10.8,\n "System:FileName": "phpdiUnOQ",\n "System:Directory": "/tmp",\n "System:FileSize": 81173090,\n "System:FileModifyDate": "2020:12:07 01:20:48+00:00",\n "System:FileAccessDate": "2020:12:07 01:20:49+00:00",\n "System:FileInodeChangeDate": "2020:12:07 01:20:48+00:00",\n "System:FilePermissions": 600,\n "File:FileType": "TIFF",\n "File:FileTypeExtension": "TIF",\n "File:MIMEType": "image/tiff",\n "File:ExifByteOrder": "II",\n "IFD0:ImageWidth": 5931,\n "IFD0:ImageHeight": 5526,\n "IFD0:BitsPerSample": 32,\n "IFD0:Compression": 5,\n "IFD0:PhotometricInterpretation": 1,\n "IFD0:SamplesPerPixel": 1,\n "IFD0:PlanarConfiguration": 1,\n "IFD0:Predictor": 1,\n "IFD0:TileWidth": 256,\n "IFD0:TileLength": 256,\n "IFD0:TileOffsets": "(Binary data 4585 bytes, use -b option to extract)",\n "IFD0:TileByteCounts": "(Binary data 3237 bytes, use -b option to extract)",\n "IFD0:SampleFormat": 3,\n "IFD0:PixelScale": "5.90674417821901e-07 4.95878410333717e-07 0",\n "IFD0:ModelTiePoint": "0 0 0 -71.4437256820205 -33.3243854159711 0",\n "IFD0:GDALNoData": "nan",\n "GeoTiff:GeoTiffVersion": "1.1.0",\n "GeoTiff:GTModelType": 2,\n "GeoTiff:GTRasterType": 1,\n "GeoTiff:GeographicType": 4326,\n "GeoTiff:GeogCitation": "WGS 84",\n "GeoTiff:GeogAngularUnits": 9102,\n "GeoTiff:GeogSemiMajorAxis": 6378137,\n "GeoTiff:GeogInvFlattening": 298.257223563,\n "Composite:ImageSize": "5931x5526",\n "Composite:Megapixels": 32.774706\n}\n')),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},(0,i.kt)("em",{parentName:"strong"},"spectral index"))),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"Images",src:a(3509).Z,width:"895",height:"401"})))}c.isMDXComponent=!0},1284:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/1_task-af1e3e103aa9040a849afcec4f2028a4.png"},4051:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/Diagrama2-7f9ad5965b24760f8ca8d83032957fef.jpg"},8087:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/Process_Diag-93b71e47eac5de8d4d26f7744a6c2558.jpg"},969:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/blue_tiff-6e97afec70d29ee1120fbe216e8c11cc.png"},4476:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/control_point-694abeeeafe85d8c414e3b5f7e10ae92.png"},4416:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/example_pa-455791bed26c39aee7d9a3120e0b3f00.png"},5973:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/file_explorer-dbfab3fb1e0b00b9c214602cf91478d4.png"},9326:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/gcp_qgis-56d4c54539e4e81fea0309e24d9f5773.png"},4240:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/multispectral_band-6b75ccdad5e1d07be46f3f25d13917ee.png"},8663:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/orthomosaic-734551182ff6966a36f823024ecb6384.png"},2084:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/ortophoto_png-ebf85d109119e487c9e128db35ae7db4.png"},6400:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/spectral_green_channel-afa6a6649829bc5f37d910470b896736.png"},8007:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/start_processing-e16d2999ad64abfd9dc95a717572063f.png"},3509:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/veg_index-b912707b00cb16d44b17b2bab7437217.png"}}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.