What you're trying to do is known as apportionment. This takes a numerical attribute value of a feature and divides it in some way between pieces that feature is split into. There are a number of different solutions. In fact, there's a specific tool for it in the Business Analyst extension, but you probably don't have that. Esri has also published a presentation outlining three different apportionment methods using core functionality (ie, no extensions required). There's also an Esri Blog entry on splitting polygons, and while it uses lines and polygons rather than polygons and polygons as you have, the principle is the same.
The basic solution is you're going to want to use Make Feature Layer on the polygons you want to apportion and be sure to set a Use Ratio Policy on any fields you want to apportion. This allows the use of Split (and Merge) Policies when running Overlay tools like Identity or Intersect. Once you've enabled that, when you run the desired overlay tool using the feature layer as an input, it will divide the field value between the created pieces based on their area ratios. The blog post linked above gives a much more thorough and step-by-step explanation.
Note you can apportion different ways, and what's described above is by area. This may or may not work well for what you're trying to do depending on boundaries. For example if you divide up a county into parts and apportion them equally by area, that's not a very accurate population distribution since you know population is going to be concentrated in and around cities, not evenly dispersed across the entire county.
I should point out you may have several steps here. If your neighborhoods are bigger than census tracts, you may first need to apportion your tracts and then dissolve that result (aggregate) with sum statistics to get a single value for your neighborhoods. Without a clear picture of your data, it's hard to say exactly what your workflow will be.
I don't really have a convenient dataset to test this out with, so it may not work exactly as advertised.
I understand you have neighborhoods with a numeric attribute field that is paid tax count. You want that count divided up among tracts, which are typically but not always smaller than neighborhoods. This means a tract may need to pull from multiple neighborhoods to get a total.
Again, be aware this method apportions by area - if you have a concentration of small properties in one corner of a neighborhood and the rest are large but it's being split evenly to two tracts, both tracts will get an equal count.
- Run Make Feature Layer on your neighborhoods polygons. Be sure to
check the Use Ratio Policy box for your paid tax count field.
- Now using an Overlay tool, cut the resulting feature layer (input)
up with tracts. If you have and Advanced/Info license you can use
Identity. If not, I suggest Union. This should result in a new
feature class with your neighborhoods cut into pieces that match
however they overlap with tracts. You'll have a bunch of attributes,
but the two you care about are the tract name/ID and the paid tax
count which should be apportioned to the pieces. All other
attributes can be deleted (unless there's more you care about). Word
of warning: if the boundaries of your neighborhoods and tracts
criss-cross a lot (particularly if the lines are supposed to be
coincident [right on top of each other sharing vertices] but
aren't), you're going to end up with a lot of sliver polygons.
Likely with some ridiculous decimal point values for counts. These
will go away with the next step, but a) could result in increased
processing time or potentially crashes if there are a huge number of
them, and b) may give some fuzzy rounding math in your final result
such that the sum of the parts is greater or less than the whole.
- Now run Dissolve on the previous step's output using tract name as
the dissolve field and choosing the paid tax count as a statistics
field with a sum type. I'd scroll down and make sure 'create
multipart' is not checked. This should combine all of the polys
belonging to the same tract into one shape with a sum total paid tax
count from all the parts.
- Optional but suggested integrity check: Open the attribute table of
the dissolve output and using summarize/count or some other such
method ensure that every tract has a single record. By not allowing
multipart features you ensure that if for some reason the geometry
didn't flow like it should you'll get two records for a tract -
meaning what should be a single number is split in two, and you'll
want to investigate these records if any. Had you allowed multipart,
there'd just be a single record and you could somehow have a single
tract as two disconnected areas.
- Now you should be able to do a simple join between your original
tract feature class and your dissolve output, using tract name as
the join field. Be warned that if you do have more than one record
per tract in the dissolve output, the join will work but only return
the first found record (with no warnings stating this), creating an error in your data.
Census tracts assume/present a uniform population density. If you are using Mean/Median Center on each tract, you're essentially calculating the centroid or geographic center of the tract. That centroid may or may not actually fall within the shape, particularly in the case of non-rectangular bounded shapes, such as 'C' (like your example image) and 'L' shapes, or shapes with holes in them.
If you only seek to get a point within each tract and be sure that it falls within the tract, Feature to Point will allow you to do that but it requires an Advanced license. Without an Advanced license, you could add x and y attribute fields, calculate those geometry properties to those fields, then create an xy event layer out of those values to get points (but again these may or may not fall within the boundary). If you are comfortable using python you can use a script to create a 'label point' (or 'inside centroid') using arcpy geometry objects, as follows:
# create points list
points = []
# get spatial reference from polygon feature class
sr = arcpy.Describe("shapes").spatialReference
# loop through polygon feature class
with arcpy.da.SearchCursor("shapes","SHAPE@",spatial_reference=sr) as cursor:
for row in cursor:
# add centroids to points list
points.append(arcpy.PointGeometry(row[0].centroid))
# write points to disk
arcpy.CopyFeatures_management(points,r'in_memory\centroids')
Proper use of the Mean/Median Center tools would be to select all or a group of census tracts and use the population value as a weight field. This would then produce a single point at the geographic population center for those selected tracts (not one point per tract). I'm unclear on what you mean by 'create population weights', so I don't fully understand what you are trying to accomplish.
Best Answer
While Feature to Point won't work with a Basic License, you can overcome this limitation with a few steps.