Страница 1 из 1

Определение проекции слоя + 180 меридиан.

Добавлено: 09 дек 2013, 03:54
Anton_Kh
Доброго дня!

Имеется ряд SHP-файлов без файла PRJ.

Необходимо установить в какой проекции эти данные создавались для того чтоб создать PRJ-файл и далее их трансформировать в какую-либо общепринятую систему координат.

Особенностью территории и объектов является то что через них проходит 180 меридиан.
И лежит в 2-х зонах WGS 84 / UTM zone 60N и WGS 84 / UTM zone 1N.

К шейпам имеется текстовый файл с описанием проекции:

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

	Projection:	 	Transverse Mercator
	Spheroid:		 Krasovsky
	Units:			 Meters
	Scale factor:		0.9996
	Central meridian:		-179 degrees
	Latitude of origin:	0
	False easting:		500,000
	False northing:		0
Исходя из приведенных параметров пробывал создать PRJ-файл средствами ogr2ogr:
(центральный меридиан -179 град)

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

ogr2ogr -a_srs "+proj=tmerc +lat_0=0 +lon_0=-179 +k=0.9996 +x_0=500.000 +y_0=0 +ellps=krass +units=m +no_defs" -f "ESRI Shapefile" BORDER-179.SHP BORDER.SHP
получаем PRJ-файл следующего содержания:

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

PROJCS["Transverse_Mercator",GEOGCS["GCS_Krassovsky, 1942",DATUM["D_unknown",SPHEROID["krass",6378245,298.3]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-179],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500],PARAMETER["false_northing",0],UNIT["Meter",1]]
и так (центральный меридиан 179 град):

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

ogr2ogr -a_srs "+proj=tmerc +lat_0=0 +lon_0=179 +k=0.9996 +x_0=500.000 +y_0=0 +ellps=krass +units=m +no_defs" -f "ESRI Shapefile" BORDER179.SHP BORDER.SHP
получили PRJ-файл:

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

PROJCS["Transverse_Mercator",GEOGCS["GCS_Krassovsky, 1942",DATUM["D_unknown",SPHEROID["krass",6378245,298.3]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",179],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500],PARAMETER["false_northing",0],UNIT["Meter",1]]
Для проверки правильности результатов спроецирования использовал сцену Ландсат LC80950102013175LGN00 имеющую СК 'WGS 84 / UTM zone 60N'.

При включенной конвертации на лету ни один из 2-х созданных файлов не попал куда нужно — малиновый и коричневый полигоны.

При попытке просто добавить векторный файл в проект, при приглашении выбрать СК, в случае выбора UTM zone 60N, полигон попадал в соответсвующюю зону (зеленый полигон). При выборе UTM zone 1N полигон попадает соответственно в зону UTM zone 1N (синий полигон).

Прошу посоветовать как/какую выбрать корректную СК для работы с этими данными.

Re: Определение проекции слоя + 180 меридиан.

Добавлено: 09 дек 2013, 06:35
Игорь Белов
False easting: 500,000
означает не 500, а 500000.

Re: Определение проекции слоя + 180 меридиан.

Добавлено: 12 дек 2013, 01:33
Anton_Kh
Благодарю за подсказку!
означает не 500, а 500000.
Слой лег практически как надо, но остались неточности.
в целом слой оказался смещенным на запад приблизительно на 400-1400м.
при том, на краю острова, котоый ближе к полюсу смещение значительно сильней чем на южном краю.

Какие правки в описание проекции порекомендуете внести, чтоб слой размещался на 500 метров восточней?

Re: Определение проекции слоя + 180 меридиан.

Добавлено: 12 дек 2013, 06:38
Игорь Белов
Сдвиг может объясняться происхождением данных. В некоторых зарубежных источниках встречаются ошибки в положении островов в Северном Ледовитом океане до 10 км.
Чтобы сместить слой на 500 метров к востоку, уменьшайте false_easting на 500.