<liclass="toctree-l4"><aclass="reference internal"href="../installation/#step-1-check-virtualization-support">Krok 1. Zkontrolujte podporu virtualizace</a></li>
<liclass="toctree-l4"><aclass="reference internal"href="../installation/#step-2-install-requirements">Krok 2. Požadavky na instalaci</a></li>
<liclass="toctree-l4"><aclass="reference internal"href="../installation/#step-3-check-memory-and-cpu-allocation">Krok 3. Zkontrolujte přidělení paměti a procesoru</a></li>
<liclass="toctree-l4"><aclass="reference internal"href="../installation/#step-4-download-webodm">Krok 4. Stáhněte si WebODM</a></li>
<liclass="toctree-l4"><aclass="reference internal"href="../installation/#step-2-check-additional-requirements">Krok 2. Zkontrolujte další požadavky</a></li>
<liclass="toctree-l4"><aclass="reference internal"href="../installation/#step-3-download-and-launch-webodm">Krok 3. Stažení a spuštění WebODM</a></li>
</ul>
</li>
</ul>
</li>
<liclass="toctree-l2"><aclass="reference internal"href="../installation/#basic-commands-and-troubleshooting">Základní příkazy a řešení potíží</a></li>
<liclass="toctree-l2"><aclass="reference internal"href="../installation/#hello-webodm">Dobrý den, WebODM!</a><ul>
<liclass="toctree-l3"><aclass="reference internal"href="../installation/#running-on-more-than-one-machine">Spuštění na více než jednom počítači</a></li>
<liclass="toctree-l2"><aclass="reference internal"href="../tutorials/#creating-high-quality-orthophotos">Vytváření vysoce kvalitních ortofotomap</a></li>
<liclass="toctree-l2"><aclass="reference internal"href="../tutorials/#using-potree-3d-viewer-module-on-webodm">Použití modulu Potree 3D viewer na WebODM</a><ul>
<liclass="toctree-l2"><aclass="reference internal"href="../tutorials/#using-docker">Použití aplikace Docker</a><ul>
<liclass="toctree-l3"><aclass="reference internal"href="../tutorials/#listing-docker-machines">Výpis strojů Docker</a></li>
<liclass="toctree-l3"><aclass="reference internal"href="../tutorials/#accessing-logs-on-the-instance">Přístup k protokolům instance</a></li>
<liclass="toctree-l3"><aclass="reference internal"href="../tutorials/#command-line-access-to-instances">Přístup k instancím z příkazového řádku</a></li>
<liclass="toctree-l3"><aclass="reference internal"href="../tutorials/#cleaning-up-after-docker">Úklid po Dockeru</a></li>
</ul>
</li>
<liclass="toctree-l2"><aclass="reference internal"href="../tutorials/#using-odm-from-low-bandwidth-location">Použití ODM z místa s nízkou šířkou pásma</a><ul>
<liclass="toctree-l3"><aclass="reference internal"href="../tutorials/#what-is-this-and-who-is-it-for">Co to je a pro koho je to určeno?</a></li>
<liclass="toctree-l4"><aclass="reference internal"href="../tutorials/#prep-data-and-project">Příprava dat a projektu</a></li>
<liclass="toctree-l4"><aclass="reference internal"href="../tutorials/#resize-droplet-pull-pin-run-away">Resize droplet, pull pin, run away</a></li>
<liclass="toctree-l4"><aclass="reference internal"href="../tutorials/#after-it-finishes-assuming-you-survive-that-long">Po jeho skončení (za předpokladu, že přežijete tak dlouho)</a></li>
<liclass="toctree-l3"><aclass="reference internal"href="../tutorials/#clusterodm-nodeodm-slurm-with-singularity-on-hpc">ClusterODM, NodeODM, SLURM, with Singularity on HPC</a></li>
<liclass="toctree-l3"><aclass="reference internal"href="../tutorials/#development-and-testing-of-odm">Development and testing of ODM</a><ul>
<liclass="toctree-l4"><aclass="reference internal"href="../tutorials/#fork-and-clone-repository">Fork and clone repository</a></li>
<liclass="toctree-l4"><aclass="reference internal"href="../tutorials/#set-up-local-nodeodm-docker-instance">Set up local NodeODM docker instance</a></li>
<liclass="toctree-l3"><aclass="reference internal"href="../arguments/auto-boundary/#what-is-auto-boundary">Co je automatická hranice?</a></li>
<liclass="toctree-l3"><aclass="reference internal"href="../arguments/auto-boundary/#when-is-auto-boundary-helpful">Kdy je automatická hranice užitečná?</a></li>
<liclass="toctree-l3"><aclass="reference internal"href="../arguments/auto-boundary/#why-would-one-use-auto-boundary">Proč by měl někdo používat automatické ohraničení?</a></li>
<liclass="toctree-l3"><aclass="reference internal"href="../arguments/boundary/#what-is-boundary-geojson">Co je to Hranice [GeoJSON]?</a></li>
<liclass="toctree-l3"><aclass="reference internal"href="../arguments/boundary/#when-is-boundary-geojson-appropriate">Kdy je vhodné použít Hranice [GeoJSON]?</a></li>
<liclass="toctree-l3"><aclass="reference internal"href="../arguments/boundary/#why-would-one-use-boundary-geojson">Proč by měl někdo použít Hranice [GeoJSON]?</a></li>
<liclass="toctree-l3"><aclass="reference internal"href="../arguments/boundary/#how-would-one-create-boundary-geojson">Jak se vytváří Hranice [GeoJSON]?</a><ul>
<liclass="toctree-l3"><aclass="reference internal"href="../arguments/build-overviews/#what-are-overviews">What Are Overviews?</a></li>
<liclass="toctree-l3"><aclass="reference internal"href="../arguments/build-overviews/#when-are-overviews-appropriate">When are Overviews appropriate?</a></li>
<liclass="toctree-l3"><aclass="reference internal"href="../arguments/build-overviews/#why-would-one-use-overviews">Why would one use Overviews?</a></li>
<liclass="toctree-l3"><aclass="reference internal"href="../arguments/camera-lens/#what-are-camera-lens-models">Co jsou modely objektivů fotoaparátů?</a></li>
<liclass="toctree-l3"><aclass="reference internal"href="../arguments/camera-lens/#when-are-manual-selections-appropriate">Kdy je vhodný ruční výběr?</a></li>
<liclass="toctree-l3"><aclass="reference internal"href="../arguments/camera-lens/#why-would-one-use-a-particular-camera-lens-model">Proč používat určitý model objektivu fotoaparátu?</a></li>
<liclass="toctree-l3"><aclass="reference internal"href="../multispectral/#creating-orthophotos-from-multispectral-data">Creating Orthophotos from Multispectral Data</a></li>
<liclass="toctree-l3"><aclass="reference internal"href="../multispectral/#workflows-for-non-supported-sensors">Workflows for Non-supported Sensors</a></li>
<liclass="toctree-l3"><aclass="reference internal"href="../large/#getting-started-with-distributed-split-merge">Getting Started with Distributed Split-Merge</a></li>
<liclass="toctree-l3"><aclass="reference internal"href="../large/#understanding-the-cluster">Understanding the Cluster</a></li>
<liclass="toctree-l3"><aclass="reference internal"href="../large/#accessing-the-logs">Accessing the Logs</a></li>
<h1>How to Contribute and Request Features<aclass="headerlink"href="#how-to-contribute-and-request-features"title="Permalink to this heading"></a></h1>
<sectionid="how-to-request-features">
<h2>How To Request Features<aclass="headerlink"href="#how-to-request-features"title="Permalink to this heading"></a></h2>
<p>All software needs user feedback and feature requests, to grow and maintain
alignment with the needs of its users.</p>
<p>OpenDroneMap is FOSS software. Free and open source (FOSS) projects are interesting
from the inside and outside: from the outside, successful ones feel like they should be able
to do anything, and it’s hard to know what a reasonable request is. From the inside of a
project, they can feel very resource constrained: largely by time, money, and opportunity
overload.</p>
<p><strong>Demanding that a feature be implemented is probably not going to convince the development team to do so</strong>. Imagine
if somebody knocked on your door and asked you to „stop reading this page right now and come to my house to cook me dinner!“. Your first response might very reasonably be „who on earth is this person and why should I spend my time and energy fulfilling his agenda instead of my own?“.</p>
<p><strong>Suggesting</strong> that a feature be implemented is a more effective (and cordial) way to ask for new features, especially if you’re prepared to offer some of your own resources (time, funds or both) to help get the feature implemented. Explaining why
<em>your</em> suggestion can benefit others can also help. If the feature benefits you exclusively, it might be harder to convince others to do the work for you.</p>
<p>A feature request can be submitted as issues on the applicable Github repository (e.g.,
<aclass="reference external"href="https://github.com/OpenDroneMap/WebODM/issues">WebODM</a> or <aclass="reference external"href="https://github.com/OpenDroneMap/ODM/issues">ODM</a>
or similar) or more simply as a discussion topic on <aclass="reference external"href="https://community.opendronemap.org/">the community forum</a>.
Try to start by searching these sources to see if someone else has already brought it up. Sometimes a feature is already in
the works, or has at least been discussed.</p>
<p>To request the addition of support for new drone cameras: please share a set of test images on the <aclass="reference external"href="https://community.opendronemap.org/c/datasets/10">datasets channel on the forum</a>. Without test images there’s not much the developers can do.</p>
<p>And importantly, the trick is to listen: if someone within the project says: „This is a big lift,
we need MONEY or TIME or SOMEONE TO HELP CODE IT“ (or possibly a combination of the three)
then there are two answers that work really well in response:</p>
<blockquote>
<div><p><em>Ok. I didn’t know it was a big feature request! I hope someone comes along with the necessary resources. As a community member, I would be happy to be an early user and tester!</em></p>
</div></blockquote>
<p>or</p>
<blockquote>
<div><p><em>Let’s figure out if we can put together the resources to get this done! Here’s what I can contribute toward it: …</em></p>
</div></blockquote>
<p>We are glad you are excited to see new features added to the project. Some new features need support,
and some are easier to implement. We’ll do our best to help you understand where your request falls, and
we appreciate any support you can provide.</p>
</section>
<sectionid="how-to-contribute">
<h2>How To Contribute<aclass="headerlink"href="#how-to-contribute"title="Permalink to this heading"></a></h2>
<p>If you are looking to get involved, are stuck on a problem, or want to reach out, <aclass="reference external"href="https://community.opendronemap.org/">the forum</a> is a great place to start. You may find your questions already answered or else you can find other useful tips and resources. You can also contribute your open access datasets for others to explore. It is a good place go before submitting bug reports or getting in touch with developers before writing a new feature.</p>
<p>Bugs are tracked as Github issues. Please create an issue in the repository and tag it with the Bug tag.</p>
<p>Explain the problem and include additional details to help maintainers reproduce the problem:</p>
<ulclass="simple">
<li><p><strong>Use a clear and descriptive title</strong> for the issue to identify the problem.</p></li>
<li><p><strong>Describe the exact steps which reproduce the problem</strong> in as many details as possible. For example, start by explaining how you run ODM (Docker, Vagrant, etc), e.g. which command exactly you used in the terminal. When listing steps, <strong>don’t just say what you did, but explain how you did it.</strong></p></li>
<li><p><strong>Provide specific examples to demonstrate the steps.</strong> Include links to files or GitHub projects, or copy/pasteable snippets, which you use in those examples. If you’re providing snippets in the issue, use <aclass="reference external"href="https://help.github.com/articles/markdown-basics/#multiple-lines">Markdown code blocks</a>.</p></li>
<li><p><strong>Describe the behavior you observed after following the steps</strong> and point out what exactly is the problem with that behavior.</p></li>
<li><p><strong>Explain which behavior you expected to see instead and why.</strong></p></li>
<li><p><strong>Include screenshots and animated GIFs</strong> which show you following the described steps and clearly demonstrate the problem. You can use <aclass="reference external"href="http://www.cockos.com/licecap/">this tool to record GIFs on macOS and Windows</a>, and <aclass="reference external"href="https://github.com/colinkeenan/silentcast">this tool</a> or <aclass="reference external"href="https://github.com/GNOME/byzanz">this one</a> on Linux.</p></li>
<li><p><strong>If the problem is related to performance,</strong> please post your machine’s specs (host and guest machine).</p></li>
<li><p><strong>If the problem wasn’t triggered by a specific action,</strong> describe what you were doing before the problem happened and share more information using the guidelines below.</p></li>
</ul>
<p>Include details about your configuration and environment:</p>
<ulclass="simple">
<li><p><strong>Which version of ODM are you using?</strong> A stable release? a clone of master?</p></li>
<li><p><strong>What’s the name and version of the OS you’re using?</strong></p></li>
<li><p><strong>Are you running ODM in a virtual machine or Docker?</strong> If so, which VM software are you using and which operating systems and versions are used for the host and the guest?</p></li>
<li><p>Include screenshots and animated GIFs in your pull request whenever possible.</p></li>
<li><p>Follow the PEP8 Python Style Guide.</p></li>
<li><p>End files with a newline.</p></li>
<li><dlclass="simple">
<dt>Avoid platform-dependent code:</dt><dd><ul>
<li><p>Use require(‚fs-plus‘).getHomeDirectory() to get the home directory.</p></li>
<li><p>Use path.join() to concatenate filenames.</p></li>
<li><p>Use os.tmpdir() rather than /tmp when you need to reference the temporary directory.</p></li>
</ul>
</dd>
</dl>
</li>
<li><dlclass="simple">
<dt>Using a plain return when returning explicitly at the end of a function.</dt><dd><ul>
<li><p>Not return null, return undefined, null, or undefined</p></li>
</ul>
</dd>
</dl>
</li>
</ul>
<p><aclass="reference external"href="https://github.com/opendronemap/docs#how-to-make-your-first-contribution">Learn to edit</a> and help improve <aclass="reference external"href="https://github.com/OpenDroneMap/docs/blob/publish/source/contributing.rst">this page</a>!</p>