Hallo Forum,
kann mir jemand sagen wie ich unter AV 9 einen definierten Koordinatenbereich als TIF-Datei mit Weltdatei exportieren kann?
In der Daten-Ansicht erhalte ich zwar eine Weltdatei, kann aber nur im Bildschirmverhältnis exportieren.
In der Layout-Ansicht hingegen habe ich alles was ich benötige (ich kann z.B. einen Koordinatenbereich einstellen) aber ich erhalte leider keine Weltdatei!
Gruß
GisMoe
kann mir jemand sagen wie ich unter AV 9 einen definierten Koordinatenbereich als TIF-Datei mit Weltdatei exportieren kann?
In der Daten-Ansicht erhalte ich zwar eine Weltdatei, kann aber nur im Bildschirmverhältnis exportieren.
In der Layout-Ansicht hingegen habe ich alles was ich benötige (ich kann z.B. einen Koordinatenbereich einstellen) aber ich erhalte leider keine Weltdatei!
Gruß
GisMoe
- Anmelden oder Registieren, um Kommentare verfassen zu können
Gespeichert von Maxilla am Di., 06.02.2007 - 12:26
Permalinkdas geht meines Wissens so erst mal nicht, es sei denn du passt dir den Bildausschnitt jedesmal entsprechend an, was natürlich doof und ungenau ist. Ich hab ein VBA-Skript, das einen - auf Grundlage einer selektierten Grafik - abgegrenzten Map-Bereich in ein JPEG (+ JGW Worldfile) schreibt. Willst' haben?
Gruß, Mx.
Gespeichert von gismoe am Mi., 07.02.2007 - 13:53
Permalinkja stimmt: Doof ungenau und falsches Seitenverhältnis!
"Selektierte Grafik" bedeutet das , dass ich z.B. ein Polygon als Abgrenzung verwenden kann? Wenn ja, dann: Haben wollen....;-))
Gruß
Gismoe
Gespeichert von schulzibabe am Do., 08.02.2007 - 11:08
PermalinkVielleicht kannste das Script ja irgendwo hochladen und den Link hier posten.
Unser Dank wäre dir sicher.
Alex
Gespeichert von Maxilla am Do., 08.02.2007 - 13:44
PermalinkKartenausschnitt in JPEG exportieren (Link)
Gespeichert von Alexander Schulze am Do., 08.02.2007 - 19:47
PermalinkSchönen Dank nochmal.
Gespeichert von gismoe am Mo., 12.02.2007 - 08:57
Permalinkdanke für das Script. Klappt ausgezeichnet! Jetzt wo ich jpg durch tif ersetzt habe, ist es genau das was ich gesucht habe....
Gruß
Gisoe
Gespeichert von schulzibabe am Mi., 14.02.2007 - 08:08
Permalinkich hab dazu auch noch ne Frage. Habe den Code dahingehend geändert, dass ich jetzt nen GeoTIFF ausgegeben bekomme. Sieht auch alles sehr gut. Wenn ich dann aber in die Eigenschaften des erzeugten Bildes schaue, ist bei Spatial Referenz nix eingetragen. Gibts da irgendne Möglichkeit dass direkt über den VBA-Code gemacht werden oder bleibt mir nur die Möglichkeit das im Nachhinein zu tun.
MfG
Alex
Gespeichert von Maxilla am Mi., 14.02.2007 - 08:27
PermalinkDim pExportTiff As IExportTIFF
Set pExportTiff = pExport
pExportTiff.GeoTiff = True
gesetzt?
Gespeichert von Maxilla am Mi., 14.02.2007 - 09:10
PermalinkGespeichert von schulzibabe am Mi., 14.02.2007 - 10:05
PermalinkNicht das wir uns falsch verstehen. Der Extent is richtig gesetzt, aber normalerweise steht doch im GeoTIFF-Tag auch das Spatial Reference System drin.
In diesem Falle steht dort Undefined. Bei deinem Code auch.
Alex
Gespeichert von Maxilla am Mi., 14.02.2007 - 10:56
PermalinkIn den GeoTIFF-Tag werden durch das Skript nur die Image/World-Koordinaten geschrieben. Welchem Koordinatensystem (GaußKrüger, UTM,...) das entspricht, ist durch die paar Zahlen ja nicht definiert.
Wenn du also das System im Tag haben willst, musst du es explizit in den Header schreiben. Wie das über das Skript ginge, weiß ich nicht - das mach ich bei Bedarf (denn meistens ist es irrelevant) über die ArcToolbox - Define Projection...
Maxilla
Gespeichert von schulzibabe am Mi., 14.02.2007 - 11:35
PermalinkÜber die Toolbox is klar.
Alex
Gespeichert von gismoe am Mi., 14.02.2007 - 11:35
PermalinkGisMoe
Gespeichert von Maxilla am Mi., 14.02.2007 - 15:25
PermalinkDies ist der Header eines mit meinem Code geschriebenen GeoTiffs:
------------------------------------
Geotiff_Information:
Version: 1
Key_Revision: 1.0
Tagged_Information:
ModelTiepointTag (2,3):
0 0 0
2506549.99 5626895.42 0
ModelPixelScaleTag (1,3):
0.59243679 0.59158295 0
End_Of_Tags.
Keyed_Information:
End_Of_Keys.
End_Of_Geotiff.
Corner Coordinates:
Upper Left ( 2506549.986, 5626895.422)
Lower Left ( 2506549.986, 5626477.765)
Upper Right ( 2506992.536, 5626895.422)
Lower Right ( 2506992.536, 5626477.765)
Center ( 2506771.261, 5626686.593)
------------------------------------
Die Datei ist über die Eckkoordinaten vernünftig georeferenziert, das Koordinatensystem aber nicht getagged. In den ArcGIS-Properties des GeoTIFFs ist die Spatial Reference undefiniert. Wenn man das Koordinatensystem nun in ArcCatalog über den Properties-Dialog der Datei definiert, sieht der Header so aus:
------------------------------------
Geotiff_Information:
Version: 1
Key_Revision: 1.0
Tagged_Information:
ModelTiepointTag (2,3):
0 0 0
2506549.99 5626895.42 0
ModelPixelScaleTag (1,3):
0.59243679 0.59158295 0
End_Of_Tags.
Keyed_Information:
GTModelTypeGeoKey (Short,1): ModelTypeProjected
GTRasterTypeGeoKey (Short,1): RasterPixelIsArea
GTCitationGeoKey (Ascii,236): "IMAGINE GeoTIFF Support
Copyright 1991 - 2001 by ERDAS, Inc. All Rights Reserved
@(#)$RCSfile: egtf.c $ $Revision: 1.11.2.3 $ $Date: 2004/11/24 09:12:56EST $
Projection Name = WGS_1984_UTM_Zone_12N
Units = meters
GeoTIFF Units = meters"
ProjectedCSTypeGeoKey (Short,1): PCS_WGS84_UTM_zone_12N
PCSCitationGeoKey (Ascii,205): "IMAGINE GeoTIFF Support
Copyright 1991 - 2001 by ERDAS, Inc. All Rights Reserved
@(#)$RCSfile: egtf.c $ $Revision: 1.11.2.3 $ $Date: 2004/11/24 09:12:56EST $
UTM Zone 12N
Ellipsoid = WGS 84
Datum = WGS 84"
ProjLinearUnitsGeoKey (Short,1): Linear_Meter
End_Of_Keys.
End_Of_Geotiff.
PCS = 32612 (name unknown)
Projection = 16012 ()
Projection Method: CT_TransverseMercator
ProjNatOriginLatGeoKey: 0.000000 ( 0d 0' 0.00"N)
ProjNatOriginLongGeoKey: -111.000000 (111d 0' 0.00"W)
ProjScaleAtNatOriginGeoKey: 0.999600
ProjFalseEastingGeoKey: 500000.000000 m
ProjFalseNorthingGeoKey: 0.000000 m
GCS: 4326/WGS 84
Datum: 6326/World Geodetic System 1984
Ellipsoid: 7030/WGS 84 (6378137.00,6356752.31)
Prime Meridian: 8901/Greenwich (0.000000/ 0d 0' 0.00"E)
Projection Linear Units: 9001/metre (1.000000m)
Corner Coordinates:
Upper Left ( 2506549.986, 5626895.422)
Lower Left ( 2506549.986, 5626477.765)
Upper Right ( 2506992.536, 5626895.422)
Lower Right ( 2506992.536, 5626477.765)
Center ( 2506771.261, 5626686.593)
------------------------------------
Auch jetzt ist das GeoTIFF noch durch die selben Eckkordinaten georeferenziert, der Tag benennt nun aber zusätzlich auch die Spatial Reference. Schaut man jetzt mit ArcGis in die Properties des GeoTIFFs ist die Spatial Reference belegt.
ArcGIS liest diese aber nun offenbar nicht aus dem GeoTIFF-Header, sondern aus dem nebenbei erzeugten AUX-File. Das merkt man, wenn man das AUX einfach löscht. Dann ist die Spatial Reference für ArcGIS wieder 'Undefined', obwohl sie ja eigentlich ausführlich im GeoTIFF-Header steht. Coole Sache...
Wenn das alles so stimmt, wäre das Fazit: Schulzibabe muss in seinem Urlaub den Code so umbasteln, dass ein AUX-File mitexportiert wird.
Maxilla
Gespeichert von gismoe am Mi., 14.02.2007 - 15:56
Permalinkwas muss man machen damit die Spatial Reference mit getagged wird? Ich hatte dem Datenrahmen und dem Layer einen Raumbezug mitgegeben. Trotzdem brachte mir listgeo nur die Eckkoordinaten für die exportierte Tif-Datei.
Oder hast du dieser neuen Tif-Datei nachträglich noch einen Raumbezug gegeben?
Gruß
Gismoe
Gespeichert von Maxilla am Mi., 14.02.2007 - 16:27
Permalinkich habe - wie gesagt - nachträglich im ArcCatalog die Properties des GeoTIFFs geöffnet und dort die Spatial Reference zugewiesen (wahrscheinlich geht's auch über das 'Define Projection'-Tool, hab ich aber net ausprobiert). Um die Änderungen zuzuweisen, ist es am Besten ArcCatalog danach komplett zu schließen.
ListGeo hat mir entsprechend dieses Vorgehens vorher den einen, nachher den anderen der oben geposteten Header angezeigt.
Ich wollte damit nur sagen:
ArcGis tagged das Koordinatensystem grundsätzlich schon, NICHT aber über das pExportTiff.GeoTiff = True. Und: ArcGis tagged das Koordinatensystem im GeoTIFF, liest den Tag dann aber nicht aus.
Wie auch immer, mir ist's wurscht denn meistens reicht mir - wie vom Skript geschrieben - die reine Georeferenzierung im Tag oder im Worldfile.
Hier aber noch ein ganz interessanter Artikel dazu: Using ArcCatalog ... to Complete and Correct GeoTIFF Headers
Mx.
Gespeichert von Alexander Schulze am Mi., 14.02.2007 - 18:57
PermalinkUnd mit dem Code basteln war nur nen Spass. Bin da nich so die große Leuchte und schon ganz stolz auf mich nen GeoTiff rausbekommen zu haben.
Alex
Gespeichert von Alexander Schulze am Mi., 14.02.2007 - 20:44
PermalinkAlex
Gespeichert von gismoe am Do., 15.02.2007 - 08:59
PermalinkAV geht in der folgenden Reihenfolge vor:
1. Header
2. AUX-File
3. World-File
Das bedeutet meines Erachtens: Aux gelöscht (Info steht weiterhin im Header) - TIF-Datei wird geladen, dann wird automatisch eine neue Aux erstellt.
Gruß
GisMoe
Gespeichert von Carsten am Di., 04.12.2007 - 12:00
Permalinkich habe Maxillas Codes heruntergeladen und als *.txt gespeichert. Wie wende ich sie nun aber an? Muss man Scripte als VBA speichern oder so?
Wie man in AV 3.X Scripte einließt weiß ich, wie mache ich das aber in ArcGIS 9? Habe leider beim Suchen nichts gefunden, sonst würde ich nicht fragen.
Gruß Carsten
Gespeichert von Maxilla am Di., 04.12.2007 - 12:44
PermalinkGespeichert von Carsten am Di., 04.12.2007 - 13:13
Permalinkbeim Kompilieren erhalte ich die Fehlermeldung:
"Mehrdeutiger Name: FlipLineVersion" in der Zeile:
Public Property Get FlipLineVersion() As UID
Was kann das bedeuten?
Gruß Carsten
Gespeichert von Maxilla am Di., 04.12.2007 - 14:03
PermalinkGespeichert von Carsten am Di., 04.12.2007 - 14:42
PermalinkEine *.mxd geladen und im Menü: Werkzeuge > Makros > Makros geöffnet;
Name vergeben, erstellen geklickt. Anschließend deinen Text hinein kopiert.
Fortsetzen klicken = "Fehler End Sub erwartet"
Zeile: "End Sub" ganz am Ende gelöscht. Dann wieder kompiliert.
Zeile : Sub Test ganz am Anfang gelöscht. Dann wieder kompiliert.
Fehler =
"Mehrdeutiger Name: FlipLineVersion" in der Zeile:
Public Property Get FlipLineVersion() As UID
Hierbei wird allerdings die normal.mxd geöffnet.
Gruß Carsten
PS: Ist halt das erste Mal, dass ich sowas ausprobiere!!!
Gespeichert von Maxilla am Di., 04.12.2007 - 14:53
PermalinkSonst probier's mal so:
- Die Dateierweiterung des Codes in .bas ändern
- In ArcMap den Visual Basic Editor öffnen
- Dort im 'Projekt'-Fenster das gewünschte Projekt wählen
- Mit Rechtsklick - Import file - die BAS-Datei importieren
- Den VB-Editor schließen
- Über 'Tools - Macros - Macros' auswählen und ausführen
Gespeichert von Carsten am Mi., 05.12.2007 - 09:20
Permalinkbei mir wird beim Kompilieren immer die normal.mxt gestartet. Ich glaube, ich habe eine Erweiterung geladen, die vielleicht nicht für die Version 9.2 gedacht ist. Wie kann man denn eine defekte Erweiterung entfernen? Hinzufügen ist leicht, aber entfernen.
Gruß Carsten
Gespeichert von Maxilla am Mi., 05.12.2007 - 09:58
PermalinkBei 'alten' Erweiterungen, die vor dem 9.2 Update nicht deinstalliert worden sind, gibt es aber anscheinend Probleme, siehe hier.
Gespeichert von Carsten am Mi., 05.12.2007 - 10:35
PermalinkGruß Carsten
Gespeichert von Carsten am Mi., 05.12.2007 - 11:24
PermalinkHabe in ArcMap shapes geladen ein Rechteck gezeichnet es aktiviert und dem Datenrahmen ein Koordinatensystem zugewiesen. Wenn ich nun das Script ablaufen lassen. Kommt folgende Fehlermeldung:
Error in ExportMap2_GraphDelimited: Fehler bei Dateierstellung
Gruß Carsten
Gespeichert von Maxilla am Mi., 05.12.2007 - 13:10
PermalinkDu kannst das im Code verändern, und zwar an dieser Stelle:
'----- MODIFY FILENAME AND OUTPUT PATH? -----
pathname = "d:\temp"
filename = "Exp_" & pMap.Name & ".jpg"
Gespeichert von Carsten am Mi., 05.12.2007 - 13:45
PermalinkSuper, vielen Dank - schon wieder viel gelernt!
Gruß Carsten
Gespeichert von Schulzea am Mo., 04.02.2008 - 16:44
Permalinkwürde diesen Forumseintrag gern nochmal aufwärmen.
Habe das Script damals erfolgreich genutzt, jetzt aber Probleme bekommen.
Kann das daran liegen, das ich jetzt die Version 9.2 verwende?
Also ich habe ein SRTM-Raster, dem ich eine Colortable zugewiesen habe und ein Hillshade(60%). Diese beiden Layer möchte ich nun exportieren.
Habe also das Fenster aufgezogen usw.. Funktioniert auch alles.
Wenn ich dann allerdings das erzeugte Tiff wieder in ArcMap einlade, stellt sich mir folgendes Phänomen dar.
Der Extent ist fast richtig. Er sollte zwischen dem hellgrünen und dem dunklen sein. Ist allerdings der innere Rahmen. Was mich jetzt stört ist, dass ich an der linken und der rechten Seite einen weißen Rand hab der zu meinem exportierten Bild gehört. Siehe URL.
http://img523.imageshack.us/my.php?image=exportem8 .jpg
Kann ich das irgendwie verhindern?
Geändert habe ich folgenes:
Dim pExportTiff As esriOutput.IExportTIFF
Set pExportTiff = pExport
pExportTiff.GeoTiff = True
pExportTiff.CompressionType = esriTIFFCompressionLZW
sowie die Input und Outputresolution.
schönen Gruß
Alex