I'm trying to convert a raster layer to vector but I'm really struggling.

First it says that I have floating points rather than integers so I have I have seen you can use raster calculator to multiply the numbers to make them whole. Multiplying the points did not work, it would not let me do it - I do not know the error code right now for it but I can have a look. What I am trying to do is extract the raster from the vector but have ranges for the classifications.

I am using ArcGIS Pro but if your help requires me to use QGIS I will be happy to try. I also have seen that some kinda solutions require me to code but I have no experience with coding.

Well I am trying to convert to a vector as I want to understand the percentage of surface area which is an ideal climatic location for a species. I do not want a polygon around each pixel and want to add ranges or categories and have each pixel fit into a range so then I can have larger polygons. Or if that is not possible to extract from the raster a certain range so I can see the different areas.

  • 2
    What does your raster layer look like? You're not going to be able to efficiently vectorise a raster map if it is a continuous surface like an elevation model. Vectorised rasters are mostly when you have large areas of the same category that are better represented as a polygon. Otherwise you end up with a square polygon for each raster pixel, which is inefficient. Normally to convert to integers you'd use some sort of "round" or "trunc" function, but it would help if we could see a map of your raster, know the underlying values, and understand the reason you are vectorising it.
    – Spacedman
    Apr 4, 2021 at 9:12
  • "This did not work" is not a clear problem statement. What did you try? What resulted? How did this fail to meet your need? Please Edit the Question.
    – Vince
    Apr 4, 2021 at 13:50
  • You multiply up and pass that into the int() tool to convert it into an integer raster.
    – Hornbydd
    Apr 5, 2021 at 0:31
  • @Spacedman the raster map is not elevated. How do I present the underlying values so I can make my question clearer? Apr 6, 2021 at 10:21
  • @hornbydd could you be clearer by what you mean when you say passing it into the int() tool? Apr 6, 2021 at 10:24

3 Answers 3


Run through this doc to convert your float raster to a vector polygon feature class: https://support.esri.com/en/technical-article/000012554

Then you need to symbolize based on Quantities > Graduated Symbols based on a range.

  • I have tried to convert my floating points but I have an error on the raster calculator which is '000989 Python syntax error: file "<string>", line 1 int("file"). How do I correct this? Apr 8, 2021 at 10:07
  • It would be useful to include screenshots of the raster calculator parameters you used along with the error message. Could be a simple syntax error in the raster calc. Apr 8, 2021 at 10:11

The floating point raster can be changed to an integer raster in ArcMap - ArcToolbox > Data Management Tools > Raster > Raster Dataset > Copy Raster. In ArcGIS, you need an integer raster to be able to convert it to polygon.

However in QGIS, I could create a vector shapefile directly from a Float32 - Thirty two bit floating point raster in Raster - Conversions - Polygonize. QGIS is able to create shapefiles from larger rasters than ArcGIS. Good Luck!


I am not sure about the specifics of your project, but to convert a float raster to an integer raster you should use the Int tool (link).

enter image description here

After that you should be able to use Raster to Polygon to create a polygonised version of the integer raster.

There is a caveat - you will need the spatial analyst license. This can be done without the spatial analyst license but you will need a custom Python script. Let me know if it comes to that.

enter image description here

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.