code: def raster_reclassify(srcfile, v_dict, dstfile, gdaltype=GDT_Float32):
          
          src_r = RasterUtilClass.read_raster(srcfile)
          src_data = src_r.data
          dst_data = numpy.copy(src_data)
          if gdaltype == GDT_Float32 and src_r.dataType != GDT_Float32:
              gdaltype = src_r.dataType
          no_data = src_r.noDataValue
          new_no_data = DEFAULT_NODATA
          if gdaltype in [GDT_Unknown, GDT_Byte, GDT_UInt16, GDT_UInt32]:
              new_no_data = 0
          if not MathClass.floatequal(new_no_data, src_r.noDataValue):
              if src_r.noDataValue not in v_dict:
                  v_dict[src_r.noDataValue] = new_no_data
                  no_data = new_no_data
  
          for (k, v) in iteritems(v_dict):
              dst_data[src_data == k] = v
          RasterUtilClass.write_gtiff_file(dstfile, src_r.nRows, src_r.nCols, dst_data,
                                           src_r.geotrans, src_r.srs, no_data, gdaltype)
docs: Reclassify raster by given classifier dict.
  
          Args:
              srcfile: source raster file.
              v_dict: classifier dict.
              dstfile: destination file path.
              gdaltype (:obj:`pygeoc.raster.GDALDataType`): GDT_Float32 as default.