You are not logged in.

Announcement

*** NOTICE: CONTENT MIGRATION PENDING! Read More about the import. Bug? Post them here***

#1 2012-08-01 10:31:33

member111
Member
Registered: 2012-08-01
Posts: 11

Wie Länge des Hochspannungsnetzes ermitteln ?

Hallo!
Ich würde gerne für Deutschland die Gesamtlänge des bei OSM erfassten 110kV-Hochspannungsnetzes herausbekommen und habe bislang nur herausgefunden, dass man die Daten der einzelnen Bundesländer bei Geofabrik herunterladen kann. Und das diese per osmosis gefiltert werden können. Nur leider habe ich keine Ahnung, wie ich mit diesem Programm umgehen muss und ich steige nicht ganz durch die beschreibung bei wiki durch.

Wäre toll, wenn mir jemand weiterhelfen könnte!!!

Last edited by member111 (2012-08-01 12:09:21)

Offline

#2 2012-08-01 11:35:33

toc-rox
Member
From: Münster
Registered: 2011-07-20
Posts: 2,357
Website

Re: Wie Länge des Hochspannungsnetzes ermitteln ?

Vorab: Willkommen im Forum ...

Dein Vorhaben ist m.E. schwieriger als es zunächst scheint.

Erst aber mal eine Reihe von Fragen:
- Ist nur das 110kV-Netz ist gewünscht (keine 60 / 220 / 380 kV) ?
- Überlandleitungen, Erdkabel, Seekabel oder alles ?
- Möchtest du eine Karte erstellen oder am Ende nur eine Zahl haben ?

Gruß Klaus

PS: Der Name des Threads ist etwas ungünstig - besser vielleicht: "Wie Länge des Hochspannungsnetzes ermitteln ?"

Offline

#3 2012-08-01 12:12:40

SunCobalt
Member
From: Eislingen
Registered: 2010-01-09
Posts: 3,810

Re: Wie Länge des Hochspannungsnetzes ermitteln ?

Wegelängen der verschiedenen Werte mit dem Key voltage= aus der Geofabrik File germany.osm.pbf von gestern

0                      228.0km
1000                     8.7km
10000                  297.6km
10000;400                0.0km
11000                   13.2km
110000               41145.6km
1100000                  0.3km
110000;0                39.8km
110000;10000            13.2km
110000;10500             0.3km
110000;11000             4.6km
110000;15000            34.9km
110000;20000           383.6km
110000;25000             4.5km
110000;30000            20.7km
110000;35000            17.9km
110000;35000;10000       3.0km
110000;medium            1.4km
12                       0.0km
1200                    20.2km
12000                    0.2km
132000                  51.5km
132000;110000            1.0km
132000;110000;15000      0.6km
1500                    73.6km
15000                34729.4km
150000                 169.1km
2000                     0.3km
20000                 2142.1km
20000;10000              0.9km
20000;400                0.1km
220                      0.7km
220000                6042.7km
220000;0                29.6km
220000;110000         1406.0km
220000;110000;20000      3.7km
220000;110000;25000      0.3km
225000                  40.0km
230                      1.4km
240                      0.8km
25000                   72.9km
27000                    0.1km
3000                    66.4km
30000                  300.7km
300000                   0.7km
30000;6000               0.1km
35000                  125.1km
35000;20000              3.6km
35000?                   0.3km
35000|10000              1.6km
380                      0.3km
380000                8447.9km
380000;0                25.7km
380000;110000          987.9km
380000;110000;20000      2.5km
380000;20000            11.1km
380000;220000         1940.1km
380000;220000;0          7.0km
380000;220000;110000   541.5km
380000;220000;110000;25000     1.2km
380000;220000;25000      1.5km
400                     34.0km
40000                    1.1km
400000                 174.8km
420000                   0.3km
450000                 252.5km
500                      2.9km
600                    523.9km
6000                    17.4km
60000                  300.8km
600;750                185.0km
63000                   75.9km
650                      3.2km
65000                   33.4km
6600                   133.7km
750                   2568.1km
800                    252.0km
fixme                  168.8km
high                     5.6km
medium                  12.0km
medium;low               0.0km
none                     0.0km

Last edited by SunCobalt (2012-08-01 12:13:27)


Thomas

Offline

#4 2012-08-01 12:13:05

member111
Member
Registered: 2012-08-01
Posts: 11

Re: Wie Länge des Hochspannungsnetzes ermitteln ?

Hey, danke smile!

- Ja, es geht mir nur um die insgesamt aktuell durch OMS erfasste Länge des 110kV Netzes.
- Die Unterscheidung zwischen der Art der Leitung ist erstmal nicht so wichtig.
- Eine Karte wäre toll. Aber zunächst ist erstmal nur diese eine Zahl für mich relevant.

LG!

Offline

#5 2012-08-01 12:26:59

SunCobalt
Member
From: Eislingen
Registered: 2010-01-09
Posts: 3,810

Re: Wie Länge des Hochspannungsnetzes ermitteln ?

oh, die Werte oben beinhalten auch Oberleitungen (falls die auch mit 110kv betrieben werden ...keine Ahnung ob es das gibt). Falls die nicht dabei sein sollen, müsste ich vorfiltern


Thomas

Offline

#6 2012-08-01 12:38:56

SunCobalt
Member
From: Eislingen
Registered: 2010-01-09
Posts: 3,810

Re: Wie Länge des Hochspannungsnetzes ermitteln ?

hier nun nur power=line + voltage=* Werte

0                      154.1km
10000                   24.6km
11000                   11.8km
110000               39495.2km
110000;0                39.8km
110000;10000            13.0km
110000;11000             4.6km
110000;15000            12.5km
110000;20000           379.7km
110000;25000             4.5km
110000;30000            20.0km
110000;35000            17.4km
110000;35000;10000       3.0km
110000;medium            1.3km
132000                  17.1km
132000;110000            1.0km
15000                    9.1km
150000                  43.4km
2000                     0.3km
20000                  532.8km
20000;10000              0.3km
220000                5822.3km
220000;0                29.6km
220000;110000         1360.4km
220000;110000;20000      3.7km
220000;110000;25000      0.3km
225000                  40.0km
25000                    0.2km
27000                    0.0km
30000                  108.1km
35000                   23.3km
35000?                   0.1km
380000                7933.9km
380000;0                25.7km
380000;110000          945.9km
380000;110000;20000      2.5km
380000;20000            11.1km
380000;220000         1919.1km
380000;220000;0          7.0km
380000;220000;110000   524.0km
380000;220000;110000;25000     1.2km
380000;220000;25000      1.5km
400                      0.6km
40000                    1.1km
400000                 120.8km
420000                   0.3km
450000                 252.5km
500                      0.9km
6000                     1.4km
60000                  297.7km
63000                   75.9km
65000                   33.3km
fixme                   10.6km
high                     5.6km
medium                   5.1km


Thomas

Offline

#7 2012-08-01 12:42:18

member111
Member
Registered: 2012-08-01
Posts: 11

Re: Wie Länge des Hochspannungsnetzes ermitteln ?

SunCobalt wrote:

oh, die Werte oben beinhalten auch Oberleitungen (falls die auch mit 110kv betrieben werden ...keine Ahnung ob es das gibt). Falls die nicht dabei sein sollen, müsste ich vorfiltern

Vielen Dank!!!!
Kannst du mir vielleicht auch erklären, wie ich diese Werte flitern kann? Ich habe bislang osmosis installiert und die Datei germany.osm.pbf heruntergeladen.

Ich dachte ich kann diese Datei dann über die Eingabeauforderung von Windows aufrufen, aber immer wenn ich das veruche erscheint nur der Text:  "SCHWERWIEGEND: Execution aborted" als Fehler Meldung und noch sehr viel mehr Text.

Die Oberleitungen müsste ich dann noch herausfiltern, weil ich nur das Energieversorgungsnetz benötige.

LG

Offline

#8 2012-08-01 12:45:19

tunnelbauer
Member
Registered: 2012-01-13
Posts: 1,011
Website

Re: Wie Länge des Hochspannungsnetzes ermitteln ?

Thomas hat dir schon nur die "Powerlines" gegeben - das beinhaltet keine Oberleitungen mehr (vorausgesetzt es wurde richtig getagged - das wiederum findest du aber nur raus wenn du railway und powerline auswerfen lässt.

Zu deinem Error: Was ist dein Input?


Grüße
Thomas

Offline

#9 2012-08-01 12:47:06

SunCobalt
Member
From: Eislingen
Registered: 2010-01-09
Posts: 3,810

Re: Wie Länge des Hochspannungsnetzes ermitteln ?

Du bräuchtest Osmium, müsstest ein C++ Programm kompilieren und dabei verschiedene Libaries einbinden wink Der zweite Datensatz beinhaltet nur power=line (siehe http://wiki.openstreetmap.org/wiki/DE:Tag:power%3Dline)
Das müsste die Zahl sein, die Du suchst


Thomas

Offline

#10 2012-08-01 12:54:29

member111
Member
Registered: 2012-08-01
Posts: 11

Re: Wie Länge des Hochspannungsnetzes ermitteln ?

http://download.geofabrik.de/osm/europe/
hier habe ich die Datei heruntergeladen

Offline

#11 2012-08-01 13:23:31

wambacher
Member
From: Schlangenbad/Wambach, Germany
Registered: 2009-12-16
Posts: 16,769
Website

Re: Wie Länge des Hochspannungsnetzes ermitteln ?

member111 wrote:

http://download.geofabrik.de/osm/europe/
hier habe ich die Datei heruntergeladen

und dann???? windows-mäßig draufgeklickt wink

also Butter bei die Fische: Befehle, Fehlermeldungen, SCREENSHOTS - alles was greifbar ist.

Gruss
walter

Last edited by wambacher (2012-08-01 13:25:32)

Offline

#12 2012-08-01 13:44:46

member111
Member
Registered: 2012-08-01
Posts: 11

Re: Wie Länge des Hochspannungsnetzes ermitteln ?

SunCobalt wrote:

Du bräuchtest Osmium, müsstest ein C++ Programm kompilieren und dabei verschiedene Libaries einbinden wink Der zweite Datensatz beinhaltet nur power=line (siehe http://wiki.openstreetmap.org/wiki/DE:Tag:power%3Dline)
Das müsste die Zahl sein, die Du suchst

Ich habe jetzt das Programm Osmium heruntergeladen und C++2010 Express. Wie müsste ich nun weiter vorgehen, damit ich auf die entsprechenden Daten der Datei "gemany.osm.pbf "zugreifen kann?

Offline

#13 2012-08-01 14:02:05

SunCobalt
Member
From: Eislingen
Registered: 2010-01-09
Posts: 3,810

Re: Wie Länge des Hochspannungsnetzes ermitteln ?

zusätzlich brauchst doch dann noch einige Libaries - siehe unten-. Nicht unbedingt alle, aber ohne den Quellcode zu studieren, kann ich Dir nicht sagen, welche Libaries zu weglassen kannst. Das eigentliche C++ Programm (war ursprünglich für highways) ist nicht so dramatisch, aber wie man das unter Windows kompiliert, weiß ich nicht

boost (several libraries)
    http://www.boost.org/
    Debian/Ubuntu: libboost-dev

zlib (for PBF support)
    http://www.zlib.net/
    Debian/Ubuntu: zlib1g-dev

shapelib (for shapefile support in osmjs)
    http://shapelib.maptools.org/
    Debian/Ubuntu: libshp-dev

libsqlite3 (for some applications only)
    http://sqlite.org/
    Debian/Ubuntu: libsqlite3-dev

libgd (for tagstats and nodedensity applications only)
    http://www.libgd.org/
    Debian/Ubuntu: libgd2-xpm-dev

GDAL (for OGR support)
    http://gdal.org/
    Debian/Ubuntu: libgdal1-dev

    http://expat.sourceforge.net/
    Debian/Ubuntu: libexpat1-dev

GEOS (for assembling multipolygons etc.)
    http://trac.osgeo.org/geos/
    Debian/Ubuntu: libgeos-dev

Google sparsehash
    http://code.google.com/p/google-sparsehash/
    Debian/Ubuntu: libsparsehash-dev

Google V8 Javascript engine (for Javascript support)
    http://code.google.com/apis/v8/
    Debian/Ubuntu: libv8-dev

LibICU (for UTF-8/UTF-16 conversion, only for Javascript support)
    http://site.icu-project.org/
    Debian/Ubuntu: libicu-dev

Google protocol buffers (for PBF support)
    http://code.google.com/p/protobuf/ (at least Version 2.3.0 needed)
    Debian/Ubuntu: libprotobuf-dev protobuf-compiler
    Also see http://wiki.openstreetmap.org/wiki/PBF_Format

Doxygen (to build API documentation)
    http://www.stack.nl/~dimitri/doxygen/
    Debian/Ubuntu: doxygen

libboost-test (for tests)
    http://www.boost.org/doc/libs/1_47_0/li … index.html
    Debian/Ubuntu: libboost-test-dev

OSMPBF (for PBF support)
    https://github.com/scrosby/OSM-binary
    You need to build this first.

/*

  This is an example tool that computes the sums of highway lengths.
  by Frederik Ramm <frederik@remote.org>

*/

#include <cstdlib>

#include <osmium.hpp>
#include <osmium/storage/byid.hpp>
#include <osmium/handler/coordinates_for_ways.hpp>

typedef Osmium::Storage::SparseTable<Osmium::OSM::Position> storage_sparsetable_t;
typedef Osmium::Storage::Mmap<Osmium::OSM::Position> storage_mmap_t;
typedef Osmium::Handler::CoordinatesForWays<storage_sparsetable_t, storage_mmap_t> cfw_handler_t;

class RoadLengthHandler : public Osmium::Handler::Base {

    storage_sparsetable_t store_pos;
    storage_mmap_t store_neg;
    cfw_handler_t* handler_cfw;
    std::map<std::string, unsigned int> length;
    std::string hwy;

public:

    RoadLengthHandler() 
    {
        handler_cfw = new cfw_handler_t(store_pos, store_neg);
    }

    ~RoadLengthHandler() 
    {
    }

    void init(Osmium::OSM::Meta& meta) 
    {
        handler_cfw->init(meta);
    }

    void node(const shared_ptr<Osmium::OSM::Node const>& node) 
    {
        handler_cfw->node(node);
    }

    void after_nodes() 
    {
        handler_cfw->after_nodes();
    }

    unsigned int distance(double lat1, double lon1, double lat2, double lon2)
    {
        if ((lon1==lon2)&&(lat1==lat2)) return 0;
        double r = 6371000;
        lon1 = lon1 * M_PI/180;
        lon2 = lon2 * M_PI/180;
        lat1 = lat1 * M_PI/180;
        lat2 = lat2 * M_PI/180;
        double dlat = lat2-lat1;
        double dlon = lon2-lon1;
        double x = pow(sin(dlat/2),2) + cos(lat1) * cos(lat2) * pow(sin(dlon/2),2);
        double y = 2 * atan2(sqrt(x), sqrt(1-x));
        return r*y+0.5;
    }

    unsigned int way_length(const shared_ptr<Osmium::OSM::Way>& way)
    {
        double last_lat, last_lon, this_lat, this_lon;
        unsigned int len = 0;
        if (way->node_count() < 2) return 0;
        last_lat = way->get_lat(0);
        last_lon = way->get_lon(0);
        for (unsigned int i=1; i< way->node_count(); i++)
        {
            this_lat = way->get_lat(i);
            this_lon = way->get_lon(i);
            len += distance(last_lat, last_lon, this_lat, this_lon);
            last_lon = this_lon;
            last_lat = this_lat;
        }
        return len;
    }

    void way(const shared_ptr<Osmium::OSM::Way>& way) 
    {
        handler_cfw->way(way);
        const char* highway = way->tags().get_tag_by_key("voltage");
        if (highway)
        {
            hwy.assign(highway);
            length[hwy] += way_length(way);
        }
    }

    void after_ways()
    {
        for (std::map<std::string, unsigned int>::const_iterator i = length.begin(); i != length.end(); i++)
        {
            printf("%-20s%8.1fkm\n", i->first.c_str(), i->second / 1000.0);
        }
    }
};

int main(int argc, char *argv[]) 
{
    Osmium::init(true);

    if (argc != 2) 
    {
        std::cerr << "Usage: " << argv[0] << " OSMFILE" << std::endl;
        exit(1);
    }

    Osmium::OSMFile infile(argv[1]);
    RoadLengthHandler handler;
    infile.read(handler);
}

Thomas

Offline

#14 2012-08-01 14:24:14

ikonor
Member
Registered: 2010-11-08
Posts: 637
Website

Re: Wie Länge des Hochspannungsnetzes ermitteln ?

SunCobalt wrote:

Das eigentliche C++ Programm (war ursprünglich für highways) ist nicht so dramatisch, aber wie man das unter Windows kompiliert, weiß ich nicht

Wäre schön, wenn das mal jemand versuchen würde, aber ich fürchte Osmium unter Windows ist Neuland:

Osmium has not been tested on Windows systems, there will probably be problems with some libraries and POSIX functions that are not available on Windows.

Wiki: Osmium/Compiling

Jochen Topf wrote:

> - Osmium does not seem to be Windows ready according to its doc.

Yes. I hope somebody who knows anything about Windows development will help
with that at some point.

[OSM-dev] New OGR driver to read OpenStreetMap .osm / .pbf files

Offline

Board footer

Powered by FluxBB