Topics

EUMETCastView on GNU/Linux

Ernst Lobsiger
 

Dear all

Here is my HOWTO version 0.2. Meanwhile Christian Peters has managed to do what I describe.
I hope my effort and paper proves useful for others as well. Many thanks to Hugo for his support.

Regards,
Ernst

P.S. If you have success please report it here indicating PC specs, distribution and graphics setup.

mkempfde
 

Hi Ernst,

I had no problems following your Howto and successfully compiled and installed on a 4y old PC Intel i3 with 8GB RAM running Ubuntu 16.03LTS 64bit with a NVIDIA  GT1030 graphics card (proprietary NVIDIA drivers).


markus@galilei:~/EMCV$ file EUMETCastView
EUMETCastView: ELF 64-bit LSB executable, x86-64, version 1 (GNU/Linux), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 2.6.32, BuildID[sha1]=68d62707a361ddc52f5b95a9fab90484c330f92f, not stripped

runs perfectly smooth and fast, no visible GL errors with the globe.

Markus


Am 13.02.2018 um 18:06 schrieb Ernst Lobsiger:

Dear all

Here is my HOWTO version 0.2. Meanwhile Christian Peters has managed to do what I describe.
I hope my effort and paper proves useful for others as well. Many thanks to Hugo for his support.

Regards,
Ernst

P.S. If you have success please report it here indicating PC specs, distribution and graphics setup.

Christian Peters
 

Ernst and all,

just compiled EMCV 1.3.3 on Linux with no problems, running smooth.

My specs (lswh -short)

system      MS-7502
bus         MS-7502
memory      128KiB BIOS
processor   Intel(R) Core(TM)2 Quad CPU    Q9400  @ 2.66GHz
memory      32KiB L1 cache
memory      1536KiB L2 cache
memory      8GiB System Memory
display     GK208 [GeForce GT 710B] (MSI NVIDIA GEFORCE GT710)

Linux version 4.9.0-4-amd64 (debian-kernel@...) (gcc version 6.3.0 20170516 (Debian 6.3.0-18) ) #1 SMP Debian 4.9.65-3+deb9u1 (2017-12-23)

NVIDIA driver: NVIDIA-Linux-x86_64-390.25

Regards,

Christian


Am 13.02.18 um 18:06 schrieb Ernst Lobsiger:

Dear all

Here is my HOWTO version 0.2. Meanwhile Christian Peters has managed to do what I describe.
I hope my effort and paper proves useful for others as well. Many thanks to Hugo for his support.

Regards,
Ernst

P.S. If you have success please report it here indicating PC specs, distribution and graphics setup.

Ernst Lobsiger
 

Hugo and Christian

I still explore its usage but it seems to me EUMETCastView 1.3.3 misplaces OLCI image labels (?) :

I load segments
select 1 segment OLCI EFR on the la/lon map
press make image
view image, it has no label top left
if I select the "Geostationary" tab in the toolbox I get a black image with yellow label "OLCIEFR' top left

The same procedure applies to OLCIERR

@Christian: can you reproduce that under GNU/Linux or Windows?

Regards,
Ernst

Christian Peters
 

Ernst,

just tested on Win, same here. No label at the EFR image, black image an "OLCIEFR" on black background.

Regards,

Christian

Am 19.02.18 um 21:45 schrieb Ernst Lobsiger:

Hugo and Christian

I still explore its usage but it seems to me EUMETCastView 1.3.3 misplaces OLCI image labels (?) :

I load segments
select 1 segment OLCI EFR on the la/lon map
press make image
view image, it has no label top left
if I select the "Geostationary" tab in the toolbox I get a black image with yellow label "OLCIEFR' top left

The same procedure applies to OLCIERR

@Christian: can you reproduce that under GNU/Linux or Windows?

Regards,
Ernst

Hugo
 

Ernst and Christian,

I tested it and indeed something went wrong the labeling. I will try to solve this for the next release ...

grts,

Hugi

Ernst Lobsiger
 

Hugo

Here is a couple of problems I face. The overlay question might be a feature not a bug.
But segfaults in 1.3.3 and now even more in 1.3.4. See image and text attached.

Regards,
Ernst

Ernst Lobsiger
 

Hugo and all

I am wrestling with my graphical environment. Screen shot way too big (sorry) and my
text file insists to be a binary (?). Here is exactly the same file renamed Segfaults.txt.

Regards,
Ernst

Hugo
 

Ernst,

I can reproduce the bugs in EUMETCastView. I will try to solve this a.s.a.p. 

grts,

Hugo

Hugo
 

Ernst,

I solved the bugs. (I hope) You can clone the source from github.
The "modus operandi" is as follows for selecting a new image from the geostationary sats :
You can switch tabs (other geo sat) and the last image and overlay will remain visible.
Once you select a new row from the list of any of the geo sats, than the image will be cleared and a new overlay will be calculated.
The size will not be the correct one, because this is only changed once you make an image by selecting a spectral band.

grts,
Hugo

Ernst Lobsiger
 

Hugo

Thanks for the fix of the overlay and FY 1km + CLAHE segfault.

I still have segfaults when I try to image Electro L2, GOES 15 or Himawari 8.

It worked in 1.3.3. I copied the *.ini files, is that a problem?

Regards,
Ernst

(... going to bed now)

Hugo
 

Ernst,

I uploaded a change in the source code to github for these segfaults. ( Some interference with my new RGB recipes code ...)
Everything seems to work now in Linux.
grts,

Hugo

Ernst Lobsiger
 

Hugo,

Many thanks. I noticed you added -no-pie and I get clickable apps now.
You may want to add "Meteosat-11" to the "About" (that's all I found :-).

I am making my first real steps in git now. "Pro Git" has 508 pages...
I already noticed that git preserves the +x bits I am talking about
in my HOWTO. So if you strictly commit/upload from the GNU/Linux
side this should not happen. But once these +x bits are set (most
probably when uploading from an ntfs volume on Windows, or simply
when uploading files that traversed somehow a Windows volume?)
they will stay on github.com unless you change that and commit it
again in GNU/Linux. That's at least my understanding so far ...

Regards,
Ernst

Hugo
 

Ernst,

Yes probably I did a push once from a Windows machine ...
I did a complete reset of all the file permissions on github.
I downloaded a zip file and it seems ok now.

grts,
Hugo 

Ernst Lobsiger
 

Hugo,

Thank you for cleaning this up. It will shorten my next HOWTO version :-).

@All: I am working on my GNU/Linux receiver side again. Could somebody
post an EumetcastWatcher.ini that manages all possible satellite products
that can be treated with the current version of EUMETCastView? Thanks!

Regards,
Ernst

Hugo
 

Hi Ernst,

this is the one I use for the moment ...

grts

Hugo

Ernst Lobsiger
 

Hi Hugo,

Thank you for your EumetCastWatcher.ini. I improved my command line watcher program and tuned my receiver to NFS provide all the data EUMETCastView can handle under the "EUMETCast" tab. Now I'm back on the graphic processing PC and played some hours with you latest version of EUMETCastView. Attached my findings. Maybe some of them could be considered in a next version. I look forward to the future RGB possibilities that you are working on.

Regards,
Ernst

Hugo
 

Ernst,

Thank you for your tests on the program. It is indeed hard to predict every click with the mouse a user will make ...
I already solved all the segfaults in the program.( source is now on github ). For the image labels I propose to eliminate this, and put all the image data in the bottom of the Toolbox.
I forgot to update  the segment numbers in the cylindrical map, still have to do that ..
A 'rotate' button should be possible for VIIRS .

Kind regards,

Hugo

@lumyk
 

Hi Ernst,

Thanks for nice description. It was easy to follow your instructions and everything went completely smoothly.
At the first sight EUMETCastView 1.4.0 runs quickly and without any visible problem - globe shows constantly ~60 paintGL calls/s.

Built and launched on my main computer (with plenty of memory):

$ cat /etc/lsb-release | grep DESC ; uname -a; lscpu | grep "Model name"; glxinfo | grep OpenGL | head -3
DISTRIB_DESCRIPTION="Linux Mint 18.3 Sylvia"
Linux mentos 4.8.0-58-generic #63~16.04.1-Ubuntu SMP Mon Jun 26 18:08:51 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
Model name: Intel(R) Core(TM) i7-5820K CPU @ 3.30GHz
OpenGL vendor string: NVIDIA Corporation
OpenGL renderer string: GeForce GTX 970/PCIe/SSE2
OpenGL core profile version string: 4.5.0 NVIDIA 384.130

hb9erg.kd0hop@...
 

Hi all,

thanks for all your valuable information and your EUMETCastView compilation HowTo!

Everything went very well, using EUMETCastView v1.4.7; I successfully compiled the software on Debian 10 and Xubuntu LTS (more details below).

*** BUT: Here's my Problem ***
Unfortunately, I don't get the 3D Globe to work. It will show green text: around "60 paintGL calls / s", and after activation of the ground station info also these "Maspalomas, Lannion" etc etc. It also lets me choose segments, but I have no Globe and no background (corona).

I tried it on different hardware:
- hp pavilion dv7 6c40ez (CPU: Intel Core i7-2670QM, 2,2GHz, 4 cores - GPU: AMD Radeon HD 7470M)
- ASUS K56CB (CPU: Intel Core i7-3537U, 4 cores - GPU: NVIDIA® GeForce® GT 740M)
- Intel NUC D54250WYK (CPU: Intel Core i5-4250U 1.3GHz, 2 cores - GPU: Intel® HD-Grafik 5000)

Furthermore, I tried it on the Intel NUC using Windows 10 and the latest v1.4.7 .exe, which works fine, including 3D globe. So HW works.

Now I'm trying to get it to work on the Intel NUC, using Xubuntu 18.04.3 LTS.

*** Console Outputs (for your information) ***

cat /etc/lsb-release | grep DESC ; uname -a; lscpu | grep "Model name"; glxinfo | grep OpenGL | head -3

DISTRIB_DESCRIPTION="Ubuntu 18.04.3 LTS"
Linux ops-nuc 5.0.0-35-generic #38~18.04.1-Ubuntu SMP Mon Nov 11 09:16:10 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
OpenGL vendor string: Intel Open Source Technology Center
OpenGL renderer string: Mesa DRI Intel(R) Haswell Mobile
OpenGL core profile version string: 4.5 (Core Profile) Mesa 19.0.8

glxinfo | grep -i "version"
server glx version string: 1.4
client glx version string: 1.4
GLX version: 1.4
    Version: 19.0.8
    Max core profile version: 4.5
    Max compat profile version: 3.0
    Max GLES1 profile version: 1.1
    Max GLES[23] profile version: 3.1
OpenGL core profile version string: 4.5 (Core Profile) Mesa 19.0.8
OpenGL core profile shading language version string: 4.50
OpenGL version string: 3.0 Mesa 19.0.8
OpenGL shading language version string: 1.30
OpenGL ES profile version string: OpenGL ES 3.1 Mesa 19.0.8
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.10
    GL_EXT_shader_implicit_conversions, GL_EXT_shader_integer_mix,

ops@ops-nuc:~$ glxinfo | grep -i "OpenGL"
OpenGL vendor string: Intel Open Source Technology Center
OpenGL renderer string: Mesa DRI Intel(R) Haswell Mobile
OpenGL core profile version string: 4.5 (Core Profile) Mesa 19.0.8
OpenGL core profile shading language version string: 4.50
OpenGL core profile context flags: (none)
OpenGL core profile profile mask: core profile
OpenGL core profile extensions:
OpenGL version string: 3.0 Mesa 19.0.8
OpenGL shading language version string: 1.30
OpenGL context flags: (none)
OpenGL extensions:
OpenGL ES profile version string: OpenGL ES 3.1 Mesa 19.0.8
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.10
OpenGL ES profile extensions:




*** But Here's The Problem.... ***
When I start EUMETCastView from the terminal, choose the 3D globe menu, it outputs:

Release Debug: "0:1(10): error: GLSL 3.30 is not supported. Supported versions are: 1.10, 1.20, 1.30, 1.00 ES, 3.00 ES, and 3.10 ES\n"
Release Debug: "0:1(10): error: GLSL 3.30 is not supported. Supported versions are: 1.10, 1.20, 1.30, 1.00 ES, 3.00 ES, and 3.10 ES\n"
Release Warning: QOpenGLShader::compile(Vertex): 0:1(10): error: GLSL 3.30 is not supported. Supported versions are: 1.10, 1.20, 1.30, 1.00 ES, 3.00 ES, and 3.10 ES

Release Warning: *** Problematic Vertex shader source code ***
#version 330
#define lowp
#define mediump
#define highp
#line 1

layout(location=0) in vec3 VertexPosition;

uniform mat4 MVP;
uniform mat3 NormalMatrix;
uniform vec4 outcolor;

out vec3 Normal;

void main()
{
    Normal = normalize(NormalMatrix * VertexPosition);
    gl_Position = MVP * vec4(VertexPosition,1.0);
}

***
Release Debug: "0:1(10): error: GLSL 3.30 is not supported. Supported versions are: 1.10, 1.20, 1.30, 1.00 ES, 3.00 ES, and 3.10 ES\n"
Release Debug: "0:1(10): error: GLSL 3.30 is not supported. Supported versions are: 1.10, 1.20, 1.30, 1.00 ES, 3.00 ES, and 3.10 ES\n"
Release Warning: QOpenGLShader::compile(Vertex): 0:1(10): error: GLSL 3.30 is not supported. Supported versions are: 1.10, 1.20, 1.30, 1.00 ES, 3.00 ES, and 3.10 ES

Release Warning: *** Problematic Vertex shader source code ***
#version 330
#define lowp
#define mediump
#define highp
#line 1

layout(location=0) in vec3 VertexPosition;

uniform mat4 MVP;
uniform mat3 NormalMatrix;

out vec3 Normal;
out float angle;

void main()
{
    Normal = normalize(NormalMatrix * VertexPosition);
    angle = 1 / MVP[3].w;
    gl_Position = MVP * vec4(VertexPosition,1.0);
}

***
Release Debug: "0:1(10): error: GLSL 3.30 is not supported. Supported versions are: 1.10, 1.20, 1.30, 1.00 ES, 3.00 ES, and 3.10 ES\n"
Release Debug: "0:1(10): error: GLSL 3.30 is not supported. Supported versions are: 1.10, 1.20, 1.30, 1.00 ES, 3.00 ES, and 3.10 ES\n"
Release Warning: QOpenGLShader::compile(Vertex): 0:1(10): error: GLSL 3.30 is not supported. Supported versions are: 1.10, 1.20, 1.30, 1.00 ES, 3.00 ES, and 3.10 ES

Release Warning: *** Problematic Vertex shader source code ***
#version 330
#define lowp
#define mediump
#define highp
#line 1

//layout(location=0) in vec2 VertexPosition;
//layout(location=1) in float VertexTexCoord;

in vec2 VertexPosition;
in float VertexTexCoord;

out float texCoord;

void main()
{
    gl_Position = vec4(VertexPosition, 0.0, 1.0);
    texCoord = VertexTexCoord;
}

***
Release Debug: "0:1(10): error: GLSL 3.30 is not supported. Supported versions are: 1.10, 1.20, 1.30, 1.00 ES, 3.00 ES, and 3.10 ES\n"
Release Debug: "0:1(10): error: GLSL 3.30 is not supported. Supported versions are: 1.10, 1.20, 1.30, 1.00 ES, 3.00 ES, and 3.10 ES\n"
Release Debug: "gshhsdata positions.size() = 0"
Release Debug: "gshhsdata totalverts = 0"
Release Debug: SkyBox::loadCubemap x loaded
Release Debug: SkyBox::loadCubemap _x loaded
Release Debug: SkyBox::loadCubemap y loaded
Release Debug: SkyBox::loadCubemap _y loaded
Release Debug: SkyBox::loadCubemap z loaded
Release Debug: SkyBox::loadCubemap _z loaded
Release Debug: "ID cubemapTexture = 2"
Release Debug: "setCylOrGlobe = 1"
Release Debug: "na setCylOrGlobe = 1"




*** May you help me? ***
On the ASUS laptop, I tried to install other Linux graphics drivers using (in dir. /usr/bin):
wget -Nc smxi.org/sgfxi && chmod +x sgfxi && sgfxi

Do I need to change something in the source code, so that it will let me use the GLSL 3.30?

Thank you a lot in advance for your assistance, it's very much appreciated!

Greetings from Olivier, HB9ERG - Basel, Switzerland