GDAL Warp - ошибка с 16бит

Sergey Astakhov
Активный участник
Сообщения: 218
Зарегистрирован: 21 дек 2012, 01:57
Репутация: 52
Откуда: Питер

Re: GDAL Warp - ошибка с 16бит

Сообщение Sergey Astakhov » 17 фев 2014, 15:39

wowka1319 писал(а):Добавил "-setci":
gdalwarp -t_srs EPSG:32654 -setci TEST_01.tiff TEST_01_setci.tiff
но почему-то он не сработал:
Так версия GDAL то какая? Этот ключик должен работать начиная с 10 версии.

gamm
Гуру
Сообщения: 4069
Зарегистрирован: 15 окт 2010, 08:33
Репутация: 1064
Ваше звание: программист
Откуда: Казань

Re: GDAL Warp - ошибка с 16бит

Сообщение gamm » 17 фев 2014, 18:28

wowka1319 писал(а):Добавил "-setci":
gdalwarp -t_srs EPSG:32654 -setci TEST_01.tiff TEST_01_setci.tiff
но почему-то он не сработал:
если не секрет, зачем вам вся эта борьба с этим ключиком, если ваши файлы нормально открываются в любой ГИС, и все каналы там присутствуют?

Аватара пользователя
Дмитрий Барышников
Гуру
Сообщения: 2572
Зарегистрирован: 17 ноя 2009, 19:17
Репутация: 261
Откуда: Москва

Re: GDAL Warp - ошибка с 16бит

Сообщение Дмитрий Барышников » 17 фев 2014, 19:09

wowka1319 писал(а):
Прошу Дмитрия Барышникова сбросить мне результирующие файлы полученные из моих с ключом -setci.
Пожалуйста: https://drive.google.com/file/d/0BzlLlH ... sp=sharing

wowka1319
Участник
Сообщения: 93
Зарегистрирован: 04 дек 2013, 02:14
Репутация: 1

Re: GDAL Warp - ошибка с 16бит

Сообщение wowka1319 » 17 фев 2014, 20:31

пробую программно:

// Create the output file.
hDstDS = (GDALDataset*) GDALCreate( hDriver, dst_filename, nPixels, nLines, hSrcDS->GetRasterCount(), eDT, NULL );
CPLAssert( hDstDS != NULL );

//Color Interpretation
hDstDS->GetRasterBand(1)->SetColorInterpretation(GCI_RedBand);
hDstDS->GetRasterBand(2)->SetColorInterpretation(GCI_GreenBand);
hDstDS->GetRasterBand(3)->SetColorInterpretation(GCI_BlueBand);

а на выходе опять файл с Gray/Undefined/Undefined
ЧЯДНТ?

Аватара пользователя
Дмитрий Барышников
Гуру
Сообщения: 2572
Зарегистрирован: 17 ноя 2009, 19:17
Репутация: 261
Откуда: Москва

Re: GDAL Warp - ошибка с 16бит

Сообщение Дмитрий Барышников » 17 фев 2014, 23:35

Не воспроизводится:

Код: Выделить всё

//test
    GDALAllRegister();
    const char *pszFormatr = "GTiff";
    GDALDriver *pDriver = (GDALDriver*)GDALGetDriverByName(pszFormatr);

    GDALDataset* poDstDataset = pDriver->Create("d://out.tif", 100, 100, 3, GDT_Byte, NULL);
    OGRSpatialReference* oSRS = new OGRSpatialReference();
    oSRS->importFromEPSG(3857);

    char *pszSRS_WKT = NULL;
    oSRS->exportToWkt(&pszSRS_WKT);

    poDstDataset->SetProjection(pszSRS_WKT);

    CPLFree(pszSRS_WKT);

    poDstDataset->GetRasterBand(1)->SetColorInterpretation(GCI_RedBand);
    poDstDataset->GetRasterBand(2)->SetColorInterpretation(GCI_GreenBand);
    poDstDataset->GetRasterBand(3)->SetColorInterpretation(GCI_BlueBand);

    GDALClose((GDALDatasetH)poDstDataset);
    //end test 
gdalinfo d://out.tif
Driver: GTiff/GeoTIFF
Files: d:\out.tif
Size is 100, 100
Coordinate System is:
PROJCS["WGS 84 / Pseudo-Mercator",
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"]],
PROJECTION["Mercator_1SP"],
PARAMETER["central_meridian",0],
PARAMETER["scale_factor",1],
PARAMETER["false_easting",0],
PARAMETER["false_northing",0],
UNIT["metre",1,
AUTHORITY["EPSG","9001"]],
EXTENSION["PROJ4","+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs"],
AUTHORITY["EPSG","3857"]]
Metadata:
AREA_OR_POINT=Area
Image Structure Metadata:
INTERLEAVE=PIXEL
Corner Coordinates:
Upper Left ( 0.0, 0.0)
Lower Left ( 0.0, 100.0)
Upper Right ( 100.0, 0.0)
Lower Right ( 100.0, 100.0)
Center ( 50.0, 50.0)
Band 1 Block=100x27 Type=Byte, ColorInterp=Red
Band 2 Block=100x27 Type=Byte, ColorInterp=Green
Band 3 Block=100x27 Type=Byte, ColorInterp=Blue
Последний раз редактировалось Дмитрий Барышников 20 фев 2014, 12:19, всего редактировалось 1 раз.

wowka1319
Участник
Сообщения: 93
Зарегистрирован: 04 дек 2013, 02:14
Репутация: 1

Re: GDAL Warp - ошибка с 16бит

Сообщение wowka1319 » 20 фев 2014, 08:11

так у меня eDT = GDT_UInt16, а не GDT_Byte. С GDT_Byte и у меня работает.

Аватара пользователя
Дмитрий Барышников
Гуру
Сообщения: 2572
Зарегистрирован: 17 ноя 2009, 19:17
Репутация: 261
Откуда: Москва

Re: GDAL Warp - ошибка с 16бит

Сообщение Дмитрий Барышников » 20 фев 2014, 12:18

Все равно не воспроизводится:

Код: Выделить всё

    //test
    GDALAllRegister();
    const char *pszFormatr = "GTiff";
    GDALDriver *pDriver = (GDALDriver*)GDALGetDriverByName(pszFormatr);

    GDALDataset* poDstDataset = pDriver->Create("d://out.tif", 100, 100, 3, GDT_UInt16, NULL);
    OGRSpatialReference* oSRS = new OGRSpatialReference();
    oSRS->importFromEPSG(3857);

    char *pszSRS_WKT = NULL;
    oSRS->exportToWkt(&pszSRS_WKT);

    poDstDataset->SetProjection(pszSRS_WKT);

    CPLFree(pszSRS_WKT);

    poDstDataset->GetRasterBand(1)->SetColorInterpretation(GCI_RedBand);
    poDstDataset->GetRasterBand(2)->SetColorInterpretation(GCI_GreenBand);
    poDstDataset->GetRasterBand(3)->SetColorInterpretation(GCI_BlueBand);

    GDALClose((GDALDatasetH)poDstDataset);
    //end test
gdalinfo d:\out.tif
Driver: GTiff/GeoTIFF
Files: d:\out.tif
Size is 100, 100
Coordinate System is:
PROJCS["WGS 84 / Pseudo-Mercator",
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"]],
PROJECTION["Mercator_1SP"],
PARAMETER["central_meridian",0],
PARAMETER["scale_factor",1],
PARAMETER["false_easting",0],
PARAMETER["false_northing",0],
UNIT["metre",1,
AUTHORITY["EPSG","9001"]],
EXTENSION["PROJ4","+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs"],
AUTHORITY["EPSG","3857"]]
Metadata:
AREA_OR_POINT=Area
Image Structure Metadata:
INTERLEAVE=PIXEL
Corner Coordinates:
Upper Left ( 0.0, 0.0)
Lower Left ( 0.0, 100.0)
Upper Right ( 100.0, 0.0)
Lower Right ( 100.0, 100.0)
Center ( 50.0, 50.0)
Band 1 Block=100x13 Type=UInt16, ColorInterp=Red
Band 2 Block=100x13 Type=UInt16, ColorInterp=Green
Band 3 Block=100x13 Type=UInt16, ColorInterp=Blue

Ответить

Вернуться в «GDAL/OGR»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость