X-No-Archive: Yes
begin Thread
Moin,
ich habe mich mal in Netz nach einer Übersichtskarte des deutschen
(Hochspannungs-)Netzes umgesehen: Fehlanzeige, gibt es nicht -
rumtelefonieren bei den "Energieriesen" brachte auch kein anderes
Ergebnis. Schwaches Bild... (E.on wollte mir die Bilder
<
http://www.eon-netz.com/pages/ehn_de/E.ON_Netz/Netzfakten/Netzkarte/img_map_netzverbund_neu.gif
und
<
http://www.transpower.de/pages/tso_de/Unternehmen/Kennzahlen/Netzkarte/NetzKarte_2009_RGB27171.jpg
"verkaufen"; naja, besser als nichts.)
Bei <http://www.entsoe.eu/resources/gridmap/ gibt es eine etwas doofe
Java-Anwendung, mit der man in winzige Ausschnitte eines einigermaßen
brauchbaren europäischen Netzplans reingucken kann. Dahinter stecken
Einzelbilder, die unter den fortlaufenden Adressen
<
http://www.entsoe.eu/resources/gridmap/map2008/map2008_0.gif
bis
<
http://www.entsoe.eu/resources/gridmap/map2008/map2008_2311.gif
gespeichert sind. Hat mal jemand eine Idee, wie ich es anstellen
könnte, die automatisiert runterzuladen? Daraus kann man dann ziemlich
einfach ein hochaufgelöstes Bild zusammenbasteln; ich habe mal einen
Ausschnitt hochgeladen:
<
http://img442.imageshack.us/img442/8137/netzdeutschland.png(1,1
MB).
Gruß aus Bremen
Ralf
--
R60: Substantive werden groß geschrieben. Grammatische Schreibweisen:
adressiert Appell asynchron Atmosphäre Autor bißchen Ellipse Emission
Ich nehme an Du hast Windows auf Deinem Rechner.
Wenn ja dann:
Wenn Du noch nicht hast, installiere die cygwin tools von
www.cygwin.com; setup ausführen
Installiere Dir die bash
und "wget: Utility to retrieve HTTP and Ftp...."
(leichter zu finden, wenn man im Installer mit dem
Knopf "View" auf Full stellt).
Öffne Dir eine Bash (cygwin Icon, vorsicht, magisches schwarzes Fenster)
Dort dann
for ((i=0; i<=2311; ++i))
do
wget http://www.entsoe.eu/resources/gridmap/map2008/map2008_ $i.gif
done
Zusehen und sich freuen wie die Leitung brummt.
Wenn Du es so machst, landen die Daten in Dinerm Home Verzeichnis
wie z.B. c:\cygwin\home\DeinBenutzername
Das ist natürlich nur ein möglicher Weg - aber ich finde ihn gut.
hth.
Gruß
Hans
X-No-Archive: Yes
begin quoting, "Ralf . K u s m i e r z" schrieb:
Hm, da waren ja nun zwei Vorschläge mit Zählschleifen. Geht sowas
nicht auch mit JavaScript, also ein .html-File mit ein bißchen Code,
das ich einfach im Firefox aufmachen kann und dann einfach losrennt?
Also so:
for (i=1;i<2312;i++)
d="http://www.entsoe.eu/resources/gridmap/map2008/map2008_ "+$i+".gif"
function wget(d)
{
location.href(d);
}
Geht das irgenwie so? (Da muß dann wohl noch was zum Abspeichern rein,
oder?)
Gruß aus Bremen
Ralf
--
R60: Substantive werden groß geschrieben. Grammatische Schreibweisen:
adressiert Appell asynchron Atmosphäre Autor bißchen Ellipse Emission
Hallo Ralf,
Am Fri, 14 Aug 2009 23:12:04 +0200 schrieb Ralf . K u s m i e r z:
ich denke, du hast die Löcher auf deinem Rechner gestopft und jetzt
möchtest du auf einmal, dass ein Script auf deine Festplatte zugreift?
Viele Grüße
Michael
Hallo Ralf
Am Sat, 15 Aug 2009 04:24:17 +0200 schrieb Ralf . K u s m i e r z:
Ich empfinde es tatsächlich als Problem, wenn ein Script, welches in eine
HTML-Seite eingebettet ist, auf meiner FP mit meinen Userrechten rumrödeln
kann. Oder benutzt du eine VM?
Viele Grüße
Michael
Hallo Ralf
Am Sat, 15 Aug 2009 12:23:11 +0200 schrieb Ralf . K u s m i e r z:
Ja, wenn ich es ihm nicht selbst explizit unter Adminrechten gesagt habe.
"Schauen Sie sich diese Internetseite an und Sie können endlich Ihr System
neu aufsetzen!"
Genau deshalb lasse ich ja auch nicht die Ausführung von VBA in
Office-Dokumenten zu, dessen Code nicht von mir stammt, oder den ich nicht
kenne.
Aber vielleicht hast du ja für Scripting ähnliche Sicherheitseinstellungen
gewählt, dann hat sich die Diskussion sowieso erledigt.
Viele Grüße
Michael
Genau das sind die entscheidenden Punkte: Warum sollte ich kein
selbstgestricktes Script ausführen lassen? (Oder halt eines, dessen
Quellcode ich inspiziert und für gut befunden habe.)
Gruß aus Bremen
Ralf
--
R60: Substantive werden groß geschrieben. Grammatische Schreibweisen:
adressiert Appell asynchron Atmosphäre Autor bißchen Ellipse Emission
Hallo Ralf,
Am Fri, 14 Aug 2009 14:10:41 +0200 schrieb Ralf . K u s m i e r z:
hast du einen Windows-Rechner?
Wenn ja, folgendes in eine Textdatei mit der Endung .vbs und anschließend
einen Doppelklick darauf. Das Verzeichnis C:\Test sollte in dem Bleistift
bereits vorhanden sein.
Dim strDest
Dim objStream
Dim objHTTP
Dim strSource
Dim i
Const adTypeBinary = 1
Const adSaveCreateOverWrite = 2
strDest = "c:\Test\map2008_"
strSource = "http://www.entsoe.eu/resources/gridmap/map2008/map2008_ "
Set objStream = CreateObject("ADODB.Stream")
objStream.Type = adTypeBinary
Set objHTTP = CreateObject("msxml2.XMLHTTP")
With objHTTP
' Diese Schleife entsprechend anpassen
For i = 1 To 2311
.Open "GET", strSource & i & ".gif", False
.send
If .Status = 200 Then
If .getResponseHeader("content-type") = "image/gif" Then
objStream.Open
objStream.write .responseBody
objStream.savetofile strDest & i & ".gif", _
adSaveCreateOverWrite
objStream.Close
End If
End If
Next
End With
Set objStream = Nothing
Set objHTTP = Nothing
Viele Grüße
Michael
X-No-Archive: Yes
begin quoting, Michael Schwimmer schrieb:
Und warum funktioniert das nicht? Weil der Internetexploder bei mir
keine Erlaubnis hat, *irgendwas* zu tun. Da habe ich nämlich in
diverse Löcher ein paar Korken hineingesteckt und auch nicht geringste
Lust, die wieder herauszuziehen.
Schönen Dank, aber das brauche ich gar nicht erst auszuprobieren.
Gruß aus Bremen
Ralf
--
R60: Substantive werden groß geschrieben. Grammatische Schreibweisen:
adressiert Appell asynchron Atmosphäre Autor bißchen Ellipse Emission
Hallo Ralf,
Am Fri, 14 Aug 2009 22:49:22 +0200 schrieb Ralf . K u s m i e r z:
nichts dagegen zu sagen!
Hast du irgend ein M$-Programm, welches VBA kann (Excel, Word, Outlook,
Access ...)? Der Code funktioniert auch dort, natürlich auch nur, wenn die
Sicherheitseinstellungen entsprechend angepasst sind.
Sub test()
Dim strDest As String
Dim objStream As Object
Dim objHTTP As Object
Dim strSource As String
Dim i As Long
Const adTypeBinary As Long = 1
Const adSaveCreateOverWrite As Long = 2
strDest = "c:\Test\map2008_"
strSource = "http://www.entsoe.eu/resources/gridmap/map2008/map2008_ "
Set objStream = CreateObject("ADODB.Stream")
objStream.Type = adTypeBinary
Set objHTTP = CreateObject("msxml2.XMLHTTP")
With objHTTP
For i = 1 To 2
.Open "GET", strSource & i & ".gif", False
.send
If .Status = 200 Then
If .getResponseHeader("content-type") = "image/gif" Then
objStream.Open
objStream.write .responseBody
objStream.savetofile strDest & i & ".gif", _
adSaveCreateOverWrite
objStream.Close
End If
End If
Next
End With
Set objStream = Nothing
Set objHTTP = Nothing
End Sub
Viele Grüße
Michael
Hallo,
Am Fri, 14 Aug 2009 23:28:22 +0200 schrieb Michael Schwimmer:
um aus den heruntergeladenen Bildern wieder ein komplettes Bild zu machen,
kann man auch VBA einsetzen. Folgendes funktioniert mit Excel (in ein
Standardmodul):
Option Explicit
Private Type GUID
Data1 As Long
Data2 As Integer
Data3 As Integer
Data4(7) As Byte
End Type
Private Type PICTDESC
cbSize As Long
picType As Long
hImage As Long
Data1 As Long
Data2 As Long
End Type
Private Declare Function OleCreatePictureIndirect _
Lib "olepro32.dll" ( _
pPictDesc As PICTDESC, _
RefIID As GUID, _
ByVal fPictureOwnsHandle As Long, _
ppvObj As IPicture _
) As Long
Private Declare Function DeleteDC _
Lib "gdi32" ( _
ByVal hdc As Long _
) As Long
Private Declare Function CreateCompatibleDC _
Lib "gdi32" ( _
ByVal hdc As Long _
) As Long
Private Declare Function SelectObject _
Lib "gdi32" ( _
ByVal hdc As Long, _
ByVal hObject As Long _
) As Long
Private Declare Function CreateCompatibleBitmap _
Lib "gdi32" ( _
ByVal hdc As Long, _
ByVal nWidth As Long, _
ByVal nHeight As Long _
) As Long
Private Declare Function SetStretchBltMode _
Lib "gdi32" ( _
ByVal hdc As Long, _
ByVal nStretchMode As Long _
) As Long
Private Declare Function StretchBlt _
Lib "gdi32.dll" ( _
ByVal hdc As Long, _
ByVal x As Long, ByVal y As Long, _
ByVal nWidth As Long, ByVal nHeight As Long, _
ByVal hSrcDC As Long, _
ByVal xSrc As Long, ByVal ySrc As Long, _
ByVal nSrcWidth As Long, ByVal nSrcHeight As Long, _
ByVal dwRop As Long _
) As Long
Private Declare Function DeleteObject _
Lib "gdi32" ( _
ByVal hObject As Long _
) As Long
Private Const SRCCOPY As Long = &HCC0020
Private Const vbPicTypeBitmap As Long = 1
Private Const cspHalftone As Long = 4
Public Sub MakeCard()
Dim udtPicdesc As PICTDESC
Dim IID_IDispatch As GUID
Dim lngRet As Long
Dim lngDestBMP As Long
Dim strSource As String
Dim strDestName As String
Dim lngDestDC As Long
Dim lngSourceDC As Long
Dim lngObjOldSource As Long
Dim lngObjOldDest As Long
Dim objPic As IPictureDisp
Dim objPicture As IPictureDisp
Dim objDummy As IPictureDisp
Dim i As Long
Dim k As Long
Dim m As Long
Dim x As Long
Dim y As Long
On Error Resume Next
x = 150 ' Original 200
y = 112 ' Original 150
strSource = "c:\Test\map2008_"
strDestName = "c:\Test\Dest.bmp"
' 1x1 Pixelgroße Bitmap erzeugen
Set objDummy = CreateDummyBMP
' DummyDC zum Blitten vom Quellbild erzeugen
lngSourceDC = CreateCompatibleDC(0&)
lngObjOldSource = SelectObject(lngSourceDC, objDummy.Handle)
' Das alte Objekt zurück ins DC
SelectObject lngSourceDC, lngObjOldSource
' Einen DC erzeugen, der kompatibel zum Bildschirm ist
lngDestDC = CreateCompatibleDC(0&)
' Dummy-Bitmap hineinstellen
lngObjOldDest = SelectObject(lngDestDC, objDummy.Handle)
' Eine kompatible Bitmap in der gewünschten Größe erzeugen
lngDestBMP = CreateCompatibleBitmap(lngDestDC, 48 * x, 46 * y)
' Das alte Objekt zurück ins DC
SelectObject lngDestDC, lngObjOldDest
' Neue Bitmap ins ZielDC stellen, altes Objekt merken
lngObjOldDest = SelectObject(lngDestDC, lngDestBMP)
' Qualität erhöhen
SetStretchBltMode lngDestDC, cspHalftone
For k = 0 To 45 ' Y-Richtung
For i = 1 To 48 ' X-Richtung
' Bildnummer
m = (k * 48 + i + 103)
Set objPicture = LoadPicture(strSource & m & ".gif")
' Bitmap ins QuellDC stellen, altes Objekt merken
lngObjOldSource = SelectObject(lngSourceDC, _
objPicture.Handle)
' Bild in den ZielDC blitten
StretchBlt lngDestDC, (i - 1) * x, k * y, x, y, _
lngSourceDC, 0, 0, 200, 150, SRCCOPY
' Alte Bitmap ins QuellDC stellen
lngObjOldSource = SelectObject(lngSourceDC, _
lngObjOldSource)
Next
Next
' Schnittstellenkennung kPictureIID (GUID)
With IID_IDispatch
.Data1 = &H20400
.Data4(0) = &HC0
.Data4(7) = &H46
End With
With udtPicdesc
' Struktur Picdesc ausfüllen
.cbSize = Len(udtPicdesc)
.picType = vbPicTypeBitmap
.hImage = lngDestBMP
End With
' Picture-Objekt erzeugen
lngRet = OleCreatePictureIndirect( _
udtPicdesc, IID_IDispatch, 1&, objPic)
' Picture-Objekt abspeichern
SavePicture objPic, strDestName
' Alte Bitmap zurück ins DC, DC zerstören
SelectObject lngDestDC, lngObjOldDest
DeleteDC lngDestDC
DeleteDC lngSourceDC
End Sub
Private Function CreateDummyBMP() As IPictureDisp
Dim varBMP As Variant
Dim abyteBMP() As Byte
Dim i As Long
Dim FF As Long
Dim strDest As String
strDest = Environ("Temp") & "\Dummy.bmp"
If Dir(strDest) <> "" Then Kill strDest
varBMP = Array( _
66, 77, 58, 0, 0, 0, 0, 0, 0, 0, _
54, 0, 0, 0, 40, 0, 0, 0, 1, 0, _
0, 0, 1, 0, 0, 0, 1, 0, 24, 0, _
0, 0, 0, 0, 4, 0, 0, 0, 196, 14, _
0, 0, 196, 14, 0, 0, 0, 0, 0, 0, _
0, 0, 0, 0, 255, 255, 255, 0)
ReDim abyteBMP(0 To UBound(varBMP))
For i = 0 To UBound(varBMP)
abyteBMP(i) = varBMP(i)
Next
FF = FreeFile
Open strDest For Binary As FF
Put #FF, , abyteBMP
Close FF
Set CreateDummyBMP = LoadPicture(strDest)
End Function
9600x6900 Pixel sind als Bitmap doch etwas viel. Ich habe als Kompromiss
7200x5152 verwendet, mit einem Grafikprogramm in .JPG umgewandelt sind das
dann noch etwa 8,3 MB.
Wenn du mir eine Mail-Adresse zukommen lässt, kann ich dir die Datei auch
senden, es sind gezippt aber trotzdem noch etwa 7,5 MB. Online stellen will
ich die Karte aber aus rechtlichen Gründen nicht.
Viele Grüße
Michael
X-No-Archive: Yes
begin quoting, Michael Schwimmer schrieb:
Falsche Frage: Alle Internetzugriffe von M$-Programmen erfolgen über
den I-Exploder (das dämliche T-Online-Programm will den auch), und
*den* habe ich abgewürgt, also kann nichts dergleichen funktionieren.
(Ich habe einfach die IE-Systemdateien gelöscht - das crasht zwar
(bzw. mault), wenn die irgendein Scheixx-Programm aufruft, ist dafür
aber absolut idiotensicher.)
Gruß aus Bremen
Ralf
--
R60: Substantive werden groß geschrieben. Grammatische Schreibweisen:
adressiert Appell asynchron Atmosphäre Autor bißchen Ellipse Emission
Polytechforum.com is a website by engineers for engineers. It is not affiliated with any of manufacturers or vendors discussed here.
All logos and trade names are the property of their respective owners.