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