Создание полигонов по координатам txt
-
- Интересующийся
- Сообщения: 29
- Зарегистрирован: 07 окт 2011, 08:03
- Репутация: 0
- Откуда: Саранск
Создание полигонов по координатам txt
Есть у меня координаты около 5000 в txt, они идут сплошняком с замыкающей точкой, мне надо построить полигоны. через какую программу это проще всего сделать автоматизированно?
пример
401966.67 2303353.66
402007.31 2303356.64
402006.28 2303372.24
402009.37 2303372.54
402008.94 2303378.60
402005.63 2303378.40
402005.38 2303380.16
401979.52 2303379.24
401969.51 2303378.94
401964.64 2303378.38
401965.04 2303371.46
401965.59 2303365.40
401966.67 2303353.66 <= замыкающая точка
401955.94 2303377.88
401931.84 2303375.18
401877.18 2303373.65
401881.13 2303350.52
401934.00 2303350.94
401958.29 2303352.61
401955.94 2303377.88
пример
401966.67 2303353.66
402007.31 2303356.64
402006.28 2303372.24
402009.37 2303372.54
402008.94 2303378.60
402005.63 2303378.40
402005.38 2303380.16
401979.52 2303379.24
401969.51 2303378.94
401964.64 2303378.38
401965.04 2303371.46
401965.59 2303365.40
401966.67 2303353.66 <= замыкающая точка
401955.94 2303377.88
401931.84 2303375.18
401877.18 2303373.65
401881.13 2303350.52
401934.00 2303350.94
401958.29 2303352.61
401955.94 2303377.88
-
- Гуру
- Сообщения: 5355
- Зарегистрирован: 09 апр 2010, 19:30
- Репутация: 1021
- Ваше звание: просто мимо прохожу
- Откуда: Ё-бург
Re: Создание полигонов по координатам txt
компилятор...
-
- Интересующийся
- Сообщения: 29
- Зарегистрирован: 07 окт 2011, 08:03
- Репутация: 0
- Откуда: Саранск
Re: Создание полигонов по координатам txt
так и придется идти еще и на программиста учиться?trir писал(а):компилятор...

- jerry-maori
- Гуру
- Сообщения: 585
- Зарегистрирован: 22 авг 2012, 17:02
- Репутация: 143
- Откуда: Нижний Новгород
Re: Создание полигонов по координатам txt
ну если исходники именно в таком виде, как написано, то парсить полюбому придётся... причём чем-нито самописным... дальше смотреть, в чём именно вы хотите получить полигоны... ArcGIS, QGIS, *некоторый_иной*GIS.
И уже курить конкретную прогу -- чо она может, чо нет...
Пока инфы маловато... Нужно больше конкретики для бога конкретики...
Но от кодинга, как показывает практика, никуда не денешься...
Я вообще кандидатскую защищал по экологии, однако что-то последнее время больше matlab и js в моём арсенале;)
И уже курить конкретную прогу -- чо она может, чо нет...
Пока инфы маловато... Нужно больше конкретики для бога конкретики...
Но от кодинга, как показывает практика, никуда не денешься...
Я вообще кандидатскую защищал по экологии, однако что-то последнее время больше matlab и js в моём арсенале;)
-
- Гуру
- Сообщения: 4168
- Зарегистрирован: 15 окт 2010, 08:33
- Репутация: 1107
- Ваше звание: программист
- Откуда: Казань
Re: Создание полигонов по координатам txt
написать программу, которая переводит все это в MIF/MID - дело примерно получаса ... так что нужно учить программирование 

-
- Интересующийся
- Сообщения: 29
- Зарегистрирован: 07 окт 2011, 08:03
- Репутация: 0
- Откуда: Саранск
Re: Создание полигонов по координатам txt
ну по сути это ведь простейшее действие, я думал это уже реализовано в ГИСах Mapinfo, Панорама и т. д. последняя кстати строит по координатам из файла, но не разделяет по объектам, сплошная линия получается =(
-
- Интересующийся
- Сообщения: 29
- Зарегистрирован: 07 окт 2011, 08:03
- Репутация: 0
- Откуда: Саранск
Re: Создание полигонов по координатам txt
ды хорошо было бы MIF/MID, а там уже в любую гис можно запихнутьjerry-maori писал(а): в чём именно вы хотите получить полигоны...
-
- Гуру
- Сообщения: 5355
- Зарегистрирован: 09 апр 2010, 19:30
- Репутация: 1021
- Ваше звание: просто мимо прохожу
- Откуда: Ё-бург
Re: Создание полигонов по координатам txt
Формат - дело десятое, главное выбрать язык/среду. Самое простой вариант - python/QGIS, я бы выбрал C#/dotSpatial. А самый радикальный вариант C++/GDAL.
-
- Гуру
- Сообщения: 3058
- Зарегистрирован: 19 май 2010, 19:44
- Репутация: 189
Re: Создание полигонов по координатам txt
Если количество полигонов относительно невелико, то из txt в csv (или для каждого полигона свой csv, или вводить кодирование точек по принадлежности к полигону (можно полуавтоматом в Excel)...
А далее из csv генерация полигонов в выбранной ГИС, модули есть почти для каждой...
А далее из csv генерация полигонов в выбранной ГИС, модули есть почти для каждой...
-
- Гуру
- Сообщения: 4168
- Зарегистрирован: 15 окт 2010, 08:33
- Репутация: 1107
- Ваше звание: программист
- Откуда: Казань
Re: Создание полигонов по координатам txt
самый простой вариант - написать на R (ну не люблю я Питона за отсутствие операторных скобок)trir писал(а):Формат - дело десятое, главное выбрать язык/среду. Самое простой вариант - python/QGIS, я бы выбрал C#/dotSpatial. А самый радикальный вариант C++/GDAL.
проекцию поставил UTM37
Код: Выделить всё
p<-read.table("E:/gumus/data.txt",header=FALSE)
names(p)<-c("X","Y")
fn.mif<-"E:/gumus/pf.mif"
fn.mid<-"E:/gumus/pf.mid"
write("Version 300",file=fn.mif)
write("Charset \"Neutral\"",append=TRUE,file=fn.mif)
write("Delimiter \",\"",append=TRUE,file=fn.mif)
write(" CoordSys Earth Projection 8, 104, \"m\", 39, 0, 0.9996, 500000, 0",append=TRUE,file=fn.mif)
write("Columns 1",append=TRUE,file=fn.mif)
write(" ID Integer",append=TRUE,file=fn.mif)
write("Data",append=TRUE,file=fn.mif)
cur.ID <-1
cur.pos<-1
found <-FALSE
first <-TRUE
done <-FALSE
while(!done) {
for(i in (cur.pos+1):nrow(p)) {
if(sum((p[i,]-p[cur.pos,])^2) < 0.01^2) {
found=TRUE
break
}
}
if(!found) stop("Failed to found endpoint")
sbuf="Region 1"; write(sbuf,append=TRUE,file=fn.mif)
sbuf=sprintf("%5d",i-cur.pos+1); write(sbuf,append=TRUE,file=fn.mif)
for(ii in cur.pos:i) {
sbuf=sprintf("%.5f %.5f",p$X[ii],p$Y[ii]); write(sbuf,append=TRUE,file=fn.mif)
}
sbuf=sprintf("%d",cur.ID); write(sbuf,append=!first,file=fn.mid)
first<-FALSE
cur.ID<-cur.ID+1;
cur.pos<-i+1;
if(cur.pos >= nrow(p)) break
}
Код: Выделить всё
401966.67 2303353.66
402007.31 2303356.64
402006.28 2303372.24
402009.37 2303372.54
402008.94 2303378.60
402005.63 2303378.40
402005.38 2303380.16
401979.52 2303379.24
401969.51 2303378.94
401964.64 2303378.38
401965.04 2303371.46
401965.59 2303365.40
401966.67 2303353.66
401955.94 2303377.88
401931.84 2303375.18
401877.18 2303373.65
401881.13 2303350.52
401934.00 2303350.94
401958.29 2303352.61
401955.94 2303377.88
401955.94 2303377.88
Код: Выделить всё
Version 300
Charset "Neutral"
Delimiter ","
CoordSys Earth Projection 8, 104, "m", 39, 0, 0.9996, 500000, 0
Columns 1
ID Integer
Data
Region 1
13
401966.67000 2303353.66000
402007.31000 2303356.64000
402006.28000 2303372.24000
402009.37000 2303372.54000
402008.94000 2303378.60000
402005.63000 2303378.40000
402005.38000 2303380.16000
401979.52000 2303379.24000
401969.51000 2303378.94000
401964.64000 2303378.38000
401965.04000 2303371.46000
401965.59000 2303365.40000
401966.67000 2303353.66000
Region 1
7
401955.94000 2303377.88000
401931.84000 2303375.18000
401877.18000 2303373.65000
401881.13000 2303350.52000
401934.00000 2303350.94000
401958.29000 2303352.61000
401955.94000 2303377.88000
- Игорь Белов
- Гуру
- Сообщения: 2241
- Зарегистрирован: 04 янв 2011, 22:00
- Репутация: 1514
- Откуда: Казань
Re: Создание полигонов по координатам txt
Координаты уж больно похожи на какую-нибудь МСК. Тогда X и Y придётся поменять местами.
The purpose of computing is insight, not numbers
-
- Гуру
- Сообщения: 4168
- Зарегистрирован: 15 окт 2010, 08:33
- Репутация: 1107
- Ваше звание: программист
- Откуда: Казань
Re: Создание полигонов по координатам txt
ага, достаточно будет написатьErnieBoyd писал(а):Координаты уж больно похожи на какую-нибудь МСК. Тогда X и Y придётся поменять местами.
Код: Выделить всё
names(p)<-c("Y","X")
-
- Интересующийся
- Сообщения: 29
- Зарегистрирован: 07 окт 2011, 08:03
- Репутация: 0
- Откуда: Саранск
Re: Создание полигонов по координатам txt
Спасибо огромное, все получилосьgamm писал(а): самый простой вариант - написать на R


Кто сейчас на конференции
Сейчас этот форум просматривают: Ahrefs [Bot] и 1 гость