Читать дальше......
Nov 23, 2024
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.5Then 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
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
Nov 15, 2009
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 должна быть в некоторой степени доработана для наших нужд. И компилируя, грех был бы не посмотреть как она там написана. Но у меня есть сейчас другие, более насущные дела как в рамках этого проекта, так и за его рамками. Поэтому пусть работает как работает.
Читать дальше......