Mostrando entradas con la etiqueta Computación. Mostrar todas las entradas
Mostrando entradas con la etiqueta Computación. Mostrar todas las entradas

Graficación de datos experimentales en 3D: dispersión, superficie, malla y líneas de contorno

24 de junio de 2015

clear all;
clc;

% Ejemplo que indica cómo graficar un conjunto de puntos en 3D. Estos
% puntos pueden ser datos producto de un experimento de dos variables
% independientes (x, y en este ejemplo) y una variable dependiente (z en
% este ejemplo).
%
% En este caso vamos a utilizar una función z = x^2 + y^2 para generar los
% datos de prueba de la variable dependiente (z). Como se dijo anteriormente,
% estos datos no necesariamente deben venir de una función definida, sino
% que pueden ser datos de algún experimento. Por lo tanto, dichos datos
% podrían no estar linealmente espaciados (en el ejemplo, gracias a la
% generación de datos aleatorios con rand, los datos de las variables
% independientes no son linealmente espaciados).

% Generación de 150 datos aleatorios que constituyen los valores de las
% variables independientes. Estos puntos (x,y) son los que serán evaluados
% con la función de un paraboloide.
x=rand(150,1)*20-10;
y=rand(150,1)*20-10;

% Generamos los datos de la variable dependiente evaluando la función en
% los puntos datos por las variables x, y.
z=x.^2+y.^2;

% Graficación de los puntos (gráfica de dispersión) en 3D.
subplot(2,2,1); scatter3(x,y,z); title('Scatter 3D')

% Dado que los puntos generados no son linealmente espaciados. Encontramos
% una función de interpolación que pase por cada uno de los datos datos.
F=TriScatteredInterp(x,y,z);

% Generamos datos linealmente espaciados desde el límite inferior de los
% datos de x (min(x)) hasta el límite superior de y (max(x)).
xlin=linspace(min(x),max(x));
% Generamos datos linealmente espaciados desde el límite inferior de los
% datos de x (min(y)) hasta el límite superior de y (max(y)).
ylin=linspace(min(y),max(y));

% Generamos una rejilla de malla (matriz) de datos linealmente espaciados
% que serán utilizados para la evaluación de la función interpolada (F)
[X,Y]=meshgrid(xlin,ylin);

% Evaluación de los puntos de la malla con la función (F) producto de la
% interpolación.
Z=F(X,Y);

subplot(2,2,2); surf(X,Y,Z); title('Superficie: z = x^2 + y^2')
subplot(2,2,3); mesh(X,Y,Z); title('Malla: z = x^2 + y^2')
subplot(2,2,4); contour(X,Y,Z);

Figura 1: resultado final del programa.

Instalación de ARWPost y GrADS

4 de mayo de 2012

VIDEO QUE DA CÓMO COMPILAR  ARWPost http://youtu.be/zXvfQ4i0IJE

ARWpost:
ARWpost, is a Fortran program that reads WRF ARW input and output file and generate GrADS output files.

Once the output files have been generated, GrADS can be used to producing horizontal or vertical cross section plots of scalar fields (contours) or vector fields (barbs or arrows), vertical profiles and soundings.

$ tar -xvzf ARWpost_V3.tar.gz
$ cd ARWpost
$ ./configure

** WARNING: No path to NETCDF and environment variable NETCDF not set.
** would you like me to try to fix? [y]
y
Enter full path to NetCDF include directory on your system
/usr/local/include
Enter full path to NetCDF library directory on your system
/usr/local/lib
created new ./netcdf_links directory
total 0
lrwxrwxrwx. 1 angelv angelv 18 abr 18 15:41 include -> /usr/local/include/
lrwxrwxrwx. 1 angelv angelv 14 abr 18 15:41 lib -> /usr/local/lib/
Will use NETCDF in dir: /home/angelv/ARWpost/netcdf_links
------------------------------------------------------------------------
Please select from among the following supported platforms.

   1.  PC Linux i486 i586 i686 x86_64, PGI compiler   
   2.  PC Linux i486 i586 i686 x86_64, Intel compiler   
   3.  PC Linux i486 i586 i686 x86_64, gfortran compiler

Enter selection [1-3] : 2  
------------------------------------------------------------------------
Configuration successful. To build the ARWpost, type: compile
------------------------------------------------------------------------

$ ./compile

Se dió el siguiente error:

    module_interp.f:(.text+0x6ece): undefined reference to `ncvgt_'
    collect2: ld devolvió el estado de salida 1
    make: [ARWpost.exe] Error 1 (no tiene efecto)

Instalación de Vis5D

Descargar desde la página web oficial: http://www.ssec.wisc.edu/~billh/vis5d.html

$ tar -xvzf vis5d+-1.3.0-beta.tar.gz
$ cd vis5d+-1.3.0-beta
$ ./configure --with-mixkit=/usr/lib64/

****************************************************
You need to install a 3D graphics library, preferably
the free OpenGL replacement, Mesa.  You can download
Mesa from the Mesa home page:
          http://www.mesa3d.org/
and install it by running:
       ./configure && make && su -c 'make install'
in the Mesa directory.
You may also need to run /sbin/ldconfig as root
to update the system after installing Mesa.
(First, add '/usr/local/lib' to /etc/ld.so.conf if
you installed Mesa under /usr/local, the default.)
****************************************************

Nota: Para borrar un repositorio en GNU/Linux fedora http://www.ibm.com/developerworks/ssa/linux/library/l-lpic1-v3-102-5/index.html

Hay que instalar Mesa

# yum install mesa-libGLU-devel

Luego de eso de nuevo (para instalar vis5d)

$ ./configure

.
.
.
checking for fcntl.h... yes
configure: creating ./config.status
config.status: creating vis5d+.pc
config.status: creating gtk/vis5dgtk.pc
config.status: creating gtk/gradients/Makefile
config.status: creating gtk/Makefile
config.status: creating po/Makefile.in
config.status: creating Makefile
config.status: creating src/Makefile
config.status: creating doc/Makefile
config.status: creating lui5/Makefile
config.status: creating util/Makefile
config.status: creating m4/Makefile
config.status: creating po/Makefile.in
config.status: creating config.h
config.status: creating src/api-config.h
config.status: src/api-config.h is unchanged
config.status: creating po/POTFILES
config.status: creating po/Makefile
config.status: creating po/POTFILES
config.status: creating po/Makefile

$ make
$ make check
# make install

Para instalar MixLib http://pkgs.org/centos-6-rhel-6/puias-computational-x86_64/MixKit-2.1-3.puias6.x86_64.rpm.html

1. Instalar puias release http://mirror.yandex.ru/fedora/russianfedora/russianfedora/free/el/releases/6/Everything/i386/os/
2. Instalar puias core http://puias.math.ias.edu/wiki/YumRepositories6
3. Instalar puias addon http://pkgs.org/centos-6-rhel-6/puias-i386/puias-addons-6-1.puias6.6.noarch.rpm.html
4. Instalar puias en sí como root rpm -Uvh puias-computational*rpm

# rpm -Uvh puias-computational*rpm
advertencia:puias-computational-6-1.puias6.5.noarch.rpm: CabeceraV3 RSA/SHA256 Signature, ID de clave 41a40948: NOKEY
Preparando...               ########################################### [100%]
   1:puias-computational    ########################################### [100%]

# yum install MixKit

Otra vez con la instalación de vis5d+-1.2.1

$ ./configure --with-mixkit=/usr/lib64/
$ make

Finalmente no se pudo instalar ARWPost en la máquina Scientific Linux donde tenemos WRF por problemas, pienso yo, de algunas librerías.

Se procede a instalar entonces en una máquina virtual con la distribución GNU/Linux Ubuntu. La intalación se realiza de la siguiente manera (http://youtu.be/zXvfQ4i0IJE):

Descargar ARWPost desde la página http://www.mmm.ucar.edu/wrf/users/download/get_sources.html

Nota: Para la descarga hay que suscribirse de manera gratuita al sitio.

El link de descarga de la versión 3.1 es la siguiente: http://www.mmm.ucar.edu/wrf/src/ARWpost_V3.tar.gz

Una vez descargado el paquete de ARWPost se realizan los siguientes pasos:

Nota: Se debe tener compilado NetCDF en la máquina en la que se piensa instalar ARWPost.

$ tar -xvzf ARWpost_V3.tar.gz
$ cd ARWpost
$ ./configure

** WARNING: No path to NETCDF and environment variable NETCDF not set.
** would you like me to try to fix? [y]
y
Enter full path to NetCDF include directory on your system
/usr/local/include
Enter full path to NetCDF library directory on your system
/usr/local/lib
created new ./netcdf_links directory
total 0
lrwxrwxrwx. 1 angelv angelv 18 abr 18 15:41 include -> /usr/local/include/
lrwxrwxrwx. 1 angelv angelv 14 abr 18 15:41 lib -> /usr/local/lib/
Will use NETCDF in dir: /home/angelv/ARWpost/netcdf_links
------------------------------------------------------------------------
Please select from among the following supported platforms.

   1.  PC Linux i486 i586 i686 x86_64, PGI compiler   
   2.  PC Linux i486 i586 i686 x86_64, Intel compiler   
   3.  PC Linux i486 i586 i686 x86_64, gfortran compiler

Enter selection [1-3] : 2  
------------------------------------------------------------------------
Configuration successful. To build the ARWpost, type: compile
------------------------------------------------------------------------

$ ./compile

******************************************************************************************
GrADS
******************************************************************************************

Instalación de GrADS (He seguido los pasos que se muestran en "Como instalar GrADS"  http://youtu.be/e4s92fer85s)


Descargar de la página oficial el código fuente (source) para compilarlo. http://www.iges.org/grads/downloads.html

Nota: Los pasos a seguir están mostrados en el archivo INSTALL en el archivo comprimido en source.tar.gz.
Nota: Tutorial en español con un ejemplo de uso de GrADS está en: http://www.iges.org/grads/gadoc/

$ tar -xvzf grads-2.0.1-src.tar.gz
$ cd grads-2.0.1
$ ./configure

.
.
.

- OPeNDAP for station data disabled

  +=========================================================================+
   GrADS 2.0.1 : Built Wed May 2 17:53:35 ECT 2012 for x86_64-unknown-linux-gnu
  +=========================================================================+

  +-------------------------------+
  |                               |
  |  GrADS will be built with:    |
  |                               |
  |  - GUI disabled               |
  |  - readline disabled          |
  |  - geotiff disabled           |
  |  - shapefile disabled         |
  |  - printim disabled           |
  |  - grib2 disabled             |
  |  - hdf4 disabled              |
  |  - hdf5 disabled              |
  |  - netcdf disabled            |
  |  - OPeNDAP disabled           |
  |                               |
  |  gxtran will not be built     |
  |  grib2scan will not be built  |
  |                               |
  +-------------------------------+
configure: creating src/VERSION
configure: creating src/buildinfo.h
configure: creating ./config.status
config.status: creating Makefile
config.status: creating src/Makefile
config.status: creating src/config.h

Run 'make && make install' to build GrADS.
Executables will be installed to bin/ in current dir, unless prefix was specified.

# make && make install

Cuando se manda make && make install sale el siguiente error:

.
.
.
gxdxwd.c:16:29: error: X11/Xmu/WinUtil.h: No existe el fichero o el directorio
make[2]: *** [gxdxwd.o] Error 1
make[2]: se sale del directorio `/home/angelv/Descargas/grads-2.0.1/src'
make[1]: *** [all] Error 2
make[1]: se sale del directorio `/home/angelv/Descargas/grads-2.0.1/src'
make: *** [all-recursive] Error 1

En la siguiente página se da la solución a este problema: http://dougsland.livejournal.com/54995.html

Se debe instalar libxmu-dev

Ahora mandamos a instalar make && make install ([root@localhost grads-2.0.1]# make && make install)

$ make
$ make check
# make install

Una vez que está compilado GrADS, pasamos todos los ejecutables (los que se generan luego de la compilación) que están en el directorio bin hacia el directorio /usr/local/bin.

Cuando ya se va a abrir una salida de WRF y si no están instalados datos 2, sale esto:

.
.
.
Error opening stroke character data set
  Data set names = /usr/local/lib/grads/font0.dat ; font0.dat
Error opening stroke character data set
  Data set names = /usr/local/lib/grads/font0.dat ; font0.dat

Instalación de datos (datos2.tar.gz)
------------------------------------

Se debe instalar el archivo datos2.tar.gz desde la página web http://grads.iges.org/grads/downloads.html

Nota: Los pasos a seguir están mostrados en el archivo INSTALL en el archivo comprimido en source.tar.gz.

Todos los archivos que están empoquetados se copian a un directorio del sistema llamado /usr/local/lib/grads (el directorio grads dentro de lib se debe crear).

Una vez instalados GrADS y sus respectivos datos (datos2.tar.gz), se puede hacer una prueba con la salida de ARWPost.

Copiamos los archivos de salida de ARWPost (salida.ctl y salida.dat) al directorio de GrADS y en la terminal del sistema ponemos

$ grads
ga> open salida.ctl
ga> d t2
ga> d t
ga> d u10m

WRF, WPS y WRF Domain Wizard en Scientific Linux

30 de marzo de 2012

Seguir lo que dice en el siguiente manual
-----------------------------------------

    http://www.cmc.org.ve/mediawiki/index.php?title=%E2%97%A6_WRF


Para descargarse las librerías, hay una lista de esos datos a bajar
-------------------------------------------------------------------

    http://www.mmm.ucar.edu/wrf/users/download/get_sources.html


Sistema operativo: GNU/Linux
Distribución: Scientific Linux
Versión: 6.1
------------------------------
------------------------------


1. Descargar software necesario
-------------------------------

Descarga de WRF y WPS desde la página oficial. Se ha instalado la versión 3.3.1

http://www.mmm.ucar.edu/wrf/src/

Datos de topografía

www.mmm.ucar.edu/wrf/src/wps_files/geog.tar.gz

Librerías adicionales necesarias

www.mmm.ucar.edu/wrf/src/wps_files/jasper-1.701.0.tar.gz
www.mmm.ucar.edu/wrf/src/wps_files/libpng-1.2.12.tar.gz
www.mmm.ucar.edu/wrf/src/wps_files/zlib-1.2.3.tar.gz

NetCDF (la librería más importante para WRF). La última versión (ahora es la versión 4.1.3).

http://www.unidata.ucar.edu/downloads/netcdf/index.jsp

WRFDomainWizard

http://wrfportal.org/domainwizard/WRFDomainWizard.zip

2. Instalación de compiladores y paquetes adicionales
-----------------------------------------------------

    NOTA IMPORTANTE: Para todos los paquetes que se instalen y compilen en adelante, se debe utilizar las MISMAS VERSIONES de los compiladores.
    ---------------

# yum install gcc
# yum install gcc-gfortran
# yum install gcc-c++ (necesario para compilar NetCDF)
# yum install make
# yum install perl (en Scientific Linux ya está instalado por defecto)
# yum install java (necesario para correr WRFDomianWizard)

3. Instalación de librerías adicionales
---------------------------------------

Se recomienda instalar un editor llamado nano, para poder hacer cualquier creación o modificación de scripts en lo posterior mediante consola (terminal): # yum install nano.

ZLIB (Instalar con -fPIC: export CFLAGS=-fPIC antes de todo)

$ zlib-1.2.3.tar.gz
$ cd zlib-1.2.3
$ ./configure
$ make
$ make check
# make install


JASPER

$ tar -xvzf jasper-1.701.0.tar.gz
$ cd jasper-1.701.0
$ ./configure
$ make
$ make check
# make install

LIBPNG

$ tar -xvzf libpng-1.2.12.tar.gz
$ cd libpng-1.2.12
$ ./configure
$ make

    ERROR:    /usr/bin/ld: /usr/local/lib/libz.a(crc32.o): relocation R_X86_64_32 against `.rodata' can not be used when making a shared object; recompile with -fPIC
        /usr/local/lib/libz.a: could not read symbols: Bad value
        collect2: ld returned 1 exit status

    Posible solución: http://www.gentoo.org/proj/en/base/amd64/howtos/index.xml?part=1&chap=3

    Si al momento de contruir (make) sale un error que pide que se recompile con -fPIC, se debe inicializar la variable CFLAGS = "-O3 -fPIC". Y luego de eso volver a ./configure. Así:
        $ export CFLAGS="-O3 -fPIC"
        $ ./configure

    Se puede ver el contenido de una variable de la sigui./run_DomainWizard
ente manera:
   
        $ echo $NOMBRE_VARIABLE

    Se puede borrar el valor de una variable de la siguiente manera:

        $ unset NOMBRE_VARIABLE

        NO PUDE ARREGLAR EL ERROR. Se puede instalar con: # yum install libpng. En Scientific Linux 6.1 ya está instalada la versión 1.2.46-2
        --------------------------
   
$ make check
# make install

4. Instalación NetCDF
---------------------

Se lo ha puesto como un subtítulo puesto que es la librería más importante para WRF.

$ tar -xvzf netcdf-4.1.3.tar.gz
$ cd netcdf-4.1.3
$ ./configure --disable-netcdf-4
$ make
$ make check
# make install

Para comprobar la instalación (se lo debe hacer pues es muy importante para WRF) se puede usar el siguiente comando:

ls /usr/local/include/netcdf*

El resultado debe contener los siguientes archivos:

/usr/local/include/netcdfcpp.h
/usr/local/include/netcdf.h
/usr/local/include/netcdf.hh
/usr/local/include/netcdf.inc
/usr/local/include/netcdf.mod

El siguiente comando:

ls /usr/local/lib/libnetcdf*

El resultado debe contener los siguientes archivos:

/usr/local/lib/libnetcdf.a    
/usr/local/lib/libnetcdf_c++.la
/usr/local/lib/libnetcdf_c++.a
/usr/local/lib/libnetcdf.la

5. Instalación de WRF
---------------------

$ tar -xvzf WRFV3.3.1.TAR.gz
$ cd WRFV3

Necesitaremos ahora agregar unas nuevas líneas al /etc/bashrc. Son las que se ven a continuación:

$ export JASPERLIB=/opt/jasper-1.701.0
$ export JASPERINC=/opt/jasper-1.701.0
$ ulimit -s unlimited

Para actualizar las variables de ambiente, como es usual:

$ source /etc/bashrc

$ ./configure

Aparece lo siguiente:

checking for perl5... no
checking for perl... found /usr/bin/perl (perl)
** WARNING: No path to NETCDF and environment variable NETCDF not set.
** would you like me to try to fix? [y]

decimos "y" e incluimos los PATH:

/usr/local/include
/usr/local/lib

en cada uno de los casos que pregunta. Si hemos hecho todo bien aparecerá un menú (al principio de todo indica que se han reconocido los caminos a la biblioteca JASPER):

Please select from among the following supported platforms.

   1.  Linux x86_64, PGI compiler with gcc  (serial)
   2.  Linux x86_64, PGI compiler with gcc  (smpar)
   3.  Linux x86_64, PGI compiler with gcc  (dmpar)
   4.  Linux x86_64, PGI compiler with gcc  (dm+sm)
   5.  Linux x86_64, PGI accelerator compiler with gcc  (serial)
   6.  Linux x86_64, PGI accelerator compiler with gcc  (smpar)
   7.  Linux x86_64, PGI accelerator compiler with gcc  (dmpar)
   8.  Linux x86_64, PGI accelerator compiler with gcc  (dm+sm)
   9.  Linux x86_64 i486 i586 i686, ifort compiler with icc  (serial)
  10.  Linux x86_64 i486 i586 i686, ifort compiler with icc  (smpar)
  11.  Linux x86_64 i486 i586 i686, ifort compiler with icc  (dmpar)
  12.  Linux x86_64 i486 i586 i686, ifort compiler with icc  (dm+sm)
  13.  Linux i486 i586 i686 x86_64, PathScale compiler with pathcc  (serial)
  14.  Linux i486 i586 i686 x86_64, PathScale compiler with pathcc  (dmpar)
  15.  x86_64 Linux, gfortran compiler with gcc   (serial)
  16.  x86_64 Linux, gfortran compiler with gcc   (smpar)
  17.  x86_64 Linux, gfortran compiler with gcc   (dmpar)
  18.  x86_64 Linux, gfortran compiler with gcc   (dm+sm)
  19.  Cray XT CLE/Linux x86_64, PGI compiler with gcc  (seri./run_DomainWizard
al)
  20.  Cray XT CLE/Linux x86_64, PGI compiler with gcc  (smpar)
  21.  Cray XT CLE/Linux x86_64, PGI compiler with gcc  (dmpar)
  22.  Cray XT CLE/Linux x86_64, PGI compiler with gcc  (dm+sm)
  23.  Cray XT CLE/Linux x86_64, Cray CCE compiler with gcc  (serial)
  24.  Cray XT CLE/Linux x86_64, Cray CCE compiler with gcc  (smpar)
  25.  Cray XT CLE/Linux x86_64, Cray CCE compiler with gcc  (dmpar)
  26.  Cray XT CLE/Linux x86_64, Cray CCE compiler with gcc  (dm+sm)

Enter selection [1-26] : 15

Compile for nesting? (0=no nesting, 1=basic, 2=preset moves, 3=vortex following) [default 0]: 1

Configuration successful. To build the model type compile .

Testing for NetCDF, C and Fortran compiler

no entry nc.o in archive
This installation NetCDF is
C compiler is 64-bit
Fortran compiler is 64-bit
It will build in

¡YA!
----

$ ./compile em_real

Y SE COMIENZA A COMPILAR
------------------------

Para comprobar que se haya realizado con éxito la compilación. Se deben encontrar en el directorio main (dentro de WRFV3), entre otros, los siguientes archivos:

$ ls run/*.exe

wrf.exe
real.exe
nup.exe
ndown.exe
tc.exe
ndown.exe

Para hacer una prueba se puede bajar el siguiente archivo empaquetado: http://www.mmm.ucar.edu/wrf/src/data/jan00_wps.tar.gz

Se lo pone dentro de test/em_real

$ cd test/em_real
$ tar -xvzf jan00_wps.tar.gz
$ cp namelist.input.jan00 namelist.input
$ ./real.exe

    Puede salir el siguiente error: ./real.exe: error while loading shared libraries: libnetcdff.so.5: cannot open shared object file: No such file or directory
    Solución: $ export LD_LIBRARY_PATH=/usr/local/lib


Para recompilar

$ ./clean -a
$ ./configure
$ ./compile

INSTALACIÓN WPS
---------------

$ tar -xvzf WPSV3.3.1.TAR.gz
$ cd WPS/
$ export JASPERLIB=/opt/jasper-1.701.0
$ export JASPERINC=/opt/jasper-1.701.0

    NOTA: Aquí se muestra cómo hacer para que se configure WPS con grib2: https://nesccdocs.rdhpcs.noaa.gov/wiki/index.php/WPS
    Básicamente se tiene que poner en configure.wps
        COMPRESSION_LIBS = -ljasper -lpng12 -lpng -lz

$ ./configure
** WARNING: No path to NETCDF and environment variable NETCDF not set.
** would you like me to try to fix? [y]
y
Enter full path to NetCDF include directory on your system
/usr/local/include
Enter full path to NetCDF library directory on your system
/usr/local/lib
created new ./netcdf_links directory
total 0
lrwxrwxrwx. 1 angelv angelv 18 mar  5 16:31 include -> /usr/local/include/
lrwxrwxrwx. 1 angelv angelv 14 mar  5 16:31 lib -> /usr/local/lib/
Will use NETCDF in dir: /home/angelv/WPS/netcdf_links
$JASPERLIB or $JASPERINC not found in environment, configuring to build with grib2 I/O...
------------------------------------------------------------------------
Please select from among the following supported platforms.

   1.  PC Linux x86_64, Intel compiler    serial, NO GRIB2
   2.  PC Linux x86_64, Intel compiler    serial
   3.  PC Linux x86_64, Intel compiler    DM parallel, NO GRIB2
   4.  PC Linux x86_64, Intel compiler    DM parallel
   5.  PC Linux x86_64, gfortran compiler,    serial, NO GRIB2
   6.  PC Linux x86_64, gfortran compiler,    serial
   7.  PC Linux x86_64, gfortran compiler,    DM PARALLEL, NO GRIB2
   8.  PC Linux x86_64, gfortran compiler,    DM PARALLEL
   9.  PC Linux x86_64 (IA64 and Opteron), PGI compiler 5.2 or higher, serial, NO GRIB2
  10.  PC Linux x86_64 (IA64 and Opteron), PGI compiler 5.2 or higher, serial
  11.  Cray XT/XE Linux x86_64 (Opteron), PGI compiler 5.2 or higher, DM parallel
  12.  Cray XT/XE Linux x86_64 (Opteron), PGI compiler 5.2 or higher, DM parallel, NO GRIB2
  13.  Cray XT/XE Linux x86_64 (Opteron), Cray CCE compiler 7.0 or higher, DM parallel
  14.  Cray XT/XE Linux x86_64 (Opteron), Cray CCE compiler 7.0 or higher, DM parallel, NO GRIB2
  15.  PC Linux x86_64 (IA64 and Opteron), PGI compiler 5.2 or higher, DM parallel, NO GRIB2
  16.  PC Linux x86_64 (IA64 and Opteron), PGI compiler 5.2 or higher, DM parallel
  17.  PC Linux x86_64 (IA64 and Opteron), PathScale compiler 2.1 or higher, serial, NO GRIB2
  18.  PC Linux x86_64 (IA64 and Opteron), PathScale compiler 2.1 or higher, DM parallel, NO GRIB2
  19.  PC Linux x86_64, g95 compiler,    serial, NO GRIB2
  20.  PC Linux x86_64, g95 compiler,    serial
  21.  PC Linux x86_64, g95 compiler,    DM PARALLEL, NO GRIB2
  22.  PC Linux x86_64, g95 compiler,    DM PARALLEL

Enter selection [1-22] : 8
------------------------------------------------------------------------
Configuration successful. To build the WPS, type: compile
------------------------------------------------------------------------

$ ./compile

**********************************************************************************************************************
**************************************  WRFDomainWizard  *************************************************************
**********************************************************************************************************************

WRFDomainWizard
---------------
---------------

Descompresión del programa. Se lo ha realizado dentro de la carpeta personal /home/angelv/WRFDomainWizard

$ unzip WRFDomainWizard.zip (este comando descomprime los archivos donde esté WRFDomainWizard.zip)

Cambiamos los permisos de ejecución del lanzador del programa (http://belinuxmyfriend.blogspot.com/2007/04/chmod-jugando-con-los-permisos.html):

$ chmod 777 run_DomainWizard

$ ./run_DomainWizard

Datos no transitorios
---------------------

Descargar datos geográficos (454 MB) de: http://www.mmm.ucar.edu/wrf/src/wps_files/geog.tar.gz

Descomprimir los datos geográficos (13 GB). Se lo puede hacer en cualquier directorio; en este caso se lo ha descomprimido en el directorio donde está WPS (/home/angelv/WPS).

$ tar -xvzf geog.tar.gz

Uso de WRFDomainWizard
----------------------

NOTA: Por facilidad (para no usar línea de comandos) se ha creado un lanzador o acceso directo a WRFDomainWizard para acceder desde el escritorio.
    Click derecho en el Escritorio
    Crear Lanzador
    Se ingresan los siguientes datos
        Tipo: Aplicación
        Nombre: WRFDomainWizard (Este nombre puede ser cualquiera)
        Comando: java -Xmx575m -jar /home/angelv/WRFDomainWizard/WRFDomainWizard.jar
        Comentario: GUI para uso de WPS (Puede ser cualquier comentario)

Primero se configuran los parámetros de WRFDomainWizard

    NOTA: Se crea un directorio para los resultados de ejecución de WPS (para usarlo en el parámetro Domains al momento de configurar WRFDomainWizard): $ mkdir /home/angelv/WPS/Domains

Computer (se rellena automáticamente luego de ingresar los siguientes tres parámetros): localhost.localdomain
WPS Programs: /home/angelv/WPS
Geography: /home/angelv/WPS/geog
Domains: /home/angelv/WPS/Domains

NOTA: Para ver el uso de WRFDomainWizard: http://wrfportal.org/DomainWizard.html


Para instalar Skype en Scientific Linux: http://unix.stackexchange.com/questions/25846/skype-missing-gpg-key


PRUEBA DE EJECUCIÓN CON WRF
---------------------------

$ ./real.exe

    Salió este error:
-------------- FATAL CALLED ---------------
 FATAL CALLED FROM FILE:    LINE:     693
  input_wrf.F: SIZE MISMATCH:  namelist ide,jde,num_metgrid_levels=         100         132          65 ; input data ide,jde,num_metgrid_levels=         100         132          27

Aquí tuve pistas para resolver el problema: http://forum.wrfforum.com/viewtopic.php?f=9&t=2781

El error dice que no hay consistencia entre el valor configurado en la variable num_metgrid_levels y los valores que existen para hacer la corrida. Hay que editar el valor de la variable, cambiando de 65 a 27 (como se indica en el archivo mismo).

Luego de una ejecución exitosa debe aparecer el siguiente resultado:

 Domain  1: Current date being processed: 2012-03-30_00:00:00.0000, which is loop #   9 out of    9
 configflags%julyr, %julday, %gmt:        2012          90   0.0000000   
  metgrid input_wrf.F first_date_input = 2012-03-30_00:00:00
  metgrid input_wrf.F first_date_nml = 2012-03-29_00:00:00
 d01 2012-03-30_00:00:00 Timing for input          0 s.
 d01 2012-03-30_00:00:00          flag_soil_layers read from met_em file is  1
 Using sfcprs3 to compute psfc
 d01 2012-03-30_00:00:00 Old data, no inland lake information
  Assume Noah LSM input
 LAND  CHANGE =            0
 WATER CHANGE =            0
 d01 2012-03-30_00:00:00 Timing for processing          0 s.
 LBC valid between these times 2012-03-29_21:00:00.0000 2012-03-30_00:00:00    
 d01 2012-03-30_00:00:00 Timing for output          0 s.
 d01 2012-03-30_00:00:00 Timing for loop #    9 =          1 s.
 d01 2012-03-30_00:00:00 real_em: SUCCESS COMPLETE REAL_EM INIT

$ ./wrf.exe

Timing for Writing wrfout_d01_2012-03-29_03:00:00 for domain        1:    0.30800 elapsed seconds.
 d01 2012-03-29_03:00:00 wrf: SUCCESS COMPLETE WRF

ERROR ERROR ERROR
-----------------
-----------------

Por aquí puede estar la solución: http://forum.wrfforum.com/viewtopic.php?f=6&t=2531


[angelv@localhost em_real]$ ./wrf.exe
 Namelist dfi_control not found in namelist.input. Using registry defaults for variables in dfi_control
 Namelist tc not found in namelist.input. Using registry defaults for variables in tc
 Namelist scm not found in namelist.input. Using registry defaults for variables in scm
 Namelist fire not found in namelist.input. Using registry defaults for variables in fire
 --- NOTE: sst_update is 0, setting io_form_auxinput4 = 0 and auxinput4_interval = 0 for all domains
 --- NOTE: grid_fdda is 0 for domain      1, setting gfdda interval and ending time to 0 for that domain.
 --- NOTE: both grid_sfdda and pxlsm_soil_nudge are 0 for domain      1, setting sgfdda interval and ending time to 0 for that domain.
 --- NOTE: obs_nudge_opt is 0 for domain      1, setting obs nudging interval and ending time to 0 for that domain.
 --- NOTE: num_soil_layers has been set to      4
 WRF V3.3.1 MODEL
  *************************************
  Parent domain
  ids,ide,jds,jde            1         100           1         132
  ims,ime,jms,jme           -4         105          -4         137
  ips,ipe,jps,jpe            1         100           1         132
  *************************************
 DYNAMICS OPTION: Eulerian Mass Coordinate
    alloc_space_field: domain            1 ,             596733464  bytes allocated
   med_initialdata_input: calling input_input
Timing for processing wrfinput file (stream 0) for domain        1:    0.17400 elapsed seconds.
 INPUT LandUse = "USGS"
 LANDUSE TYPE = "USGS" FOUND          33  CATEGORIES           2  SEASONS WATER CATEGORY =           16  SNOW CATEGORY =           24
 INITIALIZE THREE Noah LSM RELATED TABLES
  LANDUSE TYPE = USGS FOUND          27  CATEGORIES
  INPUT SOIL TEXTURE CLASSIFICATION = STAS
  SOIL TEXTURE CLASSIFICATION = STAS FOUND          19  CATEGORIES
Timing for Writing wrfout_d01_2012-03-29_00:00:00 for domain        1:    0.86100 elapsed seconds.
Timing for processing lateral boundary for domain        1:    0.04900 elapsed seconds.
 WRF TILE   1 IS      1 IE    100 JS      1 JE    132
 WRF NUMBER OF TILES =   1
Timing for main: time 2012-03-29_00:03:00 on domain   1:   25.85200 elapsed seconds.
Timing for main: time 2012-03-29_00:06:00 on domain   1:   15.83300 elapsed seconds.
Timing for main: time 2012-03-29_00:09:00 on domain   1:   15.50600 elapsed seconds.
Timing for main: time 2012-03-29_00:12:00 on domain   1:   16.01300 elapsed seconds.
Timing for main: time 2012-03-29_00:15:00 on domain   1:   15.59900 elapsed seconds.
Timing for main: time 2012-03-29_00:18:00 on domain   1:   16.03300 elapsed seconds.
 Flerchinger USEd in NEW version. Iterations=          10
 Flerchinger USEd in NEW version. Iterations=          10
 Flerchinger USEd in NEW version. Iterations=          10
  WOULD GO OFF TOP: KF_ETA_PARA I,J,DPTHMX,DPMIN          52          89             NaN   5000.0000
Violación de segmento

--------------------
--------------------
ERROR ERROR ERROR

-----------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------
***************************** INSTALACIÓN DE ARW POST *******************************************************************************
-----------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------

VIDEO QUE DA CÓMO COMPILAR http://youtu.be/zXvfQ4i0IJE

ARWpost:
ARWpost, is a Fortran program that reads WRF ARW input and output file and generate GrADS output files.

Once the output files have been generated, GrADS can be used to producing horizontal or vertical cross section plots of scalar fields (contours) or vector fields (barbs or arrows), vertical profiles and soundings.

$ tar -xvzf ARWpost_V3.tar.gz
$ cd ARWpost
$ ./configure

** WARNING: No path to NETCDF and environment variable NETCDF not set.
** would you like me to try to fix? [y]
y
Enter full path to NetCDF include directory on your system
/usr/local/include
Enter full path to NetCDF library directory on your system
/usr/local/lib
created new ./netcdf_links directory
total 0
lrwxrwxrwx. 1 angelv angelv 18 abr 18 15:41 include -> /usr/local/include/
lrwxrwxrwx. 1 angelv angelv 14 abr 18 15:41 lib -> /usr/local/lib/
Will use NETCDF in dir: /home/angelv/ARWpost/netcdf_links
------------------------------------------------------------------------
Please select from among the following supported platforms.

   1.  PC Linux i486 i586 i686 x86_64, PGI compiler   
   2.  PC Linux i486 i586 i686 x86_64, Intel compiler   
   3.  PC Linux i486 i586 i686 x86_64, gfortran compiler

Enter selection [1-3] : 2  
------------------------------------------------------------------------
Configuration successful. To build the ARWpost, type: compile
------------------------------------------------------------------------

$ ./compile

Se dió el siguiente error:

    module_interp.f:(.text+0x6ece): undefined reference to `ncvgt_'
    collect2: ld devolvió el estado de salida 1
    make: [ARWpost.exe] Error 1 (no tiene efecto)

Instalación de Vis5D

Descargar desde la página web oficial: http://www.ssec.wisc.edu/~billh/vis5d.html

$ tar -xvzf vis5d+-1.3.0-beta.tar.gz
$ cd vis5d+-1.3.0-beta
$ ./configure

****************************************************
You need to install a 3D graphics library, preferably
the free OpenGL replacement, Mesa.  You can download
Mesa from the Mesa home page:
          http://www.mesa3d.org/
and install it by running:
       ./configure && make && su -c 'make install'
in the Mesa directory.
You may also need to run /sbin/ldconfig as root
to update the system after installing Mesa.
(First, add '/usr/local/lib' to /etc/ld.so.conf if
you installed Mesa under /usr/local, the default.)
****************************************************

Leer partición Ext4 desde Windows 7

16 de enero de 2011

Una mañana quise seguir trabajando en mi Ubuntu como todos los días y pues nunca más pude arrancarlo.  La verdad es que yo mismo tuve la culpa de actualizar algunas cosas que no debía. Quise arreglar el problema y la verdad no tenía tiempo para recuperar el sistema de archivos, pero lo que no quería perder era al menos los datos. En el computador tenía además Windows 7, así que tenía que recuperar la información, que es lo más importante en realidad. Busqué un poco y encontré Ext2Read, sólo me lo descargué y lo instalé; la utilización es muy fácil, yo lo ejecuté y enseguida me mostró la partición que deseaba.
Pantalla Principal de Ext2Read
“Ext2Read es una utilidad para examinar ficheros ext2/ext3/ext4. Ahora soporta LVM2 y EXT4. Y puede ser usado para ver y copiar ficheros y carpetas. Puede también copiar recursivamente carpetas enteras y ser usado para ver y copiar discos y ficheros” (SourceForge, 2010).

Tipos de Impresoras

10 de septiembre de 2010

Se deben clasificar atendiendo a su tecnología de impresión, es decir, al método que emplean para imprimir en el papel. La clasificación comenzaría con una división entre las impresoras "de impacto" y de "no impacto", como su nombre lo indica las impresoras de impacto realizan la impresión golpeando al papel con unas pequeñas piezas (matriz de impresión). Entre las impresoras de no impacto la división más grande se produce entre las impresoras de inyección de tinta y las láser, aunque existen otras tecnologías de uso menos extendido.

Impresoras matriciales

Son las únicas que pueden imprimir formularios continuos. Según como sea el cabezal de impresión, se dividen en dos grupos principales: de margarita y de agujas. Las de margarita incorporan una bola metálica en la que están en relieve las diversas letras y símbolos a imprimir, la bola pivotea sobre un soporte móvil y golpea a la cinta de tinta, con lo que se imprime la letra correspondiente. El método es absolutamente el mismo que se usa en muchas máquinas de escribir eléctricas, lo único que las diferencia es la carencia de teclado. Las impresoras de agujas son las que imprimen caracteres compuestos por puntos empleando un cabezal de impresión formado por agujas accionadas electromagnéticamente, prácticamente igual a una máquina de escribir. Fueron las primeras en salir al mercado.

Por lo general, las impresoras matriciales se clasifican por el número de agujas del cabezal de impresión dispuestas en forma de rectángulo. Normalmente son de 9 o 24.

Este tipo de impresora es de impresión bidireccional, ya que imprimen en el desplazamiento hacia la derecha.

Ventajas de esta tecnología:

Su capacidad de obtener copias múltiples e imprimir formularios continuos. Su velocidad en texto es de las más elevadas y además su costo y mantenimiento es de lo más bajo que hoy ofrece el mercado.

Inconvenientes:

El ruido ciertamente elevado, y la incapacidad de manejar color o varios tipos de fuentes.

Impresoras de Inyección de tinta

Muchas de ellas compiten con las de láser en calidad de texto y producen imágenes con calidad fotográfica.

El concepto de las impresoras de inyección de tinta es sencillo (arrojar tinta líquida sobre el papel) pero en realidad dependen de una tecnología muy avanzada.

La impresión de inyección de tinta, como la impresión láser, es un método de no-impacto. La tinta es emitida por boquillas que se encuentran en el cabezal de impresión. El cabezal de impresión recorre la página en franjas horizontales, usando un motor para moverse lateralmente, y otro para pasar el papel en pasos verticales. Una franja de papel es impresa, entonces el papel se mueve, listo para una nueva franja. Para acelerar las cosas, la cabeza impresora no imprime sólo una simple línea de píxeles en cada pasada, sino también una línea vertical de píxeles a la vez.

La velocidad de impresión se aproxima al la de el láser al imprimir en blanco y negro. El cabezal de impresión de una impresora típica tiene 64 boquillas para cada color, cada una de las cuales debe ser capaz de activarse y desactivarse a velocidades tan elevadas como 900 veces por segundo, lo cual es sorprendente por tratarse de un dispositivo mecánico.

Son dos los métodos que utilizan las impresoras de inyección de tinta para lograr que las gotas se arrojen con rapidez: térmico y piezoeléctrico.

Tecnología térmica

El chorro es iniciado calentando la tinta para crear una burbuja que genera una presión que la fuerza a emerger y golpear el papel. Luego la burbuja colapsa y el vacío resultante arrastra nueva tinta hacia la recámara para reemplazar a la que fue expulsada.

Diminutos elementos calentadores son usados para expulsar gotitas de tinta desde las boquillas del cabezal de impresión, estas boquillas tienen un tamaño aproximado al de un cabello humano (aprox. 70 micras, siendo una micra la millonésima parte de un metro) y expulsan gotas de aproximadamente 8/10 picolitros y puntos de aproximadamente 50 a 60 micras de diámetro. La gota más pequeña que el hombre puede ver a simple vista es de aproximadamente 30 micras, de modo que estas gotas se acercan a los límites de nuestra percepción.

La velocidad de impresión es fundamentalmente una función de la frecuencia con la que las boquillas pueden disparar la tinta y el ancho de la franja impresa por el cabezal de impresión.

Tecnología Piezoeléctrica

La tecnología piezoeléctrica es una estrategia alternativa, desarrollada por Epson, a la tecnología bubble jet o térmica. Los cristales piezoeléctricos tienen una propiedad única y singular. Si se aplica una fuerza física en ellos, pueden generar una carga eléctrica. El proceso también funciona a la inversa: aplique una carga eléctrica al cristal y podrá hacer que se mueva, creando una fuerza mecánica.

La cabeza de impresión de una impresora de inyección de tinta piezoeléctrica utiliza un cristal en la parte posterior de un diminuto depósito de tinta. Una corriente se aplica al cristal, lo que lo atrae hacia adentro. Cuando la corriente se interrumpe, el cristal regresa a su posición original, y una pequeña cantidad de tinta sale por la boquilla. Cuando la corriente se reanuda, atrae al cristal hacia atrás y lanza la siguiente gota.

Ventajas: Las cabezas de impresión piezoeléctricas pueden utilizar tinta que se seca con mayor rapidez y pigmentos que podrían dañarse con las temperaturas en una cabeza térmica. Asimismo, como un cabezal piezoeléctrico está integrado a la impresora, sólo se necesita reemplazar el cartucho de tinta. (las impresoras térmicas incluyen las boquillas en cada cartucho de tinta, lo que incrementa el costo del cartucho y, por lo tanto, el costo por página.)

El inconveniente es que si una cabeza piezoeléctrica se daña o atora, es necesario reparar la impresora.

Impresoras láser

La impresora láser trabaja de manera similar a una fotocopiadora, la diferencia es la fuente de luz. Con una fotocopiadora una página es escaneada con una luz brillante, mientras que en una impresora láser es escaneada, obviamente, por un láser. Después de eso el proceso es prácticamente idéntico, con la luz creando una imagen electroestática de la página en un fotorreceptor cargado, que atrae el tóner en la forma de su carga electroestática.

Las impresoras láser rápidamente se volvieron populares tanto por la alta calidad de su impresión, como por sus costos relativamente bajos.

Las impresoras láser tienen unas cuantas ventajas sobre sus rivales de inyección a tinta. Producen texto en blanco y negro de calidad superior, tienen un ciclo de trabajo de más páginas por mes y un costo más bajo por página. Realiza la impresión sin producir prácticamente ningún sonido.

Una impresora láser necesita tener toda la información acerca de la página en su memoria antes de que pueda empezar a imprimir. Como una imagen es comunicada desde la memoria de la PC hasta una impresora láser depente del tipo de impresora que esté siendo usada. La solución menos sofisticada es la transferencia de una imagen bitmap. En este caso no hay mucho que la computadora pueda hacer para mejorar la calidad, así que mandar punto por punto es todo lo que puede hacer.

Cuando la imagen a ser impresa es comunicada a través de un lenguaje de descripción de página, el primer trabajo de la impresora es convertir las instrucciones en un mapa de bits. Esto es hecho por el procesador interno de la impresora, y el resultado es una imagen (en memoria) de cada punto que será ubicado en el papel. El corazón de una impresora láser es un pequeño tambor rodante - el cartucho orgánico fotoconductor (OPC) - con un revestimiento que le permite mantener una carga electrostática. Un láser recorre la superficie del tambor, colocando selectivamente puntos de carga positiva, que representarán la imagen de salida. El tamaño del tambor es el mismo que el del papel en el cual la imagen aparecerá, cada punto en el tambor correspondiendo a un punto en la hoja de papel. En el momento apropiado, el papel es pasado a través de un cable cargado eléctricamente que deposita una carga negativa en él.

En las verdaderas impresoras láser, la carga selectiva es hecha por las interrupciones on y off del láser durante el escaneo del tambor, utilizando un complejo sistema de espejos y lentes giratorios. Estos espejos giran increíblemente rápido y en sincronización con las interrupciones del láser. Una impresora láser típica, puede perfectamente realizar millones de interrupciones cada segundo.

Dentro de la impresora, el tambor rota para construir una línea horizontal por vez. Claramente, esto tiene que ser hecho de una manera muy eficiente. Cuanto más pequeña la rotación, más alta será la resolución de la página. La rotación de una impresora láser moderna es típicamente 1/600 de pulgada, dando 600 dpi de resolución vertical. De manera similar, cuanto más rápidas sean las interrupciones on y off del láser, más alta será la resolución horizontal.

Mientras el tambor rota para presentar el área próxima para el tratamiento con el láser, el área escrita se mueve hacia el tóner. El tóner es un polvo negro muy fino negativamente cargado, lo que causa que sea atraído hacia los puntos con cargas positivas en la superficie del tambor. Así, después de una rotación completa, la superficie del tambor contiene toda la imagen a imprimirse en la página.

Una hoja de papel (cargado positivamente) luego entra en contacto con el tambor, alimentado por una serie de engranajes lisos. Mientras completa su rotación va tomando el tóner del tambor a causa de su atracción magnética, transfiriendo así la imagen al papel. Las áreas del tambor cargadas negativamente no atraen el tóner, lo que resulta en las áreas blancas de la impresión.

El tóner está especialmente diseñado para derretirse muy rápidamente, y un fuser (o fusionador) aplica calor y presión al papel para hacer que el tóner se adhiera permanentemente. Por esto es que el papel sale de una impresora láser caliente al tacto.

La etapa final es limpiar el tambor de algún remanente de tóner, para poder comenzar el ciclo de nuevo.
Hay dos formas de limpieza, físico y eléctrico. Con el primero el toner que no ha sido transferido a la página es mecánicamente quitado de la página, y un colector de tóner de desperdicio lo deposita en un compartimiento. La limpieza eléctrica consiste en cubrir al tambor con una carga eléctrica uniforme, permitiendo que el láser pueda escribir de nuevo. Esto es hecho por un elemento eléctrico llamado cable corona. Ambos elementos, tanto el pad que limpia el tambor como el cable corona, necesitan ser cambiados regularmente.

Láser color

Las impresoras láser son usualmente dispositivos monocromáticos, pero como la mayoría de las tecnologías monocromáticas, puede ser adaptada al color. Cualquier color puede ser hecho por una combinación de cian, magenta, y amarillo, realizando cuatro pasadas a través del proceso electro-fotográfico, generalmente ubicando los tóners en la página uno a la vez, o construyendo la imagen a cuatro colores en una superficie intermedia de transferencia. El proceso comienza por el magenta y pasa a través del cian y amarillo, con el negro siendo colocado último.

Aparte de su velocidad, una de las ventajas principales de las láser color es la durabilidad de sus impresiones. Porque el tóner es fundido en el papel, en vez de absorbido por éste, como en las impresoras de inyección de tinta.

Impresoras de cera termal

Estas impresoras son utilizadas principalmente para transparencias de presentaciones de negocios y para pruebas de color (creación de documentos e imanes de prueba para una inspección en detalle antes de enviar el documento principal a la impresión industrial). Las impresoras de cera termal utilizan cintas CMYK conducidas por correas del tamaño de una hoja de papel y papel con una capa especial o transparencias. El cabezal de impresión contiene elementos de calentamiento que derriten cada cera de color en el papel a medida que se rueda sobre la impresora.

Impresoras de sublimación de tinte

Utilizada en organizaciones tales como oficinas de servicios — donde la calidad profesional de los documentos, pamfletos y presentaciones, es más importante que los costos de los consumibles — las impresoras de sublimación de tinte son los caballos de batalla para la impresión MYK de calidad. Los conceptos dentro de las impresoras de sublimación son similares a los de las impresoras de cera termal excepto por el uso de una película de tinte de difusión lógica en vez de cera de color. El cabezal de impresión alienta la película coloreada y vaporiza la imagen en el papel especialmente cubierto.

Las impresoras de sublimación son bastante populares en el mundo de diseño publicidad también el campo de investigación científica, donde se requiere precisión de detalles. Por supuesto, tal detalle y calidad de impresión tiene un precio: las impresoras de sublimación de tinte son también conocidas por sus altos costos por página.

Impresoras de tinta sólida

Utilizadas principalmente en la industria de empaquetamiento y diseño, las impresoras de tinta son más valoradas por su habilidad para imprimir en una amplia variedad de tipos de papel. Las impresoras de tinta sólida, como su nombre lo implica, utilizan palillos de tinta endurecida que son derretidos y rociados a través de pequeñas boquillas en el cabezal de impresión. El papel es luego enviado a través de un rodillo fusor que fuerza la tinta al papel.

La impresora de tinta sólida es ideal para prototipos y borradores de nuevos diseños para paquetes de productos; como tal, la mayor parte de los negocios orientados a servicios no tienen la necesidad de este tipo de impresoras.

Impresoras multifunción

Las impresoras multifuncionales son aquellas que combinan capacidades de impresión, escaneo, copiado y, a menudo, de fax en una sola máquina

Grandes Formatos

Plotters

Un plotter es un periférico de salida que efectúa con gran precisión, impresiones gráficas que una impresora no podría obtener. No necesita traducir la información gráfica a líneas de impresión y puntos. Se les puede hablar directamente de vectores, desplazamientos y ubicaciones, y las líneas son realmente líneas y no una sucesión de puntos.

Son ideales para tareas de CAD, porque en sus diseños usan más líneas que caracteres. Son usados en varios campos, tales como ambientes científicos, la ingeniería, el diseño, la arquitectura, etc. Muchos son monocromáticos, pero los hay de cuatro colores e incluso hay modelos que llegan a poseer hasta ocho colores.

Simula sobre el papel, unos ejes de coordenadas (x, y) así podrá moverse en cuatro direcciones. Aunque existen también, plotters que mueven el papel. Su tipo de impresión es chorro de tinta, similar al de las impresoras habituales, algunas marcas usan la tecnología de impresión piezoeléctrica, que permite una mayor duración de los cabezales y logra una velocidad de impresión hasta cinco veces mayor.

Impresoras para grupos

Son impresoras de gran capacidad, preparadas para funcionar en una red incluso sin depender de un ordenador de la misma. Suelen ser impresoras láser, en ocasiones con soporte para color, con bandejas para 500 hojas o más, velocidades de más de 12 ppm reales y memoria por encima de 6 MB.

Dividir archivo en trozos en GNU/Linux

9 de septiembre de 2010

Dividir un archivo es útil en varias ocaciones, entre las cuales podremos decir las siguientes: enviar un archivo grande por e-mail, subir archivos a un servidor de archivos en internet que permiten solamente de cierta capacidad, etc.

A más de las herramientas de consola que existen para poder hacer pedazos o trozos un archivo, hay una herramienta gráfica que puede hacer ese trabajo de una forma muy fácil. La solución es GNOME Split.

GNOME Split sirve para dividir un archivo y luego poder recuperarlo a su estado inicial (unirlo).

Para instalarlo en distribuciones basadas en debian simplemente tipeamos las siguientes líneas en la consola (no está en el centro de software, al menos hasta la versión 10.04 de Ubuntu; si utilizan esta distribución):

sudo add-apt-repository ppa:gnome-split-team/ppa
sudo apt-get update
sudo apt-get install gnome-split
 
Para abrir la aplicación, esta se encuentra en los accesorios.
 
Otra forma de instalación es descargar los paquetes desde la página oficial de 
GNOME Split que es la siguiente: http://www.gnome-split.org/
 
La aplicación tiene un asistente para hacer las tareas de una manera fácil.
 

Convertir texto a voz en GNU/Linux

8 de septiembre de 2010

A continuación presento una alternativa para convertir texto a voz en GNU/Linux, en mi caso la distribución Ubuntu.

Uso un sintetizador de voz llamado eSpeak, su página es la siguiente: http://espeak.sourceforge.net/

lips

eSpeak es un programa que sintetiza texto en voz, puede ser manejado desde una consola de texto. La voz producida no es muy realista, suena bastante robótica. Pero tiene una serie de ventajas que lo hacen interesante: es muy fácil de usar; podemos controlar la velocidad, el tono y la amplitud de la voz; y no da problemas con ningún tipo de texto.

  • Instalación

En Ubuntu es muy fácil, basta con abrir el Centro de software y buscar eSpeak. Recomiendo instalar también la interfaz gráfica GeSpeaker.


Una vez intalada la aplicación, se la abre desde el menú de Video y Sonido y se tiene la siguiente interfaz. Se tiene una caja de texto que va a ser sintetizado a voz, y se puede ajustar el idioma, la voz de hombre o mujer, tono, volumen, velocidad, retraso entre otras opciones. Se puede además grabar el audio generado en formato .wav con el botón Grabar.

Fuentes

¿Qué es una IRQ?

5 de septiembre de 2010

La manera más fácil de explicar una IRQ es pensar en tal como un identificador único. El proceso IRQ es similar a una subasta. El procesador es el subastador y los periféricos son los licitadores. Cada licitador tiene una bandera o paleta para llamar la atención del subastador. Si más de un licitador tiene la misma bandera, esto se convierte en un caos. Casi todos los componentes primarios, tales como los gráficos, sonido, módem, etc., requieren al menos una IRQ, sin considerar si son tarjetas o si se integraron a la tarjeta del sistema. Muchos de los dispositivos antiguos requieren su propia IRQ (su única bandera) con respecto a todos los demás dispositivos. Tarjetas más nuevas pueden compartir con frecuencia IRQs, pero las antiguas tarjetas generalmente no lo pueden hacer porque tratan a sus IRQ como propias. Cuando dos de estos antiguos dispositivos intentan usar la misma IRQ, uno o más de los dispositivos no funcionará adecuadamente. A esto se le llama un conflicto IRQ. Tales conflictos pueden ocasionar un rendimiento inadecuado, bloqueo del sistema y fallas. Sin embargo, la mayoría de los componentes más nuevos pueden compartir una IRQ. Compartir una IRQ es la manera moderna de permitir que se agreguen más tarjetas a un sistema. Observe que algunos componentes (como las tarjetas de video) no pueden compartir IRQs. Esto se debe a que la IRQ de la tarjeta de video generalmente es 10, 11 ó 12. Estas son de baja prioridad y pueden retrasarse (o perderse) debido a solicitudes de prioridad más alta. Esto puede ocasionar efectos visuales indeseables. Las tarjetas que se ajustan por completo al modelo PCI Plug-n-Play permiten compartir la IRQ.

Existen 16 IRQs (15 utilizables) en una computadora. Aquí se presenta una asignación típica de estas IRQs:

IRQ 0 Sistema – Temporizador del Sistema
IRQ 1 Sistema – Teclado
IRQ 2 Sistema – PIC en cascada (controlador de interrupción programable), controla IRQ 8-15
IRQ 3 Sistema – Puerto Serial (COM 2 y COM4)
IRQ 4 Sistema – Puerto Serial (COM 1 y COM3)
IRQ 5 Libre – Adaptador de uso general
IRQ 6 Sistema – Controlador de Diskette
IRQ 7 Sistema – Impresora 1
IRQ 8 Sistema – Reloj en tiempo real CMOS Real
IRQ 9 Libre – Adaptador de uso general
IRQ 10 Libre – Adaptador de uso general
IRQ 11 Libre – Adaptador de uso general
IRQ 12 Sistema – Puerto para el Mouse
IRQ 13 Sistema – Coprocesador Matemático (aun cuando esté incorporado al procesador, sigue usando una IRQ)
IRQ 14 Sistema – Controlador de disco duro
IRQ 15 Libre – Adaptador de uso general

Puerto E/S 0x00000000-0x00000CF7 Bus PCI
Puerto E/S 0x00000000-0x00000CF7 Controladora de acceso directo a memoria

Puerto E/S 0x000003C0-0x000003DF Intel(R) P965/G965 PCI Express Root Port - 29A1
Puerto E/S 0x000003C0-0x000003DF Radeon X1600 Series

IRQ 22 Microsoft UAA Bus Driver for High Definition Audio
IRQ 22 Sound Blaster X-Fi Xtreme Audio

IRQ 23 Intel(R) ICH8 Family USB Universal Host Controller - 2830
IRQ 23 Intel(R) ICH8 Family USB2 Enhanced Host Controller - 2836

IRQ 16 Intel(R) P965/G965 PCI Express Root Port - 29A1
IRQ 16 Radeon X1600 Series
IRQ 16 Intel(R) ICH8 Family USB Universal Host Controller - 2834
IRQ 16 Intel(R) ICH8 Family PCI Express Root Port 1 - 283F
IRQ 16 Intel(R) ICH8 Family PCI Express Root Port 5 - 2847
IRQ 16 JMicron JMB36X Controller

IRQ 17 Intel(R) ICH8 Family USB Universal Host Controller - 2835
IRQ 17 Intel(R) ICH8 Family PCI Express Root Port 6 - 2849
IRQ 17 Generic Marvell Yukon Chipset based Ethernet Controller

IRQ 18 Intel(R) ICH8 Family USB2 Enhanced Host Controller - 283A
IRQ 18 Intel(R) ICH8 Family USB Universal Host Controller - 2832

IRQ 19 Intel(R) ICH8 Family USB Universal Host Controller - 2831
IRQ 19 Marvell Yukon 88E8001/8003/8010 PCI Gigabit Ethernet Controller
IRQ 19 Intel(R) ICH8 4 port Serial ATA Storage Controller - 2820
IRQ 19 Intel(R) ICH8 2 port Serial ATA Storage Controller - 2825

Dirección de memoria 0xA0000-0xBFFFF Bus PCI
Dirección de memoria 0xA0000-0xBFFFF Intel(R) P965/G965 PCI Express Root Port - 29A1
Dirección de memoria 0xA0000-0xBFFFF Radeon X1600 Series

Puerto E/S 0x000003B0-0x000003BB Intel(R) P965/G965 PCI Express Root Port - 29A1
Puerto E/S 0x000003B0-0x000003BB Radeon X1600 Series

esta lista es la que sale en conflictos/recursos compartidos.

El PC normalmente viene con ttyS0 y ttyS2 en la IRQ 4, y ttyS1 y ttyS4 en la IRQ 3. Puede saber que IRQs están usándose viendo /proc/interrupts. Para usar más de dos dispositivos serie, debe reasignar las interrupciones. Una buena elección es reasignar una interrupción del puerto paralelo. El PC normalmente viene con IRQ 5 e IRQ 7 configuradas como interrupciones para los puertos paralelos, pero poca gente usa dos puertos paralelos. Puede reasignar una de las interrupciones a un dispositivo serie, y aún usar felizmente un puerto paralelo. Necesitará el programa setserial para hacer esto. Además, tendrá que jugar con los puentes de su placa, vea los documentos de su placa. Ponga los puentes para la IRQ que quiera para cada puerto.

Necesitará configurar algunas cosas, ya que hay una, y solamente una interrupción para cada dispositivo serie. Así es como tengo mi configuración en /etc/rc.d/rc.local - debe hacerlo donde quiera que tenga su fichero de inicialización:

/sbin/setserial /dev/cua0 irq 3 # mi raton serie
/sbin/setserial /dev/cua1 irq 4 # mi terminal Wyse no-inteligente
/sbin/setserial /dev/cua2 irq 5 # mi modem Zoom
/sbin/setserial /dev/cua3 irq 9 # mi modem USR

Asignación estándar de IRQ: 
  • IRQ  0    Reloj en el canal 0
  • IRQ  1    Teclado
  • IRQ  2    Cascada para el controlador 2
  • IRQ  3    Puerto serie 2
  • IRQ  4    Puerto serie 1
  • IRQ  5    Puerto paralelo 2
  • IRQ  6    Disquetera
  • IRQ  7    Puerto paralelo 1
  • IRQ  8    Reloj de tiempo real (24 horas)
  • IRQ  9    Redireccionada a IRQ 2
  • IRQ 10    no asignada
  • IRQ 11    no asignada
  • IRQ 12    no asignada
  • IRQ 13    Coprocesador matematico
  • IRQ 14    Controlador de disco duro 1
  • IRQ 15    Controlador de disco duro 2
No existen realmente un Modo Correcto de hacer las cosas cuando se eligen las interrupciones. Sólo asegúrese de que no las está usando la placa madre, o cualquier otra placa. 2, 3, 4, 5, ó 7 son buenas elecciones. ``no asignada'' significa que actualmente nada estándar usa estas IRQs. Nótese también que la IRQ 2 es la misma que la IRQ 9. Puede llamarlo 2 ó 9, el controlador serie lo entenderá. Si tiene una placa serie con un conector de 16 bits, también puede usar las IRQ 10, 11, 12 ó 15.

¡Sólo asegúrese de no usar las IRQs 0, 1, 6, 8, 13 ó 14!. Estas son usadas por la placa madre. La hará muy desgraciada si coge sus IRQs. Cuando lo haga, compruebe otra vez /proc/interrupts y asegúrese de que no haya conflictos.

La Memoria Flash

4 de septiembre de 2010

La memoria flash es una forma evolucionada de la memoria EEPROM que permite que múltiples posiciones de memoria sean escritas o borradas en una misma operación de programación mediante impulsos eléctricos, frente a las anteriores que sólo permite escribir o borrar una única celda cada vez. Por ello, flash permite funcionar a velocidades muy superiores cuando los sistemas emplean lectura y escritura en diferentes puntos de esta memoria al mismo tiempo.

Las memorias flash son de tipo no volátil, esto es, la información que almacena no se pierde en cuanto se desconecta de la corriente, una característica muy valorada para la multitud de usos en los que se emplea este tipo de memoria.
Los principales usos de este tipo de memorias son pequeños dispositivos basados en el uso de baterías como teléfonos móviles, PDA, pequeños electrodomésticos, cámaras de fotos digitales, reproductores portátiles de audio, etc.

Las capacidades de almacenamiento de estas tarjetas que integran memorias flash comenzaron en 512 MB pero se pueden encontrar en el mercado tarjetas de 16 GB y más aún.

La velocidad de transferencia de estas tarjetas, al igual que la capacidad de las mismas, se ha ido incrementando progresivamente. La nueva generación de tarjetas permitirá velocidades de hasta 7-30 MB/s.

El coste de estas memorias es muy bajo respecto a otro tipo de memorias similares como EEPROM y ofrece rendimientos y características muy superiores. Económicamente hablando, el precio en el mercado es muy bajo. No obstante, el coste por MB en los discos duros son muy inferiores a los que ofrece la memoria flash y, además los discos duros tienen una capacidad muy superior a la de las memorias flash.

Ofrecen, además, características como gran resistencia a los golpes y es muy silencioso, ya que no contiene ni actuadores mecánicos ni partes móviles. Su pequeño tamaño también es un factor determinante a la hora de escoger para un dispositivo portátil, así como su ligereza y versatilidad para todos los usos hacia los que está orientado.

Sin embargo, todos los tipos de memoria flash sólo permiten un número limitado de escrituras y borrados, generalmente entre 10.000 y un millón, dependiendo de la celda, de la precisión del proceso de fabricación y del voltaje necesario para su borrado.

Este tipo de memoria está fabricado con puertas lógicas NOR y NAND para almacenar los 0’s ó 1’s correspondientes. Hay una gran división entre los fabricantes de un tipo u otro, especialmente a la hora de elegir un sistema de archivos para estas memorias. Sin embargo se comienzan a desarrollar memorias basadas en ORNAND.

Los sistemas de archivos para estas memorias están en pleno desarrollo aunque ya en funcionamiento como por ejemplo JFFS originalmente para NOR, evolucionado a JFFS2 para soportar además NAND o YAFFS, ya en su segunda versión, para NAND. Sin embargo, en la práctica se emplea un sistema de archivos FAT por compatibilidad, sobre todo en las tarjetas de memoria extraíble.

Otra característica es la resistencia térmica de algunos encapsulados de tarjetas de memoria orientadas a las cámaras digitales de gama alta. Esto permite funcionar en condiciones extremas de temperatura como desiertos o glaciares ya que el rango de temperaturas soportado abarca desde los -25 ºC hasta los 85 ºC.

Las aplicaciones más habituales son:
  • El llavero USB que, además del almacenamiento, suelen incluir otros servicios como radio FM, grabación de voz y, sobre todo como reproductores portátiles de MP3 y otros formatos de audio.
  • Las PC Card
  • Las tarjetas de memoria flash que son el sustituto del carrete en la fotografía digital, ya que en las mismas se almacenan las fotos.
Existen varios estándares de encapsulados promocionados y fabricados por la mayoría de las multinacionales dedicadas a la producción de hardware. 

Funcionamiento

Flash, como tipo de EEPROM que es, contiene un array de celdas con un transistor evolucionado con dos puertas en cada intersección. Tradicionalmente sólo almacenan un bit de información. Las nuevas memorias flash, llamadas también dispositivos de celdas multi-nivel, pueden almacenar más de un bit por celda variando el número de electrones que almacenan. Estas memorias están basada en el transistor FAMOS (Floating Gate Avalanche-Injection Metal Oxide Semiconductor) que es, esencialmente un transistor NMOS con un conductor (basado en un óxido metálico) adicional entre la puerta de control (CG – Control Gate) y los terminales fuente/drenador contenidos en otra puerta (FG – Floating Gate) o bien que rodea a FG y es quien contiene los electrones que almacenan la información.

Memoria flash de tipo NOR

En las memorias flash de tipo NOR, cuando los electrones se encuentran en FG, modifican (prácticamente anulan) el campo eléctrico que generaría CG en caso de estar activo. De esta forma, dependiendo de si la celda está a 1 ó a 0, el campo eléctrico de la celda existe o no. Entonces, cuando se lee la celda poniendo un determinado voltaje en CG, la corriente eléctrica fluye o no en función del voltaje almacenado en la celda. La presencia/ausencia de corriente se detecta e interpreta como un 1 ó un 0, reproduciendo así el dato almacenado. En los dispositivos de celda multi-nivel, se detecta la intensidad de la corriente para controlar el número de electrones almacenados en FG e interpretarlos adecuadamente.

Para programar una celda de tipo NOR (asignar un valor determinado) se permite el paso de la corriente desde el terminal fuente al terminal sumidero, entonces se coloca en CG un voltaje alto para absorber los electrones y retenerlos en el campo eléctrico que genera. Este proceso se llama hot-electron injection. Para borrar (poner a “1”, el estado natural del transistor) el contenido de una celda, expulsar estos electrones, se emplea la técnica de Fowler-Nordheim tunnelling, un proceso de tunelado mecánico – cuántico. Esto es, aplicar un voltaje inverso bastante alto al empleado para atraer a los electrones, convirtiendo al transistor en una pistola de electrones que permite, abriendo el terminal sumidero, que los electrones abandonen el mismo. Este proceso es el que provoca el deterioro de las celdas, al aplicar sobre un conductor tan delgado un voltaje tan alto. Cabe destacar que las memorias flash están subdividas en bloques (en ocasiones llamados sectores) y por lo tanto, para el borrado, se limpian bloques enteros para agilizar el proceso, ya que es la parte más lenta del proceso. Por esta razón, las memorias flash son mucho más rápidas que las EEPROM convencionales, ya que borran byte a byte. No obstante, para reescribir un dato es necesario limpiar el bloque primero para después reescribir su contenido.

Memorias flash de tipo NAND

Las memorias flash basadas en puertas lógicas NAND funcionan de forma ligeramente diferente: usan un túnel de inyección para la escritura y para el borrado un túnel de ‘soltado’. Las memorias basadas en NAND tienen, además de la evidente base en otro tipo de puertas, un coste bastante inferior, unas diez veces de más resistencia a las operaciones pero sólo permiten acceso secuencial (más orientado a dispositivos de almacenamiento masivo), frente a las memorias flash basadas en NOR que permiten lectura de acceso aleatorio. Sin embargo, han sido las NAND las que han permitido la expansión de este tipo de memoria, ya que el mecanismo de borrado es más sencillo (aunque también se borre por bloques) lo que ha proporcionado una base más rentable para la creación de dispositivos de tipo tarjeta de memoria.

Comparación de memorias flash basadas en NOR y NAND
 
Para comparar estos tipos de memoria se consideran los diferentes aspectos de las memorias tradicionalmente valorados.La densidad de almacenamiento de los chips es actualmente bastante mayor en las memorias NAND.
  • El coste de NOR es mucho mayor.
  • El acceso NOR es aleatorio para lectura y orientado a bloques para su modificación. Sin embargo, NAND ofrece tan solo acceso directo para los bloques y lectura secuencial dentro de los mismos. 
  • En la escritura de NOR podemos llegar a modificar un solo bit. Esto destaca con la limitada reprogramación de las NAND que deben modificar bloques o palabras completas. 
  • La velocidad de lectura es muy superior en NOR (50-100 ns) frente a NAND (10 µs de la búsqueda de la página + 50 ns por byte). 
  • La velocidad de escritura para NOR es de 5 µs por byte frente a 200 µs por página en NAND. 
  • La velocidad de borrado para NOR es de 1 s por bloque de 64 KB frente a los 2 ms por bloque de 16 KB en NAND. 
  • La fiabilidad de los dispositivos basados en NOR es realmente muy alta, es relativamente inmune a la corrupción de datos y tampoco tiene bloques erróneos frente a la escasa fiabilidad de los sistemas NAND que requieren corrección de datos y existe la posibilidad de que queden bloques marcados como erróneos e inservibles. 
En resumen, los sistemas basados en NAND son más baratos y rápidos pero carecen de una fiabilidad que los haga eficiente, lo que demuestra la necesidad imperiosa de un buen sistema de archivos. Dependiendo de qué sea lo que se busque, merecerá la pena decantarse por uno u otro tipo.

Sistemas de archivos para Memorias flash

Diseñar un sistema de archivos eficiente para las memorias flash se ha convertido en una carrera vertiginosa y compleja, ya que, aunque ambos (NOR y NAND) son tipos de memoria flash, tienen características muy diferentes entre sí a la hora de acceder a esos datos. Esto es porque un sistema de ficheros que trabaje con memorias de tipo NOR incorpora varios mecanismos innecesarios para NAND y, a su vez, NAND requiere mecanismos adicionales, innecesarios para gestionar la memoria de tipo NOR.

Un ejemplo podría ser un recolector de basura. Esta herramienta está condicionada por el rendimiento de las funciones de borrado que, en el caso de NOR es muy lento y, además, un recolector de basura NOR requiere una complejidad relativa bastante alta y limita las opciones de diseño del sistema de archivos. Comparándolo con los sistemas NAND, que borran mucho más rápidamente, estas limitaciones no tienen sentido.

Otra de las grandes diferencias entre estos sistemas es el uso de bloques erróneos que pueden existir en NAND pero no tienen sentido en los sistemas NOR que garantizan la integridad. El tamaño que deben manejar unos y otros sistemas también difiere sensiblemente y por lo tanto es otro factor a tener en cuenta. Se deberá diseñar estos sistemas en función de la orientación que se le quiera dar al sistema
 
Los dos sistemas de ficheros que se disputan el liderazgo para la organización interna de las memorias flash son JFFS (Journaling Flash File System) y YAFFS (Yet Another Flash File System)
 
JFFS
 
El "Sistema de Ficheros Flash con soporte a Transacciones" (o JFFS) es un sistema de ficheros basado en una estructura de registros para usarse sobre memorias Flash NOR por parte de la empresa Axis Communication AB.
 
JFFS2
 
JFFS2 es un sistema de ficheros con soporte para transacciones especializado en memorias Flash, nace como sucesor de JFFS y será sucedido por JFFS3

Related Posts with Thumbnails