Posts Tagged ‘howto’

Мониторинг качеството на нета

Wednesday, March 11th, 2009

Терминът “качество на нета” по-скоро е взет от някой тинейджърски журнал, но уцелва точно нуждите на крайния клиент. Аз като клиент на моя ISP се нуждая от две неща - ниска (по възможност - никаква) загуба на пакети и ниско (по възможност - никакво) забавяне на пакетите. Това трябва да ми се поднесе разбираемо, с картинка.
Нужен софтуер:

  • RRDtool - има страхотни възможности за представяне на числова информация. За примерни графики вижте галерията им.
  • ping - резултата от изпълнението на ping съдържа всичко необходимо за изграждане на статистиката ни - Round trip time и Packet loss
  • Perl - или друг удобен ви език. Трябва ви за парсване на изхода от ping
  • crontab - искаме статистиката да се събира през определен интервал от време

Системата може да бъде разделена на две части: част за събиране на статистика и част за графично представяне на данните.
Събиране на статистика
На всеки 5 минути ще се пуска ping до няколко избрани хоста в различни зони на пиъринга. Естествено върнатите резултати ще са субективни, защото зависят от параметрите на отсрещната точка. Все пак цялото задание “качество на нета” е субективно, така че да продължаваме :) Избрал съм единия хост да бъде шлюза на доставчика ми, втория хост да бъде dir.bg (тест на bg пиъринга) и третия хост да бъде ivanatora.info (за тест на международната свързаност).
Логът се изгражда от следния скрипт:
/home/ivanatora/perl_razni/ping_stats.pl


#!/usr/bin/perl
$target = $ARGV[0]; # тук ще идва адреса на целта
$db = $ARGV[1]; # тук ще идва в коя база ще се записва
$dump = "/home/ivanatora/stats_ping/$target.log"; # лога с крайните резултати
$rrd_path = "/home/ivanatora/rrd/temps/pings"; # директорията с RRD базите
open (FH, ">>", $dump) or die "$!";
($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time);
$mon++;
$year += 1900;
$time = sprintf("%02d/%02d/%4d %02d:%02d:%02d", $mday, $mon, $year, $hour, $min, $sec);
$output = `/bin/ping -q -c100 -w100 $target`; # пуска ping със 100 пакета и чака максимално 100 секунди за изпълнението на командата

if ($output =~ /(d+?)% packet loss/){
        $loss = $1;
        $percent = sprintf("%3d", $1);
}
if ($output =~ /rtt min/avg/max/mdev = .+?/(.+?)//){
        $avg = $1;
        print FH "$time : $percent% loss to $target Average: $1 msn";
        # update RRD
        $ts = time;
        $mod = $ts % 300;
        $ts -= $mod;
        $avg =~ /^(.+?)./;
        $rtt = $1;
        `/home/ivanatora/rrd/bin/rrdtool update $rrd_path/$db.rrd $ts:$loss:$rtt`; # командата за ъпдейт на базата; TODO: да направя пътя до изпълнимия файл на rrdtool в променлива
}
close (FH);

Малко изпреварвам времето, защото още не сме създали RRD базите. Каква е идеята на RRD? Round Robin Database е способ за запазване на постоянно изменяща се информация във времето, като всяка промяна се регистрира в цикличен буфер. Ако имаме един буфер със 12 слота и ъпдейтваме базата през 5 минути, във всеки момент ще имаме данните от предния час. Какво става с по-старите данни - губят ли се? Да. Ако ни трябват ще направим още един буфер, който ще се ъпдейтва на всяко цялостно извъртане на часовия буфер - ще взима средната стойност на всички измервания и ще го записва в един негов слот. Така ако този буфер има 24 слота ще имаме статистика на средната часова стойност на измерванията. Може да имате колкото си искате вторични буфери и всички се съхраняват в една и съща база и се ъпдейтват автоматично. Освен това в един буфер може да пазите стойностите на няколко променливи. Предимствата на RRD е че всяка промяна се регистрира, като размера на базата не нараства линейно във времето.
До тук вероятно имаме лог с нещо такова:
/home/ivanatora/stats_ping/dir.bg.log

11/03/2009 00:05:01 :   0% loss to dir.bg Average: 7.271 ms
11/03/2009 00:10:01 :   0% loss to dir.bg Average: 9.091 ms
11/03/2009 00:15:01 :   0% loss to dir.bg Average: 7.466 ms
11/03/2009 00:20:01 :   1% loss to dir.bg Average: 7.152 ms
11/03/2009 00:25:01 :   0% loss to dir.bg Average: 8.273 ms
11/03/2009 00:30:01 :   0% loss to dir.bg Average: 6.863 ms
11/03/2009 00:35:01 :   0% loss to dir.bg Average: 11.690 ms

Този лог може да използваме за каквото си искаме, а може и въобще да не го правим. Горния скрипт работи ъпдейтва директно rrdtool, така че ако не искате излишни логове да се пазят на машината ви насочете $dump = “/dev/null”; :)

Създаване на RRD бази.
За всеки изследван хост ще направим по една база. В тази база ще се съхраняват стойностите за Round Trip Time и Packet Loss.
Правим си следното bash скриптче (освен ако не ви мързи да го пишете на ръка за всяка база - може да имате и повече от три бази):

#!/bin/bash
NOW=`date +%s`
rrdtool create $1.rrd --start $NOW --step 300 
DS:PacketLoss:GAUGE:300:0:100 
DS:RTT:GAUGE:300:0:10000 
RRA:LAST:0.5:1:288 
RRA:AVERAGE:0.5:6:336 
RRA:AVERAGE:0.5:24:360 
RRA:AVERAGE:0.5:288:365

Подробностите за синтаксиса можете да намерите в документацията на RRDtool. На кратко - създаваме база с 2 източника на данни (променливи, които ще следим): PacketLoss и RTT. Задават се интервалите на ъпдейт на всеки източник,минимални и максимални допустими стойности. След това се правят 4 Round Robin Archives (буферите, за които говорихме по-рано).
Създаваме трите бази:

[ivanatora@~/rrd/temps/pings]$ sh create_script.sh bg
[ivanatora@~/rrd/temps/pings]$ sh create_script.sh gw
[ivanatora@~/rrd/temps/pings]$ sh create_script.sh int

Слагаме cronjob за изпълнение на ъпдейтващия скрипт на 5 минути:

*/5 * * * * perl /home/ivanatora/perl_razni/ping_stats.pl 87.120.194.1 gw
*/5 * * * * perl /home/ivanatora/perl_razni/ping_stats.pl dir.bg bg
*/5 * * * * perl /home/ivanatora/perl_razni/ping_stats.pl ivanatora.info int

Както видяхме скрипта приема два аргумента: адрес за ping и име на базата, която ъпдейтва.
Рисуване на графиките
Ще имаме отделна графика за всяка следена величина. Може да комбинираме няколко от графиките на една, но само ако очаквате там приблизително еднакви резултати. Големите отклонения на величините карат rrdtool да измества разделителната способност на графиката и една от графиките в общата картинка не се вижда добре. Ще имаме два скрипта за чертане на графики - един за Round Trip Time и един за Packet Loss.
/home/ivanatora/rrd/temps/pings/loss_graph.sh

#!/bin/bash
PATH=$PATH:/home/ivanatora/rrd/bin
DIR=/home/ivanatora/rrd/temps/pings/
rrdtool graph $DIR/img/loss-$1.png 
--title="<$1> Packet loss" 
--color CANVAS#000000 
--color BACK#000000 
--color GRID#006600 
--color MGRID#003300 
--color AXIS#00ff00 
--color FONT#00ff00 
--color SHADEA#000000 
--color SHADEB#000000 
--slope-mode 
--upper-limit 100 
--rigid 
--width 480 
--height 300 
--font DEFAULT:10:Arial 
DEF:loss=$DIR/$1.rrd:PacketLoss:LAST 
DEF:rtt=$DIR/$1.rrd:RTT:LAST 
AREA:loss#00FF00:"Packet loss (%)" 

/home/ivanatora/rrd/temps/pings/rtt_graph.sh

#!/bin/bash
PATH=$PATH:/home/ivanatora/rrd/bin
DIR=/home/ivanatora/rrd/temps/pings/
rrdtool graph $DIR/img/rtt-$1.png 
--title="<$1> Round trip time" 
--color CANVAS#000000 
--color BACK#000000 
--color GRID#006600 
--color MGRID#003300 
--color AXIS#00ff00 
--color FONT#00ff00 
--color SHADEA#000000 
--color SHADEB#000000 
--slope-mode 
--width 480 
--height 300 
--font DEFAULT:10:Arial 
DEF:loss=$DIR/$1.rrd:PacketLoss:LAST 
DEF:rtt=$DIR/$1.rrd:RTT:LAST 
AREA:rtt#00FF00:"Round trip time (ms)" 

Тук можем да си поиграем с цветовете и крайния резултат да е доста eye-candy. Важните редове са DEF - където се извличат стойностите на променливите от базата и AREA - самото изчертаване. За повече подробности - документацията на RRDtool.
След това правим един скрипт, който да задейства изчертаване на всички графики:
/home/ivanatora/rrd/temps/pings/graph_all.sh

#!/bin/bash
DIR=/home/ivanatora/rrd/temps/pings/
$DIR/loss_graph.sh int
$DIR/loss_graph.sh bg
$DIR/loss_graph.sh gw
$DIR/rtt_graph.sh int
$DIR/rtt_graph.sh bg
$DIR/rtt_graph.sh gw

И поставяме съответната задача в crontab:

*/5 * * * * sh /home/ivanatora/rrd/temps/pings/graph_all.sh

В резултат всичките изображения се намират в директорията pings/img/. Остава да направим красива HTML страничка, която да събира всичко в едно.
Резултата можете да го видите тук.

SE k800i Linux Modem Part 2

Sunday, February 22nd, 2009

В миналата част си поговорихме как да закачим телефона към компютъра така че да се работи с USB CDC драйвъра. Сега ще стане дума как да си пуснете реален интернет на компютъра. Тук имам само карта към МТЕЛ и съм писал за него, така че всички читатели които ползват услугите на евентуален друг оператор ще трябва леко да си редактират настройките.
PPP
Трябва ви point-to-point protocol поддръжка под някаква форма. Дали вградено в ядрото или на модул - по ваш избор. Нужните отметки в конфигурацията на ядрото са следните:

  • Device Drivers —>[*] Network device support —> PPP (point-to-point protocol) support
  • Device Drivers —>[*] Network device support —> PPP support for async serial ports

Ако решите да ги компилирате като модули, първия модул ще се казва ppp_generic, а втория ppp_async. Трябват ви и двете неща, иначе ще получавате странни грешки от рода на:

The PPP daemon has died: Fatal pppd error (exit code = 1)
1 An immediately fatal error of some kind occurred, such as an
essential system call failing, or running out of virtual mem-
ory.

Wvdial
Хубавото на Wvdial е че само си открива поддържаните настройки от модема и само си създава конфигурационен файл. Освен това не е нужно да се мъчите с /etc/ppp/* скриптове и настройки и даже не е нужно да сте прочели и ред от pppd man-страницата :)
Създаване на конфигурационен файл:

# wvdialconf
Editing `/etc/wvdial.conf’.

Scanning your serial ports for a modem.

WvModem<*1>: Cannot set information for serial port.
ttyS0<*1>: ATQ0 V1 E1 — failed with 2400 baud, next try: 9600 baud
ttyS0<*1>: ATQ0 V1 E1 — failed with 9600 baud, next try: 115200 baud
ttyS0<*1>: ATQ0 V1 E1 — and failed too at 115200, giving up.
WvModem<*1>: Cannot set information for serial port.
ttyS1<*1>: ATQ0 V1 E1 — failed with 2400 baud, next try: 9600 baud
ttyS1<*1>: ATQ0 V1 E1 — failed with 9600 baud, next try: 115200 baud
ttyS1<*1>: ATQ0 V1 E1 — and failed too at 115200, giving up.
Modem Port Scan<*1>: S2 S3
WvModem<*1>: Cannot get information for serial port.
ttyACM0<*1>: ATQ0 V1 E1 — OK
ttyACM0<*1>: ATQ0 V1 E1 Z — OK
ttyACM0<*1>: ATQ0 V1 E1 S0=0 — OK
ttyACM0<*1>: ATQ0 V1 E1 S0=0 &C1 — OK
ttyACM0<*1>: ATQ0 V1 E1 S0=0 &C1 &D2 — OK
ttyACM0<*1>: ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0 — OK
ttyACM0<*1>: Modem Identifier: ATI — Sony Ericsson K810
ttyACM0<*1>: Speed 4800: AT — OK
ttyACM0<*1>: Speed 9600: AT — OK
ttyACM0<*1>: Speed 19200: AT — OK
ttyACM0<*1>: Speed 38400: AT — OK
ttyACM0<*1>: Speed 57600: AT — OK
ttyACM0<*1>: Speed 115200: AT — OK
ttyACM0<*1>: Speed 230400: AT — OK
ttyACM0<*1>: Speed 460800: AT — OK
ttyACM0<*1>: Max speed is 460800; that should be safe.
ttyACM0<*1>: ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0 — OK
WvModem<*1>: Cannot get information for serial port.
ttyACM1<*1>: ATQ0 V1 E1 — failed with 2400 baud, next try: 9600 baud
ttyACM1<*1>: ATQ0 V1 E1 — failed with 9600 baud, next try: 115200 baud
ttyACM1<*1>: ATQ0 V1 E1 — and failed too at 115200, giving up.

Found an USB modem on /dev/ttyACM0.

Отваряме /etc/wvdial.conf и редактираме редовете Phone, Username, Password. Добавяме и ред Init3. Това е крайното състояние при мен (за МТЕЛ) :

[Dialer Defaults]
Init1 = ATZ
Init2 = ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
Init3 = AT+CGDCONT=1,”IP”,”inet-gprs.mtel.bg”
Modem Type = USB Modem
ISDN = 0
Phone = *99#
Modem = /dev/ttyACM0
Username = dada
Password = dada
Baud = 460800

По принцип интернета на МТЕЛ се използва с каквито и да е Username и Password, но wvdial не ви позволява да оставяте тези полета празни. Из нета на разни места пишат че може и да се сложи следния ред:
Stupid Mode = 1
ако wvdial не може да си комуникира добре с модема ви. За k800i нямаше нужда.
Connect
Стартирането на pppd, което става автоматично от wvdial изисква отново да сте root.

# wvdial
–> WvDial: Internet dialer version 1.60
–> Cannot get information for serial port.
–> Initializing modem.
–> Sending: ATZ
ATZ
OK
–> Sending: ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
OK
–> Sending: AT+CGDCONT=1,”IP”,”inet-gprs.mtel.bg”
AT+CGDCONT=1,”IP”,”inet-gprs.mtel.bg”
OK
–> Modem initialized.
–> Sending: ATDT*99***1#
–> Waiting for carrier.
ATDT*99***1#
CONNECT
~[7f]}#@!}!}!} }9}#}%B#}%}(}”}’}”}”}&} } } } }%}&VKD}1[7f])~
–> Carrier detected. Starting PPP immediately.
–> Starting pppd at Sun Feb 22 19:48:09 2009
–> Pid of pppd: 26823
–> Using interface ppp0
–> pppd: 8[07][08]X¢[07][08][07][08]
–> pppd: 8[07][08]X¢[07][08][07][08]
–> pppd: 8[07][08]X¢[07][08][07][08]
–> pppd: 8[07][08]X¢[07][08][07][08]
–> pppd: 8[07][08]X¢[07][08][07][08]
–> pppd: 8[07][08]X¢[07][08][07][08]
–> pppd: 8[07][08]X¢[07][08][07][08]
–> pppd: 8[07][08]X¢[07][08][07][08]
–> local IP address 10.161.47.249
–> pppd: 8[07][08]X¢[07][08][07][08]
–> remote IP address 10.64.64.64
–> pppd: 8[07][08]X¢[07][08][07][08]
–> primary DNS address 213.226.7.34
–> pppd: 8[07][08]X¢[07][08][07][08]
–> secondary DNS address 213.226.7.35
–> pppd: 8[07][08]X¢[07][08][07][08]
^CCaught signal 2: Attempting to exit gracefully…
–> Terminating on signal 15
–> pppd: 8[07][08]X¢[07][08][07][08]
–> Connect time 1.5 minutes.
–> pppd: 8[07][08]X¢[07][08][07][08]
–> pppd: 8[07][08]X¢[07][08][07][08]
–> pppd: 8[07][08]X¢[07][08][07][08]
–> Disconnecting at Sun Feb 22 19:49:38 2009

CTRL+C спира връзката.
Има няколко важни неща, които трябва да се видят тук. Това че сте свързан към GPRS access point при оператора ви все още не означава че компютъра ви може да ползва интернет. Трябва да се добави default route, със следния gateway:
–> remote IP address 10.64.64.64
Съответно:
# route add default gw 10.64.64.64
Ако преди това сте бил свързан към друг доставчик явно ще трябва да махнете default gw, който ви е от него.
При спирането на връзката може да забележите следния ред, който показва за колко време сте били connected:
–> Connect time 1.5 minutes.
Други статистики може да видите от ifconfig ppp0:

ppp0 Link encap:Point-to-Point Protocol
inet addr:10.161.47.249 P-t-P:10.64.64.64 Mask:255.255.255.255
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1
RX packets:64 errors:0 dropped:0 overruns:0 frame:0
TX packets:317 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:3
RX bytes:7125 (6.9 KiB) TX bytes:53884 (52.6 KiB)

Конкретно това което ви интересува е RX и TX bytes, защото те струват пари. Не съм сигурен дали оператора отчита трафика по същия начин, за това не бих приел тези цифри много твърдо.

И финалния най-важен въпрос: колко бърз интернет можете да си пуснете - при мен стигна до четвърт мегабит:

wget http://mirrors.unixsol.org/linuxpackages//Slackware-12.0/ken/google-earth-4.2.205-i486-1kjz.tgz
–19:54:57– http://mirrors.unixsol.org/linuxpackages//Slackware-12.0/ken/google-earth-4.2.205-i486-1kjz.tgz
=> `google-earth-4.2.205-i486-1kjz.tgz’
Resolving mirrors.unixsol.org… 193.110.159.35
Connecting to mirrors.unixsol.org|193.110.159.35|:80… connected.
HTTP request sent, awaiting response… 200 OK
Length: 22,863,884 (22M) [application/x-tar]

1% [> ] 442,690 37.82K/s ETA 10:23

Това зависи от мрежата, която ви покрива. Максималните скорости са съответно:

  • CSD (WAP dial-up) - 9.6 Kbps
  • GPRS - 90 Kbps
  • EDGE - 236 Kbps
  • UMTS - 384 Kbps
  • HSDPA - 14.4 Mbps downlink

Внимание: всичко различно от WAP CSD може сериозно да ви бръкне в сметката! MTEL дават 1MB трафик за 2.50 лв. Тарифата за WAP е 11 ст. на минута. Горното howto е писано за всичко от GPRS нагоре. За чист WAP ще експериментирам и тези дни вероятно ще пусна Part 3 на това howto.

Update: Операторката от телефон 1010 ми съобщи че MTEL от една година насам не предлагат CSD достъп, а само GPRS.

SE k800i Linux modem

Wednesday, February 18th, 2009

Фен съм на GSM-модемите. Това е идеалната и най-проста backup линия за връзка с домашното (или сървърното) ви PC. Предполага се че това PC е винаги в зоната на покритие на някой от GSM операторите, така че телефона ви винаги ще е online. По-старите телефони с RS-232 комуникация имат един недостатък - батерията им пада с времето и трябва да пачвате буксата за да я вържете в постоянно включено в контакта зарядно. Иначе какъв backup е ако телефона ви остане без ток на третия ден :) Този недостатък го няма в по-съвременните телефони с USB кабели, където батерията постоянно се дозарежда през кабела. (От USB порта може да се извади максимум до 100mA ток, което е повече от колкото може да извади зарядното ви.)
Удивително успях да се свържа с модема на k800 за по-малко от час ръчкане. Ето нужните стъпки:
0) Телефона се свързва с кабел към компютъра. На екранчето излиза меню, което ви пита в какъв режим да работи телефона. Избирате “Phone Mode”. Във “File transfer” режим телефона се рестартира и се mount-ва като флаш драйв, а това не ви трябва в момента.
1) Трябва ви CDC ACM драйвър, който служи като виртуален сериен порт под USB. Драйвърът обикновено върви в комплект с линукс кернела. Когато телефона ви е свързан с кабел към компютъра трябва да виждате устройства /dev/ttyACM*. Ако не виждате такива устройства вероятно нямате ACM драйвър. Може да се разминете без прекомпилиране на кернела, ако го добавите драйвъра като модул:
Device Drivers —> USB support —> USB Modem (CDC ACM) support (за кернел 2.6.25.6)
След това следват:
$ make modules
# make modules_install
при което ще бъде компилиран и инсталиран само този модул.
Можете да го заредите с:
# modprobe cdc_acm
Ако все още не се появяват устройства /dev/ttyACM*, проверете какво се вижда в lsusb. Трябва да виждате нещо като това:
Bus 5 Device 16: ID 0fce:d0a1 Sony Ericsson Mobile Communications AB
2) По подразбиране само root потребителя може да работи с тези устройства. При засичане на модем, драйвъра автоматично си създава ttyACM*, но режима на достъп обикновено е root:root 0600. Едно временно решение е:
# chmod a+rw /dev/ttyACM*
Но след презакачане на телефона udev ще възстанови 0600 режима.
За да направите така че всеки потребител да има достъп по всяко време, добавете следния ред в /etc/udev/rules.d/50-udev.rules:
KERNEL=”ttyACM*”, NAME=”%k”, GROUP=”uucp”, MODE=”666″
3) След като имате виртуалните серийни портове, можете да използвате любимата си програма за серийна комуникация. Обикновено трябва да зададете порт с който да се свърже и настройки. Тук идва интересната част, защото при мен се появяват обикновено няколко виртуални порта (ttyACM0, ttyACM1, ttyACM2) на всяко свързване. Може да експериментирате с всеки от портовете докато откриете къде ви е модема. Слава богу поне не се грижите да следите на какъв default baud rate работи модема, защото той е умен и се синхронизира към скоростта на вашето предаване.
Полезна програмка, която можете да използвате и за dialing е wvdial. Хубавото в нея е че изследва какво имате вързано по портовете и сама се конфигурира.
За финал - написвате си daemon програмка, която следи за състоянието на модема и при дадено събитие изпълнява нещо. Например аз следя за входящо повикване от другия си номер и когато се появи, изпълнява командата `xmms -f` и сменя песните в XMMS-a. Ето на това му викам полезен backup и дистанционно за случаите когато ме мързи да стана от леглото :)
Друго примерно приложение е при получаване на SMS да се изъплнява шелска команда, която се съдържа в него. За целта обаче първо трябва да си разкодирате SMS-а, което е готина задачка. Прочетете повече за PDU формата на съобщенията тук.
Ето ви и едно примерно съобщение, с което можете да си поиграете за домашна работа (цялото съобщение е на един ред без интервали, които го разбиват):
AT+CMGL=4
+CMGL: 1,1,,86
07915389080003F104048111110000902061904403805146F9BBAD034DE
961777ACE0EDB413CFA7B3E9FC96280733B9C66BBC6EFB60F442DE3E93A
10A8999ECFD36F3768FC6EC3D9657A991C025DC3697ADA7D0699DF72D05
B4E2ECB4320
OK

P.S. Документацията с АТ командите може да си дръпнете от девелоперската секция в сайта на Sony Ericsson.

P.S.2. Подозирам че горното писание важи за всеки телефон с USB връзка и модем, не само за k800 :)

Какво е HFSC и има ли почва у нас

Thursday, January 29th, 2009

Снощи нямах какво да правя, та взех и преведох текст от разни места и го събрах в едно материалче което разглежда принципа на действие на HFSC. Има примери как се прави това в Linux и *BSD.

Статията може да е скучна за доста хора, така че който го интересува да чете навътре :)

(more…)

За сателитните снимки в Google Earth

Sunday, November 23rd, 2008

Винаги съм се възмущавал, че Стара Загора вече кусур години няма детайлна снимка в запаса на Гугъл, а разни забутани места като Симитли - имат. Редовно следя блога на Google Earth и гледам как чуждите страни биват детайлно мапвани до ниво колиба, а половината България стои накъсана. И се чудя - как така все спътника не застава над Стара Загора, та да отпере две-три снимки.
Ами оказа се че Google нямат собствен спътник (а очаквах да имат!), а използват снимките от няколко от сателитите на НАСА. Които снимки изненадващо са публично достъпни в интернет. И то не само са достъпни, ами и са Up To Date! Снимката на Пловдив в Гугъла е от преди 5 години, а снимките от сайта на НАСА са само от преди месеци (и се ъпдейтват непрекъснато). Единствения недостатък, който пречи на масовата публика да им се порадва е че тези снимки не са нарязани и събрани.
За всичко това ми отвори очите REAKTOR и публикувам следните инструкции с неговото съгласие.

ivanatora 12 days ago
Как намери датата на сателитната снимка за Стара Загора? :)

REAKTOR 11 days ago
това е от сайта на наса.реално ниската резолюцич в GE представлява множество от съединени сателитни снимки от сателита Landsat.та от там си имат готови снимки за дошнлоад които са съединени и обработени, а по късно keyhole закупиха целия датасет (говори се че бил към 60-70 тб)и нбаправиха тази карта която виждаш.снмките са от 2000 +- 1г.ако искаш мога да ти пратя една сцена (снимка), да видиш как реално изглежда от сателит.

REAKTOR 11 days ago
аз от време те гледам, че работиш на сляпо върху Стара Загора и щях да ти пращам по ясна снимка, но като гледам скоро сложиха midresolution на гърция румъния и сърбия та го отложих, а другото е ,че има нова снимка над стара загора я гледах в каталога на фирмата, която дава от най- детаилните снимки за гугъл така че може скоро да я качат.в тази папка store4.data.bg/reacting/imagery/ съм сложил снимката за която говоря.тя е само за preview и не е детаилно но се вижда какво може да качат гугъл, а другата е една сцена над пловдив от 21 Юни 2000.тя е тази която се вижда в GE.

ivanatora 11 days ago
Ами може да ми пратиш малко снимки на Стара Загора, само да видя с какво качество си ги намерил. Интересно ми е :)
Не работя на сляпо - гугъл са направили детайлни карти на България. Не снимки от сателит, а съвместими карти на улици, сгради и т.н. Така че като се зуумне до високо ниво се виждат улиците с номерата и могат финно да се добавят обекти, които скоро няма да се появят в сателитните снимки.
Сега ще видя какво си качил в дата.бг
Еййй, какви гадни облаци са минали по време на снимката…
Поздрави,
Иван.

REAKTOR 10 days ago
За улиците си прав.Този слой е най прецизния, докато на сателитите им дават някакво разминаване и заради това обектите плувват след ъпдейт на снимка (както и улиците).Що се отнася до актуалността на сателитната снимка, можеш да си ги сваляш през половин един месец и чрез тях маркирах един участък на пътя до Дюни, който по карта минава о самия плаж.Интересна ми е виртуалната магистрала на marketolog.Аз си мисля, че трябва да се мапират актуални обекти, а не съм чул да се работи по “Тракия”.Чакам да излезе актуална снимка и ще му пратя едно писмо.
Ти да не би да имаш нещо общо с Черна Гора, гледам си маркирал гьола на Таню горския?Току виж може да те знам.
Аз съм Димо.

ivanatora 10 days ago
Хахаха, нямам общо с Черна Гора :) Пътувам често с влака от там и тоя гьол ми се е набил на око, та реших да го маркирам.
Ще ми дадеш ли линк към мястото от където мога да си сваля тези детайлни снимки?
А за магистрала Тракия - мисля че е завършена в участъка си към Бургас и остава само някакво малко парче между Стара Загора и Нова Загора да се асфалтира. Не съм сигурен в това де - не пътувам от там и не съм го виждал всичко това. Просто така съм чувал от няколко човека - може да са само махленски истории…
Аз съм Иван, приятно ми е.

REAKTOR 10 days ago
Та Иване влизаш в този сайт landsat.usgs.gov/ .Там те имат java инструмент за разглеждане на каталозите, казва се Glovis.От него има различни колекции на платени и неплатени снимки. Безплатни са вече L7 SLC-off (2003–>)и L7 SLC-on (1999-2003). Това е един сателит, но след 2003 той се е повредил и изкарва снимките нарязани.Ще видиш, че на едни пише Downloadable а на други не. Първите можеш на момента да си свалиш докато за другите трябва да направиш поръчка за обаботка със Submit.Трябва да си регистриран, за което можеш да попълниш и неверни данни.Аз съм поръчал всички които са на крадрата над пловдив от 1999 до 2008 и ще забележиш че са Downloadable, така че можеш да си свалиш от тях. В горния десен ръб е и Стара Загора. На мен всичките ми заемат 27 ГБ.Има особености при сглобяването на цветна снимка.

REAKTOR 10 days ago
Ти ще свалиш един архив в който има 8 тифа. Та на тебе ти трчбват тези дето завършват на 10, 20 и 30 , а 80 е най детаилния, но той не е обвързан с другите и не можеш веднага да го направиш цветен. та 30 е червения, 20 зеления, 10 синия.Аз използвам фотошоп да ги наложи и се получава цветната снимка(примерно тази която ти пратих).Скоро снимките от по-стария сателит ще бъдат също безплатни.Засега от него искат по 400 долара за сцена.С него има снимки до 84 мисля, а от най-старите са през 72.Това ще е януари догодина.Наскоро четох, че за Тракия избират кой да строи та е възможно поне да са разкопали, но тук се строи бавно и мисля, че няма да има нищо.Само чакам скорошна снимка да се убедя.Погледни онзи обект при разделението на Марица от Тракия:Съм качил 3 снимки от различни дати.Особено 2002 имаше голям застои и то за няколко километра. Питай ако имаш разни въпроси, готов съм да помогна. :)

ivanatora 3 days ago
Такаааа - въпросче: тифовете които завършват на 10, 20 и 30 при мен са черно-бели. Да разбирам ли че всяка от тях изразява нивото на съответния цвят в RGB? Как точно ги събираш във Фотошоп?
Другите тифове играят ли някаква роля в цялостната картинка?
За черните ивици ли казваше че снимките били нарязани?
А по-детайлни снимки има ли? :)
Поздрави!

REAKTOR 3 days ago
Така е, черно бели са но правилно разбираш за фотошоп.От channels после merge channels, RGB и подбираш за червен-30, зелен-20, син-10. Другите бандове са с друга дължина на вълната.Примерно в GE , за повече кнтраст са в комбинация 742 + допълнителна обработка, но аз мисля, че това не е светлината, която човешкото око би видяло.Другото е, най-детаилния е осмия - 15м/пиксел, докато всички други са 30м. Има процес наречен pansharpen. При него сеналага получената мултиспектрална(цветна) снимка върху панхроматичния осми банд и така се получава 15м цветна снимка. 8ми банд при ландсат е много обхватен и затова не се получават допри pansharpen, но при spot image това работи отлично. Инженерите са измислили това с цел да се спести обема на информация, вместо да правят всичките бандове по 15м.По- детайлни няма да намериш по интернет за без пари. Най-детаилните (0.6м, примерно тази над Чирпан) от които гоогле взимат снимки са на Digital globe.В техния сайт има каталог.Разполагат с 3 снимки над Стара Загора, като 2те са облачни а третата си я виждал. Друга фирма от която си купуват снимки и има удобен каталог е SPOT image (2.5м).Скоро България ще е покрита с тях, а наскоро покриха Гърция, Турция и Румъния.Има и по-детаилни (0.3м) над Германия САЩ и други западни, но те са локални фирми и снимките представляват самолетни фотографии.

REAKTOR 3 days ago
И всички тези фирми предлагат pansharpen. SPOT налагат 5м цветна върху 2.5м пан, а Digitalglobe 2.5м col върху 0.6м pan.Интересното е че SPOT примерно ти искат с 1000 долара отгоре за този процес, но по принцип на домашния компютър отнема половин час.
За Ландсат след 2003 година всичко е с черни ивици.
Има начин с фотошоп да запълниш тези ивици със снимка от друга близка дата.Така направих тази wikimapia.org/#lat=42.1244556&lon=25.0402451&z=12&l=0&m… .Наложих тази снимка върху wikimapia и с малко transparency мисля, че се получи точен полигон. Честно казано сателита си изпълни горе долу мисията само че като погледнеш ландсат5 работи от 84.СЛед януари ще пускат и неговите снимки безплатно, а наскоро забелязах, че имат и сника от рожднния ми ден.В USGS нямат много над България от ландсат5 понеже, за да снима, той трябва да е свързан с наземна станция и затова що е било над България е в архива на ESA, а оттам регистрацията се одобрява от хора, а и не знам доколко ще е безплатно. В USGS има и по стари сателити и там като си сглобиш мултиспектралната ще видиш, че това което трябва да е зелено излиза червено.Това е заради особеноста на синия банд в неговия диапазон и именно затова се нарича не blue а near-infrared.Съществува начин това да се коригира.Има и сателити които предават актуално.Примерно ето ти от днес rapidfire.sci.gsfc.nasa.gov/realtime/single.php?2008324… . Тук имат доста дати след 2000 и е много удобен.Максималната резолюция е 250м.
Та Иване горе долу бях изчерпателен, но ти питай ако имаш въпроси. Това нещо трудно се намира по принцип, но е доста интересно.
Поздрави

ivanatora 22 hours ago
Между другото бая приятели се заинтересуваха от тези снимки. Може ли да копирам предишните ни няколко съобщения и да ги сложа в блога си? :) Дай си някакъв линк, ако искаш да ти направя реклама.

REAKTOR 13 hours ago
kakto kazvash javno moe da e ot datata na komputara, niama znachenie.A za priatelite ti ako iskash kachvai texta niama problem.Moga daje da napravia ilustracia kak da se izrabotvat s photoshop no tova shte stane sled kato si doida na Sofia.Sega sum na selo i zatova pisha na latinica.Az niamam niakakav po specialen sait osven panoramioto i ako iskash go sloji a mislia da ti razgledam bloga.
Pozdrav