Giter Club home page Giter Club logo

howtostartsrhanalise's Introduction

Инструкция

Чистка и анализ изображений подразумевают использование как специального софта, разработанного сотрудниками СРГ (в частности, python-скрипты), так и пакеты програмного обеспечения более глобального уровня ("CASA"). Необходимо понимать, что это накладывает ограничения на используемые операционные системы (unix-подобные), в частности мы можем использовать ОС с ядром Linux (предпочтительно - из ветки RedHat) и macOS. Данная инструкция рассматривает установку необходимого ПО на Linux дистрибутив Fedora.

1. Подготовка

Все описанные манипуляции производились на OC Windows

  • Переходим на официальный сайт проекта Fedora. Выбираем вариант Fedora Workstation, далее - скачиваем x86_64 Live образ ISO
  • Находим флешку, которую можно будет отформатировать (все данные будут удалены!)
  • Скачиваем программу Rufus c официального сайта проекта. Можно скачать portable-version (не требует установки, нужно лишь запустить исполняемый .exe файл)
  • Решаем вопрос с местом установки - куда мы поставим новую систему. Для этого нужно создать новый логический диск (ПКМ по иконке Пуск -> Управление дисками -> сжать том -> указать необходимые размеры).

При установке на другой физический диск могут возникнуть проблемы с настройкой grub (либо придется каждый раз менять порядок загрузки OC через BIOS), решение этих проблем в данной инструкции описано не будет

  • Запускаем Rufus, в разделе "устройство" выбираем наш USB-накопитель, в разделе "метод загрузки" нажимаем на кнопку "выбрать" и указываем путь к скачанному ISO образу Fedora. Запускаем процесс создания загрузочной флешки.
  • По окончании предыдущего этапа перезагружаемся в BIOS, меняем порядок загрузки, указывая USB-флешку приорететной, и сохраняя настройки перезапускаемся на нее.

2. Установка Fedora

  • Выбираем в вариантах загрузки Grub пункт Fedora
  • Выбираем в допоолнительном меню пункт "установить на Hard Drive"
  • Выбираем язык, настраиваем дату и время
  • Заходим в раздел "Место установки", далее выбираем необходимый диск и в разделе "Конфигурация устройств хранения" ставим чек-поинт на вариант "Дополнительно", после чего нажимаем на кнопку "Готово" слева вверху. После данного действия откроется среда BLIVET разбиения диска на разделы
  • В открывшемся меню ставим выбор на нужный логический раздел диска, после чего с помощью ПКМ форматируем в новый формат ext4 и ставим точку монтирования "/", опять нажимаем "Готово", соглашаясь с диалоговым окном о принятии изменений.

В случае возниовения ошибки Failed to find a suitable stage device нужно вернуться в BLIVET, выбрать первый раздел диска и прописать ему точку монтирования /boot/efi

  • Произвoдим установку системы и перезагружаем компьютер, попутно вынимая флешку

Чистая система после установки обновлений весит порядка 8 ГБ.

  • Из появившегося окна grub выбраем запуск Linux Fedora
  • Производим первичную настройку системы: подключение к Wi-Fi, отключение аналитики (по желанию), включение стронних репозиториев, ввод имени пользователя и пароля.

Если вы пользуетесь теми же приложениями, что и автор инструкции, можете воспользоваться следующими командами

Для установки VSCode последовательно выполнить:

sudo rpm --import https://packages.microsoft.com/keys/microsoft.asc
sudo sh -c 'echo -e "[code]\nname=Visual Studio Code\nbaseurl=https://packages.microsoft.com/yumrepos/vscode\nenabled=1\ngpgcheck=1\ngpgkey=https://packages.microsoft.com/keys/microsoft.asc" > /etc/yum.repos.d/vscode.repo'
sudo dnf check-update
sudo dnf -y install code

Для установки Opera последовательно выполнить:

sudo dnf config-manager --add-repo https://rpm.opera.com/rpm
sudo rpm --import https://rpm.opera.com/rpmrepo.key
sudo dnf upgrade --refresh
sudo dnf install opera-stable

3. Easy install / Легкая установка

Скопируйте команду, которая объединяет все дальнейшие шаги, в консоль, запаситесь терпением и ждите скачивания и установки необходимых компонентов

sudo dnf install conda -y && wget https://raw.githubusercontent.com/astronom-v-cube/howtostartSRHanalise/main/puppies.yml && sudo dnf install libnsl && sudo conda env create -f puppies.yml && conda activate casa && python3 -m casatools --update-user-data && rm puppies.yml && wget ftp://ftp.astron.nl/outgoing/Measures/WSRT_Measures.ztar --show-progress && mkdir WSRT_Measures/ && tar -xzvf WSRT_Measures.ztar -C WSRT_Measures/ && echo measures.observatory.directory: /home/$USER/WSRT_Measures/geodetic > .casarc && export CASARCFILES=“home/$USER/.casarc” && rm WSRT_Measures.ztar && sudo dnf install gcc gcc-c++ && pip install git+https://github.com/maria-globa/srhdata.git

4. Установка нужной версии Python

К сожалению, CASA не поддерживает версии Python выше 3.8, наиболее удобный вариант - запускать все необходимое в виртуальном окружении conda. (Подробнее о возможностях conda хорошо написано тут)

Внимание! В определенный момент в библиотеке Qt возникла проблема с обратной зависимостью, из-за чего старые программы на свежих версиях библиотеки не работают. Решение - использовать при создании conda версии пакетов, указанные в приложенном файле puppies.yml, с ними код работает хорошо. Создать окружение с помощью этого файла можно следующим образом:

conda env create -f puppies.yml

В этом случае команды, расположенные между двумя горизонтальными чертами ниже, можно опустить.

Автор не гарантирует, что проблема не ушла с обновлениями, и предоставляет возможность читающему эту инструкцию проверить все самому, и, возможно, установить все на свежие версии пакетов, однако использование файла puppies.yml точно гарантирует безболезенную установку окружения.

Проблема заключается в том, что при появлении любых диалоговых окон программа зависает. Можно обойти это, вызывая окна не через элементы интерфейса, а напрямую через консоль Spyder, используя методы класса phaseEdit612


Выполняем в терминале:

sudo dnf install conda

и создаем виртуальное окружение с помощью команды:

conda create --name casa python=3.8 pip spyder

После этого указываем

conda init bash

и перезагружаем окно консоли. Устанавливаем библиотеки:

pip install astropy matplotlib sunpy casatasks casatools numpy sympy python-casacore ephem scipy scikit-image 

Проверяем виртуальное окружение с помощью

conda activate casa

a также работу spyder с помощью

spyder

Консоль должна изменяться с (base)[username@fedora ~]$ на (casa)[username@fedora ~]$ при активации окружения. Для выхода из spyder можно использовать ctrl + z, для выхода из виртуального окружения используем

conda deactivate

5. Установка (сборка) casacore из исходников

Внимание! Этот шаг можно пропустить!

casacore использовалась ранее для работы скриптов и программ, однако на данный момент она не нужна для их запуска. Тем не менее, этот пункт инструкции было решено оставить, так как найти эту информацию в интернете не так просто, а мало ли, что в жизни случится... :)

Скачиваем исходный код проекта:

git clone https://github.com/casacore/casacore

Устанавливаем зависимости:

sudo dnf install cmake cmake-gui gcc-gfortran gcc-c++ flex bison blas blas-devel  lapack lapack-devel cfitsio cfitsio-devel wcslib wcslib-devel ncurses ncurses-devel readline readline-devel python-devel boost boost-devel fftw fftw-devel hdf5 hdf5-devel numpy

Затем во избежание получения ошибки FindGSL.cmake: gsl-config not found последовательно выполняем команды ниже (полный текст инструкции, в случае необходимости, можно найти тут):

wget ftp://ftp.gnu.org/gnu/gsl/gsl-2.7.tar.gz
tar -zxvf gsl-2.7.tar.gz
cd gsl-2.7
mkdir /home/$USER/gsl
./configure --prefix=/home/$USER/gsl
make
make check
make install
gsl-config

Открываем папку с исходным кодом:

cd casacore

Производим сборку (процесс достаточно длительный, от часа и дольше):

mkdir build
cd build
cmake ..
make 
sudo make install

6. Установка дополнительных пакетов и библиотек

sudo dnf install libnsl
npm install nsl

7. Обновление данных обсерваторий

Заходим на сервер ftp://ftp.astron.nl/outgoing/Measures и скачиваем файл WSRT_Measures.ztar в папку home. Затем распаковываем его. Создаем файл, который будет хранить путь к данным обсерваторий:

nano .casarc

куда прописываем путь к данным: measures.observatory.directory: /home/$USER/WSRT_Measures/geodetic Сохраняем сочетанием ctrl + O Создаем переменную среды, указывая свой путь до файла: export CASARCFILES=“path/to/.casarc”, затем перезапускаем консоль

Выполняем, находясь в виртуальном окружении conda casa:

python3 -m casatools --update-user-data

8. Установка Python библиотеки srhdata

sudo dnf install gcc gcc-c++ 

Выполняем, находясь в виртуальном окружении conda casa:

pip install git+https://github.com/maria-globa/srhdata.git

9. Решение известных ошибок

1. libGL error:

libGL error: failed to load driver: nouveau libGL
error: MESA-LOADER: failed to open swrast
error: failed to load driver: swrast

Решение: conda install -c conda-forge libstdcxx-ng

Если указанное выше не помогло, следует найти расположение данной библиотеки в системе с помощью

find / -name libstdc++.so.6 2>/dev/null

Затем любой из вариантов расположения (например, в /usr/lib64/) добавить в файл .bashrs или соответсвующий файл другого интерпретатора терминала в папке home в следующем виде:

export LD_PRELOAD=/usr/lib64/...path_to_file...

2. Черный экран при запуске скриптов

Решение: Spyder -> Tools -> Preferences -> IPython console -> Graphics -> Grapics backend -> Qt 5

3. Gnome error

Warning: Ignoring XDG_SESSION_TYPE=wayland on Gnome. 
Use QT_QPA_PLATFORM=wayland to run on Wayland anyway

Решение:

  1. Расскоментировать строку WaylandEnable=false в файле /etc/gdm3/custom.conf
  2. Добавить Add QT_QPA_PLATFORM=xcb в /etc/environment

4. В процессе работы появляется много кэша индексации файлов tracker3

Очистка кэша осуществляется так:

tracker3 reset --filesystem

Рекомендуется прописать в начале скрипта отключение данной службы, а в конце - включение

5. Любая другая ошибка

Просьба создавать issues, если не знаете как решить, или pull requests если знаете решение 😃

howtostartsrhanalise's People

Contributors

astronom-v-cube avatar

Stargazers

 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.