Run these tools in this order:
Con (input_raster Value > 3000 1 0 output_raster)
RasterToPolygon
Select (Shape_Area > some value)
import arcpy import arcpy.sa arcpy.CheckOutExtension('Spatial') elev = r'C:\some\path\to\elevation\data.gdb\elevation' tmp_poly = r'C:\some\path\to\elevation\data.gdb\tmp' dest = r'C:\some\path\to\elevation\data.gdb\out_features' elev_value = 3000 r = arcpy.sa.Raster(elev) r_high = arcpy.sa.Con(r, 1, 0, 'VALUE >= %d' % elev_value) arcpy.conversion.RasterToPolygon(r_high, tmp_poly, True) arcpy.analysis.Select(tmp_poly, dest, 'Shape_area > %d' % elev_value)
The Con (stands for conditional) tool gives you a boolean raster with values 1 for grid cells with values exceeding 3000, and 0 for grid cells below 3000.
The RasterToPolygon tool should give you a feature class, with one feature for each contiguous area of either ones or zeroes. If you store that feature class in a geodatabase (file or sde), there should be a Shape_length field and a Shape_area field that are automatically calculated for you.
Try these steps manually with different values for input and see what you get. You could also try the RasterToPolygon tool without running Con before, that should give you one polygon for each contiguous area of each elevation value in the original.
One thing to notice is that if you want the area calculated for you, you should avoid shape files.