class_docstr: Performs cartographic transformations. Converts from
  longitude, latitude to native map projection x,y coordinates and
  vice versa using PROJ (https://proj.org).
  
  Attributes
  ----------
  srs: str
      The string form of the user input used to create the Proj.
  crs: pyproj.crs.CRS
      The CRS object associated with the Proj.
class_docstr_tok: ["Performs","cartographic","transformations",".","Converts","from","longitude",",","latitude","to","native","map","projection","x",",","y","coordinates","and","vice","versa","using","PROJ","(","https",":","\/\/proj.org",")",".","Attributes","--","--","--","--","--","srs",":","str","The","string","form","of","the","user","input","used","to","create","the","Proj",".","crs",":","pyproj.crs.CRS","The","CRS","object","associated","with","the","Proj","."]
docstr: A Proj class instance is initialized with proj map projection
  control parameter key/value pairs. The key/value pairs can
  either be passed in a dictionary, or as keyword arguments,
  or as a PROJ string (compatible with the proj command). See
  :ref:`projections` for examples of
  key/value pairs defining different map projections.
  
  Parameters
  ----------
  projparams: int, str, dict, pyproj.CRS
      A PROJ or WKT string, PROJ dict, EPSG integer, or a pyproj.CRS instance.
  preserve_units: bool
      If false, will ensure +units=m.
  **kwargs:
      PROJ projection parameters.
  
  
  Example usage:
  
  >>> from pyproj import Proj
  >>> p = Proj(proj='utm',zone=10,ellps='WGS84', preserve_units=False)
  >>> x,y = p(-120.108, 34.36116666)
  >>> 'x=%9.3f y=%11.3f' % (x,y)
  'x=765975.641 y=3805993.134'
  >>> 'lon=%8.3f lat=%5.3f' % p(x,y,inverse=True)
  'lon=-120.108 lat=34.361'
  >>> # do 3 cities at a time in a tuple (Fresno, LA, SF)
  >>> lons = (-119.72,-118.40,-122.38)
  >>> lats = (36.77, 33.93, 37.62 )
  >>> x,y = p(lons, lats)
  >>> 'x: %9.3f %9.3f %9.3f' % x
  'x: 792763.863 925321.537 554714.301'
  >>> 'y: %9.3f %9.3f %9.3f' % y
  'y: 4074377.617 3763936.941 4163835.303'
  >>> lons, lats = p(x, y, inverse=True) # inverse transform
  >>> 'lons: %8.3f %8.3f %8.3f' % lons
  'lons: -119.720 -118.400 -122.380'
  >>> 'lats: %8.3f %8.3f %8.3f' % lats
  'lats:   36.770   33.930   37.620'
  >>> p2 = Proj('+proj=utm +zone=10 +ellps=WGS84', preserve_units=False)
  >>> x,y = p2(-120.108, 34.36116666)
  >>> 'x=%9.3f y=%11.3f' % (x,y)
  'x=765975.641 y=3805993.134'
  >>> p = Proj("EPSG:32667", preserve_units=False)
  >>> 'x=%12.3f y=%12.3f (meters)' % p(-114.057222, 51.045)
  'x=-1783506.250 y= 6193827.033 (meters)'
  >>> p = Proj("EPSG:32667")
  >>> 'x=%12.3f y=%12.3f (feet)' % p(-114.057222, 51.045)
  'x=-5851386.754 y=20320914.191 (feet)'
  >>> # test data with radian inputs
  >>> p1 = Proj("EPSG:4214")
  >>> x1, y1 = p1(116.366, 39.867)
  >>> f'{x1:.3f} {y1:.3f}'
  '116.366 39.867'
  >>> x2, y2 = p1(x1, y1, inverse=True)
  >>> f'{x2:.3f} {y2:.3f}'
  '116.366 39.867'
docstr_tok: ["A","Proj","class","instance","is","initialized","with","proj","map","projection","control","parameter","key\/value","pairs",".","The","key\/value","pairs","can","either","be","passed","in","a","dictionary",",","or","as","keyword","arguments",",","or","as","a","PROJ","string","(","compatible","with","the","proj","command",")",".","See",":","ref",":","`","projections","`","for","examples","of","key\/value","pairs","defining","different","map","projections",".","Parameters","--","--","--","--","--","projparams",":","int",",","str",",","dict",",","pyproj.CRS","A","PROJ","or","WKT","string",",","PROJ","dict",",","EPSG","integer",",","or","a","pyproj.CRS","instance",".","preserve_units",":","bool","If","false",",","will","ensure","+units=m",".","*","*","kwargs",":","PROJ","projection","parameters",".","Example","usage",":",">",">",">","from","pyproj","import","Proj",">",">",">","p","=","Proj","(","proj='utm","'",",","zone=10",",","ellps='WGS84","'",",","preserve_units=False",")",">",">",">","x",",","y","=","p","(","-120.108",",","34.36116666",")",">",">",">","'","x=","%","9.3f","y=","%","11.3f","'","%","(","x",",","y",")","'","x=765975.641","y=3805993.134'",">",">",">","'lon=","%","8.3f","lat=","%","5.3f","'","%","p","(","x",",","y",",","inverse=True",")","'lon=-120.108","lat=34.361'",">",">",">","#","do","3","cities","at","a","time","in","a","tuple","(","Fresno",",","LA",",","SF",")",">",">",">","lons","=","(","-119.72",",","-118.40",",","-122.38",")",">",">",">","lats","=","(","36.77",",","33.93",",","37.62",")",">",">",">","x",",","y","=","p","(","lons",",","lats",")",">",">",">","'","x",":","%","9.3f","%","9.3f","%","9.3f","'","%","x","'","x",":","792763.863","925321.537","554714.301'",">",">",">","'","y",":","%","9.3f","%","9.3f","%","9.3f","'","%","y","'","y",":","4074377.617","3763936.941","4163835.303'",">",">",">","lons",",","lats","=","p","(","x",",","y",",","inverse=True",")","#","inverse","transform",">",">",">","'lons",":","%","8.3f","%","8.3f","%","8.3f","'","%","lons","'lons",":","-119.720","-118.400","-122.380'",">",">",">","'lats",":","%","8.3f","%","8.3f","%","8.3f","'","%","lats","'lats",":","36.770","33.930","37.620'",">",">",">","p2","=","Proj","(","'+proj=utm","+zone=10","+ellps=WGS84","'",",","preserve_units=False",")",">",">",">","x",",","y","=","p2","(","-120.108",",","34.36116666",")",">",">",">","'","x=","%","9.3f","y=","%","11.3f","'","%","(","x",",","y",")","'","x=765975.641","y=3805993.134'",">",">",">","p","=","Proj","(","``","EPSG:32667","''",",","preserve_units=False",")",">",">",">","'","x=","%","12.3f","y=","%","12.3f","(","meters",")","'","%","p","(","-114.057222",",","51.045",")","'","x=-1783506.250","y=","6193827.033","(","meters",")","'",">",">",">","p","=","Proj","(","``","EPSG:32667","''",")",">",">",">","'","x=","%","12.3f","y=","%","12.3f","(","feet",")","'","%","p","(","-114.057222",",","51.045",")","'","x=-5851386.754","y=20320914.191","(","feet",")","'",">",">",">","#","test","data","with","radian","inputs",">",">",">","p1","=","Proj","(","``","EPSG:4214","''",")",">",">",">","x1",",","y1","=","p1","(","116.366",",","39.867",")",">",">",">","f","'","{","x1",":",".3f","}","{","y1",":",".3f","}","'","'116.366","39.867'",">",">",">","x2",",","y2","=","p1","(","x1",",","y1",",","inverse=True",")",">",">",">","f","'","{","x2",":",".3f","}","{","y2",":",".3f","}","'","'116.366","39.867","'"]
code: def __init__(
      self,
      projparams: Any | None = None,
      preserve_units: bool = True,
      **kwargs,
  ) -> None:
      """
      A Proj class instance is initialized with proj map projection
      control parameter key/value pairs. The key/value pairs can
      either be passed in a dictionary, or as keyword arguments,
      or as a PROJ string (compatible with the proj command). See
      :ref:`projections` for examples of
      key/value pairs defining different map projections.
  
      Parameters
      ----------
      projparams: int, str, dict, pyproj.CRS
          A PROJ or WKT string, PROJ dict, EPSG integer, or a pyproj.CRS instance.
      preserve_units: bool
          If false, will ensure +units=m.
      **kwargs:
          PROJ projection parameters.
  
  
      Example usage:
  
      >>> from pyproj import Proj
      >>> p = Proj(proj='utm',zone=10,ellps='WGS84', preserve_units=False)
      >>> x,y = p(-120.108, 34.36116666)
      >>> 'x=%9.3f y=%11.3f' % (x,y)
      'x=765975.641 y=3805993.134'
      >>> 'lon=%8.3f lat=%5.3f' % p(x,y,inverse=True)
      'lon=-120.108 lat=34.361'
      >>> # do 3 cities at a time in a tuple (Fresno, LA, SF)
      >>> lons = (-119.72,-118.40,-122.38)
      >>> lats = (36.77, 33.93, 37.62 )
      >>> x,y = p(lons, lats)
      >>> 'x: %9.3f %9.3f %9.3f' % x
      'x: 792763.863 925321.537 554714.301'
      >>> 'y: %9.3f %9.3f %9.3f' % y
      'y: 4074377.617 3763936.941 4163835.303'
      >>> lons, lats = p(x, y, inverse=True) # inverse transform
      >>> 'lons: %8.3f %8.3f %8.3f' % lons
      'lons: -119.720 -118.400 -122.380'
      >>> 'lats: %8.3f %8.3f %8.3f' % lats
      'lats:   36.770   33.930   37.620'
      >>> p2 = Proj('+proj=utm +zone=10 +ellps=WGS84', preserve_units=False)
      >>> x,y = p2(-120.108, 34.36116666)
      >>> 'x=%9.3f y=%11.3f' % (x,y)
      'x=765975.641 y=3805993.134'
      >>> p = Proj("EPSG:32667", preserve_units=False)
      >>> 'x=%12.3f y=%12.3f (meters)' % p(-114.057222, 51.045)
      'x=-1783506.250 y= 6193827.033 (meters)'
      >>> p = Proj("EPSG:32667")
      >>> 'x=%12.3f y=%12.3f (feet)' % p(-114.057222, 51.045)
      'x=-5851386.754 y=20320914.191 (feet)'
      >>> # test data with radian inputs
      >>> p1 = Proj("EPSG:4214")
      >>> x1, y1 = p1(116.366, 39.867)
      >>> f'{x1:.3f} {y1:.3f}'
      '116.366 39.867'
      >>> x2, y2 = p1(x1, y1, inverse=True)
      >>> f'{x2:.3f} {y2:.3f}'
      '116.366 39.867'
      """
      self.crs = CRS.from_user_input(projparams, **kwargs)
      # make sure units are meters if preserve_units is False.
      if (
          not preserve_units
          and "foot" in self.crs.axis_info[0].unit_name
      ):
          # ignore export to PROJ string deprecation warning
          with warnings.catch_warnings():
              warnings.filterwarnings(
                  "ignore",
                  "You will likely lose important projection information",
                  UserWarning,
              )
              projstring = self.crs.to_proj4(4)
          projstring = re.sub(r"\s\+units=[\w-]+", "", projstring)
          projstring += " +units=m"
          self.crs = CRS(projstring)
  
      # ignore export to PROJ string deprecation warning
      with warnings.catch_warnings():
          warnings.filterwarnings(
              "ignore",
              "You will likely lose important projection information",
              UserWarning,
          )
          projstring = self.crs.to_proj4() or self.crs.srs
  
      self.srs = re.sub(r"\s\+?type=crs", "", projstring).strip()
      super().__init__(TransformerFromPipeline(cstrencode(self.srs)))
  
file_path: pyproj/pyproj/proj.py
imports: import re
  import warnings
  from typing import Any
  from pyproj._compat import cstrencode
  from pyproj._transformer import Factors
  from pyproj.crs import CRS
  from pyproj.enums import TransformDirection
  from pyproj.list import get_proj_operations_map
  from pyproj.transformer import Transformer, TransformerFromPipeline
  from pyproj.utils import _convertback, _copytobuffer
label_desc: Use image node_id 1 to create a new Proj object from inherited base classes: Transformer with example: obj = Proj(projparams, preserve_units)