Библиотека «SyntheticData» представляет собой класс с набором методов и функций для моделирования геодезических сетей, временных рядов решений Precise Point Positioning (PPP), внесения аномалий в измерения, преобразования координат между различными системами, а также набором инструментов для визуализации и упаковки смоделированных данных в файл формата «DataFrame».
Класс SyntheticData
содержит следующие методы:
Конвертирует координаты из системы BLH в XYZ.
Конвертирует координаты из системы XYZ в BLH.
Возвращает список уникальных имен станций в DataFrame.
Генерирует случайную сеть пунктов с заданными параметрами.
Строит геодезическую сеть триангуляции и рисует ее на графике.
Заполняет DataFrame координатами для каждой даты и каждого геодезического пункта.
Добавляет годовые и полугодовые колебания к координатам.
Добавляет линейный тренд к координатам.
Добавляет шум к координатам.
Добавляет импульс к координатам.
synthetic_data = SyntheticData()
df = synthetic_data.random_points(B=50, L=100, H=200, zone=10, amount=10, method='consistent', min_dist=5, max_dist=20)
df = synthetic_data.create_dataframe(df, date_list=['2020-01-01', '2020-01-02', ...])
df = synthetic_data.harmonics(df, date_list, periods_in_year=365)
df = synthetic_data.linear_trend(df, date_list, periods_in_year=365)
df = synthetic_data.noise(df, num_periods=100)
df = synthetic_data.impulse(df, impulse_size=0.1, target_date='2020-01-01', num_stations=1)
Класс предназначен для выполнения геометрического теста конгруэнтности геодезической сети. Тест позволяет определить, является ли геодезическая сеть конгруэнтной на начальную и i-ую эпохи. Конгруэнтность проверяется при помощи T-теста (ttest) и теста Хи-квадрат (chi2). Для проведения теста необходимо импортировать файл формата .csv или DataFrame.
Код реализует два метода теста конгруэнтности:
- Метод, основанный на вычислении разностей базовых линий на разные эпохи (
line_based
) - Метод, основанный на вычислении разностей координат пунктов на разные эпохи (
coordinate_based
)
Пример использования:
import pandas as pd
df = pd.read_csv('your_file.csv', delimiter=';')
test = Tests(df)
test.congruency_test(df=df, method='coordinate_based')
Данный файл содержит код Qt-интерфейса для оконного приложения, написанного при помощи библиотеки PySide и Matplotlib
Артем Маликов [email protected]