[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Forums >

pl.comp.programming

powierzchnia polski

Pawe³ Nowak

3/23/2007 2:16:00 PM

Witam

Mam pewien problem do którego nie bardzo wiem jak podej¶æ.
Jest sobie mapa kraju o okre¶lonej powie¿chni.
S± te¿ punkty na tej mapie ( za³uzmy ¿e sa to nadajniki ¿eby by³o ³atwiej
wyt³umaczyæ) które pokrywaj± swoim zasiegiem obszar o sta³ym promieniu 50 km
wokó³ punktu.
Mam za zadanie teraz obliczyc j±k± powierzchniê kraju pokrywaja nadajniki.

My¶la³em o przykrywaniu okregami powierzchni i dopuki dwa nachodza na siebie
to by³o by ok. Jak 3 to moze bym cos jeszcze wykombinowa³ ale jak juz np 4
okregi albo 6 okregów nasz³o by na siebie to juz niemam pojecia jak za to
sie zabrac.
Mo¿e sa jakies opracowane algorytmy do takich zadañ i wystarczy³o by tylko
zaimplementowaæ go do mojego zadania.
Mo¿e zupe³nie ¼le do tego podchodze.

Prosze o naprowadzenie bo nawet niewiem zabardzo jak do tego podej¶æ i
podjakimi has³ami szukaæ podpowiedzi w google

Pozdrawiam


11 Answers

Wojciech Mula

3/23/2007 3:07:00 PM

0

Pawe3 wrote:
> Mam pewien problem do którego nie bardzo wiem jak podej?a.
> Jest sobie mapa kraju o okre?lonej powie?chni.
> S? te? punkty na tej mapie ( za3uzmy ?e sa to nadajniki ?eby by3o 3atwiej
> wyt3umaczya) które pokrywaj? swoim zasiegiem obszar o sta3ym promieniu 50 km
> wokó3 punktu.
> Mam za zadanie teraz obliczyc j?k? powierzchnie kraju pokrywaja nadajniki.

Podstawowa kwestia: jaka dok3adno?a jest potrzebna? Je?li nie jaka?
bardzo du?a, to mo?e wystarczy rysowaa po bitampie o do?a du?ej
rozdzielczo?a (np. 5000x5000) i policzya piksele zajmowane przez obszar
kraju, a potem te, które zosta3y po wycieciu okregów. To by by3o
najprostsze do zaprogramowania.

w.

JimVonMoon

3/23/2007 3:21:00 PM

0

On Fri, 23 Mar 2007 15:15:34 +0100, "Pawe3" <blum1@gazeta.pl> wrote:

>Mam pewien problem do którego nie bardzo wiem jak podej?a.
>Jest sobie mapa kraju o okre?lonej powie?chni.
>S? te? punkty na tej mapie ( za3uzmy ?e sa to nadajniki ?eby by3o 3atwiej
>wyt3umaczya) które pokrywaj? swoim zasiegiem obszar o sta3ym promieniu 50 km
>wokó3 punktu.
>Mam za zadanie teraz obliczyc j?k? powierzchnie kraju pokrywaja nadajniki.

Moze i malo eleganckie i wolne, ale mozesz podzielic powierzchnie na
bardzo male kawalki (np. 1m2) i sprawdzac dla kazdego kawalka czy
znajduje sie w zasiegu dowolnego z nadajnikow. Nastepnie sumujesz te
kawalki i masz wynik. Im drobniejszy podzial tym mniejsza niepewnosc
wyniku.
Bardziej wyrafinowany algorytm poki co mi nie przychodzi do glowy. ;-)

--
Jakub Nowakowski
http://www.jimvo... - my site.
http://rss.jimvo... - free RSS via WAP reader.

Stalker

3/23/2007 3:27:00 PM

0

Pawe3 napisa3(a):

> Witam
>
> Mam pewien problem do którego nie bardzo wiem jak podej?a.
> Jest sobie mapa kraju o okre?lonej powie?chni.
> S? te? punkty na tej mapie ( za3uzmy ?e sa to nadajniki ?eby by3o 3atwiej
> wyt3umaczya) które pokrywaj? swoim zasiegiem obszar o sta3ym promieniu 50 km
> wokó3 punktu.
> Mam za zadanie teraz obliczyc j?k? powierzchnie kraju pokrywaja nadajniki.

To mo?esz u?ya jakiego? dobrego oprogramowania GIS ;-)
Tam tego typu funkcjonalno?a analityczna powinna bya normalnie dostepna.
Pozostaje tylko zdigitalizowaa twoj? mape, a reszta zrobi sie sama :-)

Pozdrowienia Tomek

--
Magik Development Tools
www.mdt-project.com
www.astec.com.pl

Khorne

3/23/2007 3:52:00 PM

0

Dnia Fri, 23 Mar 2007 15:15:34 +0100, Pawe3 napisa3(a):
> Mam pewien problem do którego nie bardzo wiem jak podej?a. Jest sobie
> mapa kraju o okre?lonej powie?chni. S? te? punkty na tej mapie ( za3uzmy
> ?e sa to nadajniki ?eby by3o 3atwiej wyt3umaczya) które pokrywaj? swoim
> zasiegiem obszar o sta3ym promieniu 50 km wokó3 punktu.
> Mam za zadanie teraz obliczyc j?k? powierzchnie kraju pokrywaja
> nadajniki.

Np. CGAL:

http://www.cgal.org/Manual/3.2/doc_html/cg...
Boolean_set_operations_2/Chapter_main.html#Section_12.2

wyszukiwarka: spatial/computational geometry

--
Micha3 'Khorne' Rzechonek
http://khorne...
mail/jid: khorne@leto.homedns.org

Lech Lorens

3/23/2007 5:55:00 PM

0

Dnia 23.03.2007 Pawe <blum1@gazeta.pl> napisa3/a:
>
> Mylaem o przykrywaniu okregami powierzchni i dopuki dwa nachodza na siebie
> to byo by ok. Jak 3 to moze bym cos jeszcze wykombinowa ale jak juz np 4
> okregi albo 6 okregw naszo by na siebie to juz niemam pojecia jak za to
> sie zabrac.
> Moe sa jakies opracowane algorytmy do takich zada i wystarczyo by tylko
> zaimplementowa go do mojego zadania.
> Moe zupenie le do tego podchodze.

?eby uzyskaa jakie? przybli?enie prawdziwego wyniku, mo?esz skorzystaa z
metody Monte Carlo.

--
Pozdrawiam,
Lech Lorens - lp.pw@snerol_hcel

Mateusz Loskot

3/23/2007 7:27:00 PM

0

Pawe3 wrote:
> Mam za zadanie teraz obliczyc j?k? powierzchnie kraju pokrywaja nadajniki.
>
> My?la3em o przykrywaniu okregami powierzchni i dopuki dwa nachodza na siebie
> to by3o by ok. Jak 3 to moze bym cos jeszcze wykombinowa3 ale jak juz np 4
> okregi albo 6 okregów nasz3o by na siebie to juz niemam pojecia jak za to
> sie zabrac.
> Mo?e sa jakies opracowane algorytmy do takich zadan i wystarczy3o by tylko
> zaimplementowaa go do mojego zadania.

Mo?esz generowaa zasiegi transmiterów jako bufory, a nastepnie wyznaczya
operacjami boolowskimi na geometriach buforów (poligony) obszary do
sumowania (np. symmetric difference + intersection).

Do tego zadania jednak potrzebujesz ustalia kilka kwestii:

- czy dane punktów oraz obrys (poligon) obszaru polski masz w postaci
elektronicznej, np. w jakim? formacie wektorowym stosowanym w GIS?

- je?li chcesz sie samemu bawia i programowaa rozwi?zanie to tu masz
gotowy engine który dostarcza Ci kompletny zestaw algorytmów potrzebny
do tego zadania: http://geos.refrac...

- musisz ustalia na bazie jakich wspó3rzednych bedziesz pracowa3,
geograficzne czy z projekcj? na p3aszczyzne.
W pierwszym rozwi?zaniu, bedziesz mia3 znaczny b3?d, no i zabawa z
obliczaniem pól poligonów sferycznych, w drugim ca3o?a masz jak na
kartce papieru z jednoskami w metrach (jeszcze zale?nie od projekcji).

- jesli nie chcesz samodzielnie programowaa to zastosuj silnik PostGIS
dla bazy PostgreSQL - http://postgis.refrac...

To ostatnie rozwi?zanie jest naj3atwiejsze.
Wystarczy aby? zaimportowa3 swoje dane do bazy
a PostGIS dostarczy Ci komplet funkcji do obliczen i analizy, czyli
- buforowanie
- symmetric difference
- intersection
- area
- transformation (dla transformacji wspó3rzednych geog<->projected)

i wiele innych.


Przy okazji, obszar Polski masz tutaj w formacie wektorowym
ESRI Shapefile, który mo?na 3atwo zaimportowaa do PostgreSQL/PostGIS:

http://ftp.gwdg.de/pub/misc/freegis/intevation/freegis/...

Dane te s? na GPL.

Tu masz ma3? prezentacje tego co mo?esz zrobia z PostGIS'em
z u?yciem w/w danych, gdzie geom to kolumna z geometri?, borders to
tabela z poligonami panstw z w/w worlddata, transmitters to tabela z
Twoimi punktami.

1. Obszar Polski w km2:

select area(transform(geom, 2180))/1000000 as area
from borders
where cntry_name = 'Poland'

Transofrm(geom, 2180) to tranformacja ze wspó3rzednych geog. na uk3ad z
projekcj? gdzie 2180 to identyfikator uk3adu Poland 1992, obowi?zuj?cy
dla naszego kraju, wyra?ony w metrach.

2. Suma powierzchni buforów (zasiegów) o promieniu 50 km od punktów -
transmiterów (tu te? za3o?y3em, ?e oryginalne wsp3. masz geograficzne,
wiec transformuje na "p3aski" uk3ad):

select sum(area(buffer(transform(geom, 2180), 50000))/1000000)
from transmitters

Oczywi?cie brak tu wykonania intersekcji i sprawdzenia czy bufory na
siebie nachodz?, ale to ju? sobie mo?esz 3atwo dorobia.

Tutaj masz zestaw potrzebnych funkcji z PostGIS:
http://postgis.refrac...docs/ch06.html#id2742136

--
Mateusz Loskot
http://mateusz....

Mateusz Loskot

3/23/2007 7:28:00 PM

0

Mateusz Loskot wrote:
> Tutaj masz zestaw potrzebnych funkcji z PostGIS:
> http://postgis.refractions.net/docs/ch06.html...

Zapomnia3em dodaa, je?li bedziesz chcia3 pod??ya w/opisan? drog?,
a masz pytania (co jak zaimportowaa, etc.) co do w/w bibliotek/rozwi?zan
to chetnie pomoge.

Pozdrawiam
--
Mateusz Loskot
http://mateusz....

jbartosik

3/24/2007 3:38:00 PM

0

On 23 Mar, 15:15, "Pawel" <b...@gazeta.pl> wrote:
> Witam
>
> Mam pewien problem do którego nie bardzo wiem jak podejsc.
> Jest sobie mapa kraju o okreslonej powiezchni.
> Sa tez punkty na tej mapie ( zaluzmy ze sa to nadajniki zeby bylo latwiej
> wytlumaczyc) które pokrywaja swoim zasiegiem obszar o stalym promieniu 50 km
> wokól punktu.
> Mam za zadanie teraz obliczyc jaka powierzchnie kraju pokrywaja nadajniki.
>
> Myslalem o przykrywaniu okregami powierzchni i dopuki dwa nachodza na siebie
> to bylo by ok. Jak 3 to moze bym cos jeszcze wykombinowal ale jak juz np 4
> okregi albo 6 okregów naszlo by na siebie to juz niemam pojecia jak za to
> sie zabrac.
> Moze sa jakies opracowane algorytmy do takich zadan i wystarczylo by tylko
> zaimplementowac go do mojego zadania.
> Moze zupelnie zle do tego podchodze.
>
> Prosze o naprowadzenie bo nawet niewiem zabardzo jak do tego podejsc i
> podjakimi haslami szukac podpowiedzi w google
>
> Pozdrawiam

N:=ilosc nadajnikow
suma:=0
dla i := 1 do N
dla j := kazda kombinacja i odbiornikow
pole :=przeciecie zasiegow j
suma := ((-1)^(i+1)) * pole

suma powinna byc tym, czego szukasz. Tylko, ze szybkie to to nie
bedzie (ostatnie dwa wiersze wykonaja sie 2^N razy).

rysik

3/24/2007 8:28:00 PM

0


U¿ytkownik "Mateusz Loskot" <see.my@signature.net> napisa³ w wiadomo¶ci
news:eu19m9$16a$1@inews.gazeta.pl...
> Pawe³ wrote:

> transmiterów
> poligony
> np. symmetric difference + intersection
> engine
> projekcj±

Fajna, merytoryczna odpowiedz, ale po co te makaronizmy?


Mateusz Loskot

3/24/2007 10:18:00 PM

0

rysik wrote:
> U?ytkownik "Mateusz Loskot" <see.my@signature.net> napisa3 w wiadomo?ci
> news:eu19m9$16a$1@inews.gazeta.pl...
>> Pawe3 wrote:
>
>> transmiterów
>> poligony
>> np. symmetric difference + intersection
>> engine
>> projekcj?
>
> Fajna, merytoryczna odpowiedz, ale po co te makaronizmy?

Po to aby wype3nia Ci czas.

Pozdrawiam
--
Mateusz Loskot
http://mateusz....