Omdan GeoTiff fil til 16-bit PNG fil

Der skal anvendes programmet GDAL som kan hentes her: http://www.gisinternals.com link til den version 3.0 her: http://download.gisinternals.com/sdk/downloads/release-1900-x64-gdal-3-0-0-mapserver-7-4-0/gdal-300-1900-x64-core.msi, kig efter ” Generic installer for the GDAL core components ” for at finde den rigtige installationspakke

Hvis man vil anvende gdal_merge.py så skal man først have installeret Python i den version som GDAL python udvidelsen foreskriver, man skal også installere Python udvidelsen Numpy.

GDAL er et kommando linje program, og åbner command-prompt ved start.

For at oversætte en GeoTiff fil, skal man først køre et infoprogram for at finde skalering for min/max højde.

Køres med følgende parameter:

gdalinfo -mm <filnavn med fuld sti> , min/max(står nederst) er vist med rødt herunder

Eksempel:

C:\Program Files\GDAL>gdalinfo -mm "C:\Users\mmo21\Documents\Kortmateriale\DTM_618_71_TIF_UTM32-ETRS89\DTM_1km_6185_711.tif"
Driver: GTiff/GeoTIFF
Files: C:\Users\mmo21\Documents\Kortmateriale\DTM_618_71_TIF_UTM32-ETRS89\DTM_1km_6185_711.tif
Size is 2500, 2500
Coordinate System is:
BOUNDCRS[
    SOURCECRS[
        PROJCRS["ETRS89 / UTM zone 32N",
            BASEGEOGCRS["ETRS89",
                DATUM["European Terrestrial Reference System 1989",
                    ELLIPSOID["GRS 1980",6378137,298.257222101,
                        LENGTHUNIT["metre",1]]],
                PRIMEM["Greenwich",0,
                    ANGLEUNIT["degree",0.0174532925199433]]],
            CONVERSION["UTM zone 32N",
                METHOD["Transverse Mercator",
                    ID["EPSG",9807]],
                PARAMETER["Latitude of natural origin",0,
                    ANGLEUNIT["degree",0.0174532925199433],
                    ID["EPSG",8801]],
                PARAMETER["Longitude of natural origin",9,
                    ANGLEUNIT["degree",0.0174532925199433],
                    ID["EPSG",8802]],
                PARAMETER["Scale factor at natural origin",0.9996,
                    SCALEUNIT["unity",1],
                    ID["EPSG",8805]],
                PARAMETER["False easting",500000,
                    LENGTHUNIT["metre",1],
                    ID["EPSG",8806]],
                PARAMETER["False northing",0,
                    LENGTHUNIT["metre",1],
                    ID["EPSG",8807]]],
            CS[Cartesian,2],
                AXIS["(E)",east,
                    ORDER[1],
                    LENGTHUNIT["metre",1]],
                AXIS["(N)",north,
                    ORDER[2],
                    LENGTHUNIT["metre",1]],
            USAGE[
                SCOPE["unknown"],
                AREA["Europe - 6┬░E to 12┬░E and ETRS89 by country"],
                BBOX[38.76,6,83.92,12]],
            ID["EPSG",25832]]],
    TARGETCRS[
        GEOGCRS["WGS 84",
            DATUM["World Geodetic System 1984",
                ELLIPSOID["WGS 84",6378137,298.257223563,
                    LENGTHUNIT["metre",1]]],
            PRIMEM["Greenwich",0,
                ANGLEUNIT["degree",0.0174532925199433]],
            CS[ellipsoidal,2],
                AXIS["geodetic latitude (Lat)",north,
                    ORDER[1],
                    ANGLEUNIT["degree",0.0174532925199433]],
                AXIS["geodetic longitude (Lon)",east,
                    ORDER[2],
                    ANGLEUNIT["degree",0.0174532925199433]],
            USAGE[
                SCOPE["unknown"],
                AREA["World"],
                BBOX[-90,-180,90,180]],
            ID["EPSG",4326]]],
    ABRIDGEDTRANSFORMATION["Transformation to WGS84",
        METHOD["Position Vector transformation (geog2D domain)",
            ID["EPSG",9606]],
        PARAMETER["X-axis translation",0,
            ID["EPSG",8605]],
        PARAMETER["Y-axis translation",0,
            ID["EPSG",8606]],
        PARAMETER["Z-axis translation",0,
            ID["EPSG",8607]],
        PARAMETER["X-axis rotation",0,
            ID["EPSG",8608]],
        PARAMETER["Y-axis rotation",0,
            ID["EPSG",8609]],
        PARAMETER["Z-axis rotation",0,
            ID["EPSG",8610]],
        PARAMETER["Scale difference",1,
            ID["EPSG",8611]]]]
Data axis to CRS axis mapping: 1,2
Origin = (711000.000000000000000,6186000.000000000000000)
Pixel Size = (0.400000000000000,-0.400000000000000)
Metadata:
  AREA_OR_POINT=Area
Image Structure Metadata:
  COMPRESSION=DEFLATE
  INTERLEAVE=BAND
Corner Coordinates:
Upper Left  (  711000.000, 6186000.000) ( 12d21'51.20"E, 55d46'24.75"N)
Lower Left  (  711000.000, 6185000.000) ( 12d21'48.42"E, 55d45'52.46"N)
Upper Right (  712000.000, 6186000.000) ( 12d22'48.49"E, 55d46'23.17"N)
Lower Right (  712000.000, 6185000.000) ( 12d22'45.70"E, 55d45'50.88"N)
Center      (  711500.000, 6185500.000) ( 12d22'18.45"E, 55d46' 7.82"N)
Band 1 Block=256x256 Type=Float32, ColorInterp=Gray
    Computed Min/Max=12.125,40.486
  NoData Value=-9999

Herefter køres programmet gdal_translate, med følgende setup, <Min> og <Max> kopieres efter “gdalinfo” er kørt:

gdal_translate -of PNG -ot UInt16 -scale <Min> <Max> 0 65535 – outsize 2541 2541 “<Tiff-filnavn med fuld sti>” “<Outputfilnavn med fuld sti>.png”

Man skal være opmærksom på at “-outsize 2541 2541” billedets størrelse i pixels og at de 2541 svarer til opløsningen på landskabet i Unreal, i eksemplet er billedet 2500×2500, men unreal’s nærmeste opløsning er 2541×2541 så derfor reguleres størrelsen. Hvis man ikke gør det vil der komme en “margin” rundt om landskabet.

Eksempel:

C:\Program Files\GDAL>gdal_translate -of PNG -ot UInt16 -scale 12.125 40.486 0 65535 -outsize 2541 2541 "C:\Users\mmo21\Documents\Kortmateriale\DTM_618_71_TIF_UTM32-ETRS89\DTM_1km_6185_711.tif" "C:\Users\mmo21\Documents\Kortmateriale\DTM_618_71_TIF_UTM32-ETRS89\DTM_1km_6185_711.png"
Input file size is 2500, 2500
0...10...20...30...40...50...60...70...80...90...100 - done.

Herefter er png-filen klar til import som højdekort i UE4, se her http://wobelix.dk/blog/2018/01/25/kort-generelt-og-kort-import-i-unreal/


Posted

in

by

Tags:

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.