Mehr

Export von Gruppe = Multiband-Raster in ein anderes Format funktioniert in GRASS nicht

Export von Gruppe = Multiband-Raster in ein anderes Format funktioniert in GRASS nicht


Ich bin wirklich neu in GRASS und meine Frage ist wirklich grundlegend, aber ich weiß nicht, wo ich falsch liege.

Ich habe einen Satz einzelner Layer in meinem PERMANENT von einigen Landsat-Bildern (1 Landsat = 7 Ein-Layer-Raster). Ich möchte eine Gruppe (in R "Stapel" genannt) dieser Ebenen exportieren = 1 Landsat-Bild in .img erstellen. Ich nehme die folgenden Schritte an, um es in GRASS zu tun:

  1. Einzelne Ebene in GRASS importieren (es gibt keine Möglichkeit, mehrere Ebenen gleichzeitig zu importieren?): r.in.gdal
  2. "Gruppe" erstellen = Multiband-Raster aus Singleband-Rastern: i.gruppe.
  3. Multiband-Raster als neues Format exportieren: r.out.gdal

Mein Problem ist, warum, wenn ich nutze i.gruppe Ich sehe, dass ich tatsächlich eine Gruppe meiner Bands habe:

aber wenn ich eine Gruppe meiner Layer exportieren möchte, sehe ich nur einzelne Bänder, nicht die Gruppe!!

Bitte, irgendeine Idee So erstellen und exportieren Sie Multiband-Raster in .img in GRASS? (und versuchen, Python zu vermeiden?). Da meine Bands im GRASS-Format vorliegen, kann ich die Arbeit mit Software nicht bequemer für mich erledigen.


Ich werde hier Befehle bereitstellen, aber Sie können nur die angegebenen Optionen in den Dialogfeldern finden. Gemäß Ihrer Frage nehme ich an, dass Sie bereits eine GRASS-Bildgruppe haben. Ich werde mich also nur darauf konzentrieren, die Gruppe in ein Multiband-Bildformat zu exportieren.

Sehen Sie sich zunächst an, welche Ausgabeformate unterstützt werden:

r.out.gdal -l

Dadurch erhalten Sie eine lange Liste, die auch HFA/.imgdas gewünschte Format:

HFA (rw+): Erdas Imagine Images (.img)

Sehen Sie als Nächstes, welche Gruppen Sie haben:

g.list type=group

In meinem Fall ist das nur eine Gruppe:

lsat7_2000

Überprüfen Sie zur Sicherheit, welche Raster in der Gruppe enthalten sind:

i.group group=lsat7_2000 -l

In meinem Fall ist es:

Gruppe  verweist auf die folgenden Rasterkarten -------------         -------------

Wir wissen also, dass der Name der Gruppe istlsat7_2000und Name des Formats in GDAL istHFA.

Jetzt kannst du füllenlsat7_2000hinein Name der zu exportierenden Rasterkarte (oder Gruppe) Feld imr.out.gdalDialog,HFAhinein Rasterdatenformat zum Schreiben Feld und Name (und Pfad) der Ausgabedatei in Name für Ausgabe-Raster-Datei Feld.

In der Kommandozeile sieht es so aus:

r.out.gdal input=lsat7_2000 output=some/path/landsat_2000.img format=HFA

Die Quelle Ihrer Verwirrung könnte sein, dass dieEingangOption (Feld) vonr.out.gdalsagt Rasterkarte (oder Gruppe) aber die GUI bietet nur Rasterkarten. Die GUI ermöglicht es Ihnen jedoch, dort alles manuell zu schreiben (d. h. nicht aus der Liste auszuwählen), sodass Sie dort den Namen der Gruppe eingeben können.


R ist eine Sprache und Umgebung für statistisches Rechnen. Es bietet eine Vielzahl von statistischen (z. B. lineare Modellierung, statistische Tests, Zeitreihen, Klassifikation, Clustering usw.) und grafische Methoden und ist hochgradig erweiterbar.

3.1.1 R . beziehen und installieren

Installationsdateien und Anweisungen können vom Comprehensive R Archive Network (CRAN) heruntergeladen werden.

  1. Gehen Sie zum folgenden Link https://cloud.r-project.org/index.html zum Herunterladen und Installieren R.
  2. Wählen Sie eine Installationsdatei für Ihre Plattform aus.

3.1.2 Beziehen und Installieren von RStudio

Anfänger werden es sehr schwer finden, mit der Verwendung zu beginnen R weil es keine grafische Benutzeroberfläche (GUI) hat. Es gibt einige GUIs, die einige der Funktionen von R. RStudio macht R einfacher zu bedienen. Es enthält einen Code-Editor, Debugging- und Visualisierungstools. Ähnliche Schritte müssen zur Installation befolgt werden RStudio.

  1. Gehen Sie zu https://www.rstudio.com/products/rstudio/download/ zum Herunterladen und Installieren RStudio's Open-Source-Ausgabe.
  2. Auf der Downloadseite, RStudio Desktop, Open Source-Lizenz Option ausgewählt werden sollte.
  3. Wählen Sie eine Installationsdatei für Ihre Plattform aus.

3.1.3 Erste Schritte mit R

  • R Handbücher: http://cran.r-project.org/manuals.html
  • Beigetragene Dokumentation: http://cran.r-project.org/other-docs.html
  • Schnell-R: http://www.statmethods.net/index.html
  • Paketüberfluss R Community: https://stackoverflow.com/questions/tagged/r

3 Antworten 3

Es gibt Firmen, die auch in der heutigen Zeit nur EPS akzeptieren, weil sie einen veralteten (und billigen!) Workflow verwenden, wo oft irgendwo in der Richtung von "CorelDRAW" die Rede ist. Es gibt sogar 'nur Druck'-Firmen, die nur JPEGs akzeptieren.
Wenn deine Jungs so sind, lauf! und finde ein paar andere Druckereien.

Sie sollten "PNG" als eines der Formate zählen, die nicht für den Druck geeignet sind.

Der beste möglich Ausgabe – gemischte Vektor- und Bitmaps, eingebettete Schriftarten, Live-Transparenz und alle richtigen Tinten (einschließlich Sonderfarben) – kann nur über PDF erreicht werden. Da es aber viele Möglichkeiten gibt, ein PDF zu erstellen und viele zusätzliche Optionen, sollten Sie still fragen Sie Ihre Druckerei.


Von Illustrator gespeicherte PDFs haben immer dieselbe Größe wie in Ihrem Illustrator-Dokument. Alle Pixelmaße, die Sie in Illustrator sehen, sind eigentlich nur Punkte, die Illustrator 1pt = 1/72 Zoll und der Einfachheit halber 1px = 1pt annimmt. Aber Vektoren haben kein wirkliches Konzept von Pixeln oder Auflösung, daher sollten Pixelmessungen innerhalb von Illustrator meistens ignoriert werden, es sei denn, Ihre endgültige Ausgabe ist ein Rasterbild.

Ihr endgültiges Kunstwerk mit 213 &mal 300 mm ergibt 603,78 &mal 850,39 pt. Welcher Illustrator zeigt dir auch die Pixelgröße an, aber das ist die richtige Größe. Dies ist nur die Pixelgröße Ihres Kunstwerks, wenn Sie es in ein 72-PPI-Rasterbild exportieren, das Sie sind nicht tun.

Wenn Sie Rasterbilder haben innerhalb Ihr Illustrator-Dokument, dann Sie müssen mindestens diese Größe haben, und Sie müssen sicherstellen, dass alle Rastereffekte mit der richtigen Auflösung gerendert werden.


2 Antworten 2

Sie können ein 8-Bit-BMP erhalten, indem Sie das Bild in eine 8-Bit-Darstellung konvertieren:

Beachten Sie, dass Import["test.bmp","ColorSpace"] immer noch RGBColor zurückgibt, da sich ein 8-Bit-BMP noch im RGB-Farbraum befindet (es gibt eine Farbtabelle, die für jedes der 256 möglichen Pixel eine RGB-Farbe angibt Werte - obwohl diese 256 Farben sehr häufig Graustufen sind, kann dies nicht garantiert werden und es ist falsch anzunehmen, dass eine 8-Bit-BMP-Datei immer ein Graustufenbild codiert).

Sie sollten stattdessen Import["test.bmp","ColorDepth"] verwenden, um zu überprüfen, ob Sie ein 8-Bit-BMP haben.

Ich möchte die Antwort von Simon Woods nach meinem derzeitigen Verständnis erweitern.

Der entscheidende Punkt ist, dass eine BMP-Datei normalerweise kein 2D-Array von RGB-Triplets enthält, sondern stattdessen eine Farbtabelle, die alle im Bild verwendeten einzigartigen RGB-Triplets auflistet und jedem von ihnen einen Index zuweist. Das 2D-Array, das das Bild codiert, enthält nur Farbindizes, keine Farben selbst. Die Farben in der Farbtabelle sind als RGB-Tripletts angegeben und daher ist der Farbraum immer RGB.

Beispielsweise kann eine 8-Bit-BMP-Datei nicht mehr als 256 eindeutige RGB-Tripletts in der Farbtabelle enthalten, von denen jedes einen 8-Bit-Index hat. Diese Drillinge können alle Grauschattierungen sein oder auch nicht. Man kann eine solche Datei auch als 32-Bit-BMP speichern und dann hat jeder Eintrag in der Farbtabelle einen 32-Bit-Index. Die Informationen in einer solchen Datei sind gleich, aber die Dateigröße ist viel größer.

Die Farben in der Farbtabelle werden normalerweise im RGBA32-Format mit 4 Byte pro Eintrag angegeben. Dies bedeutet, dass es möglich ist, eine große Anzahl von Graustufenbildern zu erstellen, von denen jedes 256 verschiedene Graustufen aufweist, die ein einzigartiger Satz tatsächlicher Farben im RGBA32-Format sind.

Laut der Dokumentationsseite für das BMP-Format, Mathematik unterstützt die folgenden Importelemente für BMP:

  • "BitDepth" - Anzahl der Bits, die verwendet werden, um einen Farbkanal in der Datei zu kodieren
  • "ColorDepth" - Anzahl der Bits für jedes Pixel
  • "ColorMap" - in der Datei verwendete Farbreduktionspalette

Außerdem erstellt " Exportieren eine BMP-Datei mit indizierter Farbe, wenn farbbezogene Rastergrafiken exportiert werden oder wenn das Element "ColorMap" angegeben ist."


R. R-Skripte erstellen¶

Die R-Integration in QGIS unterscheidet sich von der von SAGA darin, dass es keinen vordefinierten Satz von Algorithmen gibt, die Sie ausführen können (mit Ausnahme einiger Beispiele). Stattdessen sollten Sie Ihre Skripte schreiben und R-Befehle aufrufen, ähnlich wie Sie es von R aus tun würden, und auf eine sehr ähnliche Weise wie wir es in dem Abschnitt über die Verarbeitung von Skripten gesehen haben. Dieser Abschnitt zeigt Ihnen die Syntax zum Aufrufen dieser R-Befehle von QGIS und wie Sie QGIS-Objekte (Layer, Tabellen) darin verwenden.

Das erste, was Sie tun müssen, ist, wie wir im Fall von SAGA gesehen haben, QGIS mitzuteilen, wo sich Ihre R-Binärdateien befinden. Sie können dies mit der R-Ordner Eintrag im Verarbeitungskonfigurationsdialog. Nachdem Sie diesen Parameter festgelegt haben, können Sie mit der Erstellung und Ausführung Ihrer eigenen R-Skripte beginnen.

Pro Fenster Benutzer, normalerweise befindet sich die ausführbare R-Datei im C:ProgrammeRR-3.2 Mappe. Fügen Sie nur den Ordner hinzu und NICHT die binäre!

Auch hier ist dies unter Linux anders, und Sie müssen nur sicherstellen, dass der Ordner R in der Umgebungsvariablen PATH enthalten ist. Wenn Sie R starten können, tippen Sie einfach R in einer Konsole, dann können Sie loslegen.

Um einen neuen Algorithmus hinzuzufügen, der eine R-Funktion aufruft (oder ein komplexeres R-Skript, das Sie entwickelt haben und von QGIS verfügbar haben möchten), müssen Sie eine Skriptdatei erstellen, die dem Verarbeitungsframework mitteilt, wie diese Operation auszuführen ist und die entsprechenden R-Befehle dazu.

R-Skriptdateien haben die Erweiterung .rsx , und deren Erstellung ist ziemlich einfach, wenn Sie nur über Grundkenntnisse der R-Syntax und der R-Skripterstellung verfügen. Sie sollten im R-Skriptordner gespeichert werden. Sie können diesen Ordner im R settings-Gruppe (verfügbar im Dialogfeld "Verarbeitungseinstellungen"), genau wie beim Ordner für normale Verarbeitungsskripte.

Schauen wir uns eine sehr einfache Skriptdatei an, die die R-Methode aufruft spsample um ein zufälliges Gitter innerhalb der Grenzen der Polygone in einem bestimmten Polygon-Layer zu erstellen. Diese Methode gehört zu den Kartentools Paket. Da fast alle Algorithmen, die Sie in QGIS integrieren möchten, Geodaten verwenden oder generieren, sind Kenntnisse über Geodatenpakete wie Kartentools und speziell, sp , ist obligatorisch.

Die ersten Zeilen, die mit einem doppelten Python-Kommentarzeichen ( ## ), teilen Sie QGIS die Eingaben des in der Datei beschriebenen Algorithmus und die Ausgaben mit, die er erzeugen wird. Sie arbeiten mit exakt der gleichen Syntax wie die bereits gesehenen Processing-Skripte, daher werden sie hier nicht noch einmal beschrieben.

Bitte schauen Sie in die R Einführung und das R-Syntax Schulungshandbuch-Kapitel für weitere Informationen zum Schreiben eigener R-Skripte-

Wenn Sie einen Eingabeparameter deklarieren, verwendet QGIS diese Informationen für zwei Dinge: Erstellen der Benutzeroberfläche, um den Benutzer nach dem Wert dieses Parameters zu fragen und Erstellen einer entsprechenden R-Variablen, die später als Eingabe für R-Befehle verwendet werden kann.

Im obigen Beispiel deklarieren wir eine Eingabe vom Typ Vektor genannt polyg . Beim Ausführen des Algorithmus öffnet QGIS den vom Benutzer ausgewählten Layer in R und speichert ihn in einer Variablen namens polyg . Der Name eines Parameters ist also auch der Name der Variablen, die wir in R verwenden können, um auf den Wert dieses Parameters zuzugreifen (daher sollten Sie es vermeiden, reservierte R-Wörter als Parameternamen zu verwenden).

Räumliche Elemente wie Vektor- und Rasterebenen werden mit dem readOGR() und Ziegel() Befehle (Sie müssen sich nicht darum kümmern, diese Befehle zu Ihrer Beschreibungsdatei hinzuzufügen – QGIS wird dies tun), und sie werden gespeichert als Räumlich*DataFrame Objekte. Tabellenfelder werden als Strings gespeichert, die den Namen des ausgewählten Felds enthalten.

Tabellen werden mit dem geöffnet read.csv() Befehl. Wenn eine vom Benutzer eingegebene Tabelle nicht im CSV-Format vorliegt, wird sie vor dem Import in R konvertiert.

Darüber hinaus können Rasterdateien mit dem readGDAL() Befehl statt Ziegel() mit der ##usereadgdal .

Wenn Sie ein fortgeschrittener Benutzer sind und nicht möchten, dass QGIS das Objekt erstellt, das den Layer repräsentiert, können Sie das ##Passdateinamen -Tag, um anzugeben, dass Sie stattdessen eine Zeichenfolge mit dem Dateinamen bevorzugen. In diesem Fall liegt es an Ihnen, die Datei zu öffnen, bevor Sie eine Operation an den darin enthaltenen Daten durchführen.

Mit den obigen Informationen können wir nun die erste Zeile unseres ersten Beispielskripts verstehen (die erste Zeile beginnt nicht mit einem Python-Kommentar).

Die Variable Polygon enthält bereits a SpatialPolygonsDataFrame -Objekt, sodass es verwendet werden kann, um die spsample Methode, genau wie die Anzahl Punkte eins, das die Anzahl der Punkte angibt, die dem erstellten Beispielraster hinzugefügt werden sollen.

Da wir eine Ausgabe vom Typ Vektor namens . deklariert haben aus , müssen wir eine Variable namens . erstellen aus und speichern Räumlich*DataFrame Objekt darin (in diesem Fall a SpatialPointsDataFrame ). Sie können einen beliebigen Namen für Ihre Zwischenvariablen verwenden. Stellen Sie nur sicher, dass die Variable, die Ihr Endergebnis speichert, denselben Namen hat, den Sie für die Deklaration verwendet haben, und dass sie einen geeigneten Wert enthält.

In diesem Fall ist das Ergebnis aus dem spsample Methode muss explizit in a . umgewandelt werden SpatialPointsDataFrame Objekt, da es selbst ein Objekt der Klasse ist ppp , die keine geeignete Klasse ist, um an QGIS zurückgegeben zu werden.

Wenn Ihr Algorithmus Raster-Layer generiert, hängt die Art der Speicherung davon ab, ob Sie die ##dontuserasterpaket Möglichkeit. Wenn Sie es verwendet haben, werden Ebenen mit dem writeGDAL() Methode. Wenn nicht, die writeRaster() Methode aus dem Raster Paket verwendet wird.

Wenn Sie die ##Passdateinamen Option werden Ausgaben mit der Raster Paket (mit writeRaster() ), obwohl es nicht für die Eingänge verwendet wird.

Wenn Ihr Algorithmus keinen Layer, sondern ein Textergebnis in der Konsole erzeugt, müssen Sie angeben, dass die Konsole nach Abschluss der Ausführung angezeigt werden soll. Starten Sie dazu einfach die Befehlszeilen, die die zu druckenden Ergebnisse liefern, mit dem > (‘größer’) Zeichen. Die Ausgabe aller anderen Zeilen wird nicht angezeigt. Hier ist zum Beispiel die Beschreibungsdatei eines Algorithmus, der einen Normalitätstest für ein gegebenes Feld (Spalte) der Attribute einer Vektorebene durchführt:

Die Ausgabe der letzten Zeile wird gedruckt, die Ausgabe der ersten jedoch nicht (und auch die Ausgaben von anderen Befehlszeilen werden nicht automatisch von QGIS hinzugefügt).

Wenn Ihr Algorithmus irgendeine Art von Grafiken erstellt (mit dem Handlung() Methode), fügen Sie die folgende Zeile hinzu:

Dies führt dazu, dass QGIS alle grafischen R-Ausgaben in eine temporäre Datei umleitet, die geöffnet wird, sobald die R-Ausführung abgeschlossen ist.

Sowohl die Grafik- als auch die Konsolenergebnisse werden im Verarbeitungsergebnismanager angezeigt.

Weitere Informationen finden Sie in den Skriptdateien, die mit Processing bereitgestellt werden. Die meisten von ihnen sind ziemlich einfach und werden Ihnen helfen zu verstehen, wie Sie Ihre eigenen Skripte erstellen.

rgdal und Raster Bibliotheken werden standardmäßig geladen, sodass Sie die entsprechenden nicht hinzufügen müssen Bibliothek() Befehle (Sie müssen nur sicherstellen, dass diese beiden Pakete in Ihrer R-Distribution installiert sind). Andere zusätzliche Bibliotheken, die Sie möglicherweise benötigen, müssen jedoch explizit durch Eingabe geladen werden. Bibliothek(ggplot2) . Wenn das Paket noch nicht auf Ihrem Computer installiert ist, wird es von Processing heruntergeladen und installiert. Auf diese Weise wird das Paket auch in R Standalone verfügbar sein. Sei vorsichtig Wenn das Paket heruntergeladen werden muss, kann es beim ersten Ausführen des Skripts lange dauern.


Aufforderung zur Eingabe von Datenbankdateien

Die folgenden Routinen fragen den Benutzer interaktiv nach einem Dateinamen aus einer bestimmten Datenbank Element. (Eine Erläuterung der Elemente finden Sie unter Elemente.) In jedem prompt string wird als erste Zeile der vollständigen Eingabeaufforderung ausgegeben, die den Benutzer auffordert, einen Dateinamen einzugeben. Ob prompt die leere Zeichenfolge "" ist, wird eine entsprechende Eingabeaufforderung ersetzt. Der vom Benutzer eingegebene Name wird in das Name Puffer. Die Größe des Namens sollte groß genug sein, um einen beliebigen GRASS-Dateinamen aufzunehmen. Die meisten Systeme erlauben, dass Dateinamen ziemlich lang sind. Es wird empfohlen, dass name als char name[GNAME_MAX] deklariert wird.

Die kurze (ein oder zwei Wörter) Etikett Beschreibung der Element wird beim Auflisten der Dateien als Teil eines Titels verwendet im Element.

Der Benutzer muss einen gültigen Dateinamen eingeben oder die Eingabetaste drücken, um die Anforderung abzubrechen. Wenn der Benutzer eine ungültige Antwort eingibt, wird eine Nachricht gedruckt und der Benutzer wird erneut aufgefordert. Wenn der Benutzer die Anforderung abbricht, wird der NULL-Zeiger zurückgegeben. Andernfalls wird das Mapset zurückgegeben, in dem sich die Datei befindet oder erstellt werden soll. Sowohl der Name als auch das Mapset werden in anderen Routinen verwendet, um auf die Datei zu verweisen.

Ein Beispiel soll hier gegeben werden. Die im Beispiel verwendete Routine G_ask_old() wird etwas später beschrieben. Der Benutzer wird aufgefordert, eine Datei aus dem Element "paint/labels" einzugeben:

Der Benutzer sieht Folgendes:

Die letzte Zeile der Eingabeaufforderung kann mit G_set_ask_return_msg() geändert werden.

char * G_ask_old() Eingabeaufforderung für vorhandene Datenbankdatei

Der Benutzer wird aufgefordert, den Namen einer bestehenden Datenbankdatei einzugeben.

Notiz. Diese Routine sucht nach der Datei im aktuellen Mapset sowie in anderen Mapsets. Die durchsuchten Mapsets werden aus dem Mapset-Suchpfad des Benutzers bestimmt. Weitere Informationen zum Suchpfad finden Sie unter Mapset_Search_Path.

char * G_ask_new() Eingabeaufforderung für neue Datenbankdatei Der Benutzer wird aufgefordert, den Namen einer neuen Datei einzugeben, die im aktuellen Mapset nicht existiert.

Notiz. Die vom Benutzer ausgewählte Datei kann in anderen Mapsets vorhanden sein. Diese Routine sieht in anderen Mapsets nicht aus, da davon ausgegangen wird, dass Name wird verwendet, um eine neue Datei zu erstellen. Neue Dateien werden immer im aktuellen Mapset erstellt.

char * G_ask_in_mapset() Eingabeaufforderung für vorhandene Datenbankdatei

Der Benutzer wird aufgefordert, den Namen einer Datei einzugeben, die im aktuellen Mapset vorhanden ist.

Notiz. Die vom Benutzer ausgewählte Datei kann in anderen Mapsets vorhanden sein oder nicht. Diese Routine sieht in anderen Mapsets nicht aus, da davon ausgegangen wird, dass Name wird verwendet, um eine Datei zu ändern. GRASS erlaubt Benutzern nur, Dateien im aktuellen Mapset zu ändern.

char * G_ask_any() fragt nach einem gültigen Dateinamen

Der Benutzer wird aufgefordert, einen beliebigen legalen Dateinamen einzugeben. Ob warnen 1 ist und die ausgewählte Datei im aktuellen Mapset vorhanden ist, wird der Benutzer gefragt, ob es in Ordnung ist, die Datei zu überschreiben. Ob warnen 0 ist, wird jeder legale Name akzeptiert und der Benutzer wird nicht gewarnt, wenn die Datei vorhanden ist.

Der Teil "Hit RETURN to Cancel Request" der Aufforderung in den oben beschriebenen Aufforderungsroutinen wird in "Hit RETURN <B>msg.</B>" modifiziert.

char * G_get_ask_return_msg() get Hit RETURN msg


Zunächst einige Klarstellungen:

reine Bildgröße: Pixel × Pixel

Mathematica Bildgröße: der Abstand x Abstand des Bildes, definiert als ein Vielfaches von 1/72'', was ungefähr 0,353 mm beträgt (1/72'' wird als a . bezeichnet Druckpunkt)

Druckgröße: Abstand × Abstand auf dem Druckmedium

Druckerauflösung (dpi): hängt von den Druckereigenschaften ab, es ist die Anzahl der kleinen Tropfen, die er heutzutage in einem linearen Zoll platzieren kann, im Allgemeinen über 1000 dpi, aufgrund der mechanischen Eigenschaften des Druckers kann er mehr Punkte in eine "horizontale" Linie als in eine vertikale Linie setzen Bei einigen Druckern kann dieser Wert aus Gründen des Tintenverbrauchs geändert werden.

Druckausgabe mit Bildauflösung (dpi): die Anzahl der Pixel, die auf dem Bild definiert sind und in einer 1-Zoll-Zeile oder -Spalte auf dem Blatt Papier platziert werden

Mathematica ImageResolution: eine Möglichkeit, anzugeben, wie viele Pixel in der exportierten Datei generiert werden sollen usw.

Nehmen wir an, Sie haben eine Bilddatei mit 1000 × 1000 Pixeln. Welche Auflösung hat dein Bild? Wenn es weder auf dem Bildschirm noch auf dem Papier angezeigt wird, hat es keine Auflösung (sicher, dass Ihre Bildsoftware in einer Datei einen bestimmten Wert für die Auflösung registrieren kann, aber dieser Wert hat absolut keinen Einfluss auf Ihr Bild, sehen Sie es als so etwas wie das Datum auf einem digitalen Foto.)

(Ich bin mir sicher, dass jemand aus dem "Druck"-Geschäft einigen der von mir verwendeten Wörter nicht zustimmen würde, aber verwenden wir dies als meine persönliche praktische Definition)

Wenn Sie dieses 1000 × 1000-Pixel-Bild auf Papier im Format 4" × 4" drucken, hat es ein Druckausgabe mit Bildauflösung von 1000/4" = 250 dpi. Wenn Sie mit a . gedruckt haben Druckerauflösung von 2500 × 2500 dpi, dann platziert Ihr Drucker 10 × 10 Tintentropfen, um jedes Pixel Ihres digitalen Bildes zu rendern (dies ermöglicht auch eine korrekte Farbwiedergabe von nur 3 oder 5 verschiedenen Tintenempfängern).

Wenn Sie dasselbe 1000 × 1000-Bild auf Ihrem Bildschirm mit einem 100 %-Zoom anzeigen (wobei jedes Pixel des Bildes genau ein Pixel auf Ihrem Bildschirm einnimmt), misst Ihr Bild höchstwahrscheinlich 1000/72" (wenn Sie a Lineal), da die meisten Bildschirme eine Auflösung von 72 dpi haben (neuere Laptops haben möglicherweise eine wesentlich höhere Auflösung).

Eine weitere wichtige Frage ist also: Was soll mein . sein? Druckausgabe mit Bildauflösung?

Beim Drucken sollten Sie ein Druckausgabe mit Bildauflösung an die Entfernung angepasst, in der das Bild zu sehen ist. Es ist üblich zu sagen, dass jemand mit einem 20/20-Visier in der Lage ist, maximal 0,3 bis 0,4 Bogenminuten zu unterscheiden. Angesichts des Wertes 0,3 können wir sagen, dass für einen perfekten Druck die Druckausgabe mit Bildauflösung, in dpi, sollte (360/(0,3/60))/(2 d*Pi) sein, wobei d für den Betrachtungsabstand (in Zoll) steht.

Trotzdem füge ich hier meine persönlichen Erfahrungen zu Druckergebnissen hinzu (wo die Dinge aus offensichtlichen Gründen nicht so perfekt sind wie auf perfekt geometrischen Displays): Unterhalb von 150 dpi werden Sie die Pixel auf Ihrem gedruckten Träger oben leicht sehen 300 dpi, nur mit sehr präzisen Druckern und bei genauer Betrachtung werden Sie einen Unterschied zum gleichen Bild bei 300 dpi feststellen. Aus Neugierde entsprechen diese praktischen Grenzen für eine perfekte Sicht einer Entfernung zwischen 1 und 2 Metern.

Für Ihr Beispiel, einen 3' × 5'-Druck, denke ich, dass 200 dpi Druckausgabe mit Bildauflösung ist mehr als genug, da es sich wahrscheinlich um einen Druck handelt, der aus einer gewissen Entfernung beobachtet wird. Jeder, der weiter als 1,5 m entfernt ist, übersteigt die physische Fähigkeit, Pixel zu unterscheiden, und ich würde hinzufügen, dass das Bild bis zu einem Viertel dieser Entfernung noch völlig akzeptabel ist (schließlich leben wir ziemlich glücklich mit 72/ 96 dpi wird bis vor nicht allzu langer Zeit angezeigt. )

Dies bedeutet, dass Sie 3 × 12 × 200 mal 5 × 12 × 200 = 7200 × 12000 Pixel für Ihre Datei benötigen.

Wie generiert man dies auf Mathematica?

Es gibt viele verschiedene Möglichkeiten. Ich zeige Ihnen ein paar Beispiele.

Im Folgenden wird ein Bild von 100 "Druckerpunkten" (horizontal) erstellt, also 100*1/72'', was ca. 36 mm entspricht.

Was das bedeutet, ist leider etwas schwer zu verstehen, da die Größe, die das Bild auf Ihrem Bildschirm einnehmen wird, wahrscheinlich nicht 36 mm beträgt. Es hängt von der Vergrößerung ab, dem Unterschied zwischen Ihrer tatsächlichen Bildschirmauflösung und dem, was Mathematica daraus liest (nicht immer übereinstimmen), usw. Wenn Sie jedoch das Lineal aktivieren (Windows->Regeln anzeigen), werden Sie sehen, dass es übereinstimmt. Betrachten Sie es also eher als Meta-Information.

Im Folgenden wird das zuvor generierte Bild mit dem Standardwert von ImageResolution exportiert, der 72 dpi beträgt. Dies bedeutet, dass Ihre JPG-Datei (100 * 1 / 72'') * 72 dpi = 100 horizontale Pixel hat.

Das Folgende exportiert ein Bild mit einer Größe von 200 horizontalen Pixeln (es ändert Ihre ursprüngliche Option, die im Plot definiert ist)

Und mit folgendem legen Sie die ImageResolution für die Exportfunktion fest. Dies ist wahrscheinlich das, wonach Sie suchen.

Daher empfehle ich Ihnen, mit ImageSize herumzuspielen, um ein gut aussehendes Bild auf Ihrem Bildschirm zu erhalten (die Texte in der richtigen Größe usw.) und es dann unter Angabe der ImageResolution zu exportieren, um die 7200 × 12000-Pixel-Datei zu erhalten.


Ich habe nach einer Möglichkeit gesucht, dies zu tun, kann aber keine Möglichkeit finden, es direkt zu tun. Hier ist eine Problemumgehung.

Wenn Sie mit iTunes synchronisieren, können Sie die OPML-Dateien aus iTunes exportieren:

Öffnen Sie in iTunes 11 Podcasts und wählen Sie dann „Datei“ > „Bibliothek“ > ​​„Wiedergabeliste exportieren“ und wählen Sie dann das OPML-Format.

Oder klicken Sie mit der rechten Maustaste auf den Podcasts-Eintrag in der Seitenleiste (wenn die Seitenleiste nicht angezeigt wird, klicken Sie auf Ansicht > Seitenleiste anzeigen, wählen Sie "Exportieren." und dann das OPML-Format.

Dies ist wirklich ein Kommentar zur obigen Antwort, aber zu lang für den Stapelaustausch.

Ich habe die Antwort von @nthonygreen erhalten, aber es war überraschenderweise nicht offensichtlich, wie es geht.

Der erste Fehler, den ich machte, war: Ich hatte mein iPhone an meinen Computer angeschlossen und iTunes zeigte die Inhalte des Telefons im linken Bereich an, das Menü Datei> Bibliothek> Exportieren war ausgegraut. Es hat lange gedauert, bis ich erkannte, dass ich oben links auf ein Symbol klicken musste, das mir Podcasts im Allgemeinen anzeigte, im Gegensatz zu Podcasts auf dem Telefon dann Ich könnte exportieren.

Dann war das Importieren schwierig! Ich habe mir die opml-Datei per E-Mail geschickt und in der Mail-App auf den Anhang geklickt. dies zeigte das rohe XML im Vollbildmodus, ohne offensichtliche Möglichkeit, etwas damit zu tun (z. B. Overcast dazu zu bringen, es zu importieren, was ich letztendlich wollte). Irgendwann bemerkte ich, dass, wenn ich auf den Bildschirm tippte, eine Menüleiste oben auf dem Bildschirm erschien und ein "Export"-Symbol (ein Quadrat mit einem Pfeil, der von seiner Mitte nach oben zeigt) auftippte, das mir eine Reihe von Symbolen zeigte , und ich konnte sie scrollen, um Bewölkt anzuzeigen. die es glücklich importiert. Puh!


2 Antworten 2

Gut. Ich bin lange von LibreOffice weg. Aber Sie können diese versuchen:

Klicken Sie beim Bearbeiten Ihrer Folie mit der rechten Maustaste auf das Bild. Es sollte eine Option wie "Speichern", "Als Bild speichern" oder "Exportieren" oder ähnliches geben.

Verlieren Sie sich im Exportmenü. Versuchen Sie, etwas Passendes für Sie zu finden.

Klicken Sie mit der rechten Maustaste auf das Bild und wählen Sie etwas wie "Ändern". Wenn Sie Glück haben, können Sie vom tatsächlichen Pfad des Bildes aus suchen. Aber es ist wirklich ein langer Schuss.

Die erste Option sollte den Trick für Sie tun. Allerdings bekomme ich immer noch nicht "in eine Textdatei exportieren". Ihre Bilder in eine Textdatei?