टिफ इमेज में जियोफेरेंसिंग डेटा जोड़ना


10

मैं एक .tiffफ़ाइल से एक जियोफेरेक्टेड फ़ाइल बनाना चाहता हूं .png। तो मैं .tiffनिम्न कमांड लाइन का उपयोग करके .png को एक सामान्य फ़ाइल में परिवर्तित करता हूं :

convert image.png image.tiff

यहां, सभी ठीक काम करते हैं, मेरे पास एक वैध .tiffफ़ाइल है, जो ठीक दिखाता है। फिर, मैं इसमें कुछ जियोफेरेंसिंग डेटा जोड़ना चाहता हूं। ऐसा करने के लिए, मुझे एक टूल मिला tiff2geotiff, जिसे मैं इस तरह से उपयोग कर रहा हूं:

tiff2geotiff -4 "+proj=latlong +ellps=WGS84 +datum=WGS84 +no_defs" -c none -n "-122.5575664 38.5818201 -122.5449425 38.5896175" notgeoreferenced.tiff georeferenced.tiff

यह मुझे एक काली छवि देता है, जो QGis में आयात किया गया है, अच्छी जगह में ठीक प्रदर्शित करता है, सिवाय इसके कि यह हर जगह काला है (सबूत है कि georeferenced डेटा अच्छी तरह से जोड़ा गया है )।

इसलिए, जब मैं करता हूं:

gdalinfo georeferenced.tiff

मुझे मिला :

Warning 1: TIFFReadDirectory:Bogus "StripByteCounts" field, ignoring and calculating from imagelength
Driver: GTiff/GeoTIFF
Files: araujo_tmp.tiff
Size is 1585, 979
Coordinate System is:
GEOGCS["WGS 84",
    DATUM["WGS_1984",
        SPHEROID["WGS 84",6378137,298.257223563,
            AUTHORITY["EPSG","7030"]],
        AUTHORITY["EPSG","6326"]],
    PRIMEM["Greenwich",0],
    UNIT["degree",0.0174532925199433],
    AUTHORITY["EPSG","4326"]]
Origin = (-122.557563781738281,38.589618682861328)
Pixel Size = (0.000007966552118,-0.000007972639275)
Metadata:
  AREA_OR_POINT=Area
  TIFFTAG_DOCUMENTNAME=georeferenced.tiff
Image Structure Metadata:
  INTERLEAVE=PIXEL
Corner Coordinates:
Upper Left  (-122.5575638,  38.5896187) (122d33'27.23"W, 38d35'22.63"N)
Lower Left  (-122.5575638,  38.5818135) (122d33'27.23"W, 38d34'54.53"N)
Upper Right (-122.5449368,  38.5896187) (122d32'41.77"W, 38d35'22.63"N)
Lower Right (-122.5449368,  38.5818135) (122d32'41.77"W, 38d34'54.53"N)
Center      (-122.5512503,  38.5857161) (122d33' 4.50"W, 38d35' 8.58"N)
Band 1 Block=1585x1 Type=Byte, ColorInterp=Red
Band 2 Block=1585x1 Type=Byte, ColorInterp=Green
Band 3 Block=1585x1 Type=Byte, ColorInterp=Blue

मुझे लगता है कि पहली चेतावनी समस्या हो सकती है ...

क्या कोई ऐसा व्यक्ति है जो यह जानता है कि ऐसा करने का दूसरा तरीका क्यों है? मैं कमांड लाइन में या में समाधान के लिए देख रहा हूँ PHP

धन्यवाद !


समाधान

मुझे पता चला कि छवियों gdal_translateमें जियॉर्फेरेंसिंग डेटा जोड़ सकते हैं.tiff , इसलिए यहां कमांड लाइन है जो पीएनजी से परिवर्तित होती है और जियोफेरफेरेंसिंग डेटा जोड़ते हैं (आपको extents ( llx ury urx lly) को बदलना होगा ), निश्चित रूप से:

gdal_translate -a_nodata 0 -of GTiff -a_srs EPSG:4326 -a_ullr llx ury urx lly pngfile.png tifffile.tiff

आपके सवाल के बारे में अगर वहाँ गदल php बाइंडिंग हैं, PHP वर्तमान में GDAL / OGR द्वारा ठीक से समर्थित नहीं है। trac.osgeo.org/gdal/wiki/GdalOgrInPhp
nickves

जवाबों:


7

उपयोग करने के बजाय convert, क्या आप gdal_translatepng को tiff में बदलने के लिए उपयोग करने का प्रयास कर सकते हैं और फिर इसे gdal_warp का उपयोग करके भू-रूपांतरण कर सकते हैं (यह मानते हुए कि आपने tiff के लिए tfw फ़ाइल बनाई है)?


यहाँ कमांड लाइन है जो मैं अभी उपयोग करता हूं:gdal_translate -scale pngfile.png tifffile.tiff
जूलियन फोइले

5

क्या आप छवि के विस्तार को जानते हैं? यदि आप छवि के बाउंडिंग निर्देशांक जानते हैं तो आप हमें -a_srs (यह प्रक्षेपण बताता है) और -a_ullr (यह बाउंडिंग निर्देशांक है) के साथ gdal_translate कर सकते हैं। मैंने इसे कम लागत वाली मछली पकड़ने वाली सोनार इकाई से जियोटीफ़ में सोनार छवियों को बदलने के लिए उपयोग किया है।


1
तो आप कह रहे हैं कि मुझे छवि के विस्तार को जोड़ने के लिए tiff2geotiff का उपयोग करने की आवश्यकता नहीं है (हाँ मेरे पास उनके पास है)? :) ठंडा ! हाँ, मैं देख रहा हूँ कि प्रलेखन में, मैं इसे tiff2geotiff के बजाय उपयोग करूंगा, धन्यवाद!
जुलिएन फोइलहे

कोई बात नहीं, मुझे खुशी है कि इससे मदद मिलेगी
रयान गारनेट
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.