# SOME DESCRIPTIVE TITLE.
# Copyright (C) 2020, OpenDroneMap
# This file is distributed under the same license as the OpenDroneMap package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: OpenDroneMap 2.0.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-12-15 09:17-0500\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"

#: ../../../large.rst:4
#: 5ea5942cc4604baea3dc66a4ee841282
msgid "Splitting Large Datasets"
msgstr ""

#: ../../../large.rst:6
#: 09b5af17439740d2b8a18993e6709da6
msgid "Starting with ODM version ``0.6.0`` you can split up very large datasets into manageable chunks (called submodels), running the pipeline on each chunk, and then producing merged DEMs, orthophotos and point clouds. The process is referred to as \"split-merge\"."
msgstr ""

#: ../../../large.rst:8
#: 0c58eb496d8d456ca011011549f430a8
msgid "Why might you use the split-merge pipeline? If you have a very large number of images in your dataset, split-merge will help make the processing more manageable on a large machine (it will require less memory). If you have many machines all connected to the same network you can also process the submodels in parallel, thus allowing for horizontal scaling and processing thousands of images more quickly."
msgstr ""

#: ../../../large.rst:10
#: d3a6bf47796e4775bfb53066d0d51dce
msgid "Split-merge works in WebODM out of the box as long as the processing nodes support split-merge, by enabling the ``--split`` option when creating a new task."
msgstr ""

#: ../../../large.rst:13
#: 7c1cb609f5c74801ba89894fb5974978
msgid "Calibrate images"
msgstr ""

#: ../../../large.rst:15
#: a5852d851b3c4557a860c07a9a876368
msgid "Image calibration is recommended (but not required) for large datasets because error propagation due to image distortion could cause a bowl effect on the models. Calibration instructions can be found at      `Calibrate Images <tutorials.html#calibrating-the-camera>`_."
msgstr ""

#: ../../../large.rst:21
#: bb110a174c5f40ec9d3517e5eabbd887
msgid "Bowling effect on point cloud over 13,000+ image dataset collected by World Bank Tanzania over the flood prone Msimbasi Basin, Dar es Salaam, Tanzania."
msgstr ""

#: ../../../large.rst:24
#: 0967d468c7144fc5bd2132400d045215
msgid "Local Split-Merge"
msgstr ""

#: ../../../large.rst:26
#: 2e2ad9be96fa496bb5ab7db7b677f5df
msgid "Splitting a dataset into more manageable submodels and sequentially processing all submodels on the same machine is easy! Just use ``--split`` and ``--split-overlap`` to decide the the average number of images per submodels and the overlap (in meters) between submodels respectively"
msgstr ""

#: ../../../large.rst:32
#: 0aeee1b4863b45729bc6cbf63b6b1d84
msgid "If you already know how you want to split the dataset, you can provide that information and it will be used instead of the clustering algorithm."
msgstr ""

#: ../../../large.rst:34
#: 175b97d3d6a44086be4f0cdabfb6fe95
msgid "The grouping can be provided by adding a file named image_groups.txt in the main dataset folder. The file should have one line per image. Each line should have two words: first the name of the image and second the name of the group it belongs to. For example::"
msgstr ""

#: ../../../large.rst:42
#: 20c59dc7a68941e89e8369bd6026f2ff
msgid "will create 3 submodels. Make sure to pass ``--split-overlap 0`` if you manually provide a ``image_groups.txt`` file."
msgstr ""

#: ../../../large.rst:46
#: f821d7b1316a4f81830050135f38ec62
msgid "Distributed Split-Merge"
msgstr ""

#: ../../../large.rst:48
#: f170f960ba414793b7f657bb74d70937
msgid "ODM can also automatically distribute the processing of each submodel to multiple machines via `NodeODM <https://github.com/OpenDroneMap/NodeODM>`_ nodes, orchestrated via `ClusterODM <https://github.com/OpenDroneMap/ClusterODM>`_."
msgstr ""

#: ../../../large.rst:55
#: 09a33b36dab54c42a8ce360deacaf649
msgid "Getting Started with Distributed Split-Merge"
msgstr ""

#: ../../../large.rst:57
#: af83a83165d8401396aab49b8744a62b
msgid "The first step is start ClusterODM"
msgstr ""

#: ../../../large.rst:63
#: 6d4217467bf544e9a7ad1ac56e9f9973
msgid "Then on each machine you want to use for processing, launch a NodeODM instance via"
msgstr ""

#: ../../../large.rst:69
#: f7f5d656ce9f46d89eaa1769c27ba6e5
msgid "Connect via telnet to ClusterODM and add the IP addresses/port of the machines running NodeODM"
msgstr ""

#: ../../../large.rst:84
#: b6440814204a44fd9b9cbde1ff322cc3
msgid "Make sure you are running version ``1.5.1`` or higher of the NodeODM API."
msgstr ""

#: ../../../large.rst:86
#: 42d5b57f70b54515892481ba4875365b
msgid "At this point, simply use the ``--sm-cluster`` option to enable distributed split-merge"
msgstr ""

#: ../../../large.rst:93
#: 1ff052ee47864108abd13c2ca2b6eeef
msgid "Understanding the Cluster"
msgstr ""

#: ../../../large.rst:95
#: 18e376a78edf468088b5efbd939c0bbf
msgid "When connected via telnet, it is possible to interrogate what is happening on the cluster. For example, we can use the command HELP to find out available commands"
msgstr ""

#: ../../../large.rst:118
#: 1494dbd111a64a7e9075a9c20a0c12d9
msgid "If, for example, the NodeODM instance wasn't active when ClusterODM started, we might list nodes and see something as follows"
msgstr ""

#: ../../../large.rst:125
#: 20e68e67542e4049b232b7635d88760b
msgid "To address this, we can start up our local node (if not already started), and then perform a ``NODE UPDATE``"
msgstr ""

#: ../../../large.rst:135
#: 33eecf83e3124b59a7d0c13af09e04a2
msgid "Accessing the Logs"
msgstr ""

#: ../../../large.rst:137
#: def6c238d7864b5382c8a0c925a3c6e3
msgid "While a process is running, it is also possible to list the tasks, and view the task output"
msgstr ""

#: ../../../large.rst:145
#: 2a15305d8ba94ce0bdb2d07174a39b0f
msgid "Autoscaling ClusterODM"
msgstr ""

#: ../../../large.rst:147
#: 9ec4019144e94b0eb0ab5f4325320568
msgid "ClusterODM also includes the option to autoscale on multiple platforms, including, to date, Amazon and Digital Ocean. This allows users to reduce costs associated with always-on instances as well as being able to scale processing based on demand."
msgstr ""

#: ../../../large.rst:149
#: 62b6f826c2c643e0901155b8e13ae32b
msgid "To setup autoscaling you must:"
msgstr ""

#: ../../../large.rst:151
#: 1f57a583ee064aadaa3feee9c394eafc
msgid "Have a functioning version of NodeJS installed and then install ClusterODM"
msgstr ""

#: ../../../large.rst:159
#: 717a4e330335494bb0df832234fa0032
msgid "Make sure docker-machine is installed."
msgstr ""

#: ../../../large.rst:160
#: 199f29aa6b7f4f409bb92e6c3cb5bf16
msgid "Setup a S3-compatible bucket for storing results."
msgstr ""

#: ../../../large.rst:161
#: 6326931fadb04511aeefe580135ad3a2
msgid "Create a configuration file for `DigitalOcean <https://github.com/OpenDroneMap/ClusterODM/blob/master/docs/digitalocean.md>`_ or `Amazon Web Services <https://github.com/OpenDroneMap/ClusterODM/blob/master/docs/aws.md>`_."
msgstr ""

#: ../../../large.rst:163
#: 24f1bc1a5a1045b5a066cb88d855dac6
msgid "You can then launch ClusterODM with"
msgstr ""

#: ../../../large.rst:169
#: cfd356de2d654bf891a32218437a3674
msgid "You should see something similar to following messages in the console"
msgstr ""

#: ../../../large.rst:177
#: e70048dcf8f24f71bc79a7051c51a05f
msgid "You should always have at least one static NodeODM node attached to ClusterODM, even if you plan to use the autoscaler for all processing. If you setup auto scaling, you can't have zero nodes and rely 100% on the autoscaler. You need to attach a NodeODM node to act as the \"reference node\" otherwise ClusterODM will not know how to handle certain requests (for the forwarding the UI, for validating options prior to spinning up an instance, etc.). For this purpose, you should add a \"dummy\" NodeODM node and lock it"
msgstr ""

#: ../../../large.rst:187
#: 534c507b01064a47810c210e1bb41569
msgid "This way all tasks will be automatically forwarded to the autoscaler."
msgstr ""

#: ../../../large.rst:190
#: 69765d62d9bb44979d730a3aee0908c7
msgid "Limitations"
msgstr ""

#: ../../../large.rst:192
#: bf357933f5f442d2837b2682b0ad9bb2
msgid "The 3D textured meshes are currently not being merged as part of the workflow (only point clouds, DEMs and orthophotos are)."
msgstr ""

#: ../../../large.rst:194
#: 8e1fa32d457445b489bc403442ae7fd5
msgid "GCPs are fully supported, however, there needs to be at least 3 GCP points on each submodel for the georeferencing to take place. If a submodel has fewer than 3 GCPs, a combination of the remaining GCPs + EXIF data will be used instead (which is going to be less accurate). We recommend using the ``image_groups.txt`` file to accurately control the submodel split when using GCPs."
msgstr ""

#: ../../../large.rst:197
#: 1597b856001e4334a4df3555c8416ee1
msgid "Acknowledgments"
msgstr ""

#: ../../../large.rst:198
#: ec973929d9d947be90f0859358cc398c
msgid "Huge props to Pau and the folks at Mapillary for their amazing contributions to OpenDroneMap through their OpenSfM code, which is a key component of the split-merge pipeline. We look forward to further pushing the limits of OpenDroneMap and seeing how big a dataset we can process."
msgstr ""

#: ../../../large.rst:201
#: 4c8774a03a9b4048ad759092049aad71
msgid "`Learn to edit <https://github.com/opendronemap/docs#how-to-make-your-first-contribution>`_ and help improve `this page <https://github.com/OpenDroneMap/docs/blob/publish/source/large.rst>`_!"
msgstr ""
