code: def atmos(
      ctx,
      atmo,
      contrast,
      bias,
      jobs,
      out_dtype,
      src_path,
      dst_path,
      creation_options,
      as_color,
  ):
      
      if as_color:
          click.echo(
              "rio color {} {} {}".format(
                  src_path, dst_path, simple_atmo_opstring(atmo, contrast, bias)
              )
          )
          exit(0)
  
      with rasterio.open(src_path) as src:
          opts = src.profile.copy()
          windows = [(window, ij) for ij, window in src.block_windows()]
  
      opts.update(**creation_options)
      opts["transform"] = guard_transform(opts["transform"])
  
      out_dtype = out_dtype if out_dtype else opts["dtype"]
      opts["dtype"] = out_dtype
  
      args = {"atmo": atmo, "contrast": contrast, "bias": bias, "out_dtype": out_dtype}
  
      jobs = check_jobs(jobs)
  
      if jobs > 1:
          with riomucho.RioMucho(
              [src_path],
              dst_path,
              atmos_worker,
              windows=windows,
              options=opts,
              global_args=args,
              mode="manual_read",
          ) as mucho:
              mucho.run(jobs)
      else:
          with rasterio.open(dst_path, "w", **opts) as dest:
              with rasterio.open(src_path) as src:
                  rasters = [src]
                  for window, ij in windows:
                      arr = atmos_worker(rasters, window, ij, args)
                      dest.write(arr, window=window)
docs: Atmospheric correction