matplotlib / basemap

Plot on map projections (with coastlines and political boundaries) using matplotlib
MIT License
772 stars 390 forks source link

Part of Antartica is missing... #570

Closed auroralin0408 closed 1 year ago

auroralin0408 commented 1 year ago

I was drawing regions around the Antartica, and found that m.fillcontinents somehow failed to draw continents. Then I tried this, and the result was obviously wrong... image

I am using Python3.8 and basemap1.2.2 Thanks for any answer :)

molinav commented 1 year ago

Hi @auroralin0408! This was a known issue that was fixed in version 1.3.5. You can try upgrading to this newer version.

What is your environment? If using a simple Python installation wih pip as package manager, it should be enough to type:

python -m pip install basemap --upgrade

There are also conda packages for basemap version 1.3.5 in case that you are using conda.

auroralin0408 commented 1 year ago

Thanks for your quick reply ! I'm using conda. I tried to upgrade, but it failed. image

molinav commented 1 year ago

Unfortunately, I think I cannot be of more help. I have just tried this with a clean Python 3.8 environment on Windows miniforge3 and it works as expected:

(base) C:\Users\vic>conda activate py38

(py38) C:\Users\vic>conda install -c conda-forge basemap=1.3.5
Collecting package metadata (current_repodata.json): done
Solving environment: failed with initial frozen solve. Retrying with flexible solve.
Collecting package metadata (repodata.json): done
Solving environment: done

## Package Plan ##

  environment location: C:\Users\vic\.conda\envs\py38

  added / updated specs:
    - basemap=1.3.5

The following packages will be downloaded:

    package                    |            build
    ---------------------------|-----------------
    basemap-1.3.5              |   py38h7eee9e9_0         311 KB  conda-forge
    certifi-2022.12.7          |     pyhd8ed1ab_0         147 KB  conda-forge
    fonttools-4.38.0           |   py38h91455d4_1         1.7 MB  conda-forge
    kiwisolver-1.4.4           |   py38hb1fd069_1          58 KB  conda-forge
    matplotlib-base-3.5.3      |   py38h3268a40_2         7.3 MB  conda-forge
    numpy-1.24.1               |   py38h90ce339_0         5.7 MB  conda-forge
    pillow-9.2.0               |   py38h3cd753b_3        45.4 MB  conda-forge
    pyproj-3.3.1               |   py38hf6b4ca6_1         418 KB  conda-forge
    python_abi-3.8             |           3_cp38           6 KB  conda-forge
    unicodedata2-15.0.0        |   py38h91455d4_0         491 KB  conda-forge
    zstd-1.5.2                 |       h7755175_4         401 KB  conda-forge
    ------------------------------------------------------------
                                           Total:        61.9 MB

The following NEW packages will be INSTALLED:

  basemap            conda-forge/win-64::basemap-1.3.5-py38h7eee9e9_0
  basemap-data       conda-forge/noarch::basemap-data-1.3.2-pyhd8ed1ab_1
  brotli             conda-forge/win-64::brotli-1.0.9-hcfcfb64_8
  brotli-bin         conda-forge/win-64::brotli-bin-1.0.9-hcfcfb64_8
  certifi            conda-forge/noarch::certifi-2022.12.7-pyhd8ed1ab_0
  cycler             conda-forge/noarch::cycler-0.11.0-pyhd8ed1ab_0
  fonttools          conda-forge/win-64::fonttools-4.38.0-py38h91455d4_1
  freetype           conda-forge/win-64::freetype-2.12.1-h546665d_1
  geos               conda-forge/win-64::geos-3.11.0-h39d44d4_0
  intel-openmp       conda-forge/win-64::intel-openmp-2023.0.0-h57928b3_25922
  jpeg               conda-forge/win-64::jpeg-9e-h8ffe710_2
  kiwisolver         conda-forge/win-64::kiwisolver-1.4.4-py38hb1fd069_1
  krb5               conda-forge/win-64::krb5-1.20.1-heb0366b_0
  lcms2              conda-forge/win-64::lcms2-2.14-h90d422f_0
  lerc               conda-forge/win-64::lerc-4.0.0-h63175ca_0
  libblas            conda-forge/win-64::libblas-3.9.0-16_win64_mkl
  libbrotlicommon    conda-forge/win-64::libbrotlicommon-1.0.9-hcfcfb64_8
  libbrotlidec       conda-forge/win-64::libbrotlidec-1.0.9-hcfcfb64_8
  libbrotlienc       conda-forge/win-64::libbrotlienc-1.0.9-hcfcfb64_8
  libcblas           conda-forge/win-64::libcblas-3.9.0-16_win64_mkl
  libcurl            conda-forge/win-64::libcurl-7.87.0-h68f0423_0
  libdeflate         conda-forge/win-64::libdeflate-1.14-hcfcfb64_0
  libhwloc           conda-forge/win-64::libhwloc-2.8.0-h039e092_1
  libiconv           conda-forge/win-64::libiconv-1.17-h8ffe710_0
  liblapack          conda-forge/win-64::liblapack-3.9.0-16_win64_mkl
  libpng             conda-forge/win-64::libpng-1.6.39-h19919ed_0
  libssh2            conda-forge/win-64::libssh2-1.10.0-h9a1e1f7_3
  libtiff            conda-forge/win-64::libtiff-4.4.0-hc4f729c_5
  libwebp-base       conda-forge/win-64::libwebp-base-1.2.4-h8ffe710_0
  libxcb             conda-forge/win-64::libxcb-1.13-hcd874cb_1004
  libxml2            conda-forge/win-64::libxml2-2.10.3-hc3477c8_0
  m2w64-gcc-libgfor~ conda-forge/win-64::m2w64-gcc-libgfortran-5.3.0-6
  m2w64-gcc-libs     conda-forge/win-64::m2w64-gcc-libs-5.3.0-7
  m2w64-gcc-libs-co~ conda-forge/win-64::m2w64-gcc-libs-core-5.3.0-7
  m2w64-gmp          conda-forge/win-64::m2w64-gmp-6.1.0-2
  m2w64-libwinpthre~ conda-forge/win-64::m2w64-libwinpthread-git-5.0.0.4634.697f757-2
  matplotlib-base    conda-forge/win-64::matplotlib-base-3.5.3-py38h3268a40_2
  mkl                conda-forge/win-64::mkl-2022.1.0-h6a75c08_874
  msys2-conda-epoch  conda-forge/win-64::msys2-conda-epoch-20160418-1
  munkres            conda-forge/noarch::munkres-1.1.4-pyh9f0ad1d_0
  numpy              conda-forge/win-64::numpy-1.24.1-py38h90ce339_0
  openjpeg           conda-forge/win-64::openjpeg-2.5.0-hc9384bd_1
  packaging          conda-forge/noarch::packaging-23.0-pyhd8ed1ab_0
  pillow             conda-forge/win-64::pillow-9.2.0-py38h3cd753b_3
  proj               conda-forge/win-64::proj-9.0.1-h1cfcee9_1
  pthread-stubs      conda-forge/win-64::pthread-stubs-0.4-hcd874cb_1001
  pthreads-win32     conda-forge/win-64::pthreads-win32-2.9.1-hfa6e2cd_3
  pyparsing          conda-forge/noarch::pyparsing-3.0.9-pyhd8ed1ab_0
  pyproj             conda-forge/win-64::pyproj-3.3.1-py38hf6b4ca6_1
  pyshp              conda-forge/noarch::pyshp-2.3.1-pyhd8ed1ab_0
  python-dateutil    conda-forge/noarch::python-dateutil-2.8.2-pyhd8ed1ab_0
  python_abi         conda-forge/win-64::python_abi-3.8-3_cp38
  six                conda-forge/noarch::six-1.16.0-pyh6c4a22f_0
  sqlite             conda-forge/win-64::sqlite-3.40.0-hcfcfb64_0
  tbb                conda-forge/win-64::tbb-2021.7.0-h91493d7_1
  unicodedata2       conda-forge/win-64::unicodedata2-15.0.0-py38h91455d4_0
  xorg-libxau        conda-forge/win-64::xorg-libxau-1.0.9-hcd874cb_0
  xorg-libxdmcp      conda-forge/win-64::xorg-libxdmcp-1.1.3-hcd874cb_0
  zstd               conda-forge/win-64::zstd-1.5.2-h7755175_4

Proceed ([y]/n)? y

Downloading and Extracting Packages

Preparing transaction: done
Verifying transaction: done
Executing transaction: done

(py38) C:\Users\vic>python
Python 3.8.15 | packaged by conda-forge | (default, Nov 22 2022, 08:42:03) [MSC v.1929 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> from mpl_toolkits import basemap
>>> basemap.__version__
'1.3.5'
>>>

The error that you get is related to the process of downloading packages from the repository, so I guess it is a broader problem in your environment and not related to basemap itself. Have you tried to install other conda packages and see if this SSL error also appears?

auroralin0408 commented 1 year ago

I just built up a new virtual env to install basemap, and other conda pkgs can be downloaded and installed successfully. When I use conda install basemap, only version 1.3.4 will be installed, even though the output of conda search basemap contains 1.3.5 and 1.3.6. image image

However when I ran conda install -c conda-forge basemap=1.3.5, it stuck here without exact output: image

Besides, on MacOS, the output of conda search basemap only contains 1.3.2, and can't find proper pkg to install.

f9e6851810e3479eee1c02f3ca1d6d2
auroralin0408 commented 1 year ago

Hi, I tried to install matplotlib and basemap at first, then it worked. I can use basemap 1.3.6 on Windows. But the same solution can't work on MacOS. And I also tried other commands on https://anaconda.org/conda-forge/basemap, it got the same error.

e603d913257d65d56cc848d50f05bac
molinav commented 1 year ago

Hi @auroralin0408, I am happy to hear that it finally worked on Windows!

For MacOS, are you using a MacOS on M1 processor? As far as I know, the current conda-forge recipe for basemap only creates packages for MacOS on Intel processors (see open PR in https://github.com/conda-forge/basemap-feedstock/pull/108).

auroralin0408 commented 1 year ago

Ok, I see. It's enough to run codes on Windows. Thanks a lot !!!

molinav commented 1 year ago

Thanks for your undestanding, @auroralin0408. At some point it would be nice to also support M1 in conda-forge, it is just that I didn't find the time to try out, and also I do not have an M1 to play around myself. But hopefully in the future it will also be supported.