[ncl-talk] plotting country outline with shapefiles
Dave Allured - NOAA Affiliate
dave.allured at noaa.gov
Fri Feb 26 10:16:35 MST 2021
SB and Rick,
I am responding to this old shapefile problem, originally reported on
December 9. The same problem was found with recent NCL builds on other
systems. You can consider this a bug within NCL, until it is solved. The
issue is being tracked on NCL Github here:
https://github.com/NCAR/ncl/issues/151
On Tue, Jan 5, 2021 at 4:16 PM Dave Allured - NOAA Affiliate <
dave.allured at noaa.gov> wrote:
> SB,
>
> Thank you for running some diagnostics. The direct approach with addfiles
> is important. The following things are now eliminated from this problem:
>
> * Your NCL scripts
> * Any part of NCL shapefile_utils.ncl
>
> These remain as possible candidates:
>
> * Your actual shapefiles
> * Shapefile driver inside NCL
> * Shapefile support libraries
>
> I see that there are two different file dates on your shapefile. Please
> ensure they are actually the same file. Check this with "md5sum
> file_gor_2011.shp" on the Linux command line. They should result in
> identical checksum strings.
>
> If you know how NCL was installed on each machine, then you should be able
> to check the version numbers of the shapefile support libraries. Look at
> GDAL (libgdal) in particular. There may be other libraries involved. I do
> not know the details of the library stack for shapefiles. If you find
> different library versions, I suggest updating the older one to a more
> recent version. It may be necessary to rebuild or re-install NCL to
> accomplish this.
>
> If you have "ogrinfo" installed for the Linux command line, use this to
> list the shapefile layer names like this:
>
> ogrinfo file_gor_2011.shp
>
> Then insert one of those layer names into this command to get a geometry
> summary for that layer. The bounding coordinates are reported on a line
> labeled "Extents". See whether the geometry is consistent between machines.
>
> ogrinfo -geom=NO -fields=NO file_gor_2011.shp *layer-name*
>
> This command is a part of GDAL, not NCL. If you have an out of date
> library problem, it might show up in the geometry results from ogrinfo. I
> can not guarantee this, but it is easy to try if you have ogrinfo installed.
>
>
> On Tue, Jan 5, 2021 at 1:40 PM S Br <sbr.climate at gmail.com> wrote:
>
>> Hi Rick,
>> Thanks for trying.
>> I am using the same shapefile_utils.ncl across the two machines.
>> As you suggest, I have tried the command in both machines and it looks
>> like x/y coordinates are swapped in maschine #2 as shown below.
>>
>> *machine #1*
>> (0) -0.1916935366010736 51.34212550232069
>> (1) -0.1918504471635003 51.34216369759741
>> (2) -0.1919426195340767 51.3421861363549
>> .
>> .
>> .
>> (25817) -0.1912990774713476 51.34202950288345
>> (25818) -0.1916318559031973 51.34211049447309
>> (25819) -0.1916935366010736 51.34212550232069
>>
>> *machine #2*
>> (0) 51.34212549581116 -0.1916934955276336
>> (1) 51.34216369108803 -0.1918504060899556
>> (2) 51.34218612984562 -0.1919425784604706
>> .
>> .
>> .
>> (25817) 51.34202949637353 -0.1912990363981704
>> (25818) 51.34211048796352 -0.1916318148297985
>> (25819) 51.34212549581116 -0.1916934955276336
>>
>>
>> On Tue, Jan 5, 2021 at 7:11 PM Rick Brownrigg <brownrig at ucar.edu> wrote:
>>
>>> Well this is truly bizarre. There's nothing I can think of that would or
>>> should account for the lat/lon coordinate swapping between the two machines
>>> (unless the shapefile_utils.ncl files are different across the two
>>> machines). Things work as expected for me. Unfortunately, without access to
>>> something like machine #2 that exhibits the behavior, I personally have no
>>> way of drilling down further to find out what the problem is.
>>>
>>> Not that this helps solve the problem, but I'm curious if the x/y
>>> coordinates are really juxtaposed; on machine #2:
>>>
>>> f=addfile("file_gor_2011.shp","r")
>>> print(f->x + " " + f->y)
>>>
>>> Do those values look like they are swapped?
>>>
>>> I wish I had a better answer for you :-/
>>>
>>> Rick
>>>
>>>
>>> On Tue, Jan 5, 2021 at 8:37 AM S Br <sbr.climate at gmail.com> wrote:
>>>
>>>> Hi Rick,
>>>> The below are the details.
>>>>
>>>> uname -a
>>>> Computer#1
>>>> Linux sbclim 4.15.0-128-generic #131-Ubuntu SMP Wed Dec 9 06:57:35 UTC
>>>> 2020 x86_64 x86_64 x86_64 GNU/Linux
>>>> Computer#2
>>>> Linux sbclim 3.10.0-1127.19.1.el7.x86_64 #1 SMP Tue Aug 25 17:23:54 UTC
>>>> 2020 x86_64 x86_64 x86_64 GNU/Linux
>>>>
>>>> ls -l file_gor_2011.shp
>>>> Computer#1
>>>> -rw-r--r-- 1 climdir env 413276 Dec 8 16:11 file_gor_2011.shp
>>>> Computer#2
>>>> -rw-r--r-- 1 climdir users 413276 Jan 5 10:54 file_gor_2011.shp
>>>>
>>>> Please find attached here the shape files.
>>>>
>>>> Thanks
>>>> SB
>>>>
>>>>
>>>> On Tue, Jan 5, 2021 at 2:37 PM Rick Brownrigg <brownrig at ucar.edu>
>>>> wrote:
>>>>
>>>>> Hi,
>>>>>
>>>>> That result is very strange indeed. What are computers 1 and 2, i.e.,
>>>>> what is the output of:
>>>>>
>>>>> uname -a
>>>>>
>>>>> And just to be certain, what is the output of this on each computer:
>>>>>
>>>>> cd ...to-directory-where-file_gor_2011.shp-resides....
>>>>> ls -l file_gor_2011.shp
>>>>>
>>>>> Finally, can you send me file_gor_2011.shp (recall that means the
>>>>> .sph, .shx, .dbf files)?
>>>>>
>>>>> Rick
>>>>>
>>>>> On Tue, Jan 5, 2021 at 5:53 AM S Br via ncl-talk <
>>>>> ncl-talk at mailman.ucar.edu> wrote:
>>>>>
>>>>>> Hi Dave,
>>>>>> Thanks for your reply.
>>>>>> I have now compared the diagnostic results between the two computers
>>>>>> and the below are the results.
>>>>>> *Computer#1:*
>>>>>> (0)
>>>>>> ======================================================================
>>>>>> (0) Filename: "file_gor_2011.shp"
>>>>>> (0) Geometry type: polygon
>>>>>> (0) # of features: 1
>>>>>> (0) Min/max lat: 51.29/ 51.69
>>>>>> (0) Min/max lon: -0.51/ 0.33
>>>>>> (0) Variable names and their types:
>>>>>> (0) geometry : integer
>>>>>> (0) segments : integer
>>>>>> (0) x : double
>>>>>> (0) y : double
>>>>>> (0) label : string
>>>>>> (0) name : string
>>>>>> (0) code : string
>>>>>> (0)
>>>>>> ======================================================================
>>>>>> *Computer#2:*
>>>>>> (0)
>>>>>> ======================================================================
>>>>>> (0) Filename: "file_gor_2011.shp"
>>>>>> (0) Geometry type: polygon
>>>>>> (0) # of features: 1
>>>>>> (0) Min/max lat: -0.51/ 0.33
>>>>>> (0) Min/max lon: 51.29/ 51.69
>>>>>> (0) Variable names and their types:
>>>>>> (0) geometry : integer
>>>>>> (0) segments : integer
>>>>>> (0) x : double
>>>>>> (0) y : double
>>>>>> (0) label : string
>>>>>> (0) name : string
>>>>>> (0) code : string
>>>>>> (0)
>>>>>> ======================================================================
>>>>>>
>>>>>> I could see in one computer (computer#2 above) that the latitude
>>>>>> values are replacing the longitude values and vice versa, and that may be
>>>>>> the reason the country outlines are not displaying here.
>>>>>>
>>>>>> Could you please suggest how to solve this issue? I am using the same
>>>>>> data, scripts and only difference is the computer.
>>>>>>
>>>>>> Thank you.
>>>>>> SB
>>>>>>
>>>>>>
>>>>>> On Wed, Dec 9, 2020 at 5:30 PM Dave Allured - NOAA Affiliate <
>>>>>> dave.allured at noaa.gov> wrote:
>>>>>>
>>>>>>> It would be better to apply debugging techniques to narrow down the
>>>>>>> problem, rather than to speculate as to the cause. Use *addfile*
>>>>>>> to see if NCL can read the shapefile. Use diagnostic print statements to
>>>>>>> examine the shapefile structure in memory. Use *gsn_add_polygon*
>>>>>>> to see if NCL can draw a simple outline.
>>>>>>>
>>>>>>> To understand the structure, refer to the shapefile documentation at
>>>>>>> the top of the NCL shapefiles example page. That mentions a special
>>>>>>> procedure *print_shapefile_info* which will print additional useful
>>>>>>> details. Compare diagnostic results between your two computers. Good luck.
>>>>>>>
>>>>>>>
>>>>>>> On Wed, Dec 9, 2020 at 1:16 AM S Br via ncl-talk <
>>>>>>> ncl-talk at mailman.ucar.edu> wrote:
>>>>>>>
>>>>>>>> Hi All,
>>>>>>>> I am trying to plot a figure using the shapefile. Everything is
>>>>>>>> working fine with the NCL script but it doesn't draw the country outline
>>>>>>>> given as a shapefiles. However, the same script works fine in another
>>>>>>>> computer and draws the required country outline using the shapefile.
>>>>>>>> What could be the possible reason that the NCL script works fine
>>>>>>>> but fails to draw the country outline using shapefiles without showing any
>>>>>>>> error?
>>>>>>>>
>>>>>>>> Both the computers are installed with the NCL 6.6.2.
>>>>>>>>
>>>>>>>> Thank you.
>>>>>>>> SB
>>>>>>>>
>>>>>>>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mailman.ucar.edu/pipermail/ncl-talk/attachments/20210226/aa9c24b8/attachment.html>
More information about the ncl-talk
mailing list