<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Fow on kollegen</title>
    <link>https://kollegen.uber.space/tags/fow/</link>
    <description>Recent content in Fow on kollegen</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>de</language>
    <lastBuildDate>Mon, 11 Sep 2017 00:00:00 +0000</lastBuildDate><atom:link href="https://kollegen.uber.space/tags/fow/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Fow Foto Workflow Tool</title>
      <link>https://kollegen.uber.space/posts/fow-foto-workflow-tool/</link>
      <pubDate>Mon, 11 Sep 2017 00:00:00 +0000</pubDate>
      
      <guid>https://kollegen.uber.space/posts/fow-foto-workflow-tool/</guid>
      <description>&lt;p&gt;Ein Kommandozeilen-Tool für den digitalen Fotoprozess
Wie man auch bei mehreren Kameras und vielen Fotoprojekten den Überblick behält.&lt;/p&gt;
&lt;p&gt;In dem &lt;a href=&#34;https://kollegen.uber.space/posts/foto-workflow/&#34;&gt;Fotoworkflow-Blog&lt;/a&gt; wird der gesamte Ablauf für die Fotoentwicklung vorgestellt, so dass der Weg von der Kamera-Speicherkarte bis zur Veröffentlichung bzw. Archivierung beschrieben ist. Der Nachteil des so durchgeführten Workflows liegt auf der Hand: da ist einen Menge Handarbeit auf der Konsole bzw. mit dem Datei-Browser zu machen. Das ist zeitraubend, fehleranfällig und einfach nervig. Die Lösung für mich sind eine handvoll Kommandozeilenbefehle die genau die einzelnen Schritte als Befehl umsetzen. Dieses Tool, fow genannt, wird hier nun genauer vorgestellt.&lt;/p&gt;</description>
      <content>&lt;p&gt;Ein Kommandozeilen-Tool für den digitalen Fotoprozess
Wie man auch bei mehreren Kameras und vielen Fotoprojekten den Überblick behält.&lt;/p&gt;
&lt;p&gt;In dem &lt;a href=&#34;https://kollegen.uber.space/posts/foto-workflow/&#34;&gt;Fotoworkflow-Blog&lt;/a&gt; wird der gesamte Ablauf für die Fotoentwicklung vorgestellt, so dass der Weg von der Kamera-Speicherkarte bis zur Veröffentlichung bzw. Archivierung beschrieben ist. Der Nachteil des so durchgeführten Workflows liegt auf der Hand: da ist einen Menge Handarbeit auf der Konsole bzw. mit dem Datei-Browser zu machen. Das ist zeitraubend, fehleranfällig und einfach nervig. Die Lösung für mich sind eine handvoll Kommandozeilenbefehle die genau die einzelnen Schritte als Befehl umsetzen. Dieses Tool, fow genannt, wird hier nun genauer vorgestellt.&lt;/p&gt;
&lt;h1 id=&#34;technische-umsetzung&#34;&gt;Technische Umsetzung&lt;/h1&gt;
&lt;p&gt;Als Sprache wurde Python3 gewählt, da die Befehle damit schnell implementiert werden konnten. Die Befehle benötigen, neben Python 3, folgende Tools, welche aber in der Regel bereits installiert sind:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;exiv2&lt;/li&gt;
&lt;li&gt;exiftool&lt;/li&gt;
&lt;li&gt;rsync&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Das Projekt ist unter &lt;a href=&#34;https://github.com/chs8691/fow&#34;&gt;gitHub&lt;/a&gt; gehostet und steht als Open Source zur Verfügung. Vorschläge für Verbesserungen und Fehlermeldung sind willkommen und können dort erfasst werden. Wer aktiv mitentwickeln möchte, kann dies gerne tun.&lt;/p&gt;
&lt;h1 id=&#34;installation&#34;&gt;Installation&lt;/h1&gt;
&lt;p&gt;Voraussetzung: Linux-System, auf dem DEB-Pakete installierte werden können (Debian, Ubuntu, Lint etc.). Für Windows-PCs lässt sich fow in einer VirtualBox z. B. mit Lint/Mate betreiben.
Download: Neuestes Deb-Paket von gitHub-Projekt fow Unterverzeichnis /dist herunterladen und in einer Shell installieren mit z . B.:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ sudo dpkg -i fow_1.1.8_all.deb
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h1 id=&#34;initialisierung&#34;&gt;Initialisierung&lt;/h1&gt;
&lt;p&gt;Man benötigt ein, am besten leeres, Unterverzeichnis und initialisiert das fow, indem man in diesem Verzeichnis ‚init‘ aufruft. Beispiel:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ mkdir ~/photo
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ cd ~/photo
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ fow init
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Damit wird die Verzeichnisstruktur aufgebaut und ein paar Konfigurationsvariblen initialisiert. Zur Erfolgskontrolle lässt man sich die Konfigurationswerte anzeigen:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ fow config
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;backup.path &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; None
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;gps.tracks &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; None
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;task &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; None
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Ok, dass sieht noch nicht wirklich eingerichtet aus. Dass erfolgt erst bei Bedarf der einzelnen Befehle, für den Anfang genügt es.
Hier ein paar grundlegende Tipps für den Anfang:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Das Wurzelverzeichnis hat keinen Einfluss auf fow und kann beliebig umbenannt und verschoben werden&lt;/li&gt;
&lt;li&gt;Man muss sich innerhalb der Verzeichnisstruktur befinden, um einen fow-Befehl ausführen zu können&lt;/li&gt;
&lt;li&gt;Fow-eigene Unterverzeichnisse dürfen nicht gelöscht/umbenannt werden&lt;/li&gt;
&lt;li&gt;Zusätzliche Unterverzeichnisse sind möglich&lt;/li&gt;
&lt;li&gt;Man kann beliebig viele fows nebeneinander betreiben&lt;/li&gt;
&lt;li&gt;fows können nicht geschachtelt werden&lt;/li&gt;
&lt;/ul&gt;
&lt;h1 id=&#34;prinzip&#34;&gt;Prinzip&lt;/h1&gt;
&lt;p&gt;Die Befehle sind so angelegt, dass sie mit möglichst wenig Tipparbeit einen Workflow-Schritt oder Befehl ausführen. Jedem Befehl geht das &amp;lsquo;fow&amp;rsquo; voraus. Ein Übersicht über die Befehle bekommt man mit help:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ fow help
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;fow commands:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;backup - save the fow to an external directory
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;config - show and change settings of the fow. A setting is a key value pair.
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;exif - Set or show EXIF values &lt;span style=&#34;color:#66d9ef&#34;&gt;for&lt;/span&gt; final images of the actual task
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;export - Copy final images to external destinations &lt;span style=&#34;color:#66d9ef&#34;&gt;for&lt;/span&gt; the actual task
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;gps - add gps locations from gpx files
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;help - This help. Use &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;help &amp;lt;command&amp;gt;&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;for&lt;/span&gt; a specific command help
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;init - Creates new fow in the actual directory
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;load - Loads images from external destinations into 00_Inbox.
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;rename - Move and rename files from 00_Inbox to 01_Import.
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;show - reporting &lt;span style=&#34;color:#66d9ef&#34;&gt;for&lt;/span&gt; processing steps
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;task - manage a fow&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;&amp;#39;&lt;/span&gt;s task
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Detaillierte Hilfe zu den einzelnen Befehlen bekommt man mit help &lt;!-- raw HTML omitted --&gt;, z. B.:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ fow help init
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Ein Befehl kann Optionen (beginnend mit 2 Bindestrichen) und Parameter haben. So habe z. B. viele Befehle eine verbose-Ausgabe (&amp;ndash;verbose). Ändernden Befehle bieten in der Regel eine Testoption (&amp;ndash;test), die keine Änderungen macht (Dry-run). Beispiele:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ fow rename --test
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Processing jpg 5: &lt;span style=&#34;color:#ae81ff&#34;&gt;5&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Processing raw 3: &lt;span style=&#34;color:#ae81ff&#34;&gt;3&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Processing video 0: &lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;8&lt;/span&gt; files will be moved and renamed.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ fow rename --verbose
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Processing jpg 5: &lt;span style=&#34;color:#ae81ff&#34;&gt;5&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Processing raw 3: &lt;span style=&#34;color:#ae81ff&#34;&gt;3&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Processing video 0: &lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  OK  jpg 20170720-181117-DSCF5339.JPG --&amp;gt; 20170720-181117-20170720-181117-DSCF5339.JPG
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  OK  jpg 20170720-184415-DSCF5343.JPG --&amp;gt; 20170720-184415-20170720-184415-DSCF5343.JPG
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  OK  jpg 20170720-184415-DSCF5344.JPG --&amp;gt; 20170720-184415-20170720-184415-DSCF5344.JPG
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  OK  jpg 20170720-184416-DSCF5345.JPG --&amp;gt; 20170720-184416-20170720-184416-DSCF5345.JPG
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  OK  jpg 20170720-184650-DSCF5346.JPG --&amp;gt; 20170720-184650-20170720-184650-DSCF5346.JPG
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  OK  raw 20170720-184415-DSCF5343.RAF --&amp;gt; 20170720-184415-20170720-184415-DSCF5343.RAF
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  OK  raw 20170720-184415-DSCF5344.RAF --&amp;gt; 20170720-184415-20170720-184415-DSCF5344.RAF
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  OK  raw 20170720-184416-DSCF5345.RAF --&amp;gt; 20170720-184416-20170720-184416-DSCF5345.RAF
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;8&lt;/span&gt; file&lt;span style=&#34;color:#f92672&#34;&gt;(&lt;/span&gt;s&lt;span style=&#34;color:#f92672&#34;&gt;)&lt;/span&gt; moved.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Tipp: Eine Option hat auch eine Abkürzung, bestehend aus einem Bindestrich und dem Anfangsbuchstaben der Option, zum Beispiel kann statt –verbose auch einfach -v geschrieben werden. Zur besseren Lesbarkeit des Blogs wird hier aber nur die lange Schreibweise verwendet.&lt;/p&gt;
&lt;h1 id=&#34;die-einzelnen-workflowschritte&#34;&gt;Die einzelnen Workflowschritte&lt;/h1&gt;
&lt;p&gt;Das Workflow Diagramm, wie es schon im Fotoworkflow-Blog vorgestellt wurde, dient fow als Grundlage und wurde nur leicht angepasst.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://kollegen.uber.space/posts/fow-foto-workflow-tool/Workflow.png&#34; alt=&#34;Workflow&#34;&gt; Workflow&lt;/p&gt;
&lt;p&gt;Folgende Schritte werden von fow nicht unterstützt, da es für sie vorhandene Tools gibt:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Develop: Nachbearbeitung der JPG- bzw. RAW-Bilder erfolgt mit dem jeweiligen Lieblingstool, z. B. Darktable. Ferner fällt hierunter auch das Hinzufügen von Titel, Beschreibung etc.&lt;/li&gt;
&lt;li&gt;Clean: Nicht mehr benötigte fow-Tasks sind manuell zu löschen&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;load&#34;&gt;LOAD&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Aufgabe&lt;/strong&gt;&lt;br&gt;
Laden aller Bilddateien (incl. aus Unterverzeichnissen) aus einer externen Quelle (wie z. B. SD-Karte oder Smartphone) in den Eingangsordner 00_Inbox.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Endzustand&lt;/strong&gt;&lt;br&gt;
Alle Bilddateien der externen Quelle wurden nach 00_Inbox kopiert bzw. verschoben und liegen nun in einem der Unterordner.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://kollegen.uber.space/posts/fow-foto-workflow-tool/Load-Verzeichnis.png&#34; alt=&#34;Load-Verzeichnis&#34;&gt; Load-Verzeichnis&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Voraussetzung&lt;/strong&gt;&lt;br&gt;
Die SD-Karte ist gemountet.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Durchführung&lt;/strong&gt;&lt;br&gt;
Das Mount-Verzeichnis der SD-Karte wird einmal als config-Variable gesetzt:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ fow config -s&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;load.sd&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;/mount/sd-card
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Nun kann man sämtliche Bilddateien importieren lassen:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ fow load sd
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Processing jpg 3: &lt;span style=&#34;color:#ae81ff&#34;&gt;3&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Processing raw 1: &lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Processing video 0: &lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;All &lt;span style=&#34;color:#ae81ff&#34;&gt;3&lt;/span&gt; files copied &lt;span style=&#34;color:#f92672&#34;&gt;(&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt; existing files ignored&lt;span style=&#34;color:#f92672&#34;&gt;)&lt;/span&gt;.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Hinweise&lt;/strong&gt;&lt;br&gt;
Mit der Option &lt;em&gt;&amp;ndash;move&lt;/em&gt; werden die Dateien nach dem Kopieren aus der Quelle gelöscht. Das ist mit Vorsicht zu verwenden, schließlich hat man noch kein Backup der Bilddateien gemacht.
Mit der Option &lt;em&gt;&amp;ndash;force&lt;/em&gt; werden vorhandene Dateien überschrieben&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;strong&gt;BACKUP&lt;/strong&gt;&lt;br&gt;
Es wird einmalig ein Backup-Verzeichnis ausserhalb des fow-Vezeichnisses definiert. Mit Backup kann dann man zu einem beliebigen Zeitpunkt die Daten dorthin sichern. Ein guter Zeitpunkt ist direkt nach dem Load, damit hat man einen definierten Zustand des fow-Verzeichnisses und kann mit ruhigem Gewissen die Daten von der SD-Karte löschen.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Aufgabe&lt;/strong&gt;&lt;br&gt;
Sichern des gesamten fow-Verzeichnisses auf ein externes Verzeichnis, idealerweise eine externe Festplatte oder der lokale Server.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Endzustand&lt;/strong&gt;&lt;br&gt;
Eine Kopie das fow-Verzeichnisses liegt vor.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Voraussetzung&lt;/strong&gt;&lt;br&gt;
Das externe Medium muss gemountet sein.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Durchführung&lt;/strong&gt;
Es wird einmalig das Backup-Verzeichnis als Config-Wert definiert.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ fow config -s&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;backup.path&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;/media/diskstation/fow-backup
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Nun kann das Backup durchgeführt werden.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ fow backup  
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Starting backup to &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;/media/diskstation/fow-backup&amp;#34;&lt;/span&gt;.  
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sending incremental file list  
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;.fow/  
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;.fow/setting.pickle  
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;00_Inbox/  
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;00_Inbox/jpg/  
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;00_Inbox/jpg/20170202-103548-DSCF4580.jpg  
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;00_Inbox/jpg/20170720-181117-20170720-181117-DSCF5339.JPG  
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;00_Inbox/jpg/20170720-184415-20170720-184415-DSCF5343.JPG  
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;00_Inbox/jpg/20170720-184650-20170720-184650-DSCF5346.JPG  
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;00_Inbox/jpg/DSCF4580.jpg  
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;00_Inbox/jpg/DSCF4593.jpg  
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;00_Inbox/raw/  
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;00_Inbox/raw/20170202-103548-DSCF4580.raf  
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;00_Inbox/video/  
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;01_Import/  
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;01_Import/jpg/  
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;01_Import/raw/  
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;01_Import/raw/20170720-184416-20170720-184416-DSCF5345.RAF  
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;01_Import/video/  
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;02_Progress/  
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;02_Progress/blog/  
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;02_Progress/blog/labels/  
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;02_Progress/blog/labels/final/  
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;02_Progress/blog/labels/final/20170226-103222-DSCF4702.jpg  
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;...  
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Number of files: &lt;span style=&#34;color:#ae81ff&#34;&gt;95&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;(&lt;/span&gt;reg: 45, dir: 50&lt;span style=&#34;color:#f92672&#34;&gt;)&lt;/span&gt;  
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Number of created files: &lt;span style=&#34;color:#ae81ff&#34;&gt;95&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;(&lt;/span&gt;reg: 45, dir: 50&lt;span style=&#34;color:#f92672&#34;&gt;)&lt;/span&gt;  
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Number of deleted files: &lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt;  
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Number of regular files transferred: &lt;span style=&#34;color:#ae81ff&#34;&gt;45&lt;/span&gt;  
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;...  
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sent 124,487,247 bytes  received 1,106 bytes  1,791,199.32 bytes/sec  
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;total size is 124,452,210  speedup is 1.00  
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Hinweis&lt;/strong&gt;&lt;br&gt;
Es wird nur ein Backup unterstützt, keine Rotierung&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Intern wird &lt;em&gt;rsync&lt;/em&gt; für den Befehl verwendet.&lt;/p&gt;
&lt;h2 id=&#34;rename&#34;&gt;RENAME&lt;/h2&gt;
&lt;p&gt;Auf den verschiedenen Kameras habe die Bilddateien unterschiedliche Namensregeln. Mit rename werden die Bilddateien einheitlich umbenannt und bekommen einen Zeitstempel. Das vereinfacht das Dateimanagement erheblich. Die Umbenennung erfolgt auf Basis der Exif-Informationen. Eine Bilddatei wird nach folgendem Muster benannt:&lt;br&gt;
&lt;code&gt;&amp;lt;yyyymmdd&amp;gt;-&amp;lt;hhMMss&amp;gt;-&amp;lt;Dateiname mit Dateisuffix&amp;gt;&lt;/code&gt;&lt;br&gt;
Die Dateien bekommen also einen Zeitstempel vorangestellt und sind damit chronologisch sortierbar. Der ursprüngliche Dateiname wird angehängt. Das hat den Vorteil, das es keine Namenskonflikte bei zeitgleichen Aufnahmen gibt. Außerdem wird das Duplizieren verhindert, falls ein Dateien erneut geladen und umbenannt werden.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://kollegen.uber.space/posts/fow-foto-workflow-tool/Vor-und-nach-der-Umbenennung.png&#34; alt=&#34;Vor- und nach der Umbenennung&#34;&gt; Vor- und nach der Umbenennung&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Aufgabe&lt;/strong&gt;&lt;br&gt;
Umbenennung aller Bilddateien aus 00_Inbox und verschieben nach 01_Import.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Endzustand&lt;/strong&gt;
Keine Bilddateien mehr in 00_Inbox und in 01_Import liegen die verschobenen Bilddateien vor.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Durchführung&lt;/strong&gt;
Die Durchführung ist denkbar einfach und kann je nach Menge ein paar Sekunden dauern.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ fow rename
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Processing jpg 5: &lt;span style=&#34;color:#ae81ff&#34;&gt;5&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Processing raw 2: &lt;span style=&#34;color:#ae81ff&#34;&gt;2&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Processing video 0: &lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;7&lt;/span&gt; file&lt;span style=&#34;color:#f92672&#34;&gt;(&lt;/span&gt;s&lt;span style=&#34;color:#f92672&#34;&gt;)&lt;/span&gt; moved.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Hinweis&lt;/strong&gt;&lt;br&gt;
Fehlt das Exif-Datum, wird nur verschoben.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id=&#34;organize&#34;&gt;ORGANIZE&lt;/h2&gt;
&lt;p&gt;Verteilen der importierten Bilddateien auf einzelne, unabhängige Aufgaben (Task).&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Ausgangssituation&lt;/strong&gt;&lt;br&gt;
Eine Menge von Bildern, evtl. für unterschiedliche Zwecke, liegen in 01_Import vor.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Endzustand&lt;/strong&gt;&lt;br&gt;
Einige oder alle Bilddateien wurden in unterschiedliche &amp;lsquo;Tasks&amp;rsquo; verschoben. Nicht mehr benötigte Bilder wurden gelöscht.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Durchführung&lt;/strong&gt;&lt;br&gt;
Hier ist Handarbeit mit dem Bildbetrachter bzw. Dateibrowser gefragt. fow unterstützt bei der Verwaltung der Task-Verzeichnisse und kann RAW-Dateien dorthin nachziehen.&lt;br&gt;
Das Verzeichnis 01_Import/jpg wird mit einem beliebigen Bildbetrachter gesichtet. Zusammengehörige Bilder werden in einen neuen bzw. bestehenden Task verschoben. Evtl. vorhandene Raw-Dateien nachgezogen. Nicht mehr benötigte Bilder werden aus 01_Import gelöscht.&lt;/p&gt;
&lt;p&gt;Ein Task ist eine Verzeichnisstruktur unter 02_Prozess. Tasks liegen aber nicht direkt unter 02_Prozess, sonder werden weiter in Unterverzeichnisse gruppiert.&lt;br&gt;
Hat man z. B. Fotos für &amp;lsquo;Bild des Tages&amp;rsquo; vom 1.9. und 2.9.2017, legt man sich zuerst die Tasks für beide Tage an. Beispiel:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ fow task -c&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;daily/20170901 
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ fow task -c&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;daily/20170902
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Damit werden die Task-Verzeichnisse angelegt:&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://kollegen.uber.space/posts/fow-foto-workflow-tool/Task-Verzeichnisstruktur.png&#34; alt=&#34;Task-Verzeichnisstruktur&#34;&gt; Task-Verzeichnisstruktur&lt;/p&gt;
&lt;p&gt;Nun kann man die JPG-Bilder in die Tasks verschieben.&lt;/p&gt;
&lt;p&gt;Bei fow ist immer nur ein Task aktiv. Im aktive Task kann man u. a. die RAW-Dateien aus 01_Import nachziehen. Einen vorhanden Task kann man wie folgt aktivieren:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ fow task -a&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;daily/20170901
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Man kann auch durch Vorwärts- bzw. Rückwärtsblättern (Option &amp;ndash;next bzw. &amp;ndash;previous) den aktiven Task wechseln:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ fow task --next   
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;   daily/20170901  
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;*  daily/20170902  
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;   dienstreise/hamburg17  
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Hat man neben JPGs noch RAW-Dateien erstellt, kann man diese RAWs in den aktuelle Task aus 01_Import/raw nachziehen. Mit der Test-Option kann man auch erst mal sehen, ob noch RAWs in 01_Import existieren:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ fow task --raw-import --test  
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;raw files to move &lt;span style=&#34;color:#f92672&#34;&gt;(&lt;/span&gt;may already exists&lt;span style=&#34;color:#f92672&#34;&gt;)&lt;/span&gt;:  
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;20170202-103548-DSCF4580.raf  
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;develop&#34;&gt;DEVELOP&lt;/h2&gt;
&lt;p&gt;Unter Develop wird der gesamte Prozess der Fotobearbeitung innerhalb eines Tasks zusammengefasst, also die Erstellung des Endbildes auf Basis eines RAW bzw. JPGs mit Hilfe von Bildbearbeitungsprogramme. Dabei wird davon ausgegangen, dass das Originalbild nicht verändert wird, sondern dass die Programme mit Sidecar-Dateien (XML) oder Projektdateien (z. B. XCF bei Gimp) arbeiten und das Ergebnis in eine neue Datei exportiert werden (z. B. jpg).&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://kollegen.uber.space/posts/fow-foto-workflow-tool/Verzeichnis-von-Task-weekly20170205.png&#34; alt=&#34;Verzeichnis von Task ‘weekly/20170205’&#34;&gt; Verzeichnis von Task &amp;lsquo;weekly/20170205&amp;rsquo;&lt;/p&gt;
&lt;p&gt;Fow unterstützt hier durch Vorgabe der Verzeichnisstruktur des Tasks: In jpg und raw liegen die Originaldateien, in work können ggf. Projektdateien abgelegt werden und final dient als Exportverzeichnis für das fertige Produkt.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Ausgangssituation&lt;/strong&gt;&lt;br&gt;
Originalbilder zur Bearbeitung sind im Task abgelegt (jpg, raw).&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Endzustand&lt;/strong&gt;&lt;br&gt;
Endbilder liegen im Ordner &amp;lsquo;final&amp;rsquo;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Durchführung&lt;/strong&gt;&lt;br&gt;
Erfolgt mit den jeweiligen Bildbearbeitungsprogrammen. Der letzte Schritt ist der Export nach final. Z. B. Darktable unterstützt das Festlegen des Exportverzeichnisses.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://kollegen.uber.space/posts/fow-foto-workflow-tool/Export-bei-Darktable.png&#34; alt=&#34;Export bei Darktable&#34;&gt; Export bei Darktable&lt;/p&gt;
&lt;p&gt;Mit fow kann man sich einen Überblick über den Bearbeitungszustand eines Task verschaffen, z. B.:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ fow task --long   
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Actual task is weekly/20170205. Listing all image files.  
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Reading /photo-workflow/02_Progress/weekly/20170205/jpg 2: &lt;span style=&#34;color:#ae81ff&#34;&gt;2&lt;/span&gt;  
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Reading /photo-workflow/02_Progress/weekly/20170205/raw 1: &lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;  
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Reading /photo-workflow/02_Progress/weekly/20170205/video 0: &lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt;  
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Reading /photo-workflow/02_Progress/weekly/20170205/final 1: &lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;  
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;jrftg 20170202-103548-DSCF4580 Ramification  
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;j--tg 20170205-180804-DSCF4593 Ronneburg  
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Das Beispiel zeigt, dass es zwei Bilder gibt. Das erste trägt den Titel (t) &amp;lsquo;Ramification&amp;rsquo;, es hat Originalbilder in jgp (j) und raw (r), wurde bereits nach final (f) exportiert und hat gps-Daten (g). Das zweite Bild hat auch bereits einen Titel, &amp;lsquo;Ronneburg&amp;rsquo;, hat gps-Daten und liegt nur als Original-jpg vor.&lt;/p&gt;
&lt;p&gt;Der Befehl &amp;rsquo;task&amp;rsquo; bietet noch weitere Optionen, u. a.:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;&amp;ndash;activate &lt;!-- raw HTML omitted --&gt;&lt;/em&gt;: Aktivieren eines bestimmten Tasks&lt;/li&gt;
&lt;li&gt;&lt;em&gt;&amp;ndash;next&lt;/em&gt; und &lt;em&gt;&amp;ndash;previous&lt;/em&gt;: Wechseln in den nächsten bzw. vorherigen Task&lt;/li&gt;
&lt;li&gt;&lt;em&gt;&amp;ndash;fill-final&lt;/em&gt;: Ergänzen des final-Verzeichnisses aus jpg&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;exif-tags&#34;&gt;EXIF-Tags&lt;/h3&gt;
&lt;p&gt;Zum Setzen der EXIF-Tags für Titel, Beschreibung und Author, gibt es den Befehl &amp;rsquo;exif&amp;rsquo;. Hier ein Beispiel wie alle drei Tags auf einmal gesetzt werden können:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ fow exif -f -t  &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;Pendel LXIIX&amp;#39;&lt;/span&gt; -d &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;Und Autos rauschen vorbei&amp;#39;&lt;/span&gt; -a 
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;20181205-192255-DSCF7592.jpg   
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  o title             T &lt;span style=&#34;color:#ae81ff&#34;&gt;2&lt;/span&gt; -&amp;gt; Pendel LXIIX  
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  + description       Und Autos rauschen vorbei  
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  + author            Christian Schulzendorff 2019, CC BY-SA 2.0  
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Den Wert für Author muss man sich nur einmalig erstellen und wird dann nicht mehr explizit gesetzt:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ fow config -s &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;exif.author=Christian Schulzendorff {YYYY}, CC BY-SA 2.0&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Ebenso kann man sich gesetzten Exif-Werte mit &amp;lsquo;fow exif&amp;rsquo; anzeigen lassen.&lt;/p&gt;
&lt;h2 id=&#34;location&#34;&gt;LOCATION&lt;/h2&gt;
&lt;p&gt;Nicht alle Kameras taggen GPS-Informationen an die Bilder. Oft sollen aber trotzdem die Ortsdaten (Längen- und Breitengrad, ggf. Höhe) dem Bild hinzugefügt werden. Dazu muss dann für jedes Bild die aufgezeichnete Trackdatei ausgewertet werden. Manche Navi-Herstellen bieten dazu Programme an, oder man bedient sich Programmen wie z. B. &lt;a href=&#34;https://geotag.sourceforge.net/&#34;&gt;geotag&lt;/a&gt;. Alternativ bietet fow die Möglichkeit, die finals eines Tasks mit Tracks in einem fest definierten Verzeichnis zu taggen.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Ausgangssituation&lt;/strong&gt;
Finals (Dateien im Task-Verzeichnis &amp;lsquo;final&amp;rsquo;) sind erstellt und das Verzeichnis mit Trackdateien (gpx) ist gemountet.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Endzustand&lt;/strong&gt;&lt;br&gt;
Final-Dateien sind getaggt.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Durchführung&lt;/strong&gt;&lt;br&gt;
Einmalig muss das externe Verzeichnis mit den Trackdateien als config-Wert festgelegt werden.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ fow config -s&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;gps.tracks&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;/media/tracks
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Die gpx-Dateien müssen den Datumsstempel im Format yyyy&lt;em&gt;mm&lt;/em&gt;dd im Namen haben, damit sie erkannt werden, z. B.:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ find /media/tracks/ -name &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;*2017*02*0[2|5]*&amp;#39;&lt;/span&gt;  
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;../tracks/20170205.gpx  
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;../tracks/Christian_Schulzendorff_2017-02-02_09-10-10.gpx  
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Das taggen geht dann für den aktiven Task sehr einfach:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ fow gps -verbose  
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Reading /photo-workflow/02_Progress/weekly/20170205/final 2: &lt;span style=&#34;color:#ae81ff&#34;&gt;2&lt;/span&gt;  
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Path to images: /photo-workflow/02_Progress/weekly/20170205/final  
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Path to tracks: /media/tracks  
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;+g 20170202-103548-DSCF4580.jpg Christian_Schulzendorff_2017-02-02_09-10-10.gpx  
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;+g 20170205-180804-DSCF4593.jpg 20170205.gpx  
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;2&lt;/span&gt; images processed, &lt;span style=&#34;color:#ae81ff&#34;&gt;2&lt;/span&gt; gps data set &lt;span style=&#34;color:#f92672&#34;&gt;(&lt;/span&gt;where &lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt; existing gps data were changed&lt;span style=&#34;color:#f92672&#34;&gt;)&lt;/span&gt;  
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;export&#34;&gt;EXPORT&lt;/h2&gt;
&lt;p&gt;Sind alle Bilder eines Tasks in final erstellt, werden diese von dort an ihren Bestimmungsort verteilt. Fow unterstützt dabei den lokalen Export in beliebig viele Zielordner. Für andere Ziele, wie z. B. Flickr, Instagram u. s. w. bietet fow keine Unterstützung.
Beim Export werden die Bilddateien immer nur kopiert, niemals verschoben.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Ausgangssituation&lt;/strong&gt;&lt;br&gt;
Alle Bilder liegen im Task-Ordner &amp;lsquo;final&amp;rsquo; bereit und die Exportziele sind definiert.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Endzustand&lt;/strong&gt;&lt;br&gt;
Final-Dateien wurden an alle Bestimmungsorte exportiert.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Durchführung&lt;/strong&gt;&lt;br&gt;
Einmalig müssen die Exportziele definiert werden, z. B. für das Jahresarchiv.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ fow config -s&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;export.archiv&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;../archiv/2017
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Nun können die logischen Pfade für den Export verwendet werden:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ fow export archiv  
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;2&lt;/span&gt; images in weekly/20170205/final  
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Destination: ../archiv/2017  
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Copying 20170202-103548-DSCF4580.jpg. Done.  
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Copying 20170205-180804-DSCF4593.jpg. Done.  
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Existiert die Datei bereits in dem Exportverzeichnis, kann das Überschreiben mit &amp;ndash;force erzwungen werden. Das ist nützlich, wenn finals nach dem Export doch noch mal geändert wurden.&lt;/p&gt;
&lt;p&gt;Alternativ kann auch durch Pfadangabe direkt in ein Exportziel kopiert werden.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ fow export --path&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;~/Bilder/Diashow/
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;clean-up&#34;&gt;CLEAN UP&lt;/h2&gt;
&lt;p&gt;Ein Task ist etwas Temporäres und hat mit der Erzeugung der final-Bilder und dem anschließenden Export in der Regel ausgedient. Fow bietet zum Aufräumen keine Unterstützung.&lt;br&gt;
Wird ein Task nicht mehr benötigt und wurden alle relevanten Dateien aus dem Task kopiert, ist das Taskverzeichnis z. B. per rm zu löschen:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ rm -r 02_Progress/weekly/20170226
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Hinweis&lt;/strong&gt;&lt;br&gt;
Der aktive Task sollte nicht gelöscht werden, da noch der config-Eintrag dazu existiert).&lt;/p&gt;
&lt;/blockquote&gt;
</content>
    </item>
    
    <item>
      <title>Foto-Workflow</title>
      <link>https://kollegen.uber.space/posts/fow-foto-workflow/</link>
      <pubDate>Sat, 04 Mar 2017 00:00:00 +0000</pubDate>
      
      <guid>https://kollegen.uber.space/posts/fow-foto-workflow/</guid>
      <description>&lt;p&gt;Fotos von der Digitalkamera zum sicheren Ablageort zu bringen wird sehr schnell unübersichtlich. Die letzten Urlaubsfotos liegen noch unbearbeitet in einem tmp-Ordner und aus der Nachbearbeitung meiner Kalenderfotos ist auch noch nichts geworden. Ein strukturiertes System muss her&amp;hellip;&lt;/p&gt;
&lt;p&gt;Es gibt viele Programme, um digitale Bildersammlungen zu verwalten. Hier geht es aber um den Schritt davor, also der Entwicklungsprozess vom Kamerabild über die Bearbeitung, Publizieren bis zum Archiv. Der hier skizzierte Workflow bedient sich vorhandener Tools und regelt lediglich die strukturierte Verwendung und systematische Abarbeitung der einzelnen Schritte.&lt;/p&gt;</description>
      <content>&lt;p&gt;Fotos von der Digitalkamera zum sicheren Ablageort zu bringen wird sehr schnell unübersichtlich. Die letzten Urlaubsfotos liegen noch unbearbeitet in einem tmp-Ordner und aus der Nachbearbeitung meiner Kalenderfotos ist auch noch nichts geworden. Ein strukturiertes System muss her&amp;hellip;&lt;/p&gt;
&lt;p&gt;Es gibt viele Programme, um digitale Bildersammlungen zu verwalten. Hier geht es aber um den Schritt davor, also der Entwicklungsprozess vom Kamerabild über die Bearbeitung, Publizieren bis zum Archiv. Der hier skizzierte Workflow bedient sich vorhandener Tools und regelt lediglich die strukturierte Verwendung und systematische Abarbeitung der einzelnen Schritte.&lt;/p&gt;
&lt;h1 id=&#34;übersicht&#34;&gt;Übersicht&lt;/h1&gt;
&lt;p&gt;Folgende Aufgaben fallen in der Regel an (nicht alle Schritte sind immer nötig):&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Bilddateien von der jeweiligen Kamera auf den Computer kopieren (Import)&lt;/li&gt;
&lt;li&gt;Sicherungskopie der Dateien erstellen und Kamerabilder löschen (Backup)&lt;/li&gt;
&lt;li&gt;Umbenennen der Bilder in eine einheitliches Zeitstempelformat (Rename)&lt;/li&gt;
&lt;li&gt;Hinzufügen von Geopositionsdaten, von der Smartphone-App (Location)&lt;/li&gt;
&lt;li&gt;Verschieben, löschen und gruppieren der Bilder in einzelnen Projektordner (Sort)&lt;/li&gt;
&lt;/ol&gt;
&lt;hr&gt;
&lt;p&gt;Nun wird in den Projekten, zeitlich unabhängig voneinander, jedes Bild bearbeitet.&lt;/p&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li&gt;&amp;lsquo;Entwickeln&amp;rsquo; der Bilder in der digitalen Dunkelkammer (Develop)
&lt;ul&gt;
&lt;li&gt;Bildbearbeitung ausführen&lt;/li&gt;
&lt;li&gt;Titel setzen&lt;/li&gt;
&lt;li&gt;Erstellen der finalen Bildes&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Publizieren und Archivieren der Bilder (Export)&lt;/li&gt;
&lt;li&gt;Aufräumen durch Löschen des Projekts incl. aller Bilder (Clean)&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Die gesamte Workflowbearbeitung erfolgt auf einem Linux-Computer. Der lokale Server fungiert als Datendrehscheibe für die GPS-Daten, als Backup-Speicher sowie als Archiv für die fertigen Bilder.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://kollegen.uber.space/posts/fow-foto-workflow/Workflow-%C3%9Cbersicht.png&#34; alt=&#34;Workflow-Übersicht&#34;&gt; Workflow-Übersicht&lt;/p&gt;
&lt;p&gt;Der Workflow lässt sich natürlich genauso auf einem Windows-PC durchführen. Hat man einen PC und möchte nicht auf die Linux-Umgebung verzichtet, bietet es sich an, Linux in einer virtuellen Umgebung zu betreiben. Auf meinem Windows-PC kommt seit Jahren VirtualBox mit Linux Mint/Mate zum Einsatz. Im Folgenden gehen wir aber von einem reinem Kubuntu-Computer aus.&lt;/p&gt;
&lt;h2 id=&#34;das-workflow-verzeichnis&#34;&gt;Das Workflow-Verzeichnis&lt;/h2&gt;
&lt;p&gt;Der Workflow hat eine feste Verzeichnisstruktur mit den drei Hauptverzeichnissen 00_Inbox, 01_Import und 02_Progress.&lt;/p&gt;
&lt;p&gt;Das erste Verzeichnis &lt;strong&gt;00_Inbox&lt;/strong&gt; dient als Eingangskorb. Hier werden die externen Bilder unverändert gesammelt. In das zweite Verzeichnis, &lt;strong&gt;01_Import&lt;/strong&gt;, kommen die Bilder durch Umbenennung. Hier können auch die Geo-Positionen hinzugefügt werden.
Das letzte Oberverzeichnis heist &lt;strong&gt;02_Progress&lt;/strong&gt;, in welches die Bilder dann schließlich, in frei wählbaren Unterordnern, nach Projekten organisiert werden.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://kollegen.uber.space/posts/fow-foto-workflow/verzeichnisstruktur.png&#34; alt=&#34;Verzeichnisstruktur&#34;&gt; Verzeichnisstruktur&lt;/p&gt;
&lt;p&gt;Ein Projektverzeichnis selbst (z. B. 20170226) hat wiederum eine feste Verzeichnisstruktur mit folgenden Verzeichnissen:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;final - Fertig bearbeitete Bilder&lt;/li&gt;
&lt;li&gt;jpg - Originalbilder im JPG-Format&lt;/li&gt;
&lt;li&gt;raw - Originalbilder im RAW-Format&lt;/li&gt;
&lt;li&gt;videos - Originalvideos&lt;/li&gt;
&lt;li&gt;work - Optionales Arbeitsverzeichnis für Hilfsdateien wie z. B. Gimp-Projektdateien&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Betrachten wir nun die einzelnen Schritte genauer und stellen vor, mit welchen Tools die einzelnen Schritte durchgeführt werden können. Welche Programme für die einzelnen Schritte einsetzt, ist letztendlich natürlich Geschmackssache. Wichtig ist nur, dass man das für jeden Zweck das passende Tool findet und dann möglichste dabei bleibt. Als Bilddateien werden hier JPG, RAW und Video-Dateien zusammengefasst.&lt;/p&gt;
&lt;h1 id=&#34;die-einzelnen-schritte-des-workflows&#34;&gt;Die einzelnen Schritte des Workflows&lt;/h1&gt;
&lt;p&gt;Der Workflow setzt sich aus den einzelnen Schritten zusammen, welche vorwiegend streng sequenziell durchgeführt werden. Jeder Schritt hat einen definierten Anfangs- und Endzustand und eine definiertes Tooling. Kommen weitere Bilder hinzu, so wird der Workflow einfach wieder von vorne begonnen.&lt;/p&gt;
&lt;h2 id=&#34;import&#34;&gt;Import&lt;/h2&gt;
&lt;p&gt;&lt;img src=&#34;https://kollegen.uber.space/posts/fow-foto-workflow/import-header.jpg&#34; alt=&#34;Import&#34;&gt;&lt;/p&gt;
&lt;p&gt;Eingang: Bilddateien liegen auf externem Medium, z. B. SD-Card&lt;br&gt;
Ausgang: Bilddateien liegen in 00_Inbox&lt;/p&gt;
&lt;p&gt;Import mit der Dateiverwaltung Dolphin im geteilten Modus. Die Dateien werden per Verschieben von der externen Quelle, abhängig von Dateityp, in das jeweilige Unterverzeichnis verschoben.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://kollegen.uber.space/posts/fow-foto-workflow/Laden-externer-Bilder-durch-Verschieben.jpg&#34; alt=&#34;Laden externer Bilder durch Verschieben&#34;&gt; Laden externer Bilder durch Verschieben&lt;/p&gt;
&lt;p&gt;Alternativ zum Drag&amp;rsquo;n Drop kann man den Import einfacher per Scripting durchführen. Befindet man sich im Workflow-Verzeichnis und hat &amp;lsquo;sdcard&amp;rsquo; gemountet, dann verschiebt man die Dateien sortenrein in drei Schritten:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;photo-workflow$ find /media/sdcard/ -name *.jpg -exec mv &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;{}&amp;#34;&lt;/span&gt; 00_Inbox/jpg &lt;span style=&#34;color:#ae81ff&#34;&gt;\;&lt;/span&gt;  
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;photo-workflow$ find /media/sdcard/ -name *.raf -exec mv &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;{}&amp;#34;&lt;/span&gt; 00_Inbox/raw &lt;span style=&#34;color:#ae81ff&#34;&gt;\;&lt;/span&gt;   
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;photo-workflow$ find /media/sdcard/ -name *.mov -exec mv &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;{}&amp;#34;&lt;/span&gt; 00_Inbox/video &lt;span style=&#34;color:#ae81ff&#34;&gt;\;&lt;/span&gt;  
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;backup&#34;&gt;Backup&lt;/h2&gt;
&lt;p&gt;&lt;img src=&#34;https://kollegen.uber.space/posts/fow-foto-workflow/backup-header.jpg&#34; alt=&#34;Backup&#34;&gt;
Eingang: Alle Bilddateien befinden sich innerhalb des Workflow-Verzeichnisses&lt;br&gt;
Ausgang: Workflow-Verzeichnis extern gesichert&lt;/p&gt;
&lt;p&gt;Der Backup erfolgt einfach per rsync:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;photo-workflow$ rsync -av --delete . /media/diskstation/christianDok/mirrors/photo-workflow
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;rename&#34;&gt;Rename&lt;/h2&gt;
&lt;p&gt;&lt;img src=&#34;https://kollegen.uber.space/posts/fow-foto-workflow/rename-header.jpg&#34; alt=&#34;Rename&#34;&gt;&lt;/p&gt;
&lt;p&gt;Eingang: Bilddateien in 00_Inbox&lt;br&gt;
Ausgang: Bilddateien in 01_Import, 00_Inbox ist leer.&lt;/p&gt;
&lt;p&gt;Die Dateien werden anhand Aufnahmezeitstempel aus den EXIF-Informationen und Originalname in eine einheitliches Format umbenannt. Der Originalname ist Teil des neuen Namens. Damit ist der neue Name immer eindeutig (z. B. bei Serienbildern oder Import von verschiedenen Kameras). Ausserdem gibt es so keine Probleme, falls eine Bilddatei aus versehen ein zweites mal importiert wird: Die alte Datei wird einfach überschrieben.&lt;br&gt;
Als Tool verwende ich Rapid Photo Downloader. Man legt einmal die Regeln fest, dass Umbenennen/Verschieben geht dann mit wenigen Klicks.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://kollegen.uber.space/posts/fow-foto-workflow/Rapid-Photo-Downloader-Verschieben-von-jpg-Bildern.jpg&#34; alt=&#34;Rapid Photo Downloader: Verschieben von jpg-Bildern&#34;&gt; Rapid Photo Downloader: Verschieben von jpg-Bildern&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://kollegen.uber.space/posts/fow-foto-workflow/Namensregel-f%C3%BCr-JPG-Dateien.jpg&#34; alt=&#34;Namensregel für JPG-Dateien&#34;&gt; Namensregel für JPG-Dateien&lt;/p&gt;
&lt;h2 id=&#34;location&#34;&gt;Location&lt;/h2&gt;
&lt;p&gt;&lt;img src=&#34;https://kollegen.uber.space/posts/fow-foto-workflow/location-header.jpg&#34; alt=&#34;Location&#34;&gt;&lt;/p&gt;
&lt;p&gt;Eingang: Bilddateien in 01_Import, optional GPX-Dateien in externer Quelle&lt;br&gt;
Ausgang: Geänderte Bilddateien in 01_Import, GPX-Dateien unverändert&lt;/p&gt;
&lt;p&gt;Für JPG-Dateien werden die Geo-Koordinaten den Bildern hinzugefügt. Liegen RAW-Dateien vor, wird der Schritt übersprungen und erst vor dem Export mit den Final-Bildern durchgeführt.&lt;/p&gt;
&lt;p&gt;Um GPX-Dateien zu erstellen verwende ich meistens GPSLogger auf dem Android-Smartphone. Die so erstellten Dateien werden auf den lokalen Server synchronisiert (mit FolderSync geht das automatisch).&lt;/p&gt;
&lt;p&gt;Als Tool kommt Geotag zum Einsatz. Damit kann man für ein komplettes Bildverzeichnis anhand einer beliebigen Menge von GPX-Dateien die Koordinaten hinzufügen. Hat man keine GPX-Datei, kann man die Location auch per Google-Maps hinzufügen.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://kollegen.uber.space/posts/fow-foto-workflow/Geotag.jpg&#34; alt=&#34;Geotag&#34;&gt; Geotag&lt;/p&gt;
&lt;h2 id=&#34;sort&#34;&gt;Sort&lt;/h2&gt;
&lt;p&gt;&lt;img src=&#34;https://kollegen.uber.space/posts/fow-foto-workflow/sort-out-header.jpg&#34; alt=&#34;Sort&#34;&gt;&lt;/p&gt;
&lt;p&gt;Eingang: Bilddateien in 01_Import&lt;br&gt;
Ausgang: Bilddateien in 02_Progress, 01_Import ist leer&lt;/p&gt;
&lt;p&gt;In diesem Schritt werden zusammenhängende Bilddateien auf einzelne Projekte verteilt. Dazu wird zuerst das Projekt unter 02_Progress/&lt;!-- raw HTML omitted --&gt;/&lt;!-- raw HTML omitted --&gt; angelegt. Ein Beispiel für eine Projektgruppe wäre &amp;lsquo;weekly&amp;rsquo; und pro Woche erstellt man dann darin ein Projekt (z. B. &amp;lsquo;20170205&amp;rsquo;).&lt;/p&gt;
&lt;p&gt;Die Verzeichnisse werden per Dolphin von Hand erstellt. Die Dateien werden, ebenfalls mit Dolphin, im geteilten Modus per Drag&amp;rsquo;n Drop verschoben.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://kollegen.uber.space/posts/fow-foto-workflow/Projekt-f%C3%BCllen.png&#34; alt=&#34;Projekt füllen&#34;&gt; Projekt füllen&lt;/p&gt;
&lt;p&gt;Hat man neben JPGs noch RAW-Dateien, sind diese ebenfalls zu verschieben (ins Zielverzeichnis RAW).&lt;/p&gt;
&lt;h3 id=&#34;raw-automatisch-verschieben&#34;&gt;RAW automatisch verschieben&lt;/h3&gt;
&lt;p&gt;Erstellt man mit der Kamera gleichzeitig JPGs und RAWs, verschiebt man erst die JPGs wie beschrieben. Die gleichnamigen RAWs sind dann zusätzlich zu verschieben (Zielverzeichnis RAW). Per Script kann man das auch automatisieren. Nachdem die JPGs verschoben sind, lässt man die gleichnamigen RAWs nachziehen. Dazu ruft man aus dem Projektverzeichnis heraus auf:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;02_Progress/weekly/20170205$ ls ../../../01_Import/raw/ -1
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;20170202-103548-DSCF4580.raf  
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;20170205-180804-DSCF4593.raf  
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;02_Progress/weekly/20170205$ &lt;span style=&#34;color:#66d9ef&#34;&gt;for&lt;/span&gt; f in jpg/*; &lt;span style=&#34;color:#66d9ef&#34;&gt;do&lt;/span&gt; g&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;${&lt;/span&gt;f/.jpg/.raf&lt;span style=&#34;color:#e6db74&#34;&gt;}&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;; h&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;${&lt;/span&gt;g:4&lt;span style=&#34;color:#e6db74&#34;&gt;}&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;; mv &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;../../../01_Import/raw/&lt;/span&gt;$h&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt; raw/ ; &lt;span style=&#34;color:#66d9ef&#34;&gt;done&lt;/span&gt;  
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;02_Progress/weekly/20170205$ ls raw/ -1  
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;20170202-103548-DSCF4580.raf  
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;20170205-180804-DSCF4593.raf  
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Das Beispiel geht davon aus, dass man sich im aktuellen Projektverzeichnis befindet und die JPG-Dateien bereits dort einsortiert worden sind. Im Verzeichnis 01_Import/raw befinden sich die korrespondierende raf-Dateien.&lt;br&gt;
Dieser Workflowschritt wird pro Projekt vollständig durchgeführt, d.h. die Bilder eines Projektes sind entweder noch alle in 01_Import oder &lt;strong&gt;vollständig&lt;/strong&gt; nach 02_Progress verschoben worden.&lt;/p&gt;
&lt;h3 id=&#34;projektbearbeitung&#34;&gt;Projektbearbeitung&lt;/h3&gt;
&lt;p&gt;Mit Sort sind nun die Bilddateien in Projekte einsortiert worden. Die weitere Bearbeitung erfolgt nun in diesen einzelnen Projekten. Das kann zeitlich unabhängig von einander erfolgen.&lt;/p&gt;
&lt;h2 id=&#34;develop&#34;&gt;Develop&lt;/h2&gt;
&lt;p&gt;&lt;img src=&#34;https://kollegen.uber.space/posts/fow-foto-workflow/develop-header.jpg&#34; alt=&#34;Develop&#34;&gt;&lt;/p&gt;
&lt;p&gt;Eingang: Originalbilder in den Projektverzeichnissen jpg, raw.&lt;br&gt;
Ausgang: Finale Bilddateien als Kopien im Projektverzeichnis final (Auswahl).&lt;/p&gt;
&lt;p&gt;Die JPGs bzw. RAWs werden nun vorsortiert, bearbeitetet und nach final exportiert. Die Originalbilder bleiben dabei unverändert. Dabei können die Bilder zusätzlich mit einem Titel ergänzt werden. Haben die Finals noch keine Geo-Positionsdaten, können diese, wie bereits in Schritt &amp;lsquo;Location&amp;rsquo; beschrieben, um diese ergänzt werden.
Das eingesetzte Tool ist Geschmackssache, ich verwende Darktable.&lt;/p&gt;
&lt;p&gt;Beim Vorsortieren werden die zu bearbeitenden Bilder markiert, z.B. durch Vergabe von drei Sternen:&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://kollegen.uber.space/posts/fow-foto-workflow/Darktable-Bilder-auf-dem-Leuchttisch-vorsortieren.jpg&#34; alt=&#34;Darktable: Bilder auf dem Leuchttisch vorsortieren&#34;&gt; Darktable: Bilder auf dem Leuchttisch vorsortieren&lt;/p&gt;
&lt;p&gt;Nach der Bearbeitung wird das Bild nach final exportiert, ggf. mit einem Titel.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://kollegen.uber.space/posts/fow-foto-workflow/Darktable-Export.jpg&#34; alt=&#34;Darktable: Export&#34;&gt; Darktable: Export&lt;/p&gt;
&lt;p&gt;Das erstellte Bild kann direkt nach Final exportiert werden. Im Feld &amp;lsquo;Speicherziel&amp;rsquo; gibt man dazu &lt;code&gt;&#39;$(FILE_FOLDER)/../final/$(FILE_NAME)&#39;&lt;/code&gt; an.&lt;/p&gt;
&lt;h2 id=&#34;export&#34;&gt;Export&lt;/h2&gt;
&lt;p&gt;&lt;img src=&#34;https://kollegen.uber.space/posts/fow-foto-workflow/export-header.jpg&#34; alt=&#34;Export&#34;&gt;&lt;/p&gt;
&lt;p&gt;Eingang: Finale Bilddateien liegen im Unterverzeichnis final&lt;br&gt;
Ausgang: Bilddateien wurden zu allen Zielen exportiert (Kopie)&lt;/p&gt;
&lt;p&gt;Lokale Exportziele werden durch Kopieren der Dateien aus dem final-Verzeichnis gefüllt (Dolphin). Hochladen in Webportale erfolgt mit deren Importseiten (flickr, Instagram, etc.).&lt;/p&gt;
&lt;p&gt;Exportieren der Daten auf den lokalen Server:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;photo-workflow/02_Progress/weekly/20170205$ ls final/
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;20170202-103548-DSCF4580.jpg  
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;photo-workflow/02_Progress/weekly/20170205$ cp final/*.* media/diskstation/photp/tagesbild/2017
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;clean&#34;&gt;Clean&lt;/h2&gt;
&lt;p&gt;&lt;img src=&#34;https://kollegen.uber.space/posts/fow-foto-workflow/clean-header.jpg&#34; alt=&#34;Clean&#34;&gt;&lt;/p&gt;
&lt;p&gt;Eingang: Projektverzeichnis mit Bilddateien&lt;br&gt;
Ausgang: Projekt mit allen Originaldateien und Zwischendateien wurden gelöscht&lt;/p&gt;
&lt;p&gt;Nach dem Export kann das Projektverzeichnis gelöscht werden: Alle finals wurden exportiert, alle Originalbilder liegen unter jpg bzw. raw. Die Originaldateien werden also nicht aufgehoben.&lt;br&gt;
Auch das Entfernen kann man mit dem Dolphin oder per Bash machen:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;photo-workflow/02_Progress/weekly$  rm -r &lt;span style=&#34;color:#ae81ff&#34;&gt;20170205&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Damit ist der Workflow für das Projekt durchgeführt. Aber sicherlich sind schon die nächsten Bilder auf der Kamera und der Prozess beginnt von vorne&amp;hellip;&lt;/p&gt;
&lt;h1 id=&#34;links&#34;&gt;Links&lt;/h1&gt;
&lt;ul&gt;
&lt;li&gt;Dolphin, wiki.ubuntuusers.de/Dolphin&lt;/li&gt;
&lt;li&gt;Rapid Photo Downloader, &lt;a href=&#34;https://www.damonlynch.net/rapid&#34;&gt;www.damonlynch.net/rapid&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Geotag, geotag.sourceforge.net&lt;/li&gt;
&lt;li&gt;GPSLogger play.google.com/store/apps/details?id=com.mendhak.gpslogger&lt;/li&gt;
&lt;li&gt;FolderSync play.google.com/store/apps/details?id=dk.tacit.android.foldersync.full&lt;/li&gt;
&lt;li&gt;Darktable, &lt;a href=&#34;https://www.darktable.org&#34;&gt;www.darktable.org&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</content>
    </item>
    
  </channel>
</rss>
