Showing posts with label IT. Show all posts
Showing posts with label IT. Show all posts

Jun 7, 2017

Multiple RStudio instances HOW-TO

Brief guide to run multiple independent RStudio instances on the same machine.

Sometimes it could be useful to run several RStudio scripts simultaneously. The standard RStudio 0.99.902 on Windows 10 machine do not allow such functionality, as the single R environment is linked to all instances of RStudio you can run. The solution I found is to install RStudio server on virtual machine (container) and use several copies of such container to be able to run several independent analysis.

The solution include several steps:

1) You should have Docker (www.docker.com) container manager installed on your Windows (or any other OS) system. In my case Docker works in combination with VirtualBox (www.virtualbox.org).

2) Install rocker/rstudio container from hub.docker.com/r/rocker/rstudio/, the manual Using the RStudio image could be rather useful.

pull rocker/rstudio

3) Get the list of Docker machines and its IPs:

docker-machine ls
docker-machine ip default

4) Run the initial instance of rocker/rstudio

docker run -d -p 8787:8787 rocker/rstudio

5) Connect with the RStudio server from browser, using the IP and port number from steps 3 & 4, something like:

http://192.168.99.100:8787/

6) Use login rstudio and password rstudio to open session

7) Install necessary R packages using RStudio interface. In my case the set of packages include: foreign, maps, sp, maptools, raster, dismo, rgeos, mgcv, fields, gstat, geoR, rgdal.

8) Some packages cannot be successfully installed without previous installation of external components. In case of geoR the required package is tcltk ver. 8.5 and related packages, in case of rgdal the required components are libgdal-dev & libproj-dev. To install this additional components one should get the ID of container and enter this container with bash (in this example container ID is bd6b621298a3):

docker ps
docker exec -it bd6b621298a3 bash

Inside the container execute:

apt-get update
apt-get install libgdal-dev
apt-get install libproj-dev
apt-get install tk tcl
apt-get install tk-dev tcl-dev
apt-get install tk8.5 tcl8.5
Then exit the container typing
exit

9) After successful installation of all necessary packages in RStudio web interface the configured container should be saved as a new image with tag my (or any other tag).

docker commit bd6b621298a3 rocker/rstudio:my
docker images

10) Run one or more independent instances of container from the image created in step 9, using different port for each instance. Don't forget to specify data sharing directory to be able to access data. For example, the following code is to run two RStudio containers connected to ports 8787 & 8788, and data directory in C:/Users/vshal/Documents.

docker run -v /c/Users/vshal/Documents:/data -d -p 8787:8787 rocker/rstudio:my
docker run -v /c/Users/vshal/Documents:/data -d -p 8788:8787 rocker/rstudio:my
docker ps

11) Now you can connect with both RStudio server containers in two separate browser tabs, by changing the port number in the URL and then run two analysis tasks simultaneously. As well you can use the usual Windows RStudio installation absolutely independently from this RStudio server instances.

Читать дальше......

Mar 23, 2011

GeoTagging of gigital photos how-to

Tools for GeoTagging of digital photography.

Hardware: GPS Garmin Summit HC + Digital camera Canon EOS Rebel XS + PC
Software:
1. Canon EOS Utility 2.8.1
2. DNR Garmin 5.4.1
3. GPSCorrelate 1.5.6 (win)
4. ExifTool 8.52 (win) + ExifTool-GUI 4.08 (win, optional)
5. MS Excel 2007
6. ArcGIS Decktop 9.3 or any compatible GIS application

While taking photos, digital camera clock should be verified with GPS time, don'to forget tunrn on GPS and to record track.
Step 1. Download photos from camara with EOS Utility (in JPEG)
Step 2. Download GPS track with DNR Garmin (save in GPX format, also it is useful to save it in vector SHP format to have track visualization)
Step 3. Use GPSCorrelate to set individual EXIF geographical metadata in JPEG pictures (whole directory) in base of GPS track (check that Time Zone setting is correct)
Step 4 (optional). Extract geographical metadata just stored in JPEG pictures to list in text file, using ExifTool. In command line it looks like: exiftool.exe -T -r -filename -GPSLatitudeRef -GPSLatitude -GPSLongitudeRef -GPSLongitude -GPSAltitude -DateTimeOriginal e:\Photoes_temp\ > coord_list.txt
Step 5 (optional). Import text file as tab separated table to Excel, use formulas similar to next ones: [=LEFT(C2,FIND(" deg ",C2,1)-1)], [=MID(C2,FIND(" deg ",C2,1)+5,(FIND("' ",C2,1)-FIND(" deg ",C2,1)-5))], [=MID(C2,FIND("' ",C2,1)+1,(FIND(" N",C2,1)-FIND("' ",C2,1)-2))], [=I2+J2/60+K2/3600] to transform strings with coordinates to degrees with fractions.
Step 6 (optional). Import Excel file to ArcGIS, visualize table data using "Display XY data" context menu option (don't forget to select correct coordinate system, like GCS_WGS_1984, or another one depending on GPS data), save visualized layer through "Data->Export data" like point shapefile (SHP). Читать дальше......

Jun 7, 2010

ReBiOMex 1.4.1

Red de Biodiversidad del Occidente de México [ReBiOMex] versión 1.4.1 BETA — http://rebiomex.org. Por fin instalado en un servidor de acceso público.

Proyecto que estoy llevando a cabo durante últimos 3-4 años. Todavía esta muy lejos de ser concluido, falta mucho mas que la mitad de la implementación. Pero todas las funciones básicas (interfaces de consulta y captura de datos sobre los especímenes de colecciones) ya están disponibles.

P. S. Tal vez, proyecto nació muerto, ya que no veo intenciones de los investigadores de las instituciones "participantes" de acercarse con esto, tal vez, nadie va a utilizar esta sistema. Menos en su forma actual, cuando falta tanto y no hay recursos para hacerlo.

P. P. S. Fue creado un blog (http://blog.rebiomex.org) para facilitar comunicación entre los miembros de equipo y usuarios de sistema.

Читать дальше......

Feb 25, 2010

ReBiOMex 1.4

ReBiOMex es un proyecto que estamos desarrollando últimos 4 años. Hoy presentaba la ponencia ReBiOMex: Metodos de consulta, captura y verificación de informacion, como parte del XXIX ciclo de seminarios de botánica sistematica en CUCBA, UdeG. La ponencia considero exitosa. A propósito, el servidor con base de datos ver. 1.4 esta funcionando otra vez, pero por el momento queda disponible solo en el mismo Centro Universitario. Читать дальше......

Nov 15, 2009

Работающий метод включения CUT в записи на blogger описан в следующем источнике: блог о блогах на движке Blogger. Читать дальше......

Mar 21, 2009

Вычисление статистики для множества слоёв в ArcGIS

Имеется:
а) совокупность однослойных растровых отображений в формате ERDAS IMG (например, модель конценрации загрязняющих веществ в приповерхностном слое атмосферы)
б) набор векторных форм (полигонов) в формате ERSI SHP (shapefile) определяющих зоны для которых нужно вычислить статистику на основе растровых отображений. Зоны определены в поле ROUTE_NAME.
Все данные имеют одну и ту же геопривязку.

Задача: вычислить статистику (MEAN, STD, MIN, MAX) для каждой из зон на основе каждого из растров. Задача не может быть выполнена вручную по причине большого числа растров и зон. Статистика должна быть сохранена в форме единой таблицы.

Решение:
1) Воспользоваться скриптом David Coley для автоматического вычисления зонной статистики для совокупности файлов (BatchZonalStatsAsTable) для ArcGIS decktop. Адаптировать его код на Python для данной задачи. Для этого изменить переменные определяющие параметры запуска скрипта выражениями вида gp.Workspace = sys.argv[3], где sys.argv[3] означает поле ввода данных 3 в интерфейсе запуска скропта в ArcGIS decktop. Скрпт запускает инструмент ArcGIS из Spatial Analyst Tool -> Zonal Statistics as Table и создаёт совокупность файлов DBF, соответствующих каждому исходному растровому образу. В таблице DBF строки соответствуют зонам в исходном SHP файле.
2) Для того чтобы объединить множество файлов DBF, находящихся в директории, в один, применяется мой скрипт на Perl. Скрипт принимает путь к директории как единсвенный параметр запуска и в стандартный вывод записывает строка за строкой значения из всех прочтённых DBF файлов, разделяя их запятыми. Запускается приблизительно так: perl dbf_merge.pl f:\working_dir > output.csv

#!/usr/local/bin/perl 
dbf_merge.pl by Viacheslav Shalisko
-----------------------------------
use XBase;
my $dir = $ARGV[0];
chdir $dir || die "\nCan`t open directory $dir\n";
while (<*.dbf>) {
    $file = $_;
    my $database = new Xbase;
    $database->open_dbf($file, undef);
    my $end=$database->lastrec;
    my $current_rec = 1;
    while ($current_rec < $end) 
    {
      $current_rec = $database->recno;
      print "linea $current_rec de $end, ";
      print "$file, ";
      print &trim($database->get_field("ROUTE_NAME"));
      print ", ";
      print $database->get_field("COUNT");
      print ", ";
      print $database->get_field("AREA");
      print ", ";
      print $database->get_field("MIN");
      print ", ";
      print $database->get_field("MAX");
      print ", ";
      print $database->get_field("RANGE");
      print ", ";
      print $database->get_field("MEAN");
      print ", ";
      print $database->get_field("STD");
      print ", ";
      print $database->get_field("SUM");
      print "\n";
      $database->go_next;
    }
    $database->close_dbf;
}
sub trim {
  my @out = @_;
  for (@out) {
    s/^\s+//;
    s/\s+$//;
  };
  return wantarray ? @out : $out[0];
}
Читать дальше......

Jan 23, 2009

Рабочая станция Hewlett-Packard

На этой неделе принесли новый компьютер, купленный для проекта анализа дисперсии загрязняющих веществ в Гвадалахаре. Временно, для ускорения рассчётов в рамках проекта, поставили его у меня дома, а потом он переедет в лабораторию. Компьютер, по всей видимости, хороший, называется HP xw9400 workstation, оснащён процессором Quad-Core AMD Opteron 2352. Единственным его недостатком оказалось отсутствие видеокарты, которую забыли купить (и купят к понедельнику). Пришлось временно поставить древнюю Matrox Mystique, с этой видеокартой компьютер стал пригодным для работы.

Он действительно считает быстрее, то что на моём Pentium D занимает полтора или даже два дня, на этом компьютере делается за 20 часов, кроме того, одновременно запускаются 3-4 таких задачи (одна задача загружает систему ровно на четверть). Раз эта рабочая станция больше ни для чего не предназначена сейчас, я спокойно могу загружать её на 100%, готовя конфигурацию модели и анализируя результаты на основном компьютере. Так что, за прошедшие с момента установки дни я уже сделал значительную часть работы.

Не считаю что вычислительная задача действительно так велика, что её трудно или невозможно выполнить на компьютере послабее, скорее речь идёт о недостаточной оптимизации используемого кода для запуска на конкретном оборудовании. Уточню, что в качестве модели дисперсии частиц и веществ в атмосфере мы используем Open Source AUSTAL2000, разработанную немцами из Janicke Consulting. Эту модель можно было бы откомпилировать под определённый процессор, и это, без сомнения, дало бы прирост производительности...

Но не слишком хочется этим заниматься, раз наш проект имеет локальный и ограниченный во времени характер. Строго говоря, AUSTAL2000 должна быть в некоторой степени доработана для наших нужд. И компилируя, грех был бы не посмотреть как она там написана. Но у меня есть сейчас другие, более насущные дела как в рамках этого проекта, так и за его рамками. Поэтому пусть работает как работает.

Читать дальше......