code: def transform(ctx, input, src_crs, dst_crs, precision):
      """Transform coordinates between coordinate reference systems.
  
      JSON arrays of coordinates, interleaved, are read from stdin.
      Aarrays of transformed coordinates are written to stdout.
  
      To transform a longitude, latitude point (EPSG:4326 is the default)
      to another coordinate system with 2 decimal places of output
      precision, do the following.
  
      \b
          $ cat << EOF | rio transform --dst-crs EPSG:32618 --precision 2
          > [-78.0 23.0]
          > EOF
          [192457.13, 2546667.68]
  
      """
      import rasterio.warp
  
      # Handle the case of file, stream, or string input.
      try:
          src = click.open_file(input).readlines()
      except OSError:
          src = [input]
  
      with ctx.obj["env"]:
          if src_crs.startswith("EPSG"):
              src_crs = {"init": src_crs}
          elif rasterio.shutil.exists(src_crs):
              with rasterio.open(src_crs) as f:
                  src_crs = f.crs
  
          if dst_crs.startswith("EPSG"):
              dst_crs = {"init": dst_crs}
          elif rasterio.shutil.exists(dst_crs):
              with rasterio.open(dst_crs) as f:
                  dst_crs = f.crs
  
          for line in src:
              coords = json.loads(line)
              xs = coords[::2]
              ys = coords[1::2]
              xs, ys = rasterio.warp.transform(src_crs, dst_crs, xs, ys)
  
              if precision >= 0:
                  xs = [round(v, precision) for v in xs]
                  ys = [round(v, precision) for v in ys]
  
              result = [0] * len(coords)
              result[::2] = xs
              result[1::2] = ys
              click.echo(json.dumps(result))
  
label_desc: Use image node_id 1 for calling a global function with example usage: transform(ctx, input, src_crs, dst_crs, precision) without return types