понедельник, 6 апреля 2020 г.

Использование навигационных карт в X-Plane 11

Использование навигационных карт в X-Plane 11

Навигационные карты X-Plane представлены в нескольких различных вариантах, каждая из которых полезна для определенной ситуации. Эти навигационные карты открываются нажатием клавиши «m» или щелчком значка маркера карты в меню. Вы можете выбрать один из трех режимов: VFR секционный, IFR Low Enroute и IFR High Enroute.
Карта VFR Sectional предназначена для использования в соответствии с визуальными правилами полета. Карта IFR Low Enroute используется в качестве навигационной карты правил полетов по приборам на малых высотах пилотами воздушных судов с поршневыми (воздушными винтами). Карта IFR High Enroute, по сути, такая же, как и IFR Low Enroute, но отображает авиационные пути среднего и высокого уровня вместо низкоуровневых. Он показывает только информацию, представляющую интерес для пилотов, летящих выше 18 000 футов и использующих векторные воздушные трассы, которые намного длиннее, на основе больших VOR с более длинными дистанциями.
Карты предоставляют много информации о районе, где расположен ваш самолет, включая топографию и выбираемые NAVAID. Каждая карта состоит из отмеченных тонкими черными линиями, которые делают «коробки» официально названными «Четырехугольниками». Каждое поле составляет 1/4 градуса широты и долготы. Толстые синие и серые линии, проходящие через карты, являются воздушными трассами, которые в основном похожи на шоссе в небе. Этим воздушным трассам присваиваются имена (например, V503), и они используются органами управления воздушным движением для назначения разрешений. Треугольники вдоль них - это «исправления».
Небольшие аэропорты обозначены кружочками с надписями, тогда как крупные аэропорты с полными взлетно-посадочными полосами. Аэропорты, выделенные синим цветом на карте сечения VFR, имеют контрольные башни в реальном мире. Обратите внимание, что обсуждение навигационных средств (NAVAID) этих карт (маяки ILS, VOR и NDB) можно найти ниже, в разделе «Современные средства навигации».
Чтобы переместить вид вокруг карты, вы можете щелкнуть карту и перетащить. Вы также можете увеличивать и уменьшать масштаб с помощью колеса прокрутки мыши. Кроме того, вы можете использовать кнопки управления просмотром, расположенные в верхнем левом углу окна карты, чтобы изменить вид. Используйте значки плюс или минус для увеличения или уменьшения соответственно.
Нажмите значок цели, чтобы центрировать вид на самолете. Это также заблокирует вид карты на самолет, так что во время полета карта будет прокручиваться под ним, и самолет будет оставаться в центре. Перетащите в любое место на карте, чтобы сломать замок. Коснитесь значка со стрелкой, чтобы изменить положение верхней части карты на север или курс самолета. Во втором случае, если самолет летит на юг, верх карты будет на юге. Если самолет наклонится к востоку, карта будет автоматически поворачиваться, а восток будет сверху.
Нажмите на что-нибудь на карте, чтобы получить больше информации об этом. Например, если вы щелкнете по своему самолету, появится окно Инспектора с его названием, курсом, высотой, скоростью и углом набора высоты, большинство из которых вы также можете редактировать из окна. Нажатие на аэропорт позволит вам выбрать новую взлетно-посадочную полосу или последний заход на посадку, или просмотреть детали, такие как погодные условия и частоты связи. Нажмите на NAVAID, такой как VOR, чтобы настроить радио одним нажатием кнопки.
В правой части окна карты вы можете изменить то, что отображается на карте. В разделе «Слои» вы можете использовать выпадающие меню для отображения ветра или облаков и осадков в режиме реального времени на карте. Вы можете установить флажки, чтобы переключить траекторию полета, поднять компас вокруг вашего самолета или отключить маяки ILS с подветренной стороны.
Наконец, переключение слайдера «Glideslope» отобразит вертикальный профиль полета в нижней части экрана карты. Вы можете изменить подход, отображаемый там, используя раскрывающееся меню «Подход».

воскресенье, 29 марта 2020 г.

DB-API 2.0 interface for SQLite databases

SQLITE3 - DB-API 2.0 interface for SQLite databases

SQLite - это библиотека C, которая предоставляет легковесную дисковую базу данных, не требующую отдельного серверного процесса и позволяющую получить доступ к базе данных с использованием нестандартного варианта языка запросов SQL. Некоторые приложения могут использовать SQLite для внутреннего хранения данных. Также возможно создать прототип приложения с использованием SQLite, а затем перенести код в большую базу данных, такую как PostgreSQL или Oracle.

Модуль sqlite3 был написан Герхардом Херингом. Он предоставляет интерфейс SQL, соответствующий спецификации DB-API 2.0, описанной в PEP 249.

Что бы использовать этот модуль, вы должны сначала создать объект типа Connection, который и будет представлять базу данных. Здесь у нас данные будут запоминаться в файле с именем example.db:

import sqlite3
conn = sqlite3.connect('example.db')
 
Что бы создать базу данных в оперативной памяти (RAM), указажите специальное имя :memory: вместо имени файла.

Раз есть объект Connection, можно создать объект Cursor и из него вызвать метод execute() для выполнения команд SQL:

c = conn.cursor()

# Создаем таблицу
c.execute('''CREATE TABLE stocks
             (date text, trans text, symbol text, qty real, price real)''')

# Вставляем строку данных
c.execute("INSERT INTO stocks VALUES ('2006-01-05','BUY','RHAT',100,35.14)")

# Сохраняем (commit) изменения
conn.commit()

# Если мы закончили работу с базой, мы можем закрыть связь.
# Мы должны быть уверены в том, что все изменения сохранены в базе,
# иначе они пропадут.
conn.close()
 
Данные, которые мы сохранили, постоянно записаны на диске и будут доступны в следующей сессии:

import sqlite3
conn = sqlite3.connect('example.db')
c = conn.cursor()
 
Обычно ваши операции на языке SQL будут требовать значения из переменных Python. Вы не должны собирать запросы используя строковые операции языка Python потому что это небезопасно; это делает вашу программу уязвимой для атаки SQL-инъекцией (см. https://xkcd.com/327/ для юмористического примера того, что может пойти не так).

Вместо этого, используйте подстановку параметров DB-API. Поместите символ ? Там где хотите использовать значение, а потом подставьте набор значений как второй аргумент в метод execute(). (Другие модули баз данных могут использовать другие символа, такие как %s или :1.) Например:

# Никогда не делайте так- insecure!
symbol = 'RHAT'
c.execute("SELECT * FROM stocks WHERE symbol = '%s'" % symbol)

# Вместо этого делайте так
t = ('RHAT',)
c.execute('SELECT * FROM stocks WHERE symbol=?', t)
print(c.fetchone())

# Пример вставки нескольких записей за один раз
purchases = [('2006-03-28', 'BUY', 'IBM', 1000, 45.00),
             ('2006-04-05', 'BUY', 'MSFT', 1000, 72.00),
             ('2006-04-06', 'SELL', 'IBM', 500, 53.00),
            ]
c.executemany('INSERT INTO stocks VALUES (?,?,?,?,?)', purchases)
 
После выполения предложения SELECT, вы можете или трактовать курсор как итератор (iterator), или вызвать метод из курсора fetchone() для получения одной записи за раз, или получить список всех удовлетворяющих запросу записей, вызвав метод fetchall().
Этот пример использует форму итератора:
>>>
>>> for row in c.execute('SELECT * FROM stocks ORDER BY price'):
        print(row)

('2006-01-05', 'BUY', 'RHAT', 100, 35.14)
('2006-03-28', 'BUY', 'IBM', 1000, 45.0)
('2006-04-06', 'SELL', 'IBM', 500, 53.0)
('2006-04-05', 'BUY', 'MSFT', 1000, 72.0)

 

пятница, 27 марта 2020 г.

X-Plane 11, 12 - любитель, Фото любитель со стажем

Постоянные читатели

Архив блога