Страница 2 из 2
Re: GDAL Warp - ошибка с 16бит
Добавлено: 17 фев 2014, 15:39
Sergey Astakhov
wowka1319 писал(а):Добавил "-setci":
gdalwarp -t_srs EPSG:32654 -setci TEST_01.tiff TEST_01_setci.tiff
но почему-то он не сработал:
Так версия GDAL то какая? Этот ключик должен работать начиная с 10 версии.
Re: GDAL Warp - ошибка с 16бит
Добавлено: 17 фев 2014, 18:28
gamm
wowka1319 писал(а):Добавил "-setci":
gdalwarp -t_srs EPSG:32654 -setci TEST_01.tiff TEST_01_setci.tiff
но почему-то он не сработал:
если не секрет, зачем вам вся эта борьба с этим ключиком, если ваши файлы нормально открываются в любой ГИС, и все каналы там присутствуют?
Re: GDAL Warp - ошибка с 16бит
Добавлено: 17 фев 2014, 19:09
Дмитрий Барышников
wowka1319 писал(а):
Прошу Дмитрия Барышникова сбросить мне результирующие файлы полученные из моих с ключом -setci.
Пожалуйста:
https://drive.google.com/file/d/0BzlLlH ... sp=sharing
Re: GDAL Warp - ошибка с 16бит
Добавлено: 17 фев 2014, 20:31
wowka1319
пробую программно:
// 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
ЧЯДНТ?
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
Re: GDAL Warp - ошибка с 16бит
Добавлено: 20 фев 2014, 08:11
wowka1319
так у меня eDT = GDT_UInt16, а не GDT_Byte. С GDT_Byte и у меня работает.
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