@CassiePorter ,
I reckon the error is due to the following limitation from manager.overwrite:
"3. The data file used to overwrite should be of the same format and filename as the original that was used to publish the layer 4."
Anyway, I've created another script and tested successfully. It first truncates the existing buffered feature layer then appends the newly buffered ones. You just need to add/remove and update the attribute fields according to your feature layer fields.
from arcgis.gis import GIS
from arcgis.features import use_proximity
from copy import deepcopy
gis = GIS("url", "username", "password")
# get the buffered feature layer
existing_Buffered_Points_item = gis.content.get("existing_Buffered_Points_item_id")
existing_Buffered_Points_layers = existing_Buffered_Points_item.layers
fLyr = existing_Buffered_Points_item.layers[0]
fset = fLyr.query()
template_hostedFeature = deepcopy(fset.features[0])
fLyr.manager.truncate()
flayer_rows = fset.sdf
#access the first layer in points_item
points_layer1 = points_item.layers[0]
# get the newly buffered item
points_buffer = use_proximity.create_buffers(points_layer1,
field='buffer',
units='meters',
output_name="Buffer_m")
new_buffered_points_item = gis.content.get(points_buffer.id)
new_fLyr = new_buffered_points_item.layers[0]
new_fset = new_fLyr.query()
new_fset_features = new_fLyr.query().features
new_flayer_rows = new_fset.sdf
features_to_be_added = []
for index, row in new_flayer_rows.iterrows():
new_feature = deepcopy(template_hostedFeature)
input_geometry = new_fset_features[index].geometry
output_geometry = geometry.project(geometries = [input_geometry],
in_sr = 3857,
out_sr = 3857,
gis = gis)
# assign the updated values
# update these based on your dataset
new_feature.geometry = output_geometry[0]
new_feature.attributes['OBJECTID'] = row['OBJECTID']
new_feature.attributes['Asset_ID'] = row['Asset_ID']
new_feature.attributes['Latitude'] = row['Latitude']
new_feature.attributes['Longitude'] = row['Longitude']
new_feature.attributes['Speed'] = row['Speed']
new_feature.attributes['Date'] = row['Date']
new_feature.attributes['BUFF_DIST'] = row['BUFF_DIST']
features_to_be_added.append(new_feature)
existing_Buffered_Points_layers[0].edit_features(adds = features_to_be_added)
print("The existing buffer feature layer is updated with new buffered features!")
Cheers
Mehdi
======================================================================
Please give a like if helpful and Accept as Solution if it's answered your query.