sobota, 12 kwietnia 2014

Windows Azure - Darmowy hosting GeoServer (WMS + WFS)

Tworzenie Web Site

Zaloguj się do windowsazure.com i utwórz nowy Web Site


Po utworzeniu Web Site przejdź do zakładki Cofigure i zmień ustawienia na Java + Tomcat


Przejdź na zakładkę Dashboard i dodaj nazwę użytkownika


A potem zaloguj sie za pomocą swojego ulubionego klineta FTP i przejdź do folderu /site/wwwroot. Utwórz plik web.config o zawartości
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>

<handlers>
<add name="httpPlatformHandler" path="*" verb="*"
modules="httpPlatformHandler" resourceType="Unspecified" />
</handlers>

<httpPlatform processPath="%AZURE_TOMCAT7_HOME%\bin\startup.bat">
<environmentVariables>
<environmentVariable name="CATALINA_OPTS" value="-Dport.http=%HTTP_PLATFORM_PORT%" />
<environmentVariable name="JAVA_OPTS" value="-Djava.net.preferIPv4Stack=true" />
</environmentVariables>
</httpPlatform>

</system.webServer>
</configuration>
Pobierz Web Archive ze strony http://geoserver.org/display/GEOS/Stable i rozpakuj, zmień nazwę pliku z geoserver.war na ROOT.war, a następnie skopiuj do /site/wwwroot/webapps. Zrestartuj Web Site i sprawdź działanie. Pamiętaj, że ładowanie GeoServer potrafi trwać kilka minut. Zaloguj sie do panelu sterowania (domyślnie user: admin, password: geoserver) i skonfiguruj go według własnych potrzeb.

Sprawdź jak GeoServer działa na platformie Windows Azure:








wtorek, 8 kwietnia 2014

OpenShift - Darmowy hosting GeoServer (WMS + WFS)

OpenShift od Ret Hat

OpenShift.com udostępnia bezpłatnie trzy małe jednostki serwera (gear). Jedna jednostka składa się z 0.5GB RAM + 1GB HDD. Dzięki tym trzem jednostkom można uruchomić np. trzy różne aplikacje. A w przypadku dużego ruchu można rozłożyć zużycie mocy obliczeniowej jednej aplikacji na trzy jednostki serwera, który za pośrednictwem "load-balancer'a" replikuje jedną aplikację na trzy wirtualne maszyny.

Wykorzystajmy te możliwości do utworzenia instancji geoserver.org umożliwiającej udostępnianie map za pośrednictwem takich usług jak Web Map Service (WMS).

Zakładanie konta


Tworzenie nowej aplikacji Open Shift

GeoServer działa w środowisku Tomcat, który jest dostępny wśród wielu opcji Open Shift:

GeoServer ma raczej duże wymagania systemowe, szczególnie jeżeli chodzi o zasoby RAM więc warto utworzyć aplikację, która skaluje się wraz ze wzrostem ruchu na serwerze. Dodatkowa zaleta aplikacji skalowalnej to możliwość dodania bazy danych PostGIS jako osobny cartridge (wydzielone wyłącznie dla PostGIS 0.5GB RAM + 1GB HDD). W przypadku wybrania opcji 'No scaling' też będzie można dodać PostGIS, ale w tym przypadku będzie korzystał ze współdzielonej z GeoServer pamięci RAM (0.5GB).

W tym momencie Tomcat jest uruchomiony. W moim przypadku nazwa aplikacji to gis uruchomiona w przestrzeni nazw umgdy.

Red Hat client tools

Aby móc do niego dodać GeoServer niezbędne będą narzędzia uruchamiane w linii komend:
Po instalacji Red Hat client tools trzeba skonfigurować dostęp dostęp do aplikacji na komputerze lokalnym. Najpierw należy użyć polecenia
rhc setup
Należy podać dane do logowania, utworzyć token autoryzacyjny, utworzyć klucz SSH. Na końcu powinna być wyświetlona informacja Your client tools are now configured.

Klonowanie zdalnego repozytorium

Aby dodać GeoServer to Tomcat'a najpierw trzeba sklonować repozytorium aplikacji na komputer lokalny. Tworzymy folder, w którym będą przechowywane repozytoria git, w linii komend przechodzimy do tego folderu a następnie klonujemy repozytorium. Adres zdalny repozytorium podany jest w sekcji Source Code
 
mkdir gitcd gitgit clone ssh://<source-code>cd <app-name>


Po sklonowaniu repozytorium trzeba w linii komend przejść do folderu repozytorium. Nazwa folderu to nazwa aplikacji. W moim przypadku jest to gis. Domyślnie OpenShift jest skonfigurowany tak aby kompilować zawartość folderu src zgodnie z parametrami ustalonymi w pliku pom.xml. Ponieważ nie mam zamiaru pisać własnego kodu źródłowego usuwam zarówno folder src jak i plik pom.xml.

Konfiguracja GeoServer

Teraz najważniejsza część - dodajemy GeoServer do Tomcat'a. W tym celu należy pobrać Web Archive ze strony http://geoserver.org/display/GEOS/Stable, rozpakować, a następnie skopiować plik geoserver.war do folderu git/gis/webapps/. Plik geoserver.war to zawartość całej aplikacji GeoServer, która zostanie uruchomiona w środowisku Tomcat. GeoServer zostanie uruchomiony w podfolderze www.nazwa-domeny.com/geoserver.

GeoServer będzie działać świetnie ale będzie problem ze zmianą domyślnej konfiguracji w tym również danych GIS. Aby rozwiązać ten problem trzeba rozpakować plik geoserver.war a następnie zawartość folderu data skopiować do git/<app-name>/data/geoserver_data.

Dodatkowo w folderze git/<app-name>/.openshift/action_hooks/ należy utworzyć plik pre_start_jbossews-2.0 z następującą zawartością:
export CATALINA_OPTS=-DGEOSERVER_DATA_DIR=${OPENSHIFT_DATA_DIR}geoserver_data

Prawie wszystko gotowe. Teraz wysyłamy zmienione repozytorium na serwer - w wierszu poleceń trzeba wpisać:
git update-index --chmod=+x .openshift/action_hooks/*
git add -A .
git commit -m "push"
git push
Powpduje to odpowiednio:
- przypisanie praw do wykonywania plików w folderze action_hooks
- dodanie zmian do repzytorium Git
- potwierdzenie dodanych zmian
- wysłanie potwierdzonych zmian do zdalnego serwera


Po wysłaniu repozytorium na serwer trzeba jeszcze skopiować dane konfiguracyjne GeoServer z folderu git/<app-name>/data do folderu OPENSHIFT_DATA_DIR, a następnie zrestartować aplikację. W tym celu należy użyć poleceń:
rhc ssh -a [app-name]
> cp -a $OPENSHIFT_REPO_DIR/data/. $OPENSHIFT_DATA_DIR/
> chmod -R ugo+rw $OPENSHIFT_DATA_DIR/geoserver_data/
> exit
rhc app restart -a [app-name]
Do kopiowania zostały wykorzystane zmienne  systemowych OpenShift.

Po restarcie GeoServer potrzebuje kilku minut na wystartowanie. Uruchamia się od razu więc OpenShift wyświetla status "success", ale po wystartowaniu wczytuje dużo danyc (konfiguracje, układy współrzędnych, style warstw, ... i inne) i to wczytywanie trwa kilka minut. Więc odczekaj dłuższą chwilę zanim zaczniesz szukać błędów z powodu 503 Service Unavailable.

Problemy jakie mogą wystąpić dotyczą praw dostępu do plików w folderze geoserver_data. GeoServer potrzebuje praw do odczytu/edycji/tworzenia. W razie potrzeby trzeba użyć
chomod -R ugo+rw data/geoserver_data/
chomod -R ugo+x .openshift/action_hooks/
Efekt pracy działający on-line można sprawdzić pod adresem:
http://geoserver-ksz.rhcloud.com/http://geoserver-ksz.rhcloud.com/geoserver/web/




Sprawdź też:

sobota, 5 kwietnia 2014

PostGIS w OpenShift

Zaloguj się do Open Shift




Dodaj aplikację typu Tomcat 7






W aplikacji dodaj nowy cartridge bazy danych PostgreSQL




Skopiuj swój identyfikator



A następnie zaloguj się na swoje konto


http://www.postgresql.org/docs/8.4/static/plpgsql-overview.html
Dodaj PostGIS do bazy PostgreSQL
>psql spatialapp -c "create language plpgsql;"

Dodaj funkcje przestrzenne do utworzonej bazy danych (o nazwie gis)


> psql -d gis -f /usr/share/pgsql/contrib/postgis-64.sql
> psql -d gis -f /usr/share/pgsql/contrib/spatial_ref_sys.sql



Łączenie się z bazą PostGIS 

Aby sprawdzić parametry połączenia użyj polecenia 
rhc domain list
rhc port-forward <appname>



> env | grep DB




To połączenie może być aktywowane tylko w ramach jednego cartridge.











Hosting dla WMS

Najpiew sprawdź jak bezpłatnie uruchomić własny GeoServer

Darmowy hosting usług WMS (Web Map Service)

  • qgiscloud.com - rozwiązanie oparte na QGIS Server możliwością bezpośredniego dostępu do bazy danych PostGIS.
  • giscloud.com - idealne rozwiązanie dla początkujących z dedykowaną wtyczką dla ArcGIS/ArcMap
  • Utworzenie własnej maszyny wirtualnej na Amazon EC2
  • Utworzenie własnej maszyny wirtualnej na platformie Open Shift  od Red Hat (geoserver)

Dodatkowo


Lista hostingów PostGIS wg OsGeo:


Warto sprawdzić również:

niedziela, 17 listopada 2013

GDAL + c#

GDAL czyli  Geospatial Data Abstraction Library to zbiór narzędzi umożliwiających m.in. zaawansaowane operacje na danych rastrowych. Oprócz standardowych aplikacji uruchamianych w trybie konsoli dostępne są również biblioteki, które można podpiąć do aplikacji opartych na .NET:
http://trac.osgeo.org/gdal/wiki/GdalOgrInCsharp

Podążając za linkiem  build SDK packages znajdziesz komplet skompilowanych bibliotek dla poszczególnych wersji .NET, np. MSVC2010 (Win64) -stable dla .NET 4.0 lub MSVC2008 (Win64) -stable dla .NET 3.5.



Polecam kompletny zestaw Compiled binaries in a single .zip package. Po rozpakowaniu w katalogu \bin znajdziesz wszystkie natywne pliki *.dll, a w katalogu \bin\gdal\csharp pliki *.dll zarządzane przez .NET (są tam też przykłądowe aplikacje *.exe napisane w c#).

Jeżeli chcesz napisać swój własny program w c# będziesz potrzebować wszystkich plików *.dll z katalogów \bin\bin\gdal\csharp (pliki *.exe nie są potrzebne). Jeżeli chcesz uniknąć problemu z błędem dostępu do bibliotek natywnych (OSGeo.GDAL.GdalPINVOKE) to albo dodaj ktalogi z bibiliotekami do systemowej zmiennej PATH albo skopiuj te pliki *.dll  do katalogu z Twoją aplikacją, np. \bin\Release. Warto też zmienić domyślne ustawienia kompilacji projektu z .NET 3.5 Client Profile na .NET 3.5.



Dla testu czy wszystko działa poprawnie dodaj do swojego projektu referencje do gdal_csharp.dll, a następnie dodaj kilka linijek kodu:


private void button1_Click(object sender, EventArgs e)
{
    Gdal.AllRegister();

    Dataset ds = Gdal.Open(@"C:\data\OrtoFoto.tif", Access.GA_ReadOnly);
    if (ds == null)
    {
        MessageBox.Show("Nie można otworzyć pliku");
        return;
    }
    MessageBox.Show("  Projection: " + ds.GetProjectionRef()
        + "\n\n  RasterCount: " + ds.RasterCount
        + "\n\n  RasterSize (" + ds.RasterXSize + "," + ds.RasterYSize + ")");
}














wtorek, 8 października 2013

XBMC fresh install

XbmcBuntu

Obsługa PrtScn
sudo apt-get install scrot

Program graficzny
sudo apt-get install gpaint
sudo apt-get install gthumb

Edytor tekstu
sudo apt-get install gedit

Panel sterowania urządzeniami audio (problem z dzwiękiem HDMI)
sudo apt-get install pavucontrol


Zmiana rodzielczości (problem małych czcionek)
Otwórz plik (np. za pomocą gedit)
/etc/X11/xbmc.conf
i dodaj opcję DPI w sekcji Monitor:

Section "Monitor"
    Identifier     "Monitor0"
    VendorName     "Unknown"
    ModelName      "Unknown"
    HorizSync       28.0 - 33.0
    VertRefresh     43.0 - 72.0
    Option         "DPMS"
    Option         "DPI" "120 x 120"
EndSection


środa, 28 sierpnia 2013

Współrzędne granicy wyłącznej strefy ekonomicznej (EEZ)

Granice wyłącznej strefy ekonomicznej Rzeczpospolitej Poslkiej są ustanowione zgodnie z Art. 16 ustawy z dn. 21.03.1991r. o obszarach morskich Rzeczypospolitej Polskiej i administracji morskiej:
  • Dz.U.89.43.233 – Umowa między Polską Rzecząposplitą Ludową a Niemiecką Republiką Demokratyczną w sprawie rozgraniczenia obszarów morskich w Zatoce Pomorskiej. Układ współrzędnych: System Rauenberg.
  • Dz.U.78.13.57 – Rozporządzenie Rady Ministrów z dn. 26.05.1978 w sprawie określenia zewnętrznej granicy polskiej strefy rybołówstwa morskiego. Układ współrzędnych: nieokreślony.
  • Dz.U.90.74.441 – Umowa między Rządem Polskiej Rzeczypospolitej Ludowej, Rządem Królestwa Szwecji i Rządem Związku Socjalistycznych Republik Radzieckich w sprawie wspólnego punktu rozgraniczenia obszarów morskich na Morzu Bałtyckim. Układ współrzędnych: WGS-72, System Radziecki, System Szwedzki.
  • Dz.U.86.16.85 – Umowa między Polską Rzecząpospolitą Ludową a Związkiem Socjalistycznych Republik Radzieckich o rozgraniczeniu morza terytorialnego (wód terytorialnych), strefy ekonomicznej, strefy rybołówstwa morskiego i szelfu kontynentalnego na Morzu Bałtyckim. Układ współrzędnych: nieokreślony.
  • Dz.U.89.54.323 – Umowa w sprawie rozgraniczenia szelfu kontynentalnego i stref rybołówczych między Polską Rzecząpospolitą Ludową a Królestwem Szwecji. Układ współrzędnych: WGS-72.
Jednak sporządzenie wykazu tych współrzędnych w jednorodnym układzie współrzędnych nie jest zadaniem łatwym. Największy problem stanowią te akty prawne, które w ogóle nie opisują układu odniesienia, w którym są wyrażone współrzędne. Np. nie znając podstaw formalnych na podstawie których przygotowano Umowę między Polską Rzecząpospolitą Ludową a Związkiem Socjalistycznych Republik Radzieckich o rozgraniczeniu morza terytorialnego (wód terytorialnych), strefy ekonomicznej, strefy rybołówstwa morskiego i szelfu kontynentalnego na Morzu Bałtyckim (Dz.U.86.16.85), nie można mieć pewności, że wykorzystano układ odniesienia oparty o elipsoidę WGS-84. Można natomiast, ze względu na datę powstania tego aktu prawnego, z całą pewnością można stwierdzić, że współrzędne wykazane w  Rozporządzeniu Rady Ministrów z dn. 26.05.1978 w sprawie określenia zewnętrznej granicy polskiej strefy rybołówstwa morskiego (Dz.U.78.13.57)  nie są oparte na elipsoidzie GRS80/WGS-84.
W niektórych aktach prawnych jest podany układ współrzędnych, w którym zostały określone granice. Pozwala to na przeliczenie tych współrzędnych do obowiązującego obecnie układu odniesienia. Jednak nawet w tych przypadkach, można znaleźć różne parametry transformacji dla jednego układu.
Ze względu na powyższe fakty wskazane jest jednoznaczne określenie współrzędnych w układzie odniesienia opartym na elipsoidzie GRS-80/ WGS-84, z którego mogliby korzystać wszyscy zainteresowani.  Szczegółowe obliczenia współrzędnych granicy wyłącznej strefy ekonomicznej w układach WGS-84/GRS-80 oraz PL-1992 umieściłem w dokumencie:

Dociekliwi zapewne będą chcieli sprawdzić wyniki tych obliczeń z obliczeniami wykonanymi przez  przez Kazimierza Fica z BHMW