I have a small image dataset collected by a UAV multispectral camera and I'm trying to make a script tool that merges 4 tiffs into one, for each band (4 blues into one blue, 4 greens into one green, etc) and then use the Composite Bands tool. It runs fine in the Python window (ArcGIS Pro 2.2) but the tool gives me an invalid syntax error and I'm not really sure what the error is.
Here's my script:
outWorkspace <SPAN class="operator token">=</SPAN> arcpy<SPAN class="punctuation token">.</SPAN>GetParameterAsText<SPAN class="punctuation token">(</SPAN><SPAN class="number token">0</SPAN><SPAN class="punctuation token">)</SPAN>
cell <SPAN class="operator token">=</SPAN> arcpy<SPAN class="punctuation token">.</SPAN>GetParameterAsText<SPAN class="punctuation token">(</SPAN><SPAN class="number token">1</SPAN><SPAN class="punctuation token">)</SPAN>
blue <SPAN class="operator token">=</SPAN> arcpy<SPAN class="punctuation token">.</SPAN>GetParameterAsText<SPAN class="punctuation token">(</SPAN><SPAN class="number token">2</SPAN><SPAN class="punctuation token">)</SPAN>
green <SPAN class="operator token">=</SPAN> arcpy<SPAN class="punctuation token">.</SPAN>GetParameterAsText<SPAN class="punctuation token">(</SPAN><SPAN class="number token">3</SPAN><SPAN class="punctuation token">)</SPAN>
red <SPAN class="operator token">=</SPAN> arcpy<SPAN class="punctuation token">.</SPAN>GetParameterAsText<SPAN class="punctuation token">(</SPAN><SPAN class="number token">4</SPAN><SPAN class="punctuation token">)</SPAN>
nir <SPAN class="operator token">=</SPAN> arcpy<SPAN class="punctuation token">.</SPAN>GetParameterAsText<SPAN class="punctuation token">(</SPAN><SPAN class="number token">5</SPAN><SPAN class="punctuation token">)</SPAN>
rededge <SPAN class="operator token">=</SPAN> arcpy<SPAN class="punctuation token">.</SPAN>GetParameterAsText<SPAN class="punctuation token">(</SPAN><SPAN class="number token">6</SPAN><SPAN class="punctuation token">)</SPAN>
outName <SPAN class="operator token">=</SPAN> arcpy<SPAN class="punctuation token">.</SPAN>GetParameterAsText<SPAN class="punctuation token">(</SPAN><SPAN class="number token">7</SPAN><SPAN class="punctuation token">)</SPAN>
<SPAN class="comment token">###create empty raster datasets</SPAN>
arcpy<SPAN class="punctuation token">.</SPAN>AddMessage<SPAN class="punctuation token">(</SPAN><SPAN class="string token">"making raster datasets"</SPAN><SPAN class="punctuation token">)</SPAN>
blue_T <SPAN class="operator token">=</SPAN> arcpy<SPAN class="punctuation token">.</SPAN>CreateRasterDataset_management<SPAN class="punctuation token">(</SPAN>outWorkspace<SPAN class="punctuation token">,</SPAN> <SPAN class="string token">"blue.tif"</SPAN><SPAN class="punctuation token">,</SPAN> cell<SPAN class="punctuation token">,</SPAN> <SPAN class="string token">'32_BIT_FLOAT'</SPAN><SPAN class="punctuation token">,</SPAN> <SPAN class="string token">""</SPAN><SPAN class="punctuation token">,</SPAN> <SPAN class="number token">1</SPAN><SPAN class="punctuation token">,</SPAN> <SPAN class="string token">""</SPAN><SPAN class="punctuation token">,</SPAN> <SPAN class="string token">""</SPAN><SPAN class="punctuation token">,</SPAN> <SPAN class="string token">""</SPAN><SPAN class="punctuation token">,</SPAN> <SPAN class="string token">""</SPAN><SPAN class="punctuation token">,</SPAN> <SPAN class="string token">""</SPAN><SPAN class="punctuation token">)</SPAN>
green_T <SPAN class="operator token">=</SPAN> arcpy<SPAN class="punctuation token">.</SPAN>CreateRasterDataset_management<SPAN class="punctuation token">(</SPAN>outWorkspace<SPAN class="punctuation token">,</SPAN> <SPAN class="string token">"green.tif"</SPAN><SPAN class="punctuation token">,</SPAN> cell<SPAN class="punctuation token">,</SPAN> <SPAN class="string token">'32_BIT_FLOAT'</SPAN><SPAN class="punctuation token">,</SPAN> <SPAN class="string token">""</SPAN><SPAN class="punctuation token">,</SPAN> <SPAN class="number token">1</SPAN><SPAN class="punctuation token">,</SPAN> <SPAN class="string token">""</SPAN><SPAN class="punctuation token">,</SPAN> <SPAN class="string token">""</SPAN><SPAN class="punctuation token">,</SPAN> <SPAN class="string token">""</SPAN><SPAN class="punctuation token">,</SPAN> <SPAN class="string token">""</SPAN><SPAN class="punctuation token">,</SPAN> <SPAN class="string token">""</SPAN><SPAN class="punctuation token">)</SPAN>
red_T <SPAN class="operator token">=</SPAN> arcpy<SPAN class="punctuation token">.</SPAN>CreateRasterDataset_management<SPAN class="punctuation token">(</SPAN>outWorkspace<SPAN class="punctuation token">,</SPAN> <SPAN class="string token">"red.tif"</SPAN><SPAN class="punctuation token">,</SPAN> cell<SPAN class="punctuation token">,</SPAN> <SPAN class="string token">'32_BIT_FLOAT'</SPAN><SPAN class="punctuation token">,</SPAN> <SPAN class="string token">""</SPAN><SPAN class="punctuation token">,</SPAN> <SPAN class="number token">1</SPAN><SPAN class="punctuation token">,</SPAN> <SPAN class="string token">""</SPAN><SPAN class="punctuation token">,</SPAN> <SPAN class="string token">""</SPAN><SPAN class="punctuation token">,</SPAN> <SPAN class="string token">""</SPAN><SPAN class="punctuation token">,</SPAN> <SPAN class="string token">""</SPAN><SPAN class="punctuation token">,</SPAN> <SPAN class="string token">""</SPAN><SPAN class="punctuation token">)</SPAN>
nir_T <SPAN class="operator token">=</SPAN> arcpy<SPAN class="punctuation token">.</SPAN>CreateRasterDataset_management<SPAN class="punctuation token">(</SPAN>outWorkspace<SPAN class="punctuation token">,</SPAN> <SPAN class="string token">"nir.tif"</SPAN><SPAN class="punctuation token">,</SPAN> cell<SPAN class="punctuation token">,</SPAN> <SPAN class="string token">'32_BIT_FLOAT'</SPAN><SPAN class="punctuation token">,</SPAN> <SPAN class="string token">""</SPAN><SPAN class="punctuation token">,</SPAN> <SPAN class="number token">1</SPAN><SPAN class="punctuation token">,</SPAN> <SPAN class="string token">""</SPAN><SPAN class="punctuation token">,</SPAN> <SPAN class="string token">""</SPAN><SPAN class="punctuation token">,</SPAN> <SPAN class="string token">""</SPAN><SPAN class="punctuation token">,</SPAN> <SPAN class="string token">""</SPAN><SPAN class="punctuation token">,</SPAN> <SPAN class="string token">""</SPAN><SPAN class="punctuation token">)</SPAN>
rededge_T <SPAN class="operator token">=</SPAN> arcpy<SPAN class="punctuation token">.</SPAN>CreateRasterDataset_management<SPAN class="punctuation token">(</SPAN>outWorkspace<SPAN class="punctuation token">,</SPAN> <SPAN class="string token">"rededge.tif"</SPAN><SPAN class="punctuation token">,</SPAN> cell<SPAN class="punctuation token">,</SPAN> <SPAN class="string token">'32_BIT_FLOAT'</SPAN><SPAN class="punctuation token">,</SPAN> <SPAN class="string token">""</SPAN><SPAN class="punctuation token">,</SPAN> <SPAN class="number token">1</SPAN><SPAN class="punctuation token">,</SPAN> <SPAN class="string token">""</SPAN><SPAN class="punctuation token">,</SPAN> <SPAN class="string token">""</SPAN><SPAN class="punctuation token">,</SPAN> <SPAN class="string token">""</SPAN><SPAN class="punctuation token">,</SPAN> <SPAN class="string token">""</SPAN><SPAN class="punctuation token">,</SPAN> <SPAN class="string token">""</SPAN><SPAN class="punctuation token">)</SPAN>
<SPAN class="comment token">#####################################################################################</SPAN>
<SPAN class="comment token">#Merge layers####################################################################</SPAN>
<SPAN class="comment token">###combine blue layers#####################################################</SPAN>
arcpy<SPAN class="punctuation token">.</SPAN>AddMessage<SPAN class="punctuation token">(</SPAN><SPAN class="string token">"Merging blue..."</SPAN><SPAN class="punctuation token">)</SPAN>
bluex <SPAN class="operator token">=</SPAN> arcpy<SPAN class="punctuation token">.</SPAN>Mosaic_management<SPAN class="punctuation token">(</SPAN>blue<SPAN class="punctuation token">,</SPAN> blue_T<SPAN class="punctuation token">)</SPAN>
<SPAN class="comment token">#################################################################################</SPAN>
<SPAN class="comment token">#Combine green layers#############################################################</SPAN>
arcpy<SPAN class="punctuation token">.</SPAN>AddMessage<SPAN class="punctuation token">(</SPAN><SPAN class="string token">"Merging green..."</SPAN><SPAN class="punctuation token">)</SPAN>
greenx <SPAN class="operator token">=</SPAN> arcpy<SPAN class="punctuation token">.</SPAN>Mosaic_management<SPAN class="punctuation token">(</SPAN>green<SPAN class="punctuation token">,</SPAN> green_T<SPAN class="punctuation token">)</SPAN>
<SPAN class="comment token">#Combine red layers#############################################################</SPAN>
arcpy<SPAN class="punctuation token">.</SPAN>AddMessage<SPAN class="punctuation token">(</SPAN><SPAN class="string token">"Merging red..."</SPAN><SPAN class="punctuation token">)</SPAN>
redx <SPAN class="operator token">=</SPAN> arcpy<SPAN class="punctuation token">.</SPAN>Mosaic_management<SPAN class="punctuation token">(</SPAN>red<SPAN class="punctuation token">,</SPAN> red_T<SPAN class="punctuation token">)</SPAN>
<SPAN class="comment token">#Combine red layers#############################################################</SPAN>
arcpy<SPAN class="punctuation token">.</SPAN>AddMessage<SPAN class="punctuation token">(</SPAN><SPAN class="string token">"Merging NIR..."</SPAN><SPAN class="punctuation token">)</SPAN>
nirx <SPAN class="operator token">=</SPAN> arcpy<SPAN class="punctuation token">.</SPAN>Mosaic_management<SPAN class="punctuation token">(</SPAN>nir<SPAN class="punctuation token">,</SPAN> nir_T<SPAN class="punctuation token">)</SPAN>
<SPAN class="comment token">#Combine red layers#############################################################</SPAN>
arcpy<SPAN class="punctuation token">.</SPAN>AddMessage<SPAN class="punctuation token">(</SPAN><SPAN class="string token">"Merging red edge..."</SPAN><SPAN class="punctuation token">)</SPAN>
rededgex <SPAN class="operator token">=</SPAN> arcpy<SPAN class="punctuation token">.</SPAN>Mosaic_management<SPAN class="punctuation token">(</SPAN>rededge<SPAN class="punctuation token">,</SPAN> rededge_T<SPAN class="punctuation token">)</SPAN>
<SPAN class="comment token">##############################################################################</SPAN>
<SPAN class="comment token">#composite bands</SPAN>
arcpy<SPAN class="punctuation token">.</SPAN>AddMessage<SPAN class="punctuation token">(</SPAN><SPAN class="string token">"Running Composite Bands..."</SPAN><SPAN class="punctuation token">)</SPAN>
arcpy<SPAN class="punctuation token">.</SPAN>CompositeBands_management<SPAN class="punctuation token">(</SPAN>bluex<SPAN class="punctuation token">;</SPAN>greenx<SPAN class="punctuation token">;</SPAN>redex<SPAN class="punctuation token">;</SPAN>nirx<SPAN class="punctuation token">;</SPAN>rededgex<SPAN class="punctuation token">,</SPAN> outWorkspace <SPAN class="operator token">+</SPAN> outName<SPAN class="punctuation token">)</SPAN><SPAN class="line-numbers-rows"><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN></SPAN>
Everything through line 36 works perfectly, so I have 5 complete tiffs, one for each band.
The error is coming in line 40. When I run it in the python window with the actual files and file paths (bypassing the variables) it works. So I assume it's an easy fix and I'm doing something wrong with concatenating my strings or something along those lines.