For the race analysis, I add three heatmaps to reflect the per-capita rate of moving/equipment violations in different beat areas. The census data is from Police Beat Datasets which includes distribution of major race groups [White, Black, Asian, Hispanic, Hawaian, American Indian] in each beat areas. The data cleanning is a little bit complicated, this process could be done with Pandas and the dictionay mapping, however.
The total population of each racial group:
American Indian population of beat 3467
Asian population of beat 231342
Black population of beat 88761
Hawaiian population of beat 5368
Hispanic population of beat 461066
White population of beat 603401

We plot the per-capita rate on the total population at San Diego of each race group and the stop causes. It shows the first two race groups violating the moving and equipment rules in terms of per-capita rate are the American Indian and the Black. The American Indian per-capita rate is even larger than 0.5 from the heatmap, the stopping cause data does not contain the details if the same driver is recorded to different violation cases, however. This is the point we have to consider before interpreting the data based on per-capita

We have the per-capita rate between the top 8 most beat areas on moving violation and the different racial groups. The per-capita rate is calculated with each racial population of beat areas. The results show at the certain beat areas, like 120 (which is mainly the Mission Bay/La Jolla regions), the Black race has the highest rate, the American Indian race has the highest rate at other beat area, like 240 (which is mainly Mira Mesa region). The heatmap also shows per-capita rate is high among all race-groups at Beat 520 (which is Downtown Region). The American Indian per-capita rate is even larger than 1 at some regions, the stopping cause data does not reveal the details if the same driver is recorded to different violation cases, however. This is the point we have to consider before interpreting the data based on per-capita.

We have the per-capita rate between the top 8 most beat areas on equipment violation and the different racial groups. The per-capita rate is calculated with each racial population of beat areas. The results show at the certain beat areas, like 240 and 930 (which is mainly the Mira Mesa and Del Mar/Carmal Valley Regions), the American Indian race has the highest rate which is even larger than 1. Note that the stopping cause data does not reveal the details if the same driver is recorded to different violation cases, however. This is the point we have to consider before interpreting the data based on per-capita. Beat Area 930 (Del-Mar and Carmal Valley Regions) lead to the higher per-capita rate for some of the groups.
Attention: per-capita rate is high on the certain beat area and racial groups. We have to notice the stop cause database is recorded without identifying if the same person has different cases violations.
Thus, interpreting per-capita rate, especially the lower number of racial population, should be careful, like American Indian.
The detailed implemented Python code including further investigations and choropleth maps is in
SD_Police_Vehicle_Stop_Investigation